qt5base-lts/config.tests/direct_extern_access/lib.h
Thiago Macieira fdd7227c67 CMake: Test the linker too for -mno-direct-extern-access
The GNU binutils ld linker needed a patch after the tagging of 2.38 to
make the new feature work. Before this patch, the linker will fail to
link when protected visibility symbols are used in the library, so don't
enable the feature unless the linker is recent enough.

GNU binutils gold from that version passes this test.

LLVM lld is unknown (I didn't test), but LLVM was consulted in
developing the feature.

Fixes: QTBUG-103493
Change-Id: Ibcde9b9795ad42ac9978fffd16f1c80ca20953ff
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
2022-05-25 16:29:31 -07:00

17 lines
363 B
C

// Copyright (C) 2022 Intel Corporation.
// SPDX-License-Identifier: MIT
// This is the test found in https://sourceware.org/bugzilla/show_bug.cgi?id=29087
#ifdef BUILD
# define LIB_API __attribute__((visibility("protected")))
#else
# define LIB_API __attribute__((visibility("default")))
#endif
struct LIB_API S
{
virtual ~S();
virtual void f();
};