Hello. For my purposes of working with Parted Magic, I am backporting
syslinux 3.85 from Debian unstable to Kubuntu Koala. In the process, I
get the error:

nasm -O9999 -f elf -g -F stabs -DDATE_STR="'debian-20100329'" \
                -DHEXDATE="0x4bb0227c" \
                -l ldlinux.lsr -o ldlinux.o ldlinux.asm
ld -m elf_i386 -Wl,-Bsymbolic-functions -T syslinux.ld -M -o ldlinux.elf 
ldlinux.o > ldlinux.map
ld: unrecognized option '-Wl,-Bsymbolic-functions'
ld: use the --help option for usage information
make[3]: *** [ldlinux.elf] Error 1
make[3]: Leaving directory `/home/samjnaa/sr/_backport/syslinux-3.85+dfsg/core'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/home/samjnaa/sr/_backport/syslinux-3.85+dfsg'
make[1]: *** [override_dh_auto_build] Error 2
make[1]: Leaving directory `/home/samjnaa/sr/_backport/syslinux-3.85+dfsg'
make: *** [build] Error 2
dpkg-buildpackage: error: debian/rules build gave error exit status 2
$

I found that the offending line was syslinux-3.85+dfsg/core/Makefile
line 81:

        $(LD) $(LDFLAGS) -T syslinux.ld -M -o $@ $< > $(@:.elf=.map)

where for some reason LDFLAGS holds -Wl,-Bsymbolic-functions. However,
doing rgrep on the build tree for -Wl,-Bsymbolic-functions or even
-Bsymbolic turns out nothing. I even tried resetting the environment
variable LDFLAGS to "" before beginning the build process but no use. So
at what point in the build process does LDFLAGS get set to -Wl
,-Bsymbolic-functions?

Obviously -Wl is only for passing ld arguments *via* gcc and not
directly. Obviously the programmer who wrote the Makefile is expecting
the flag to hold only -Bsymbolic-functions (and apparently this build
works correctly on Debian sid else the package would not have been
successfully uploaded). Anyway, I changed the line to hold the flag
verbally:

        $(LD) -Bsymbolic-functions -T syslinux.ld -M -o $@ $< >
$(@:.elf=.map)

since I did not want to tinker with the environment variable which may
be needed who knows where elsewhere in the build process, and this
worked correctly. Maybe this should be incorporated and the latest
version of syslinux be made available for Ubuntu. The following "patch"
may fix it:

--- core/Makefile    2010-03-29 09:26:31.000000000 +0530
+++ core/Makefile   2010-03-29 09:26:12.000000000 +0530
@@ -80,3 +80,3 @@
 %.elf: %.o syslinux.ld
-       $(LD) $(LDFLAGS) -T syslinux.ld -M -o $@ $< > $(@:.elf=.map)
+       $(LD) -Bsymbolic-functions -T syslinux.ld -M -o $@ $< > $(@:.elf=.map)
        $(OBJDUMP) -h $@ > $(@:.elf=.sec)

Anyway, if there were a way to vote, I would vote for the latest
syslinux from Debian sid to be included in Ubuntu.

** Summary changed:

- please upgrade syslinux from debian to 3.84
+ please upgrade syslinux from 3.63 to latest debian sid version

-- 
please upgrade syslinux from 3.63 to latest debian sid version
https://bugs.launchpad.net/bugs/270822
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to