lib: don't export all symbols, just everything curl_*

Absent any 'symbol map' or script to limit what gets exported, static
linking of libraries previously resulted in a libcurl with curl's and
those other symbols being (re-)exported.

This did not happen if 'versioned symbols' were enabled (which is not
the default) because then a version script is employed.

This limits exports to everything starting in 'curl_*'., which is
what "libcurl.vers" exports.

This avoids strange side-effects such as with mixing methods
from system libraries and those erroneously offered by libcurl.

Closes #2127
This commit is contained in:
W. Mark Kubacki 2017-11-30 00:43:38 +01:00 коммит произвёл Daniel Stenberg
Родитель 9194a9959b
Коммит 4b41424910
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 5CC908FDB71E12C2
1 изменённых файлов: 2 добавлений и 0 удалений

Просмотреть файл

@ -106,6 +106,8 @@ endif
if CURL_LT_SHLIB_USE_VERSIONED_SYMBOLS if CURL_LT_SHLIB_USE_VERSIONED_SYMBOLS
libcurl_la_LDFLAGS_EXTRA += -Wl,--version-script=libcurl.vers libcurl_la_LDFLAGS_EXTRA += -Wl,--version-script=libcurl.vers
else
libcurl_la_LDFLAGS_EXTRA += -export-symbols-regex '^curl_.*'
endif endif
if USE_CPPFLAG_CURL_STATICLIB if USE_CPPFLAG_CURL_STATICLIB