mirror of
https://git.yoctoproject.org/poky
synced 2026-02-09 18:23:02 +01:00
base ld is used during link phase and since its x86 so it works mostly, however it can cause problems depending upon build host. During cross build we should use cross linker Fixes errors e.g. ld -shared -m elf_i386 --hash-style=gnu -T /home/ubuntu/work/oe/openembedded-core/build/tmp-glibc/work/i586-oe-linux/syslinux/6.03-r0/syslinux-6.03/com32/lib/i386/elf.ld -soname libcom32.c32 -o libcom32.elf zlib/adler32.o zlib/compress. o zlib/crc32.o zlib/uncompr.o zlib/deflate.o zlib/trees.o zlib/zutil.o zlib/inflate.o zlib/infback.o zlib/inftrees.o zlib/inffast.o sys/zfile.o sys/zfopen.o libpng/png.o libpng/pngset.o libpng/pngget.o libpng/pngrutil.o libpng/pngtrans.o libpng/pngwutil.o libpng/pngread.o libpng/pngrio.o libpng/pngwio.o libpng/pngwrite.o libpng/pngrtran.o libpng/pngwtran.o libpng/pngmem.o libpng/pngerror.o libpng/pngpread.o jpeg/tinyjpeg.o jpeg/jidctflt.o jpeg/decode1.o jpeg/decode3.o jpe g/rgb24.o jpeg/bgr24.o jpeg/yuv420p.o jpeg/grey.o jpeg/rgba32.o jpeg/bgra32.o pci/cfgtype.o pci/scan.o pci/bios.o pci/readb.o pci/readw.o pci/readl.o pci/writeb.o pci/writew.o pci/writel.o sys/vesacon_write.o sys/vesaserial_write.o sys/ve sa/initvesa.o sys/vesa/drawtxt.o sys/vesa/background.o sys/vesa/alphatbl.o sys/vesa/screencpy.o sys/vesa/fmtpixel.o sys/vesa/i915resolution.o syslinux/reboot.o syslinux/keyboard.o syslinux/version.o syslinux/pxe_get_cached.o syslinux/pxe_get_nic.o syslinux/pxe_dns.o syslinux/video/fontquery.o syslinux/video/reportmode.o syslinux/addlist.o syslinux/freelist.o syslinux/memmap.o syslinux/movebits.o syslinux/shuffle.o syslinux/shuffle_pm.o syslinux/shuffle_rm.o syslinux/bios$oot.o syslinux/zonelist.o syslinux/dump_mmap.o syslinux/dump_movelist.o syslinux/run_default.o syslinux/run_command.o syslinux/cleanup.o syslinux/localboot.o syslinux/runimage.o syslinux/loadfile.o syslinux/floadfile.o syslinux/zloadfile$o syslinux/load_linux.o syslinux/initramfs.o syslinux/initramfs_file.o syslinux/initramfs_loadfile.o syslinux/initramfs_archive.o sys/libansi.o sys/gpxe.o atexit.o onexit.o abort.o | ld: zlib/deflate.o: unrecognized relocation (0x2b) in section `.text' | ld: final link failed: Bad value | make[4]: *** [libcom32.elf] Error 1 (From OE-Core rev: c4897af85eace49e3c27aebc1448227105286e30) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
92 lines
4.0 KiB
BlitzBasic
92 lines
4.0 KiB
BlitzBasic
SUMMARY = "Multi-purpose linux bootloader"
|
|
HOMEPAGE = "http://syslinux.zytor.com/"
|
|
LICENSE = "GPLv2+"
|
|
LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3 \
|
|
file://README;beginline=35;endline=41;md5=558f2c71cb1fb9ba511ccd4858e48e8a"
|
|
|
|
# If you really want to run syslinux, you need mtools. We just want the
|
|
# ldlinux.* stuff for now, so skip mtools-native
|
|
DEPENDS = "nasm-native util-linux e2fsprogs"
|
|
|
|
SRC_URI = "${KERNELORG_MIRROR}/linux/utils/boot/syslinux/syslinux-${PV}.tar.xz \
|
|
file://syslinux-fix-parallel-building-issue.patch \
|
|
file://syslinux-libupload-depend-lib.patch \
|
|
file://syslinux-remove-clean-script.patch \
|
|
file://0001-linux-syslinux-support-ext2-3-4-device.patch \
|
|
file://0002-linux-syslinux-implement-open_ext2_fs.patch \
|
|
file://0003-linux-syslinux-implement-install_to_ext2.patch \
|
|
file://0004-linux-syslinux-add-ext_file_read-and-ext_file_write.patch \
|
|
file://0005-linux-syslinux-implement-handle_adv_on_ext.patch \
|
|
file://0006-linux-syslinux-implement-write_to_ext-and-add-syslin.patch \
|
|
file://0007-linux-syslinux-implement-ext_construct_sectmap_fs.patch \
|
|
file://0008-libinstaller-syslinuxext-implement-syslinux_patch_bo.patch \
|
|
file://0009-linux-syslinux-implement-install_bootblock.patch \
|
|
file://0010-gcc46-compatibility.patch \
|
|
file://0011-mk-MMD-does-not-take-any-arguments.patch \
|
|
"
|
|
|
|
SRC_URI[md5sum] = "92a253df9211e9c20172796ecf388f13"
|
|
SRC_URI[sha256sum] = "26d3986d2bea109d5dc0e4f8c4822a459276cf021125e8c9f23c3cca5d8c850e"
|
|
|
|
COMPATIBLE_HOST = '(x86_64|i.86).*-(linux|freebsd.*)'
|
|
# Don't let the sanity checker trip on the 32 bit real mode BIOS binaries
|
|
INSANE_SKIP_${PN}-misc = "arch"
|
|
INSANE_SKIP_${PN}-chain = "arch"
|
|
|
|
EXTRA_OEMAKE = " \
|
|
BINDIR=${bindir} SBINDIR=${sbindir} LIBDIR=${libdir} \
|
|
DATADIR=${datadir} MANDIR=${mandir} INCDIR=${includedir} \
|
|
"
|
|
# syslinux uses $LD for linking, strip `-Wl,' so it can work
|
|
export LDFLAGS = "`echo $LDFLAGS | sed 's/-Wl,//g'`"
|
|
|
|
do_configure() {
|
|
# drop win32 targets or build fails
|
|
sed -e 's,win32/\S*,,g' -i Makefile
|
|
|
|
# clean installer executables included in source tarball
|
|
oe_runmake clean firmware="efi32" EFIINC="${includedir}"
|
|
# NOTE: There is a temporary work around above to specify
|
|
# the efi32 as the firmware else the pre-built bios
|
|
# files get erased contrary to the doc/distib.txt
|
|
# In the future this should be "bios" and not "efi32".
|
|
}
|
|
|
|
do_compile() {
|
|
# Make sure the recompile is OK.
|
|
# Though the ${B} should always exist, still check it before find and rm.
|
|
[ -d "${B}" ] && find ${B} -name '.*.d' -type f -exec rm -f {} \;
|
|
|
|
# Rebuild only the installer; keep precompiled bootloaders
|
|
# as per author's request (doc/distrib.txt)
|
|
oe_runmake CC="${CC} ${CFLAGS}" LD="${LD}" LDFLAGS="${LDFLAGS}" firmware="bios" installer
|
|
}
|
|
|
|
do_install() {
|
|
oe_runmake CC="${CC} ${CFLAGS}" LD="${LD}" install INSTALLROOT="${D}" firmware="bios"
|
|
|
|
install -d ${D}${datadir}/syslinux/
|
|
install -m 644 ${S}/bios/core/ldlinux.sys ${D}${datadir}/syslinux/
|
|
install -m 644 ${S}/bios/core/ldlinux.bss ${D}${datadir}/syslinux/
|
|
install -m 755 ${S}/bios/linux/syslinux-nomtools ${D}${bindir}/
|
|
}
|
|
|
|
PACKAGES += "${PN}-nomtools ${PN}-extlinux ${PN}-mbr ${PN}-chain ${PN}-pxelinux ${PN}-isolinux ${PN}-misc"
|
|
|
|
RDEPENDS_${PN} += "mtools"
|
|
RDEPENDS_${PN}-nomtools += "libext2fs"
|
|
RDEPENDS_${PN}-misc += "perl"
|
|
|
|
FILES_${PN} = "${bindir}/syslinux"
|
|
FILES_${PN}-nomtools = "${bindir}/syslinux-nomtools"
|
|
FILES_${PN}-extlinux = "${sbindir}/extlinux"
|
|
FILES_${PN}-mbr = "${datadir}/${BPN}/mbr.bin"
|
|
FILES_${PN}-chain = "${datadir}/${BPN}/chain.c32"
|
|
FILES_${PN}-isolinux = "${datadir}/${BPN}/isolinux.bin"
|
|
FILES_${PN}-pxelinux = "${datadir}/${BPN}/pxelinux.0"
|
|
FILES_${PN}-dev += "${datadir}/${BPN}/com32/lib*${SOLIBS} ${datadir}/${BPN}/com32/include ${datadir}/${BPN}/com32/com32.ld"
|
|
FILES_${PN}-staticdev += "${datadir}/${BPN}/com32/lib*.a ${libdir}/${BPN}/com32/lib*.a"
|
|
FILES_${PN}-misc = "${datadir}/${BPN}/* ${libdir}/${BPN}/* ${bindir}/*"
|
|
|
|
BBCLASSEXTEND = "native nativesdk"
|