Browse Source

add ssp, debug and nothreads support

Waldemar Brodkorb 9 years ago
parent
commit
01ecb8610b
1 changed files with 37 additions and 12 deletions
  1. 37 12
      embedded-test.sh

+ 37 - 12
embedded-test.sh

@@ -81,6 +81,9 @@ Explanation:
 	--clean                      clean OpenADK build directory for single arch
 	--no-clean                   do not clean OpenADK build directory for single arch
 	--static                     use static compilation
+	--ssp                        use smack stashing protection
+	--debug                      make debug build
+	--nothreads                  disable threading support (only for uClibc-ng)
 	--verbose                    enable verbose output from OpenADK
 	--shell                      start a shell instead of test autorun
 	--help                       this help text
@@ -97,6 +100,9 @@ update=0
 verbose=0
 create=0
 static=0
+ssp=0
+debug=0
+nothreads=0
 ntp=""
 libc=""
 test="toolchain"
@@ -109,6 +115,9 @@ while [[ $1 != -- && $1 = -* ]]; do case $1 {
   (--update) update=1; shift ;;
   (--create) create=1; shift ;;
   (--static) static=1; shift ;;
+  (--ssp) ssp=1; shift ;;
+  (--debug) debug=1; shift ;;
+  (--nothreads) nothreads=1; shift ;;
   (--continue) cont=1; shift ;;
   (--shell) shell=1 shift ;;
   (--libc=*) libc=${1#*=}; shift ;;
@@ -144,6 +153,19 @@ if [ -z "$libc" ]; then
   fi
 fi
 
+if [ $static -eq 1 ]; then
+  rsuffix=${rsuffix}.static
+fi
+if [ $ssp -eq 1 ]; then
+  rsuffix=${rsuffix}.ssp
+fi
+if [ $debug -eq 1 ]; then
+  rsuffix=${rsuffix}.debug
+fi
+if [ $nothreads -eq 1 ]; then
+  rsuffix=${rsuffix}.nothreads
+fi
+
 if [ ! -d openadk ]; then
   git clone $giturl
   if [ $? -ne 0 ]; then
@@ -1052,9 +1074,6 @@ runtest() {
     qemu_args="$qemu_args ${qemu_append}"
   fi
 
-  if [ $static -eq 1 ]; then
-    rsuffix=.static
-  fi
   report=REPORT.${arch}.${test}.${libver}${rsuffix}
 
   echo "Now running the test ${test} in ${emulator} for architecture ${arch} and ${lib}"
@@ -1079,9 +1098,8 @@ build() {
   lib=$1
   arch=$2
   test=$3
-  static=$4
-  system=$5
-  rootfs=$6
+  system=$4
+  rootfs=$5
 
   DEFAULT=
   cd openadk
@@ -1166,6 +1184,16 @@ build() {
   if [ $static -eq 1 ]; then
     printf "ADK_TARGET_USE_STATIC_LIBS=y" >> .config
   fi
+  if [ $ssp -eq 1 ]; then
+    printf "ADK_TARGET_USE_SSP=y" >> .config
+  fi
+  if [ $debug -eq 1 ]; then
+    printf "ADK_DEBUG=y" >> .config
+  fi
+  if [ $nothreads -eq 1 ]; then
+    printf "ADK_TARGET_LIB_WITHOUT_THREADS=y" >> .config
+  fi
+
   for pkg in $packages; do
     p=$(echo $pkg|tr '[:lower:]' '[:upper:]');printf "ADK_COMPILE_$p=y\nADK_PACKAGE_$p=y" >> .config
   done
@@ -1291,7 +1319,7 @@ for lib in ${libc}; do
       target_rootfs=$(echo $line|cut -f 6 -d ,)
       target_powerid=$(echo $line|cut -f 7 -d ,)
       echo "Testing target system $target_system ($target_arch) with $target_rootfs on $target_host"
-      build $lib $target_arch $test $static $target_system $target_rootfs
+      build $lib $target_arch $test $target_system $target_rootfs
       kernel=openadk/firmware/${target_system}_${lib}_${target_suffix}/${target_system}-${target_rootfs}-kernel
       tarball=openadk/firmware/${target_system}_${lib}_${target_suffix}/${target_system}-${lib}-${target_rootfs}.tar.xz
       scp $kernel root@${bootserver}:/tftpboot/${target_host}
@@ -1321,15 +1349,12 @@ for lib in ${libc}; do
         echo "Skipping $skiparchs"
         continue
       fi
-      if [ $static -eq 1 ]; then
-        rsuffix=.static
-      fi
-      report=REPORT.${arch}.${test}.${libver}$rsuffix
+      report=REPORT.${arch}.${test}.${libver}${rsuffix}
 
       if [[ "$allowed_tests" = *${test}* ]]; then
         if [[ "$allowed_libc" = *${lib}* ]]; then
           echo "Compiling for $lib and $arch testing $test"
-          build $lib $arch $test $static
+          build $lib $arch $test
           if [ "$test" != "toolchain" ]; then
             if [[ "$runtime_test" = *${lib}* ]]; then
               runtest $lib $arch $test