Subject: pkg/36208: pkgsrc 2007Q1 devel/SDL does not build if an old devel/yasm installed
To: None <pkg-manager@netbsd.org, gnats-admin@netbsd.org,>
From: None <hbent@cs.oberlin.edu>
List: pkgsrc-bugs
Date: 04/24/2007 22:45:00
>Number:         36208
>Category:       pkg
>Synopsis:       pkgsrc 2007Q1 devel/SDL does not build if an old devel/yasm installed
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    pkg-manager
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Tue Apr 24 22:45:00 +0000 2007
>Originator:     Henry Bent
>Release:        4.99.17
>Organization:
Oberlin College CIT
>Environment:
NetBSD aelfric 4.99.17 NetBSD 4.99.17 (AELFRIC) #1: Tue Apr 10 17:23:39 EDT 2007  root@aelfric:/usr/obj/src-current/sys/arch/i386/compile/AELFRIC i386
>Description:
If devel/yasm older than 0.6 is installed, devel/SDL from pkgsrc 2007Q1 fails on the MMX assembly:

/bin/sh ./libtool --tag=CC --mode=compile ./build-scripts/strip_fPIC.sh /usr/pkg/bin/yasm -f elf -i ./src/hermes/ -DHIDDEN_VISIBILITY ./src/hermes/mmx_main.asm -o build/mmx_main.lo
/bin/sh ./libtool --tag=CC --mode=compile ./build-scripts/strip_fPIC.sh /usr/pkg/bin/yasm -f elf -i ./src/hermes/ -DHIDDEN_VISIBILITY ./src/hermes/mmxp2_32.asm -o build/mmxp2_32.lo
 ./build-scripts/strip_fPIC.sh /usr/pkg/bin/yasm -f elf -i ./src/hermes/ -DHIDDEN_VISIBILITY ./src/hermes/mmx_main.asm  -fPIC -DPIC -o build/.libs/mmx_main.o
/usr/pkg/bin/yasm -f elf -i ./src/hermes/ -DHIDDEN_VISIBILITY ./src/hermes/mmx_main.asm -o build/.libs/mmx_main.o
 ./build-scripts/strip_fPIC.sh /usr/pkg/bin/yasm -f elf -i ./src/hermes/ -DHIDDEN_VISIBILITY ./src/hermes/mmxp2_32.asm  -fPIC -DPIC -o build/.libs/mmxp2_32.o
./src/hermes/mmx_main.asm:75: invalid argument to [SECTION]
./src/hermes/mmx_main.asm:75: undefined symbol `.note.GNU' (first use)
./src/hermes/mmx_main.asm:75: undefined symbol `stack' (first use)
./src/hermes/mmx_main.asm:75:  (Each undefined symbol is reported only once.)

[wrapper.sh] note: The real command line, after the pkgsrc wrapper, was:
/usr/pkg/bin/libtool --tag=CC --mode=compile ./build-scripts/strip_fPIC.sh /usr/pkg/bin/yasm -f elf -i ./src/hermes/ -DHIDDEN_VISIBILITY ./src/hermes/mmx_main.asm -o build/mmx_main.lo 
gmake: *** [build/mmx_main.lo] Error 1
gmake: *** Waiting for unfinished jobs....
/usr/pkg/bin/yasm -f elf -i ./src/hermes/ -DHIDDEN_VISIBILITY ./src/hermes/mmxp2_32.asm -o build/.libs/mmxp2_32.o
./src/hermes/mmxp2_32.asm:406: invalid argument to [SECTION]
./src/hermes/mmxp2_32.asm:406: undefined symbol `.note.GNU' (first use)
./src/hermes/mmxp2_32.asm:406: undefined symbol `stack' (first use)
./src/hermes/mmxp2_32.asm:406:  (Each undefined symbol is reported only once.)

[wrapper.sh] note: The real command line, after the pkgsrc wrapper, was:
/usr/pkg/bin/libtool --tag=CC --mode=compile ./build-scripts/strip_fPIC.sh /usr/pkg/bin/yasm -f elf -i ./src/hermes/ -DHIDDEN_VISIBILITY ./src/hermes/mmxp2_32.asm -o build/mmxp2_32.lo 
gmake: *** [build/mmxp2_32.lo] Error 1
*** Error code 2

Stop.
make: stopped in /usr/pkgsrc/devel/SDL
*** Error code 1

Stop.
make: stopped in /usr/pkgsrc/devel/SDL

>How-To-Repeat:
As stated above, build devel/SDL with a version of devel/yasm before 0.6.
>Fix:
I think you just have to inhibit detection of yasm if it's an old version, but I'm not sure how to do that.  I worked around the problem by uninstalling yasm entirely and letting SDL build with nasm.