diff options
author | Al Stone <ahs3@redhat.com> | 2012-11-16 17:20:33 -0700 |
---|---|---|
committer | Al Stone <ahs3@redhat.com> | 2012-11-16 17:20:33 -0700 |
commit | f4886bb3d66726a51bece0d75f40ab7b4e83d4e2 (patch) | |
tree | 09ec6b68d1250071d0c150e7d90d266c986c6bc0 /stage1 | |
parent | cf8085e01747c15db596b2cd526e9acf6b381db8 (diff) | |
parent | cc66fb707a3765b8fdc276f3d8a9b7da0340e656 (diff) | |
download | bootstrap.git.DONOTUSE-f4886bb3d66726a51bece0d75f40ab7b4e83d4e2.tar.gz bootstrap.git.DONOTUSE-f4886bb3d66726a51bece0d75f40ab7b4e83d4e2.tar.xz bootstrap.git.DONOTUSE-f4886bb3d66726a51bece0d75f40ab7b4e83d4e2.zip |
Merge branch 'aarch64-ahs3'
Diffstat (limited to 'stage1')
-rwxr-xr-x | stage1 | 105 |
1 files changed, 68 insertions, 37 deletions
@@ -56,6 +56,12 @@ RPMTARGET=aarch64-redhat-linux-gnu # due to naming politics, the kernel may or may not have a different target KERNEL_RPMTARGET=arm64-redhat-linux-gnu +# Default library path +case $TARGET in + aarch64-*) SUFFIX=64 ;; + *) SUFFIX= ;; +esac + # this is where the new rootfs will be built ROOTFS=$TOP/rootfs @@ -170,6 +176,7 @@ BUILD=`gcc -v 2>&1 | grep Target: | sed 's/.*: //'` # These are for cross-tools like binutils CONFIGARGS="--prefix=$PREFIX + --libdir=$PREFIX/lib${SUFFIX} --target=$TARGET ${CONFIG_EXTRA} --enable-languages=c,c++ @@ -180,6 +187,7 @@ CONFIGARGS="--prefix=$PREFIX " TCONFIGARGS="--prefix=/usr + --libdir=/usr/lib${SUFFIX} --with-sysroot=/ --with-build-sysroot=$ROOTFS --build=$BUILD @@ -195,6 +203,7 @@ TCONFIGARGS="--prefix=/usr # These are for gcc cross-tools (politics sometime result in slightly # different arch names) GCC_CONFIGARGS="--prefix=$PREFIX + --libdir=$PREFIX/lib${SUFFIX} --target=$TARGET ${GCC_CONFIG_EXTRA} --enable-languages=c,c++ @@ -205,6 +214,7 @@ GCC_CONFIGARGS="--prefix=$PREFIX " GCC_TCONFIGARGS="--prefix=/usr + --libdir=/usr/lib${SUFFIX} --with-sysroot=/ --with-build-sysroot=$ROOTFS --build=$BUILD @@ -236,6 +246,7 @@ setup_glibc() GV=$(cd $SRC; echo glibc-2*) GLIBCARGS0="--prefix=/usr + --libdir=/usr/lib${SUFFIX} --with-headers=$ROOTFS/usr/include --enable-kernel=2.6.32 --enable-bind-now @@ -278,6 +289,7 @@ setup_eglibc() GV=$(cd $SRC; echo eglibc-*/libc) EGLIBCARGS0="--prefix=/usr + --libdir=/usr/lib${SUFFIX} --includedir=/usr/include --with-headers=$ROOTFS/usr/include --enable-kernel=2.6.32 @@ -319,7 +331,7 @@ notparallel() fix_la() { - for la in $ROOTFS/usr/lib/*$1*.la + for la in $ROOTFS/usr/lib${SUFFIX}/*$1*.la do if test -f $la then @@ -452,14 +464,14 @@ case "$1" in if false; then - mkdirp $ROOTFS/usr/lib + mkdirp $ROOTFS/usr/lib${SUFFIX} for o in crt Scrt1 crti crtbegin crtbeginS crtend crtendS crtn do - $TARGET-gcc -nostdlib -nostartfiles -c -x c /dev/null -c -o $ROOTFS/usr/lib/$o.o + $TARGET-gcc -nostdlib -nostartfiles -c -x c /dev/null -c -o $ROOTFS/usr/lib${SUFFIX}/$o.o done for so in gcc gcc_s c do - $TARGET-gcc -nostdlib -nostartfiles -shared -x c /dev/null -o $ROOTFS/usr/lib/lib$so.so + $TARGET-gcc -nostdlib -nostartfiles -shared -x c /dev/null -o $ROOTFS/usr/lib${SUFFIX}/lib$so.so done fi ;; @@ -485,13 +497,13 @@ fi # We also build just enough files to link libgcc.so. The fake # libc.so will never actually get used. - mkdirp $ROOTFS/usr/lib + mkdirp $ROOTFS/usr/lib${SUFFIX} make $J ARCH=${KARCH} cross-compiling=yes csu/subdir_lib -# cp csu/crt*.o $ROOTFS/usr/lib +# cp csu/crt*.o $ROOTFS/usr/lib${SUFFIX} for C in `cd csu; echo crt*.o`; do - echo "" | $TARGET-as -o $ROOTFS/usr/lib/$C + echo "" | $TARGET-as -o $ROOTFS/usr/lib${SUFFIX}/$C done - $TARGET-gcc -nostdlib -nostartfiles -shared -x c /dev/null -o $ROOTFS/usr/lib/libc.so + $TARGET-gcc -nostdlib -nostartfiles -shared -x c /dev/null -o $ROOTFS/usr/lib${SUFFIX}/libc.so ;; @@ -516,12 +528,12 @@ fi # We also build just enough files to link libgcc.so. The fake # libc.so will never actually get used. - mkdirp $ROOTFS/usr/lib + mkdirp $ROOTFS/usr/lib${SUFFIX} make $J ARCH=arm cross-compiling=yes csu/subdir_lib - cp csu/crt*.o $ROOTFS/usr/lib - cp csu/elf-init*.o $ROOTFS/usr/lib - cp csu/libc-start*.o $ROOTFS/usr/lib - $TARGET-gcc -nostdlib -nostartfiles -shared -x c /dev/null -o $ROOTFS/usr/lib/libc.so + cp csu/crt*.o $ROOTFS/usr/lib${SUFFIX} + cp csu/elf-init*.o $ROOTFS/usr/lib${SUFFIX} + cp csu/libc-start*.o $ROOTFS/usr/lib${SUFFIX} + $TARGET-gcc -nostdlib -nostartfiles -shared -x c /dev/null -o $ROOTFS/usr/lib${SUFFIX}/libc.so ;; "gcc-libgcc" ) @@ -575,9 +587,9 @@ fi notparallel make $J make $J install - mcd $ROOTFS/lib/gcc - rsync -av $PREFIX/lib/gcc/ $ROOTFS/lib/gcc/ - rsync -av $PREFIX/$TARGET/lib/ $ROOTFS/lib/ + mcd $ROOTFS/lib${SUFFIX}/gcc + rsync -av $PREFIX/lib${SUFFIX}/gcc/ $ROOTFS/lib${SUFFIX}/gcc/ + rsync -av $PREFIX/$TARGET/lib/ $ROOTFS/lib${SUFFIX}/ ;; #-------------------------------------------------- @@ -585,14 +597,14 @@ fi "usrlinks" ) test -d $ROOTFS || mkdir -p $ROOTFS - #mkdir $ROOTFS/usr - #for i in bin sbin lib libexec - #do - # ln -s usr/$i $ROOTFS/$i - # mkdir $ROOTFS/usr/$i - #done - #for i in etc proc sys - for i in proc sys + mkdir $ROOTFS/usr + for i in bin sbin lib${SUFFIX} libexec + do + ln -s usr/$i $ROOTFS/$i + mkdir $ROOTFS/usr/$i + done + ln -s usr/lib${SUFFIX} $ROOTFS/lib + for i in etc proc sys do mkdir $ROOTFS/$i done @@ -624,6 +636,10 @@ fi sudo mknod ttyO2 c 253 2 sudo mknod ttyO3 c 253 3 + sudo mknod tty2 c 4 2 + sudo mknod tty3 c 4 3 + sudo mknod tty4 c 4 4 + sudo mknod ttyS0 c 4 64 sudo mknod ttyS1 c 4 65 sudo mknod ttyS2 c 4 66 @@ -712,9 +728,13 @@ fi srpm zlib mcd $BUILDDIR/t-zlib rsync -av $SRC/zlib-*/ ./ + if [ "$SUFFIX" = "64" ] + then + ARGS="--libdir=/usr/lib64" + fi CHOST=${TARGET} \ prefix=/usr \ - ./configure + ./configure $ARGS make make $J install DESTDIR=${ROOTFS} fix_la zlib @@ -724,7 +744,7 @@ fi srpm cloog mcd $BUILDDIR/t-cloog $SRC/cloog-*/configure $TCONFIGARGS --with-ppl - make $J LDADD="-rpath ${ROOTFS}/lib -lcloog" + make $J LDADD="-rpath ${ROOTFS}/lib${SUFFIX} -lcloog" make $J install DESTDIR=${ROOTFS} fix_la cloog ;; @@ -742,9 +762,12 @@ fi CFLAGS="" \ TLSFLAGS="" \ all - make $J \ - DESTDIR=${ROOTFS} \ - install + ARGS="DESTDIR=${ROOTFS}" + if [ "$SUFFIX" = "64" ] + then + ARGS="$ARGS LIBDIR=${ROOTFS}/usr/lib64 SHLIBDIR=${ROOTFS}/usr/lib64" + fi + make $J $ARGS install ;; # TLSFLAGS are set in order to avoid a bogus check in @@ -765,10 +788,13 @@ fi RANLIB=${TARGET}-ranlib \ CFLAGS="" \ TLSFLAGS="" \ - all LDFLAGS="-Wl,-rpath -Wl,${ROOTFS}/lib" - make $J \ - DESTDIR=${ROOTFS} \ - install + all LDFLAGS="-Wl,-rpath -Wl,${ROOTFS}/lib${SUFFIX}" + ARGS="DESTDIR=${ROOTFS}" + if [ "$SUFFIX" = "64" ] + then + ARGS="$ARGS LIBDIR=${ROOTFS}/usr/lib64 SHLIBDIR=${ROOTFS}/usr/lib64" + fi + make $J $ARGS install ;; #-------------------------------------------------- @@ -843,7 +869,7 @@ EOF # built sed binary in order to extract the --help output, but # this fails because the sed binary is a cross-tool. touch doc/sed.1 - make $J V=1 CFLAGS="-lselinux -Wl,-rpath -Wl,${ROOTFS}/lib" + make $J V=1 CFLAGS="-lselinux -Wl,-rpath -Wl,${ROOTFS}/lib${SUFFIX}" make $J install DESTDIR=${ROOTFS} ;; @@ -864,6 +890,7 @@ EOF mcd $BUILDDIR/$1 $SRC/${1}-*/configure \ --prefix=/usr \ + --libdir=/usr/lib64 \ --build=$BUILD \ --host=$TARGET \ notparallel @@ -903,7 +930,7 @@ EOF base=`echo $i | sed 's/\.x//'` touch man/$base.1 done - make $J V=1 CFLAGS="-lselinux -Wl,-rpath -Wl,${ROOTFS}/lib" + make $J V=1 CFLAGS="-lselinux -Wl,-rpath -Wl,${ROOTFS}/lib${SUFFIX}" make $J install DESTDIR=${ROOTFS} ;; @@ -942,7 +969,7 @@ ax_cv_have_tls=yes scanf_cv_alloc_modifier=yes EOF $SRC/${1}-*/configure $TCONFIGARGS --without-ncurses \ - --prefix=/usr --libexecdir=/usr/lib --libdir=/usr/lib \ + --prefix=/usr --libexecdir=/usr/lib${SUFFIX} --libdir=/usr/lib${SUFFIX} \ --disable-wall --cache-file=config.cache notparallel make $J V=1 @@ -960,7 +987,11 @@ EOF PREFIX=/usr \ CFLAGS="$CFLAGS -fpic -fPIC" \ libbz2.a bzip2 bzip2recover - make $J \ + if [ "$SUFFIX" = "64" ] + then + ARGS="BITS=64" + fi + make $J $ARGS \ CC=${TARGET}-gcc \ AR=${TARGET}-ar \ RANLIB=${TARGET}-ranlib \ |