[patch] hide libsmbclient's private symbols
James Peach
jpeach at samba.org
Mon Jul 2 21:49:10 GMT 2007
On Jul 2, 2007, at 2:01 PM, Gerald (Jerry) Carter wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> James,
>
>>> The rules might look like this for a gcc-based toolchain. The only
>>> problem remaining is how to express the DSO version number in a
>>> generic
>>> way.
>>
>>> DSO_EXPORTS = -Wl,--version-script,exports/`basename $@ |\
>>> sed -e/@SHLIBEXT@/syms/`
>>> SHLD_DSO = $(SHLD) $(LDSHFLAGS) $(DSO_EXPORTS) \
>>> @SONAMEFLAG@`basename $@`.$(XXXXXX_MAJOR)
>>
>>> bin/libsmbclient. at SHLIBEXT@: $(BINARY_PREREQS) $(LIBSMBCLIENT_OBJ)
>>> @echo Linking libsmbclient shared library $@
>>> @$(SHLD_DSO) $(LIBSMBCLIENT_OBJ) $(LIBS) $(KRB5LIBS) \
>>> $(LDAP_LIBS) $(NSCD_LIBS)
>>
>> I poked around and the only thing I could think of was
>> was to store the library versions outside of the Makefile
>> and read them from the file. For example,
>>
>> DSO_EXPORTS = -Wl,--version-script,exports/`basename $@ |\
>> sed -e/@SHLIBEXT@/syms/`
>> SONAME_VER = `grep $@ $(srcdir)/library-versions | cut -d: -t2`
>> SHLD_DSO = $(SHLD) $(LDSHFLAGS) $(DSO_EXPORTS) \
>> @SONAMEFLAG@`basename $@`.$(SONAME_VER)
>
> I just realized why this won't work. On some platforms
> the @SONAMEFLAG@ just becomes '#' and comments out the remainder
> of the line.
What platforms does this happen on? SHLD_MODULE uses exactly the same
trick and appears to work OK in the build farm.
>
>
> SO this is good:
>
> SHLD_DSO = $(SHLD) $(LDSHFLAGS) $(DSO_EXPORTS)
>
> but you have to add the @SONAMEFLAG@ last in the list
> I still like moving the major and minor numbers of the
> Makefile thought. What do you think?
>
>
>
> cheers, jerry
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.6 (GNU/Linux)
> Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
>
> iD8DBQFGiWfCIR7qMdg1EfYRAv/0AKCMajZ8dRwrjcK94PMiUQfrdk3eagCeNr6R
> n1zg65KSc9Fa5mXEyf1AyKQ=
> =ucqG
> -----END PGP SIGNATURE-----
--
James Peach | jpeach at samba.org
More information about the samba-technical
mailing list