-
-
Notifications
You must be signed in to change notification settings - Fork 6.9k
Description
In Gentoo, the libcurl.pc file generated for pkg-config has the following line:
$ grep Libs.private /usr/lib64/pkgconfig/libcurl.pc
Libs.private: -llber -lldap
so a call to pkgconfig for static linking returns those libraries in that order:
$ pkg-config --static --libs libcurl
-lcurl -llber -lldap -lz -lssl -ldl -lz -lcrypto -ldl -lz
but ldap depends on lber so linking fails:
$ gcc -o test test.c -static pkg-config --libs --static libcurl
[lots of warnings]
result.c:(.text+0xa19): undefined reference to ber_get_int' result.c:(.text+0xa80): undefined reference to ber_scanf'
result.c:(.text+0xa98): undefined reference to ber_peek_tag' result.c:(.text+0xbcd): undefined reference to ber_scanf'
result.c:(.text+0xc58): undefined reference to ber_peek_tag' result.c:(.text+0xd86): undefined reference to ber_peek_tag'
result.c:(.text+0xe09): undefined reference to ber_scanf' result.c:(.text+0xe19): undefined reference to ber_peek_tag'
result.c:(.text+0x10c6): undefined reference to ber_scanf' result.c:(.text+0x1579): undefined reference to ber_scanf'
result.c:(.text+0x15e1): undefined reference to ber_peek_tag' result.c:(.text+0x1625): undefined reference to ber_peek_tag'
result.c:(.text+0x18a4): undefined reference to ber_scanf' result.c:(.text+0x1b13): undefined reference to ber_peek_tag'
result.c:(.text+0x1b94): undefined reference to ber_peek_tag' result.c:(.text+0x1cc5): undefined reference to ber_printf'
result.c:(.text+0x1ce9): undefined reference to ber_skip_tag' result.c:(.text+0x1cff): undefined reference to ber_get_enum'
result.c:(.text+0x1d15): undefined reference to `ber_peek_tag'
Compilation works if I manually swap the positions of lber and ldap in the command line.