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