curl / curl

A command line tool and library for transferring data with URL syntax, supporting DICT, FILE, FTP, FTPS, GOPHER, GOPHERS, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, MQTT, POP3, POP3S, RTMP, RTMPS, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, TELNET, TFTP, WS and WSS. libcurl offers a myriad of powerful features
https://curl.se/
Other
35.44k stars 6.37k forks source link

can fix no version information available when build libcurl use cmake??? #14349

Closed xiedeacc closed 1 month ago

xiedeacc commented 1 month ago

I did this

I know we can use ./configure --enable-versioned-symbols l, but how to enable versioned symbols use cmake? can guys fix this?

I expected the following

No response

curl/libcurl version

curl 8.10.0-DEV (x86_64-pc-linux-gnu) libcurl/8.10.0-DEV OpenSSL/3.3.1 zlib/1.3.1.1-motley brotli/1.1.0 zstd/1.5.6 Release-Date: [unreleased] Protocols: dict file ftp ftps gopher gophers http https imap imaps ipfs ipns mqtt pop3 pop3s rtsp smb smbs smtp smtps telnet tftp Features: alt-svc AsynchDNS brotli HSTS HTTPS-proxy IPv6 Largefile libz NTLM SSL threadsafe TLS-SRP UnixSockets zstd

operating system

ubuntu22.04

vszakats commented 1 month ago

That's the commit implementing this feature for autotools, in case anyone is wondering what's it about: 7cc2e8b349df28d55d5f40bfae323485df9f0cf2

It's ld/lld-specific and on a quick glance can be enabled with CMake by passing a custom linker option (via -DCMAKE_SHARED_LINKER_FLAGS=) with a custom control file.

The "version symbol flavour" value auto-generated by autotools looks somewhat accidental: no MultiSSL support, nor considering any other option besides TLS backend.

https://www.gnu.org/software/gnulib/manual/html_node/LD-Version-Scripts.html https://www.akkadia.org/drepper/dsohowto.pdf

xiedeacc commented 1 month ago

That's the commit implementing this feature for autotools, in case anyone is wondering what's it about: 7cc2e8b

It's ld/ldd-specific and on a quick glance can be enabled with CMake by passing a custom linker option (via -DCMAKE_SHARED_LINKER_FLAGS=) with a custom control file.

The "version symbol flavour" value auto-generated by autotools looks somewhat accidental: no MultiSSL support, nor considering any other option besides TLS backend.

👍

bagder commented 1 month ago

The "version symbol flavour" value auto-generated by autotools looks somewhat accidental: no MultiSSL support, nor considering any other option besides TLS backend.

It was added years before MultiSSL was and I assume not a lot of people have bothered, understood nor given this much attention.

vszakats commented 1 month ago

Couple of observations / questions: