If i have undestood this problem, Seems related to what  i have trying  to do 
in popt HEAD as clamav does, not the best autofu implementation as it broke 
opensolaris popt HEAD build. My bad. Tomorrow i will try to fix. Regards 
----Messaggio originale----
Da: Jeff Johnson
Inviato:  09/06/2011, 18:46 
A: rpm-devel@rpm5.org
Oggetto: Re: A syntax (?) question



On Jun 9, 2011, at 12:28 PM, Sriram Narayanan wrote:

> Another C n00b question:
> 
> I faced this:
> 
> libtool: link: gcc -shared  -fPIC -DPIC -Wl,-z -Wl,text -Wl,-h
> -Wl,librpmmisc-5.3.so -o .libs/librpmmisc-5.3.so  .libs/librpmmisc.o
> -R/workspace/rpm/rpm_5_3_11/beecrypt/.libs -R/usr/sfw/lib
> -R/workspace/rpm/rpm_5_3_11/neon/src/.libs
> -R/workspace/rpm/rpm_5_3_11/pcre/.libs
> -R/workspace/rpm/rpm_5_3_11/popt/.libs -R/workspace/altopt/lib
> -R/usr/sfw/lib -L/workspace/rpm/rpm_5_3_11/pcre/.libs -L../beecrypt
> -L../neon/src -L../neon -L../pcre -L../popt -L/workspace/altopt/lib
> -L/usr/gnu/lib -L/lib
> /workspace/rpm/rpm_5_3_11/beecrypt/.libs/libbeecrypt.so
> -L/usr/sfw/lib/gcc/i386-pc-solaris2.11/3.4.3/../../.. -L/usr/sfw/lib
> /usr/sfw/lib/libstdc++.so
> /workspace/rpm/rpm_5_3_11/neon/src/.libs/libneon.so
> /workspace/rpm/rpm_5_3_11/pcre/.libs/libpcreposix.so
> /workspace/rpm/rpm_5_3_11/pcre/.libs/libpcre.so
> /workspace/rpm/rpm_5_3_11/popt/.libs/libpopt.so -lpython2.4
> -lpython2.6 -lexpat -lcrypto -lbz2 -lz -lpthread -lsocket -lnsl -lelf
> -lgcrypt -lgpg-error -lc  -O2 -Wl,--version-script=./librpmmisc.vers
> ld: fatal: unrecognized option '--'
> 

Ah this is loader maps in use so that RPM doesn't accidentally
re-export an entire library (like Berkeley DB or BeeCrypt or neon or ...)
that creates some accidental symbol collisions.

Again the easiest "fix" is just to disable loader maps (I'm forced in
"development" to carry "maximum features" to ensure no bit rot ...)

That can be done with a configure option ... lemme find (untested) ...

        $ ./configure --help
        ...
          --enable-build-versionscript
                                  enable/disable use of GNU ld(1) version script
                                  (default is system dependent)

So --disable-build-versionscript SHOULD (again untested by me) the loader
map whose syntax is apparently causing problems with the Solaris linker.


> I then edited misc/Makefile
> replacing -> am__append_1 = -Wl,--version-script=$(srcdir)/librpmmisc.vers
> with -> am__append_1 = -Wl --version-script=$(srcdir)/librpmmisc.vers
> 
> I replaced the comma with a space.
> 

Likely its not just s/,/ /. You would need to look at the ld(1)
man page to find out how to pass a symbol map, and there's likely
going to be other deep dark chocolate issues almost instantly.

RPM won't behave any differently with/without loader maps. The
issue is solely to avoid accidental symbol pollution Just In Case.

The hard implementation is/was using loader maps, other issues such as changing
symbol names if/when there is an issue can be addressed as found.

No issues been reported for years ...

73 de Jeff
______________________________________________________________________
RPM Package Manager                                    http://rpm5.org
Developer Communication List                        rpm-devel@rpm5.org

Reply via email to