You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[SYCL] Initial changes for C++11 ABI=0 support (#12193)
This PR attempts to support the usage case where the user sets
_GLIBCXX_USE_CXX11_ABI=0 to use pre-C++11 ABI.
In fact, this change addresses a specific issue with using different
versions of the libstdc++ library
(https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_dual_abi.html has
more details on this issue).
One of the major changes I made in this PR involves calling
`get_info<>()` API, which can return `stdA::string` as the requested
information.
Due to the ABI incompatibility issues, this API internally splits into 3
cases depending on the template parameter `<T>`.
1. `<T>`s that return a `std::string`.
2. `<T>`s that return a `std::vector<std::string>`
3. `<T>`s that return something other than 1 or 2 above.
The case 1 and 2 should return `detail::string` and
`std::vector<detail::string>` instead and reconstruct `std::string`s.
This is required because ABIs can be different between the header and
CPP files.
All these 3 cases are implemented using `get_info_impl<T>`.
Then, I changed the macro definition of `__SYCL_PARAM_TRAITS_SPEC` to
return different types depending on the `<T>` return_types.
This way, we can only change the boundary between the header file and
the entry point of the libsycl.
---------
Signed-off-by: Byoungro So <byoungro.so@intel.com>
Co-authored-by: Alexey Bader <alexey.bader@intel.com>
Co-authored-by: Victor Perez <victor.perez@intel.com>
Co-authored-by: Julian Oppermann <julian.oppermann@codeplay.com>
Co-authored-by: aelovikov-intel <andrei.elovikov@intel.com>
Co-authored-by: Sergey Semenov <sergey.semenov@intel.com>
0 commit comments