summaryrefslogtreecommitdiffstats
path: root/EmulatorPkg
diff options
context:
space:
mode:
Diffstat (limited to 'EmulatorPkg')
-rw-r--r--EmulatorPkg/Unix/Host/Host.inf8
-rwxr-xr-xEmulatorPkg/build.sh20
2 files changed, 19 insertions, 9 deletions
diff --git a/EmulatorPkg/Unix/Host/Host.inf b/EmulatorPkg/Unix/Host/Host.inf
index c2d16697c9..018ed8673f 100644
--- a/EmulatorPkg/Unix/Host/Host.inf
+++ b/EmulatorPkg/Unix/Host/Host.inf
@@ -113,19 +113,21 @@
[BuildOptions]
- GCC:*_*_IA32_DLINK_FLAGS == -o $(BIN_DIR)/Host -m elf_i386 -dynamic-linker /lib$(LIB_ARCH_SFX)/ld-linux.so.2 /usr/lib$(LIB_ARCH_SFX)/crt1.o /usr/lib$(LIB_ARCH_SFX)/crti.o -L/usr/X11R6/lib -lXext -lX11 /usr/lib$(LIB_ARCH_SFX)/crtn.o
- GCC:*_*_*_DLINK2_FLAGS == -lpthread -lc
+ GCC:*_*_IA32_DLINK_FLAGS == -o $(BIN_DIR)/Host -m elf_i386 -dynamic-linker $(HOST_DLINK_PATHS) -L/usr/X11R6/lib -lXext -lX11
GCC:*_*_IA32_CC_FLAGS == -m32 -g -fshort-wchar -fno-strict-aliasing -Wall -malign-double -idirafter/usr/include -c -include $(DEST_DIR_DEBUG)/AutoGen.h -DSTRING_ARRAY_NAME=$(BASE_NAME)Strings
GCC:*_*_IA32_PP_FLAGS == -m32 -E -x assembler-with-cpp -include $(DEST_DIR_DEBUG)/AutoGen.h
GCC:*_*_IA32_ASM_FLAGS == -m32 -c -x assembler -imacros $(DEST_DIR_DEBUG)/AutoGen.h
- GCC:*_*_X64_DLINK_FLAGS == -o $(BIN_DIR)/Host -m elf_x86_64 -dynamic-linker /lib$(LIB_ARCH_SFX)/ld-linux-x86-64.so.2 /usr/lib$(LIB_ARCH_SFX)/crt1.o /usr/lib$(LIB_ARCH_SFX)/crti.o -L/usr/X11R6/lib -lXext -lX11 /usr/lib$(LIB_ARCH_SFX)/crtn.o
+ GCC:*_*_X64_DLINK_FLAGS == -o $(BIN_DIR)/Host -m elf_x86_64 -dynamic-linker $(HOST_DLINK_PATHS) -L/usr/X11R6/lib -lXext -lX11
GCC:*_*_X64_CC_FLAGS == -m64 -g -fshort-wchar -fno-strict-aliasing -Wall -malign-double -idirafter/usr/include -c -include $(DEST_DIR_DEBUG)/AutoGen.h -DSTRING_ARRAY_NAME=$(BASE_NAME)Strings
GCC:*_GCC44_X64_CC_FLAGS = "-DEFIAPI=__attribute__((ms_abi))"
GCC:*_GCC45_X64_CC_FLAGS = "-DEFIAPI=__attribute__((ms_abi))"
+ GCC:*_GCC46_X64_CC_FLAGS = "-DEFIAPI=__attribute__((ms_abi))"
GCC:*_*_X64_PP_FLAGS == -m64 -E -x assembler-with-cpp -include $(DEST_DIR_DEBUG)/AutoGen.h
GCC:*_*_X64_ASM_FLAGS == -m64 -c -x assembler -imacros $(DEST_DIR_DEBUG)/AutoGen.h
+ GCC:*_*_*_DLINK2_FLAGS == -lpthread -lc
+
#
# Need to do this link via gcc and not ld as the pathing to libraries changes from OS version to OS version
#
diff --git a/EmulatorPkg/build.sh b/EmulatorPkg/build.sh
index 06ec37a4c1..ecf56e6402 100755
--- a/EmulatorPkg/build.sh
+++ b/EmulatorPkg/build.sh
@@ -159,19 +159,27 @@ case $PROCESSOR in
IA32)
ARCH_SIZE=32
BUILD_OUTPUT_DIR=$WORKSPACE/Build/Emulator32
- if [ -d /lib32 ]; then
- export LIB_ARCH_SFX=32
- fi
+ LIB_NAMES="ld-linux.so.2 crt1.o crti.o crtn.o"
+ LIB_SEARCH_PATHS="/usr/lib/i386-linux-gnu /usr/lib32 /lib32 /usr/lib /lib"
;;
X64)
ARCH_SIZE=64
BUILD_OUTPUT_DIR=$WORKSPACE/Build/Emulator
- if [ -d /lib64 ]; then
- export LIB_ARCH_SFX=64
- fi
+ LIB_NAMES="ld-linux-x86-64.so.2 crt1.o crti.o crtn.o"
+ LIB_SEARCH_PATHS="/usr/lib/x86_64-linux-gnu /usr/lib64 /lib64 /usr/lib /lib"
;;
esac
+for libname in $LIB_NAMES
+do
+ for dirname in $LIB_SEARCH_PATHS
+ do
+ if [ -e $dirname/$libname ]; then
+ export HOST_DLINK_PATHS="$HOST_DLINK_PATHS $dirname/$libname"
+ break
+ fi
+ done
+done
PLATFORMFILE=$WORKSPACE/EmulatorPkg/EmulatorPkg.dsc
BUILD_ROOT_ARCH=$BUILD_OUTPUT_DIR/DEBUG_"$TARGET_TOOLS"/$PROCESSOR