Ticket #10246: 0001-Fix-for-whitespace-in-paths.patch

File 0001-Fix-for-whitespace-in-paths.patch, 8.9 KB (added by idefix, 10 years ago)

Crude patch to fix build_cross_tools_gcc4

  • build/scripts/build_cross_tools_gcc4

    From b4352c4fbbda784da673faa9bc75bc1c1b901f52 Mon Sep 17 00:00:00 2001
    From: Jeroen Oortwijn <oortwijn@gmail.com>
    Date: Mon, 25 Nov 2013 21:07:20 +0100
    Subject: [PATCH] Fix for whitespace in paths
    
    ---
     build/scripts/build_cross_tools_gcc4 |  140 +++++++++++++++++-----------------
     1 file changed, 70 insertions(+), 70 deletions(-)
    
    diff --git a/build/scripts/build_cross_tools_gcc4 b/build/scripts/build_cross_tools_gcc4
    index c418bb0..ea778e3 100755
    a b if [ `uname -s` = 'Haiku' ]; then  
    4646    buildHostSpec="--build=$buildhostMachine --host=$buildhostMachine"
    4747fi
    4848
    49 if [ ! -d $haikuSourceDir ]; then
     49if [ ! -d "$haikuSourceDir" ]; then
    5050    echo "No such directory: \"$haikuSourceDir\"" >&2
    5151    exit 1
    5252fi
    5353
    54 if [ ! -d $buildToolsDir ]; then
     54if [ ! -d "$buildToolsDir" ]; then
    5555    echo "No such directory: \"$buildToolsDir\"" >&2
    5656    exit 1
    5757fi
    5858
    5959
    6060# create the output dir
    61 mkdir -p $installDir || exit 1
     61mkdir -p "$installDir" || exit 1
    6262
    6363
    6464# get absolute paths
    6565currentDir=$(pwd)
    6666
    67 cd $haikuSourceDir
     67cd "$haikuSourceDir"
    6868haikuSourceDir=$(pwd)
    69 cd $currentDir
     69cd "$currentDir"
    7070
    71 cd $buildToolsDir
     71cd "$buildToolsDir"
    7272buildToolsDir=$(pwd)
    73 cd $currentDir
     73cd "$currentDir"
    7474
    75 cd $installDir
     75cd "$installDir"
    7676installDir=$(pwd)
    77 cd $currentDir
     77cd "$currentDir"
    7878
    79 binutilsSourceDir=$buildToolsDir/binutils
    80 gccSourceDir=$buildToolsDir/gcc
     79binutilsSourceDir="$buildToolsDir/binutils"
     80gccSourceDir="$buildToolsDir/gcc"
    8181
    8282
    8383# get gcc version
    84 gccVersion=$(cat $gccSourceDir/gcc/BASE-VER)
     84gccVersion=$(cat "$gccSourceDir/gcc/BASE-VER")
    8585
    8686if [ -z "$gccVersion" ]; then
    8787    echo "Failed to find out gcc version." >&2
    fi  
    9292# (which apparently doesn't work reliably on all the different host
    9393# configurations and changes files which in turn appear as local changes
    9494# to the VCS).
    95 find $binutilsSourceDir $gccSourceDir -name \*.info -print0 | xargs -0 touch
     95find "$binutilsSourceDir" "$gccSourceDir" -name \*.info -print0 | xargs -0 touch
    9696
    9797# create the object and installation directories for the cross compilation tools
    98 objDir=${installDir}-build
    99 binutilsObjDir=$objDir/binutils
    100 gccObjDir=$objDir/gcc
    101 stdcxxObjDir=$objDir/stdcxx
    102 sysrootDir=$installDir/sysroot
    103 tmpIncludeDir=$sysrootDir/boot/system/develop/headers
    104 tmpLibDir=$sysrootDir/boot/system/develop/lib
     98objDir="${installDir}-build"
     99binutilsObjDir="$objDir/binutils"
     100gccObjDir="$objDir/gcc"
     101stdcxxObjDir="$objDir/stdcxx"
     102sysrootDir="$installDir/sysroot"
     103tmpIncludeDir="$sysrootDir/boot/system/develop/headers"
     104tmpLibDir="$sysrootDir/boot/system/develop/lib"
    105105
    106 rm -rf $installDir $objDir
     106rm -rf "$installDir" "$objDir"
    107107
    108 mkdir -p $installDir $objDir $binutilsObjDir $gccObjDir $stdcxxObjDir \
    109     $tmpIncludeDir $tmpLibDir || exit 1
    110 mkdir -p $installDir/lib/gcc/$haikuMachine/$gccVersion
     108mkdir -p "$installDir" "$objDir" "$binutilsObjDir" "$gccObjDir" "$stdcxxObjDir" \
     109    "$tmpIncludeDir" "$tmpLibDir" || exit 1
     110mkdir -p "$installDir/lib/gcc/$haikuMachine/$gccVersion"
    111111
    112112if [ "$HAIKU_USE_GCC_GRAPHITE" = 1 ]; then
    113     cloogSourceDir=$buildToolsDir/cloog
    114     gmpSourceDir=$buildToolsDir/gcc/gmp
    115     pplSourceDir=$buildToolsDir/ppl
    116 
    117     pplObjDir=$objDir/ppl
    118     gmpObjDir=$objDir/gmp
    119     cloogObjDir=$objDir/cloog
    120     mkdir -p $pplObjDir $gmpObjDir $cloogObjDir || exit 1
    121 
    122     gccConfigureArgs="$gccConfigureArgs --with-cloog=$installDir \
    123         --enable-cloog-backend=isl --with-ppl=$installDir \
    124         --disable-cloog-version-check --with-gmp=$installDir \
     113    cloogSourceDir="$buildToolsDir/cloog"
     114    gmpSourceDir="$buildToolsDir/gcc/gmp"
     115    pplSourceDir="$buildToolsDir/ppl"
     116
     117    pplObjDir="$objDir/ppl"
     118    gmpObjDir="$objDir/gmp"
     119    cloogObjDir="$objDir/cloog"
     120    mkdir -p "$pplObjDir" "$gmpObjDir" "$cloogObjDir" || exit 1
     121
     122    gccConfigureArgs="$gccConfigureArgs --with-cloog=\"$installDir\" \
     123        --enable-cloog-backend=isl --with-ppl=\"$installDir\" \
     124        --disable-cloog-version-check --with-gmp=\"$installDir\" \
    125125        --with-host-libstdcxx=\"-lstdc++\""
    126126fi
    127127
    fi  
    133133export LC_ALL=POSIX
    134134
    135135# build binutils
    136 cd $binutilsObjDir
    137 CFLAGS="-O2" CXXFLAGS="-O2" $binutilsSourceDir/configure \
    138     --prefix=$installDir $buildHostSpec --target=$haikuMachine \
     136cd "$binutilsObjDir"
     137CFLAGS="-O2" CXXFLAGS="-O2" "$binutilsSourceDir/configure" \
     138    --prefix="$installDir" $buildHostSpec --target=$haikuMachine \
    139139    --enable-targets=$haikuMachine,i386-efi-pe,x86_64-efi-pe \
    140140    --disable-nls --disable-shared --disable-werror \
    141     --with-sysroot=$sysrootDir \
     141    --with-sysroot="$sysrootDir" \
    142142    $binutilsConfigureArgs \
    143143    || exit 1
    144144$MAKE $additionalMakeArgs || exit 1
    145145$MAKE $additionalMakeArgs install || exit 1
    146146
    147 export PATH=$PATH:$installDir/bin
     147export PATH=$PATH:"$installDir/bin"
    148148
    149149if [ "$HAIKU_USE_GCC_GRAPHITE" = 1 ]; then
    150150    # build gmp
    151     cd $gmpObjDir
    152     $gmpSourceDir/configure --prefix=$installDir \
     151    cd "$gmpObjDir"
     152    "$gmpSourceDir/configure" --prefix="$installDir" \
    153153        --disable-shared --enable-cxx || exit 1
    154154    $MAKE $additionalMakeArgs || exit 1
    155155    $MAKE $additionalMakeArgs install || exit 1
    156156
    157157    # build ppl
    158     cd $pplObjDir
    159     CFLAGS="-O2" CXXFLAGS="-O2" $pplSourceDir/configure --prefix=$installDir \
     158    cd "$pplObjDir"
     159    CFLAGS="-O2" CXXFLAGS="-O2" "$pplSourceDir/configure" --prefix="$installDir" \
    160160        --disable-nls --disable-shared --disable-watchdog \
    161161        --disable-maintainer-mode || exit 1
    162162    $MAKE $additionalMakeArgs AUTOCONF:=true AUTOHEADER:=true ACLOCAL:=true \
    if [ "$HAIKU_USE_GCC_GRAPHITE" = 1 ]; then  
    165165        ACLOCAL:=true AUTOMAKE:=true || exit 1
    166166
    167167    # build cloog
    168     cd $cloogObjDir
    169     CFLAGS="-O2" CXXFLAGS="-O2" $cloogSourceDir/configure \
    170         --prefix=$installDir --disable-nls --disable-shared \
    171         --with-gmp-prefix=$installDir || exit 1
     168    cd "$cloogObjDir"
     169    CFLAGS="-O2" CXXFLAGS="-O2" "$cloogSourceDir/configure" \
     170        --prefix="$installDir" --disable-nls --disable-shared \
     171        --with-gmp-prefix="$installDir" || exit 1
    172172    $MAKE $additionalMakeArgs || exit 1
    173173    $MAKE $additionalMakeArgs install || exit 1
    174174fi
    copy_headers()  
    184184    headers="$(find $sourceDir -name \*\.h)"
    185185    headers="$(echo $headers | sed -e s@$sourceDir/@@g)"
    186186    for f in $headers; do
    187         headerTargetDir=$targetDir/$(dirname $f)
    188         mkdir -p $headerTargetDir
    189         cp $sourceDir/$f $headerTargetDir
     187        headerTargetDir="$targetDir/$(dirname $f)"
     188        mkdir -p "$headerTargetDir"
     189        cp "$sourceDir/$f" "$headerTargetDir"
    190190    done
    191191}
    192192
    193 copy_headers $haikuSourceDir/headers/config $tmpIncludeDir/config
    194 copy_headers $haikuSourceDir/headers/os $tmpIncludeDir/os
    195 copy_headers $haikuSourceDir/headers/posix $tmpIncludeDir/posix
     193copy_headers "$haikuSourceDir/headers/config" "$tmpIncludeDir/config"
     194copy_headers "$haikuSourceDir/headers/os" "$tmpIncludeDir/os"
     195copy_headers "$haikuSourceDir/headers/posix" "$tmpIncludeDir/posix"
    196196
    197197# configure gcc
    198 cd $gccObjDir
    199 CFLAGS="-O2" CXXFLAGS="-O2" $gccSourceDir/configure \
    200     --prefix=$installDir $buildHostSpec --target=$haikuMachine \
     198cd "$gccObjDir"
     199CFLAGS="-O2" CXXFLAGS="-O2" "$gccSourceDir/configure" \
     200    --prefix="$installDir" $buildHostSpec --target=$haikuMachine \
    201201    --disable-nls --disable-shared --with-system-zlib \
    202202    --enable-languages=c,c++ --enable-lto --enable-frame-pointer \
    203     --with-sysroot=$sysrootDir \
     203    --with-sysroot="$sysrootDir" \
    204204    $gccConfigureArgs \
    205205    || exit 1
    206206
    $MAKE $additionalMakeArgs install || {  
    218218
    219219# build libraries for the kernel if the target arch requires it
    220220if [ -n "$kernelCcFlags" ]; then
    221     $MAKE -C $haikuMachine/libgcc clean
    222     $MAKE -C $haikuMachine/libgcc CFLAGS="-g -O2 $kernelCcFlags" || {
     221    $MAKE -C "$haikuMachine/libgcc" clean
     222    $MAKE -C "$haikuMachine/libgcc" CFLAGS="-g -O2 $kernelCcFlags" || {
    223223        echo "Error: Building kernel libgcc failed." >&2
    224224        exit 1
    225225    }
    226226
    227     cp $haikuMachine/libgcc/libgcc.a \
    228         $installDir/$haikuMachine/lib/libgcc-kernel.a || exit 1
     227    cp "$haikuMachine/libgcc/libgcc.a" \
     228        "$installDir/$haikuMachine/lib/libgcc-kernel.a" || exit 1
    229229
    230     $MAKE -C $haikuMachine/libstdc++-v3/libsupc++ clean
    231     $MAKE -C $haikuMachine/libstdc++-v3/libsupc++ CFLAGS="-g -O2 $kernelCcFlags" \
     230    $MAKE -C "$haikuMachine/libstdc++-v3/libsupc++" clean
     231    $MAKE -C "$haikuMachine/libstdc++-v3/libsupc++" CFLAGS="-g -O2 $kernelCcFlags" \
    232232        CXXFLAGS="-g -O2 $kernelCcFlags" || {
    233233        echo "Error: Building kernel libsupc++ failed." >&2
    234234        exit 1
    235235    }
    236236
    237     cp $haikuMachine/libstdc++-v3/libsupc++/.libs/libsupc++.a \
    238         $installDir/$haikuMachine/lib/libsupc++-kernel.a || exit 1
     237    cp "$haikuMachine/libstdc++-v3/libsupc++/.libs/libsupc++.a" \
     238        "$installDir/$haikuMachine/lib/libsupc++-kernel.a" || exit 1
    239239fi
    240240
    241241# cleanup
    242242
    243243# remove the system headers from the installation dir
    244244# Only the ones from the source tree should be used.
    245 rm -rf $installDir/$haikuMachine/sys-include
     245rm -rf "$installDir/$haikuMachine/sys-include"
    246246
    247247# remove the sysroot dir
    248 rm -rf $sysrootDir
     248rm -rf "$sysrootDir"
    249249
    250250# remove the objects dir
    251 rm -rf $objDir
     251rm -rf "$objDir"
    252252
    253253
    254254echo "binutils and gcc for cross compilation have been built successfully!"