diff options
author | Matt Fleming <matt.fleming@linux.intel.com> | 2011-04-26 10:02:13 +0100 |
---|---|---|
committer | Matt Fleming <matt.fleming@linux.intel.com> | 2011-04-26 10:05:38 +0100 |
commit | 10bbdc271f2c8457748d01efb466e881dd1c361e (patch) | |
tree | 843139a5c0c10fb0b42fd4765fa9b31d66281a73 /com32/elflink/ldlinux/Makefile | |
parent | 5af736cf7677485da73bdc7ea4633960c8640cb6 (diff) | |
download | syslinux-10bbdc271f2c8457748d01efb466e881dd1c361e.tar.gz |
elflink: ldlinux should not have any dependencies
ldlinux currently requires the get_key() symbol, which means it has a
dependency on libutil_com.c32. ldlinux.c32 really should be a
standalone module so let's move get_key.c into ldlinux/.
However, moving get_key.c creates a new problem - native linux
applications such as com32/samples/keytest.c require the get_key()
symbol which is currently exported by libutil_lnx.a. To fix this, we
create a new native linux library that exports any required symbols
from ldlinux. With this change we need to update com32/Makefile so
that we build com32/elfink/ldlinux before com32/samples, and seeing as
ldlinux now has no dependencies, we may as well move it to the front
of $SUBDIRS.
Also, update elf_gen_dep.sh to skip ldlinux.c32 and not search for
dependencies for any of its unresolved symbols. This way, if anyone
inadvertently introduces a dependency that cannot be resolved by the
core, ldlinux.c32 will fail to load at runtime (which guarantees that
the newly introduced dependency won't go unnoticed).
Signed-off-by: Matt Fleming <matt.fleming@linux.intel.com>
Diffstat (limited to 'com32/elflink/ldlinux/Makefile')
-rw-r--r-- | com32/elflink/ldlinux/Makefile | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/com32/elflink/ldlinux/Makefile b/com32/elflink/ldlinux/Makefile index 8fe4d71d..318b3ac4 100644 --- a/com32/elflink/ldlinux/Makefile +++ b/com32/elflink/ldlinux/Makefile @@ -16,12 +16,18 @@ include $(MAKEDIR)/elf.mk CFLAGS += -I$(topdir)/core/elflink -I$(topdir)/core/include -all: ldlinux.c32 +all: ldlinux.c32 ldlinux_lnx.a ldlinux.c32 : ldlinux.o cli.o readconfig.o refstr.o colors.o getadv.o \ - adv.o ipappend.o execute.o kernel.o + adv.o ipappend.o execute.o kernel.o get_key.o $(LD) $(LDFLAGS) -o $@ $^ +LNXLIBOBJS = get_key.lo +ldlinux_lnx.a: $(LNXLIBOBJS) + rm -f $@ + $(AR) cq $@ $(LNXLIBOBJS) + $(RANLIB) $@ + tidy dist: rm -f *.o *.lo *.a *.lst .*.d |