CMake: add one more test for no_direct_extern_access
Found while compiling qtdeclarative tests: FAILED: qtdeclarative/tests/auto/qml/qmlcppcodegen/tst_qmlcppcodegen [...] ld: qtdeclarative/tests/auto/qml/qmlcppcodegen/data/TestTypes/libcodegen_test_moduleplugin.a(codegen_test_moduleplugin_TestTypesPlugin.cpp.o): non-canonical reference to canonical protected function `_Z28qml_register_types_TestTypesv' in qtdeclarative/tests/auto/qml/qmlcppcodegen/data/libcodegen_test_module.a(codegen_test_module_qmltyperegistrations.cpp.o) ld: failed to set dynamic section sizes: bad value collect2: error: ld returned 1 exit status ninja: build stopped: subcommand failed. See https://sourceware.org/bugzilla/show_bug.cgi?id=29377 Pick-to: 6.4 Change-Id: I3859764fed084846bcb0fffd1702fe6da341a9e3 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
This commit is contained in:
parent
396170d07b
commit
2221b25dac
@ -2,9 +2,10 @@ cmake_minimum_required(VERSION 3.16)
|
|||||||
project(direct_extern_access LANGUAGES CXX)
|
project(direct_extern_access LANGUAGES CXX)
|
||||||
|
|
||||||
# this is the test found in https://sourceware.org/bugzilla/show_bug.cgi?id=29087
|
# this is the test found in https://sourceware.org/bugzilla/show_bug.cgi?id=29087
|
||||||
|
# and https://sourceware.org/bugzilla/show_bug.cgi?id=29377
|
||||||
|
|
||||||
add_library(no_extern_access_lib SHARED lib.cpp)
|
add_library(no_extern_access_lib SHARED lib.cpp)
|
||||||
add_executable(no_extern_access_main main.cpp)
|
add_executable(no_extern_access_main other.cpp main.cpp)
|
||||||
|
|
||||||
target_compile_options(no_extern_access_lib PRIVATE "-Werror")
|
target_compile_options(no_extern_access_lib PRIVATE "-Werror")
|
||||||
target_compile_options(no_extern_access_lib PUBLIC "$<$<CXX_COMPILER_ID:GNU>:-mno-direct-extern-access>")
|
target_compile_options(no_extern_access_lib PUBLIC "$<$<CXX_COMPILER_ID:GNU>:-mno-direct-extern-access>")
|
||||||
|
@ -1,10 +1,18 @@
|
|||||||
// Copyright (C) 2022 Intel Corporation.
|
// Copyright (C) 2022 Intel Corporation.
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
// This is the test found in https://sourceware.org/bugzilla/show_bug.cgi?id=29087
|
// This is combining the tests found in:
|
||||||
|
// https://sourceware.org/bugzilla/show_bug.cgi?id=29087
|
||||||
|
// https://sourceware.org/bugzilla/show_bug.cgi?id=29377
|
||||||
|
|
||||||
#include "lib.h"
|
#include "lib.h"
|
||||||
|
|
||||||
|
extern void foo(); // other.cpp
|
||||||
|
void (*get_foo())()
|
||||||
|
{
|
||||||
|
return foo;
|
||||||
|
}
|
||||||
|
|
||||||
struct Local : S { };
|
struct Local : S { };
|
||||||
int main()
|
int main()
|
||||||
{
|
{
|
||||||
|
8
config.tests/no_direct_extern_access/other.cpp
Normal file
8
config.tests/no_direct_extern_access/other.cpp
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
// Copyright (C) 2022 Intel Corporation.
|
||||||
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
// This is the test found in https://sourceware.org/bugzilla/show_bug.cgi?id=29377
|
||||||
|
|
||||||
|
__attribute__((visibility("protected"))) void foo()
|
||||||
|
{
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user