]> git.proxmox.com Git - mirror_edk2.git/blobdiff - EmulatorPkg/build.sh
Fix a bug about the iSCSI DHCP dependency issue.
[mirror_edk2.git] / EmulatorPkg / build.sh
index e031c3ee00813f9a77f4ac8585138ad9b9ea38e7..67648f509a38b601f422531caa9640336085f886 100755 (executable)
@@ -81,6 +81,22 @@ case `uname` in
         HOST_PROCESSOR=X64
         ;;
     esac
+
+    gcc_version=$(gcc -v 2>&1 | tail -1 | awk '{print $3}')
+    case $gcc_version in
+      4.5.*)
+        TARGET_TOOLS=GCC45
+        ;;
+      4.6.*)
+        TARGET_TOOLS=GCC46
+        ;;
+      4.[789].*)
+        TARGET_TOOLS=GCC47
+        ;;
+      *)
+        TARGET_TOOLS=GCC44
+        ;;
+    esac
     ;;
 esac
 
@@ -145,19 +161,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 libdl.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 libdl.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