Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 254842 - remove append-ldflags -lXXX from ebuilds
Summary: remove append-ldflags -lXXX from ebuilds
Status: RESOLVED FIXED
Alias: None
Product: Gentoo/Alt
Classification: Unclassified
Component: Prefix Support (show other bugs)
Hardware: All IRIX
: High normal (vote)
Assignee: Gentoo Prefix
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-01-13 14:45 UTC by Stuart Shelton
Modified: 2009-03-02 20:18 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Stuart Shelton 2009-01-13 14:45:50 UTC
A patch such as the following against app-arch/cabextract-1.2.ebuild is need to allow the package to build on IRIX:

--- app-arch/cabextract/cabextract-1.2.ebuild.dist
+++ app-arch/cabextract/cabextract-1.2.ebuild
@@ -22,7 +22,7 @@ src_compile() {
        # cabextract doesn't think about linking libintl at all.
        # on interix[35] this means linking fails, since there is no
        # getopt(), and only the included getopt needs gettext.
-       [[ ${CHOST} == *-interix[35]* ]] && append-ldflags -lintl
+       [[ ${CHOST} == *-interix[35]* || ${CHOST} == *-irix* ]] && append-ldflags -lintl
 
        econf || die "econf failed"
        emake || die "emake failed"

(This also requires a fixed flag-o-matic.eclass for append-ldflags, as per Bug 254120)

... however, even with the the compiler produces the error:

cc  -c99 -O2 -n32 -mips4 -r14000 -float_const -use_readonly_const -TARG:isa=mips4:platform=ip35:processor=r14000 -TENV:zeroinit_in_bss=ON -OPT:fast_io=ON:Olimit=8192:reorg_common=ON:swp=ON -LNO:auto_dist=ON:fusion_peeling_limit=8:gather_scatter=2 -diag_error 1035 -woff 1174,1183,1185,1552,3968,3970  -Wl,-s,-x,-n32,-mips4,-rdata_shared,-allow_jump_at_eop,-rpath,/opt/portage/usr/lib:/opt/portage/lib -L/opt/portage/usr/lib -L/opt/portage/lib -lintl -o cabextract  cabextract.o md5.o libmspack.a  mktime.o getopt.o getopt1.o
ld32: WARNING 84 : /opt/portage/usr/lib/libintl.so is not used for resolving any symbol.
ld32: ERROR   33 : Unresolved text symbol "libintl_gettext" -- 1st referenced by getopt.o.
        Use linker option -v to see when and which objects, archives and dsos are loaded.  
ld32: INFO    152: Output file removed because of error.

... because the IRIX compilers link objects strictly in the order declared - '-lintl' must be the last argument passed to the compiler.

If the following command is executed:

cc  -c99 -O2 -n32 -mips4 -r14000 -float_const -use_readonly_const -TARG:isa=mips4:platform=ip35:processor=r14000 -TENV:zeroinit_in_bss=ON -OPT:fast_io=ON:Olimit=8192:reorg_common=ON:swp=ON -LNO:auto_dist=ON:fusion_peeling_limit=8:gather_scatter=2 -diag_error 1035 -woff 1174,1183,1185,1552,3968,3970  -Wl,-s,-x,-n32,-mips4,-rdata_shared,-allow_jump_at_eop,-rpath,/opt/portage/usr/lib:/opt/portage/lib -L/opt/portage/usr/lib -L/opt/portage/lib -o cabextract  cabextract.o md5.o libmspack.a  mktime.o getopt.o getopt1.o -lintl

... then the build succeeds.

It is possibly related that flag-o-matic outputs a warning that libraries to link against shouldn't be passed via LDFLAGS... how should this be done correctly?
Comment 1 Fabian Groffen gentoo-dev 2009-01-13 14:52:20 UTC
Maybe we should consider hacking up an append-libs function.  I hope if -lintl ends up in LIBS that linking goes well on IRIX.
append-ldflags for -l stuff is a crude hack anyway, append-libs would be just slightly less dirty.
Comment 2 Fabian Groffen gentoo-dev 2009-01-18 12:23:43 UTC
I implemented append-libs, which appears to work at least for the package I tested on Solaris, and switched to using it for IRIX also.  Can you test if that helps?
Comment 3 Stuart Shelton 2009-01-22 13:10:08 UTC
Yep, perfect - it now merges without any issues without any modifications.

The following ebuilds use "append-ldflags ... -l..." and so may likewise need updating to append-libs:

app-arch/pdv-1.5.1-r2
app-editors/vile-9.6
app-misc/gcal-3.01-r2
app-misc/screen-4.0.3
app-misc/screen-4.0.3_p20070403
app-portage/portage-utils-0.1.29-r00.1
app-text/aspell-0.60.5
app-text/aspell-0.60.6
app-text/poppler-0.10.3
app-text/poppler-0.8.7
app-text/recode-3.6_p15
app-text/vilistextum-2.6.7
app-text/vilistextum-2.6.9
dev-db/libpq-8.2.6
dev-db/libpq-8.2.7
dev-db/libpq-8.3.1
dev-db/postgresql-8.2.6
dev-db/postgresql-8.2.7
dev-db/postgresql-8.3.1
dev-libs/boost-1.34.1-r2
dev-python/numpy-1.0.4-r2
dev-python/numpy-1.1.1
dev-python/numpy-1.2.1
dev-util/cvsps-2.1
dev-util/subversion-1.4.6-r2
dev-util/subversion-1.5.4
dev-util/subversion-1.5.5
mail-mta/ssmtp-2.61-r2
media-gfx/icoutils-0.26.0
net-analyzer/nessus-core-2.3.1
net-irc/ircii-20060725
sci-misc/tinysvm-0.09-r1
sys-apps/attr-2.4.41
sys-apps/attr-2.4.43
x11-libs/libXpm-3.5.7
x11-libs/openmotif-2.3.1-r1
x11-libs/openmotif-2.3.1.1
Comment 4 Fabian Groffen gentoo-dev 2009-01-22 13:13:25 UTC
ok, cool, we'll have to go through your list.
Comment 5 Fabian Groffen gentoo-dev 2009-03-02 20:18:45 UTC
(In reply to comment #3)
> app-text/aspell-0.60.5
> app-text/aspell-0.60.6

seems a gentoo-x86 issue

> dev-libs/boost-1.34.1-r2

can't convert, buildsystem isn't sane

> dev-python/numpy-1.0.4-r2
> dev-python/numpy-1.1.1
> dev-python/numpy-1.2.1

gentoo-x86 issue

> sci-misc/tinysvm-0.09-r1

appears to be gentoo-x86

Rest all converted, thanks!