bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: control of symbols exported by shared libraries


From: Simon Josefsson
Subject: Re: control of symbols exported by shared libraries
Date: Mon, 25 Jul 2005 21:01:14 +0200
User-agent: Gnus/5.110004 (No Gnus v0.4) Emacs/22.0.50 (gnu/linux)

Bruno Haible <address@hidden> writes:

> Simon Josefsson wrote:
>> > gcc-4.0 now provides support for controlling the set of symbols exported
>> > from a shared library in a reasonable, maintainable way. I have added a
>> > gnulib module to this effect. With documentation, this time :-)
>>
>> How does this relate to something like Libtool's -export-symbols-regex
>> '^(idn|pr29_|punycode_|stringprep|tld_).*'?  That is what I have been
>> using to control which symbols are exported or not.
>
> According to Ulrich Drepper's paper, 
> http://people.redhat.com/drepper/dsohowto.pdf,
> section 2.2.6, this libtool option is just a placebo - if libtool hasn't 
> changed
> since Ulrich looked at it. Can you let us know, by showing the output of
> "nm --dynamic libidn.so"?

Yes, I recall that section, although it appeared to me that a
preferable approach would be to fix libtool, and I thought that had
been done.  Joe Orton of RedHat even asked me to use Libtool's
--export-symbols-regex in GnuTLS, for instance.  I have been using it
all of my libraries for a long time.  No non-external symbols are
exported, from what I can tell.  Output below.

>> Your module look somewhat gcc-specific, whereas, in theory, libtool
>> might work with other compilers too.
>
> Do you know of other compilers than GCC 4 and MSVC that support the equivalent
> of "-fvisibility=hidden"?

No.

Thanks.

         U calloc
         U __ctype_b_loc
         w __cxa_finalize
         U __errno_location
         U free
         U getenv
         w __gmon_start__
         U iconv
         U iconv_close
         U iconv_open
00005390 T idna_strerror
00004320 T idna_to_ascii_4i
000049c0 T idna_to_ascii_4z
00004ca0 T idna_to_ascii_8z
00004d10 T idna_to_ascii_lz
00004900 T idna_to_unicode_44i
00004d70 T idna_to_unicode_4z4z
00004f50 T idna_to_unicode_8z4z
00004fc0 T idna_to_unicode_8z8z
00005040 T idna_to_unicode_8zlz
000050b0 T idna_to_unicode_lzlz
00005360 T idn_free
         w _Jv_RegisterClasses
         U malloc
         U memmove
         U nl_langinfo
00005210 T pr29_4
000052d0 T pr29_4z
00005310 T pr29_8z
00005450 T pr29_strerror
00004090 T punycode_decode
00003e10 T punycode_encode
00005490 T punycode_strerror
         U realloc
         U strcasecmp
         U strcat
         U strcmp
         U strcpy
         U __strdup
00003ab0 T stringprep
00003570 T stringprep_4i
00003a50 T stringprep_4zi
00003290 T stringprep_check_version
000030e0 T stringprep_convert
0002f560 D stringprep_iscsi
0002cf80 R stringprep_iscsi_prohibit
0002f160 D stringprep_kerberos5
00003080 T stringprep_locale_charset
00003120 T stringprep_locale_to_utf8
0002f080 D stringprep_nameprep
0002f420 D stringprep_plain
00003bf0 T stringprep_profile
0002f020 D stringprep_profiles
0001a880 R stringprep_rfc3454_A_1
0001cdc0 R stringprep_rfc3454_B_1
0001d060 R stringprep_rfc3454_B_2
00025100 R stringprep_rfc3454_B_3
00029fc0 R stringprep_rfc3454_C_1_1
0002a000 R stringprep_rfc3454_C_1_2
0002a1c0 R stringprep_rfc3454_C_2_1
0002a220 R stringprep_rfc3454_C_2_2
0002a3c0 R stringprep_rfc3454_C_3
0002a420 R stringprep_rfc3454_C_4
0002a600 R stringprep_rfc3454_C_5
0002a640 R stringprep_rfc3454_C_6
0002a6e0 R stringprep_rfc3454_C_7
0002a720 R stringprep_rfc3454_C_8
0002a8a0 R stringprep_rfc3454_C_9
0002a900 R stringprep_rfc3454_D_1
0002ac60 R stringprep_rfc3454_D_2
0002f660 D stringprep_saslprep
0002d5a0 R stringprep_saslprep_space_map
000054e0 T stringprep_strerror
0002f4c0 D stringprep_trace
00003010 T stringprep_ucs4_nfkc_normalize
00002fb0 T stringprep_ucs4_to_utf8
00002f90 T stringprep_unichar_to_utf8
00002fe0 T stringprep_utf8_nfkc_normalize
00003160 T stringprep_utf8_to_locale
00002fa0 T stringprep_utf8_to_ucs4
00002f80 T stringprep_utf8_to_unichar
0002f240 D stringprep_xmpp_nodeprep
0002cea0 R stringprep_xmpp_nodeprep_prohibit
0002f340 D stringprep_xmpp_resourceprep
         U strlen
00005bf0 T tld_check_4
00005b30 T tld_check_4t
00005b90 T tld_check_4tz
00005c90 T tld_check_4z
00005cf0 T tld_check_8z
00005d70 T tld_check_lz
00005840 T tld_default_table
000058a0 T tld_get_4
000059b0 T tld_get_4z
000057e0 T tld_get_table
00005a10 T tld_get_z
000055a0 T tld_strerror




reply via email to

[Prev in Thread] Current Thread [Next in Thread]