elf_gen_dep.sh: Prioritise symbols exported by core
authorMatt Fleming <matt.fleming@linux.intel.com>
Fri, 15 Apr 2011 20:35:48 +0000 (21:35 +0100)
committerMatt Fleming <matt.fleming@linux.intel.com>
Tue, 26 Apr 2011 09:06:33 +0000 (10:06 +0100)
It's possible for multiple modules to export the same symbol. We
always favour the symbols exported from core/ because this means that
modules will have less runtime dependencies.

For example, some symbols required by ldlinux.c32 are exported by both
core/ and libmenu.c32. Because we don't want ldlinux.c32 to have any
dependencies, we need to make sure we resolve to the symbol exported
by core/.

Note that now the order in which we extract global symbols from ELF
files in elf_gen_dep.sh is important, because this dictates our order
of preference and hence core/isolinux.elf and core/pxelinux.elf need
to come first.

Signed-off-by: Matt Fleming <matt.fleming@linux.intel.com>
elf_gen_dep.sh

index 2cde308..1badb64 100755 (executable)
@@ -85,7 +85,7 @@ resolve_sym ()
                        fi
                else
                        #echo $symbol
-                       sed -n -e "s/^$symbol <\(.*\)>/\1/p" all.txt >> resolve.tmp
+                       sed -n -e "s/^$symbol <\(.*\)>/\1/p" all.txt | head -n1 >> resolve.tmp
                        #grep $symbol all.txt
                fi
        done