-
-
Notifications
You must be signed in to change notification settings - Fork 7k
Avoid unnecessary -L for implicit link dirs #16233
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
Thanks @dg0yt, merged! |
|
Ah, late, do you see anything against this shorter version?: --- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -2236,7 +2236,7 @@ if(NOT CURL_DISABLE_INSTALL)
endforeach()
# Avoid getting unnecessary -L options for known system directories.
- set(_sys_libdirs "")
+ set(_sys_libdirs ${CMAKE_C_IMPLICIT_LINK_DIRECTORIES})
foreach(_libdir IN LISTS CMAKE_SYSTEM_PREFIX_PATH)
if(_libdir MATCHES "/$")
string(APPEND _libdir "lib") |
Co-authored-by: Kai Pastor Ref: curl/curl@f72b848 Ref: curl/curl#16233
Co-authored-by: Kai Pastor Ref: curl/curl@f72b848 Ref: curl/curl#16233
CMake shenanigans: Written this way, you get inconsistent behavior depending on That's why I didn't do it that way. On second thought, it is fine with double quotes.
|
Nice, thanks! |
For consistent initialization for `_sys_libdirs` and just for consistent formatting in the other case. Ref: curl/curl#16233 (comment) Follow-up to 3de8731 #1540
Also mind the quotes: curl#16233 (comment) Follow-up to f72b848 curl#16233
Also mind the quotes: #16233 (comment) Follow-up to f72b848 #16233 Closes #16243
The unnecessary `-L` may unexpectedly change the toolchain's chosen search order in implicit link directories. Causing this error noticed by a vcpkg user, and reproduced, in the context of Android NDK r22b, API level 16, static library and CRT linkage: ~~~ configure:23635: checking whether libcurl is usable configure:23669: armv7a-linux-androideabi16-clang -o conftest --sysroot=/home/runner/work/boinc/boinc/3rdParty/android/android-ndk-r22b/toolchains/llvm/prebuilt/linux-x86_64/sysroot -DANDROID -DDECLARE_TIMEZONE -Wall -I/home/runner/work/boinc/boinc/3rdParty/buildCache/android/android-tc/arm/arm-linux-androideabi/include -O3 -fomit-frame-pointer -fPIE -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -D__ANDROID_API__=16 -Wall -I/home/runner/work/boinc/boinc/3rdParty/android/vcpkg/installed/arm-android/include -I/home/runner/work/boinc/boinc/3rdParty/android/vcpkg/installed/arm-android/lib/pkgconfig/../../include -DCURL_STATICLIB -L/home/runner/work/boinc/boinc/3rdParty/android/vcpkg/installed/arm-android/lib -llog -fPIE -pie -latomic -static-libstdc++ -march=armv7-a -Wl,--fix-cortex-a8 -L/home/runner/work/boinc/boinc/3rdParty/android/vcpkg/installed/arm-android/lib conftest.c -L/home/runner/work/boinc/boinc/3rdParty/android/vcpkg/installed/arm-android/lib/pkgconfig/../../lib -lcurl -L/home/runner/work/boinc/boinc/3rdParty/android/android-ndk-r22b/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi -lssl -lcrypto -ldl -pthread -lz >&5 clang: warning: argument unused during compilation: '-static-libstdc++' [-Wunused-command-line-argument] ld: error: undefined symbol: bsd_signal >>> referenced by legacy_signal_inlines.h:116 (/home/runner/work/boinc/boinc/3rdParty/android/android-ndk-r22b/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/android/legacy_signal_inlines.h:116) >>> libcrypto-lib-ui_openssl.o:(read_string_inner) in archive /home/runner/work/boinc/boinc/3rdParty/android/vcpkg/installed/arm-android/lib/libcrypto.a ld: error: undefined symbol: pthread_atfork ~~~ with the unnecessary option ~~~ -L/home/runner/work/boinc/boinc/3rdParty/android/android-ndk-r22b/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi ~~~ Reference: microsoft/vcpkg#43463 (comment) Closes curl#16233
Also mind the quotes: curl#16233 (comment) Follow-up to f72b848 curl#16233 Closes curl#16243
The unnecessary
-Lmay unexpectedly change the toolchain's chosen search order in implicit link directories.Causing this error noticed by a vcpkg user, and reproduced, in the context of Android NDK r22b, API level 16, static library and CRT linkage:
with the unnecessary option
Reference: microsoft/vcpkg#43463 (comment)