Subject: rpath flags vs wrapper scripts
To: None <tech-pkg@NetBSD.org>
From: Dan McMahill <dmcmahill@NetBSD.org>
List: tech-pkg
Date: 10/30/2005 17:19:16
Hi,
I have a problem and am not sure what the best way to fix it is. I'm
working on a couple of new packages for which I am also the author so I
have control over fixing in pkgsrc or the upstream sources depending on
which makes the most sense.
I'll use the real names of the packages even though they have not yet
been comitted to pkgsrc.
cad/libwcalc -- installs a library and some other assorted files
including a wcalc-config script. During the configure stage, libwcalc
tries to determine what rpath flags the compiler may accept using
autoconf and trying to link with things like '-Wl,-rpath -Wl,path' or
'-Rpath' until it finds one that the compiler doesn't complain about.
During the '-Wl,-rpath -Wl,path' test, the wrapper scripts simply eat
this part of the gcc command line so of course no complaint is returned.
The configure script then happily sticks that into the wcalc-config
script.
cad/gtk-wcalc -- builds ok, but when it tries to link it uses
`wcalc-config --libs` as part of its link command line. Now you get
-Wl,-rpath -Wl,/usr/pkg/lib and gcc on solaris pukes with:
ld: fatal: option -dn and -P are incompatible
ld: fatal: Flags processing errors
collect2: ld returned 1 exit status
In fact, a simple thing like:
gcc -o foo foo.c -Wl,-rpath -Wl,path
will cause those same errors.
Looking at the .work.log file shows that -Wl,-rpath -Wl,/usr/pkg/lib was
simply passed on to the compiler command line.
So, whats the best way to fix this?
1) maybe wcalc-config should't try to include any rpath flags and leave
it up to the programs which link to it. Of course since the wrapper
scripts seem to get tripped up sometimes during my rpath tests, I'm not
sure this will work right.
2) some magic variable in cad/libwcalc/Makefile or
cad/gtk-wcalc/Makefile that causes either the first autoconf test to
give more accurate results or to fix up the command on the second?
Any suggestions?
Thanks
-Dan