Details
-
Bug
-
Status: Stalled (View Workflow)
-
Major
-
Resolution: Unresolved
-
10.6, 10.7(EOL), 10.8(EOL), 10.9(EOL), 10.10(EOL), 10.11
-
None
Description
Building server version 10.6 and up results in linking error
ld: unknown option: --as-needed
|
clang: error: linker command failed with exit code 1 (use -v to see invocation)
|
Attachments
Issue Links
- is duplicated by
-
MDEV-29973 BUILD: libmariadb/plugins/auth/ have_C__Wl___as_needed is set incorrectly
-
- Closed
-
- relates to
-
MDEV-23887 build failure on MacOS
-
- Closed
-
-
MDEV-30131 Policy CMP0048 is not set warning during cmake
-
- Open
-
Activity
AIX is stuck on cmake-3.16.0. Not sure about MacOS. Brew has later versions, but I'm not sure what's there by default. shulga do you know?
Server fix was: https://github.com/MariaDB/server/blob/10.11/cmake/check_linker_flag.cmake
So a 3.14.0 -> <3.18.0 fix of CMAKE_REQUIRED_LINK_OPTIONS / CHECK_CXX_SOURCE_COMPILES would be appreciated.
danblack Could you please check if latest 3.3 branch (Connector/C) works ok on AIX?
mdborg@p8-aix1-mariadb:[/home/mdborg/build-mariadb-server-10.8]cmake -Uhave_CXX__Wl___as_needed -Uhave_C__Wl___as_needed .
|
CMake Warning (dev) at CMakeLists.txt:30 (PROJECT):
|
Policy CMP0048 is not set: project() command manages VERSION variables.
|
Run "cmake --help-policy CMP0048" for policy details. Use the cmake_policy
|
command to set the policy and suppress this warning.
|
|
The following variable(s) would be set to empty:
|
|
CMAKE_PROJECT_VERSION
|
CMAKE_PROJECT_VERSION_MAJOR
|
CMAKE_PROJECT_VERSION_MINOR
|
CMAKE_PROJECT_VERSION_PATCH
|
This warning is for project developers. Use -Wno-dev to suppress it.
|
|
-- Running cmake version 3.16.0
|
-- MariaDB 10.8.6
|
getconf: specified variable is not valid on this system
|
-- Wsrep-lib version: 1.0.0
|
== Configuring MariaDB Connector/C
|
-- Could NOT find ZSTD (missing: ZSTD_LIBRARIES ZSTD_INCLUDE_DIRS)
|
-- SYSTEM_LIBS: -lld;m;-lld;m;/usr/lib/libssl.a;/usr/lib/libcrypto.a;/usr/lib/libz.a
|
-- Mroonga doesn't support on big-endian
|
-- Performing Test have_C__Wl___as_needed
|
-- Performing Test have_C__Wl___as_needed - Failed
|
-- Performing Test have_CXX__Wl___as_needed
|
-- Performing Test have_CXX__Wl___as_needed - Failed
|
-- Could NOT find BZip2 (missing: BZIP2_INCLUDE_DIR)
|
-- Could NOT find LZO (missing: LZO_LIBRARIES LZO_INCLUDE_DIRS)
|
-- Configuring done
|
-- Generating done
|
-- Build files have been written to: /home/mdborg/build-mariadb-server-10.8
|
|
|
mdborg@p8-aix1-mariadb:[/home/mdborg/build-mariadb-server-10.8]cat CMakeFiles/CMakeError.log
|
..
|
Performing C SOURCE FILE Test have_C__Wl___as_needed failed with the following output:
|
Change Dir: /home/mdborg/build-mariadb-server-10.8/CMakeFiles/CMakeTmp
|
|
Run Build Command(s):/opt/freeware/bin/gmake cmTC_8a5ca/fast && /opt/freeware/bin/gmake -f CMakeFiles/cmTC_8a5ca.dir/build.make CMakeFiles/cmTC_8a5ca.dir/build
|
gmake[1]: Entering directory '/home/mdborg/build-mariadb-server-10.8/CMakeFiles/CMakeTmp'
|
Building C object CMakeFiles/cmTC_8a5ca.dir/src.c.o
|
/opt/freeware/bin/gcc-10 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -maix64 -pthread -mcmodel=large -pie -fPIC -Dhave_C__Wl___as_needed -Werror -Wall -Wl,--as-needed -o CMakeFiles/cmTC_8a5ca.dir/src.c.o -c /home/mdborg/build-mariadb-server-10.8/CMakeFiles/CMakeTmp/src.c
|
Linking C executable cmTC_8a5ca
|
/opt/freeware/bin/cmake -E cmake_link_script CMakeFiles/cmTC_8a5ca.dir/link.txt --verbose=1
|
/opt/freeware/bin/gcc-10 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -maix64 -pthread -mcmodel=large -pie -fPIC -Dhave_C__Wl___as_needed -Werror -Wall -Wl,--as-needed -Wl,-bnoipath -L/opt/freeware/lib CMakeFiles/cmTC_8a5ca.dir/src.c.o -o cmTC_8a5ca -Wl,-blibpath:/opt/freeware/lib/gcc/powerpc-ibm-aix7.1.0.0/10:/opt/freeware/lib:/usr/lib:/lib -lpthreads -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err
|
ld: 0706-012 The -- flag is not recognized.
|
ld: 0706-012 The -a flag is not recognized.
|
ld: 0706-012 The -- flag is not recognized.
|
ld: 0706-027 The -n flag is ignored.
|
collect2: error: ld returned 255 exit status
|
gmake[1]: *** [CMakeFiles/cmTC_8a5ca.dir/build.make:87: cmTC_8a5ca] Error 1
|
gmake[1]: Leaving directory '/home/mdborg/build-mariadb-server-10.8/CMakeFiles/CMakeTmp'
|
gmake: *** [Makefile:121: cmTC_8a5ca/fast] Error 2
|
|
|
Source file was:
|
int main(void) { return 0; }
|
Performing C++ SOURCE FILE Test have_CXX__Wl___as_needed failed with the following output:
|
Change Dir: /home/mdborg/build-mariadb-server-10.8/CMakeFiles/CMakeTmp
|
|
Run Build Command(s):/opt/freeware/bin/gmake cmTC_64799/fast && /opt/freeware/bin/gmake -f CMakeFiles/cmTC_64799.dir/build.make CMakeFiles/cmTC_64799.dir/build
|
gmake[1]: Entering directory '/home/mdborg/build-mariadb-server-10.8/CMakeFiles/CMakeTmp'
|
Building CXX object CMakeFiles/cmTC_64799.dir/src.cxx.o
|
/opt/freeware/bin/g++-10 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -maix64 -pthread -mcmodel=large -pie -fPIC -Dhave_CXX__Wl___as_needed -Werror -Wall -Wl,--as-needed -o CMakeFiles/cmTC_64799.dir/src.cxx.o -c /home/mdborg/build-mariadb-server-10.8/CMakeFiles/CMakeTmp/src.cxx
|
Linking CXX executable cmTC_64799
|
/opt/freeware/bin/cmake -E cmake_link_script CMakeFiles/cmTC_64799.dir/link.txt --verbose=1
|
/opt/freeware/bin/g++-10 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -maix64 -pthread -mcmodel=large -pie -fPIC -Dhave_CXX__Wl___as_needed -Werror -Wall -Wl,--as-needed -Wl,-bnoipath -L/opt/freeware/lib CMakeFiles/cmTC_64799.dir/src.cxx.o -o cmTC_64799 -Wl,-blibpath:/opt/freeware/lib/gcc/powerpc-ibm-aix7.1.0.0/10:/opt/freeware/lib:/usr/lib:/lib -lpthreads -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err
|
ld: 0706-012 The -- flag is not recognized.
|
ld: 0706-012 The -a flag is not recognized.
|
ld: 0706-012 The -- flag is not recognized.
|
ld: 0706-027 The -n flag is ignored.
|
collect2: error: ld returned 255 exit status
|
gmake[1]: *** [CMakeFiles/cmTC_64799.dir/build.make:87: cmTC_64799] Error 1
|
gmake[1]: Leaving directory '/home/mdborg/build-mariadb-server-10.8/CMakeFiles/CMakeTmp'
|
gmake: *** [Makefile:121: cmTC_64799/fast] Error 2
|
|
|
Source file was:
|
int main(void) { return 0; }
|
|
mdborg@p8-aix1-mariadb:[/home/mdborg/build-mariadb-server-10.8] make VERBOSE=1 auth_gssapi_client
|
|
Linking C shared module auth_gssapi_client
|
cd /home/mdborg/build-mariadb-server-10.8/libmariadb && /opt/freeware/bin/cmake -E cmake_link_script CMakeFiles/auth_gssapi_client.dir/link.txt --verbose=1
|
"/opt/freeware/share/cmake-3.16/Modules/Platform/AIX/ExportImportList" -o CMakeFiles/auth_gssapi_client.dir/objects.exp CMakeFiles/auth_gssapi_client.dir/plugins/auth/auth_gssapi_client.c.o CMakeFiles/auth_gssapi_client.dir/plugins/auth/gssapi_client.c.o CMakeFiles/auth_gssapi_client.dir/plugins/auth/gssapi_errmsg.c.o
|
/opt/freeware/bin/gcc-10 -fPIC -Wl,-bE:CMakeFiles/auth_gssapi_client.dir/objects.exp -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -maix64 -pthread -mcmodel=large -pie -fPIC -Wunused -Wlogical-op -Wno-uninitialized -Wall -Wextra -Wformat-security -Wno-init-self -Wwrite-strings -Wshift-count-overflow -Wdeclaration-after-statement -Wno-undef -Wno-unknown-pragmas -O2 -g -DNDEBUG -fno-omit-frame-pointer -D_FORTIFY_SOURCE=2 -DDBUG_OFF -Wall -Wdeclaration-after-statement -Wenum-compare -Wenum-conversion -Wextra -Wmissing-braces -Wno-format-truncation -Wno-init-self -Wno-nonnull-compare -Wno-unused-parameter -Wvla -Wwrite-strings -DDBUG_OFF -shared -Wl,-bnoipath -o auth_gssapi_client.so CMakeFiles/auth_gssapi_client.dir/plugins/auth/auth_gssapi_client.c.o CMakeFiles/auth_gssapi_client.dir/plugins/auth/gssapi_client.c.o CMakeFiles/auth_gssapi_client.dir/plugins/auth/gssapi_errmsg.c.o -Wl,-blibpath:/opt/freeware/lib/gcc/powerpc-ibm-aix7.1.0.0/10:/opt/freeware/lib:/usr/lib:/lib -lpthreads -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err
|
strip -e -X32_64 auth_gssapi_client.so
|
make[3]: Leaving directory '/home/mdborg/build-mariadb-server-10.8'
|
Built target auth_gssapi_client
|
make[2]: Leaving directory '/home/mdborg/build-mariadb-server-10.8'
|
/opt/freeware/bin/cmake -E cmake_progress_start /home/mdborg/build-mariadb-server-10.8/CMakeFiles 0
|
make[1]: Leaving directory '/home/mdborg/build-mariadb-server-10.8'
|
Great. All good. Thanks georg
For the cmake warning observed (but not discussed) in this (seemingly otherwise unrelated) issue, there is now MDEV-30131
This was fixed in https://github.com/mariadb-corporation/mariadb-connector-c/commit/44383e3df4896f2d04d9141f640934d3e74e04d7
I also had this in the gssapi client plugin on the aix build (workaround)
And this (gcc-10.3.0) was despite the successful cmake configure test:
mdborg@p8-aix1-mariadb:[/home/mdborg/build-mariadb-server-10.8]cmake -Uhave_C__Wl___as_needed -Uhave_CXX__Wl___as_needed .
CMake Warning (dev) at CMakeLists.txt:30 (PROJECT):
Policy CMP0048 is not set: project() command manages VERSION variables.
Run "cmake --help-policy CMP0048" for policy details. Use the cmake_policy
command to set the policy and suppress this warning.
The following variable(s) would be set to empty:
CMAKE_PROJECT_VERSION
CMAKE_PROJECT_VERSION_MAJOR
CMAKE_PROJECT_VERSION_MINOR
CMAKE_PROJECT_VERSION_PATCH
This warning is for project developers. Use -Wno-dev to suppress it.
-- Running cmake version 3.16.0
-- MariaDB 10.8.6
-- Updating submodules
getconf: specified variable is not valid on this system
-- Wsrep-lib version: 1.0.0
== Configuring MariaDB Connector/C
-- Could NOT find ZSTD (missing: ZSTD_LIBRARIES ZSTD_INCLUDE_DIRS)
-- Performing Test have_C__Wl___as_needed
-- Performing Test have_C__Wl___as_needed - Success
-- SYSTEM_LIBS: -lld;m;-lld;m;/usr/lib/libssl.a;/usr/lib/libcrypto.a;/usr/lib/libz.a
-- Mroonga doesn't support on big-endian
-- Performing Test have_CXX__Wl___as_needed
-- Performing Test have_CXX__Wl___as_needed - Failed
-- Could NOT find BZip2 (missing: BZIP2_INCLUDE_DIR)
-- Could NOT find LZO (missing: LZO_LIBRARIES LZO_INCLUDE_DIRS)
-- Configuring done
-- Generating done
-- Build files have been written to: /home/mdborg/build-mariadb-server-10.8
mdborg@p8-aix1-mariadb:[/home/mdborg/build-mariadb-server-10.8]make VERBOSE=1 auth_gssapi_client
/opt/freeware/bin/cmake -S/home/mdborg/mariadb-server-10.8 -B/home/mdborg/build-mariadb-server-10.8 --check-build-system CMakeFiles/Makefile.cmake 0
make -f CMakeFiles/Makefile2 auth_gssapi_client
make[1]: Entering directory '/home/mdborg/build-mariadb-server-10.8'
/opt/freeware/bin/cmake -S/home/mdborg/mariadb-server-10.8 -B/home/mdborg/build-mariadb-server-10.8 --check-build-system CMakeFiles/Makefile.cmake 0
/opt/freeware/bin/cmake -E cmake_progress_start /home/mdborg/build-mariadb-server-10.8/CMakeFiles 1
make -f CMakeFiles/Makefile2 libmariadb/CMakeFiles/auth_gssapi_client.dir/all
make[2]: Entering directory '/home/mdborg/build-mariadb-server-10.8'
make -f libmariadb/CMakeFiles/auth_gssapi_client.dir/build.make libmariadb/CMakeFiles/auth_gssapi_client.dir/depend
make[3]: Entering directory '/home/mdborg/build-mariadb-server-10.8'
cd /home/mdborg/build-mariadb-server-10.8 && /opt/freeware/bin/cmake -E cmake_depends "Unix Makefiles" /home/mdborg/mariadb-server-10.8 /home/mdborg/mariadb-server-10.8/libmariadb /home/mdborg/build-mariadb-server-10.8 /home/mdborg/build-mariadb-server-10.8/libmariadb /home/mdborg/build-mariadb-server-10.8/libmariadb/CMakeFiles/auth_gssapi_client.dir/DependInfo.cmake --color=
Deleting primary custom command output "/home/mdborg/build-mariadb-server-10.8/libmariadb/auth_gssapi_client.so" because another output "/home/mdborg/build-mariadb-server-10.8/libmariadb/auth_gssapi_client" does not exist.
make[3]: Leaving directory '/home/mdborg/build-mariadb-server-10.8'
make -f libmariadb/CMakeFiles/auth_gssapi_client.dir/build.make libmariadb/CMakeFiles/auth_gssapi_client.dir/build
make[3]: Entering directory '/home/mdborg/build-mariadb-server-10.8'
[ 0%] Linking C shared module auth_gssapi_client
cd /home/mdborg/build-mariadb-server-10.8/libmariadb && /opt/freeware/bin/cmake -E cmake_link_script CMakeFiles/auth_gssapi_client.dir/link.txt --verbose=1
"/opt/freeware/share/cmake-3.16/Modules/Platform/AIX/ExportImportList" -o CMakeFiles/auth_gssapi_client.dir/objects.exp CMakeFiles/auth_gssapi_client.dir/plugins/auth/auth_gssapi_client.c.o CMakeFiles/auth_gssapi_client.dir/plugins/auth/gssapi_client.c.o CMakeFiles/auth_gssapi_client.dir/plugins/auth/gssapi_errmsg.c.o
/opt/freeware/bin/gcc-10 -fPIC -Wl,-bE:CMakeFiles/auth_gssapi_client.dir/objects.exp -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -maix64 -pthread -mcmodel=large -pie -fPIC -Wunused -Wlogical-op -Wno-uninitialized -Wall -Wextra -Wformat-security -Wno-init-self -Wwrite-strings -Wshift-count-overflow -Wdeclaration-after-statement -Wno-undef -Wno-unknown-pragmas -O2 -g -DNDEBUG -fno-omit-frame-pointer -D_FORTIFY_SOURCE=2 -DDBUG_OFF -Wall -Wdeclaration-after-statement -Wenum-compare -Wenum-conversion -Wextra -Wmissing-braces -Wno-format-truncation -Wno-init-self -Wno-nonnull-compare -Wno-unused-parameter -Wvla -Wwrite-strings -DDBUG_OFF -Wl,--as-needed -shared -Wl,-bnoipath -o auth_gssapi_client.so CMakeFiles/auth_gssapi_client.dir/plugins/auth/auth_gssapi_client.c.o CMakeFiles/auth_gssapi_client.dir/plugins/auth/gssapi_client.c.o CMakeFiles/auth_gssapi_client.dir/plugins/auth/gssapi_errmsg.c.o -Wl,-blibpath:/opt/freeware/lib/gcc/powerpc-ibm-aix7.1.0.0/10:/opt/freeware/lib:/usr/lib:/lib -lpthreads -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err
ld: 0706-012 The -- flag is not recognized.
ld: 0706-012 The -a flag is not recognized.
ld: 0706-012 The -- flag is not recognized.
ld: 0706-027 The -n flag is ignored.
collect2: error: ld returned 255 exit status
make[3]: *** [libmariadb/CMakeFiles/auth_gssapi_client.dir/build.make:114: libmariadb/auth_gssapi_client.so] Error 1
make[3]: Leaving directory '/home/mdborg/build-mariadb-server-10.8'
make[2]: *** [CMakeFiles/Makefile2:2755: libmariadb/CMakeFiles/auth_gssapi_client.dir/all] Error 2
make[2]: Leaving directory '/home/mdborg/build-mariadb-server-10.8'
make[1]: *** [CMakeFiles/Makefile2:2762: libmariadb/CMakeFiles/auth_gssapi_client.dir/rule] Error 2
make[1]: Leaving directory '/home/mdborg/build-mariadb-server-10.8'
make: *** [Makefile:422: auth_gssapi_client] Error 2
CMakeFiles/CMakeOutput.log
Performing C SOURCE FILE Test have_C__Wl___as_needed succeeded with the following output:
Change Dir: /home/mdborg/build-mariadb-server-10.8/CMakeFiles/CMakeTmp
Run Build Command(s):/opt/freeware/bin/gmake cmTC_40c3a/fast && /opt/freeware/bin/gmake -f CMakeFiles/cmTC_40c3a.dir/build.make CMakeFiles/cmTC_40c3a.dir/build
gmake[1]: Entering directory '/home/mdborg/build-mariadb-server-10.8/CMakeFiles/CMakeTmp'
Building C object CMakeFiles/cmTC_40c3a.dir/src.c.o
/opt/freeware/bin/gcc-10 -I/home/mdborg/build-mariadb-server-10.8/CMakeFiles/CMakeTmp/pthread.h -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -maix64 -pthread -mcmodel=large -pie -fPIC -Wunused -Wlogical-op -Wno-uninitialized -Wall -Wextra -Wformat-security -Wno-init-self -Wwrite-strings -Wshift-count-overflow -Wdeclaration-after-statement -Wno-undef -Wno-unknown-pragmas -Dhave_C__Wl___as_needed -I /opt/freeware/include -Wl,--as-needed -o CMakeFiles/cmTC_40c3a.dir/src.c.o -c /home/mdborg/build-mariadb-server-10.8/CMakeFiles/CMakeTmp/src.c
Linking C executable cmTC_40c3a
/opt/freeware/bin/cmake -E cmake_link_script CMakeFiles/cmTC_40c3a.dir/link.txt --verbose=1
/opt/freeware/bin/gcc-10 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -maix64 -pthread -mcmodel=large -pie -fPIC -Wunused -Wlogical-op -Wno-uninitialized -Wall -Wextra -Wformat-security -Wno-init-self -Wwrite-strings -Wshift-count-overflow -Wdeclaration-after-statement -Wno-undef -Wno-unknown-pragmas -Dhave_C__Wl___as_needed -I /opt/freeware/include -Wl,-bnoipath -L/opt/freeware/lib CMakeFiles/cmTC_40c3a.dir/src.c.o -o cmTC_40c3a -Wl,-blibpath:/opt/freeware/lib/gcc/powerpc-ibm-aix7.1.0.0/10:/opt/freeware/lib:/usr/lib:/lib /usr/lib/libz.a -lld -lm
gmake[1]: Leaving directory '/home/mdborg/build-mariadb-server-10.8/CMakeFiles/CMakeTmp'
Source file was:
int main(void) { return 0; }
Happy to test options.
shulga I can only assume this is the same on MacOS because of assigning to Georg.