Correctly handle the libfloat case: download, extract and patch sub-actions.
Small improvement in messages in scipts/functions when retrieving a file.
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/patches/libfloat/990616.orig/100-libfloat_990616-3-lib-versioning.patch Sat May 19 13:10:11 2007 +0000
1.3 @@ -0,0 +1,48 @@
1.4 +This patch comes from the Debian archive:
1.5 + ftp://ftp.de.debian.org/debian/pool/main/libf/libfloat/libfloat_990616-3.diff.gz
1.6 +
1.7 +It was stripped of all Debian-related hunks.
1.8 +Kept is the library versioning.
1.9 +
1.10 +--- libfloat-990616.orig/Makefile
1.11 ++++ libfloat-990616/Makefile
1.12 +@@ -4,15 +4,15 @@
1.13 + #CC=gcc -g -O2 -freg-struct-return -D__LIBFLOAT__
1.14 + AR=ar
1.15 +
1.16 +-all: libfloat.a libfloat.so
1.17 ++all: libfloat.a libfloat.so.1
1.18 +
1.19 + libfloat.a: softfloat.o fplib_glue.o
1.20 + rm -f libfloat.a
1.21 + $(AR) cq libfloat.a softfloat.o fplib_glue.o
1.22 +
1.23 +-libfloat.so: softfloat.os fplib_glue.os
1.24 +- rm -f libfloat.so
1.25 +- gcc -shared softfloat.os fplib_glue.os -o libfloat.so
1.26 ++libfloat.so.1: softfloat.os fplib_glue.os
1.27 ++ rm -f libfloat.so.1
1.28 ++ gcc -shared -Wl,-soname,libfloat.so.1 softfloat.os fplib_glue.os -o libfloat.so.1
1.29 +
1.30 + softfloat.o: softfloat/bits64/softfloat.c
1.31 + $(CC) -c -o softfloat.o -Isoftfloat/bits64/ARM-gcc softfloat/bits64/softfloat.c
1.32 +@@ -26,14 +26,14 @@
1.33 + fplib_glue.os: fplib_glue.S
1.34 + $(CC) -fpic -c -o fplib_glue.os fplib_glue.S
1.35 +
1.36 +-install: libfloat.a libfloat.so
1.37 +- cp -a libfloat.a /usr/lib
1.38 +- cp -a libfloat.so /usr/lib
1.39 +- ldconfig
1.40 ++install: libfloat.a libfloat.so.1
1.41 ++ cp -a libfloat.a $(DESTDIR)/usr/lib
1.42 ++ cp -a libfloat.so.1 $(DESTDIR)/usr/lib
1.43 ++ cd $(DESTDIR)/usr/lib; ln -s libfloat.so.1 libfloat.so
1.44 +
1.45 + clean:
1.46 + rm -f *.o
1.47 + rm -f *.os
1.48 + rm -f libfloat.a
1.49 +- rm -f libfloat.so
1.50 ++ rm -f libfloat.so.1
1.51 + rm -f *~
2.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2.2 +++ b/patches/libfloat/990616.orig/200-cross_compile.patch Sat May 19 13:10:11 2007 +0000
2.3 @@ -0,0 +1,63 @@
2.4 +When linking, call directly ld in place of the gcc wrapper, because the wrapper
2.5 +will try to link with -lfloat, which we don't have right now...
2.6 +
2.7 +Simplify CFLAGS to stay ABI compliant (ot so I guess)...
2.8 +
2.9 +diff -dur libfloat.orig/Makefile libfloat/Makefile
2.10 +--- libfloat.orig/Makefile 2007-02-16 19:38:55.000000000 +0100
2.11 ++++ libfloat/Makefile 2007-02-16 19:46:23.000000000 +0100
2.12 +@@ -1,8 +1,11 @@
2.13 + # Makefile for the Linux soft-float library
2.14 +
2.15 +-CC=gcc -O2 -freg-struct-return -fomit-frame-pointer -D__LIBFLOAT__
2.16 +-#CC=gcc -g -O2 -freg-struct-return -D__LIBFLOAT__
2.17 +-AR=ar
2.18 ++AR=$(CROSS_COMPILE)ar
2.19 ++#CFLAGS=-O2 -freg-struct-return -fomit-frame-pointer -D__LIBFLOAT__
2.20 ++CFLAGS=-O2 -D__LIBFLOAT__
2.21 ++CC=$(CROSS_COMPILE)gcc
2.22 ++LDFLAGS=-shared -nostdlib
2.23 ++LD=$(CROSS_COMPILE)ld
2.24 +
2.25 + all: libfloat.a libfloat.so.1
2.26 +
2.27 +@@ -12,28 +13,31 @@
2.28 +
2.29 + libfloat.so.1: softfloat.os fplib_glue.os
2.30 + rm -f libfloat.so.1
2.31 +- gcc -shared -Wl,-soname,libfloat.so.1 softfloat.os fplib_glue.os -o libfloat.so.1
2.32 ++ $(LD) $(LDFLAGS) -soname=libfloat.so.1 softfloat.os fplib_glue.os -o libfloat.so.1
2.33 +
2.34 + softfloat.o: softfloat/bits64/softfloat.c
2.35 +- $(CC) -c -o softfloat.o -Isoftfloat/bits64/ARM-gcc softfloat/bits64/softfloat.c
2.36 ++ $(CC) $(CFLAGS) -c -o softfloat.o -Isoftfloat/bits64/ARM-gcc softfloat/bits64/softfloat.c
2.37 +
2.38 + fplib_glue.o: fplib_glue.S
2.39 +- $(CC) -c -o fplib_glue.o fplib_glue.S
2.40 ++ $(CC) $(CFLAGS) -c -o fplib_glue.o fplib_glue.S
2.41 +
2.42 + softfloat.os: softfloat/bits64/softfloat.c
2.43 +- $(CC) -fpic -c -o softfloat.os -Isoftfloat/bits64/ARM-gcc softfloat/bits64/softfloat.c
2.44 ++ $(CC) $(CFLAGS) -fpic -c -o softfloat.os -Isoftfloat/bits64/ARM-gcc softfloat/bits64/softfloat.c
2.45 +
2.46 + fplib_glue.os: fplib_glue.S
2.47 +- $(CC) -fpic -c -o fplib_glue.os fplib_glue.S
2.48 ++ $(CC) $(CFLAGS) -fpic -c -o fplib_glue.os fplib_glue.S
2.49 +
2.50 + install: libfloat.a libfloat.so.1
2.51 +- cp -a libfloat.a $(DESTDIR)/usr/lib
2.52 +- cp -a libfloat.so.1 $(DESTDIR)/usr/lib
2.53 +- cd $(DESTDIR)/usr/lib; ln -s libfloat.so.1 libfloat.so
2.54 ++ install -d -m 755 "$(DESTDIR)/usr/lib"
2.55 ++ install -m 755 libfloat.a "$(DESTDIR)/usr/lib"
2.56 ++ install -m 755 libfloat.so.1 "$(DESTDIR)/usr/lib"
2.57 ++ cd $(DESTDIR)/usr/lib
2.58 ++ ln -s libfloat.so.1 libfloat.so
2.59 +
2.60 + clean:
2.61 + rm -f *.o
2.62 + rm -f *.os
2.63 + rm -f libfloat.a
2.64 + rm -f libfloat.so.1
2.65 ++ rm -f libfloat.so
2.66 + rm -f *~
3.1 --- a/patches/libfloat/990616/100-libfloat_990616-3-lib-versioning.patch Sat May 19 11:01:47 2007 +0000
3.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
3.3 @@ -1,48 +0,0 @@
3.4 -This patch comes from the Debian archive:
3.5 - ftp://ftp.de.debian.org/debian/pool/main/libf/libfloat/libfloat_990616-3.diff.gz
3.6 -
3.7 -It was stripped of all Debian-related hunks.
3.8 -Kept is the library versioning.
3.9 -
3.10 ---- libfloat-990616.orig/Makefile
3.11 -+++ libfloat-990616/Makefile
3.12 -@@ -4,15 +4,15 @@
3.13 - #CC=gcc -g -O2 -freg-struct-return -D__LIBFLOAT__
3.14 - AR=ar
3.15 -
3.16 --all: libfloat.a libfloat.so
3.17 -+all: libfloat.a libfloat.so.1
3.18 -
3.19 - libfloat.a: softfloat.o fplib_glue.o
3.20 - rm -f libfloat.a
3.21 - $(AR) cq libfloat.a softfloat.o fplib_glue.o
3.22 -
3.23 --libfloat.so: softfloat.os fplib_glue.os
3.24 -- rm -f libfloat.so
3.25 -- gcc -shared softfloat.os fplib_glue.os -o libfloat.so
3.26 -+libfloat.so.1: softfloat.os fplib_glue.os
3.27 -+ rm -f libfloat.so.1
3.28 -+ gcc -shared -Wl,-soname,libfloat.so.1 softfloat.os fplib_glue.os -o libfloat.so.1
3.29 -
3.30 - softfloat.o: softfloat/bits64/softfloat.c
3.31 - $(CC) -c -o softfloat.o -Isoftfloat/bits64/ARM-gcc softfloat/bits64/softfloat.c
3.32 -@@ -26,14 +26,14 @@
3.33 - fplib_glue.os: fplib_glue.S
3.34 - $(CC) -fpic -c -o fplib_glue.os fplib_glue.S
3.35 -
3.36 --install: libfloat.a libfloat.so
3.37 -- cp -a libfloat.a /usr/lib
3.38 -- cp -a libfloat.so /usr/lib
3.39 -- ldconfig
3.40 -+install: libfloat.a libfloat.so.1
3.41 -+ cp -a libfloat.a $(DESTDIR)/usr/lib
3.42 -+ cp -a libfloat.so.1 $(DESTDIR)/usr/lib
3.43 -+ cd $(DESTDIR)/usr/lib; ln -s libfloat.so.1 libfloat.so
3.44 -
3.45 - clean:
3.46 - rm -f *.o
3.47 - rm -f *.os
3.48 - rm -f libfloat.a
3.49 -- rm -f libfloat.so
3.50 -+ rm -f libfloat.so.1
3.51 - rm -f *~
4.1 --- a/patches/libfloat/990616/200-cross_compile.patch Sat May 19 11:01:47 2007 +0000
4.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
4.3 @@ -1,63 +0,0 @@
4.4 -When linking, call directly ld in place of the gcc wrapper, because the wrapper
4.5 -will try to link with -lfloat, which we don't have right now...
4.6 -
4.7 -Simplify CFLAGS to stay ABI compliant (ot so I guess)...
4.8 -
4.9 -diff -dur libfloat.orig/Makefile libfloat/Makefile
4.10 ---- libfloat.orig/Makefile 2007-02-16 19:38:55.000000000 +0100
4.11 -+++ libfloat/Makefile 2007-02-16 19:46:23.000000000 +0100
4.12 -@@ -1,8 +1,11 @@
4.13 - # Makefile for the Linux soft-float library
4.14 -
4.15 --CC=gcc -O2 -freg-struct-return -fomit-frame-pointer -D__LIBFLOAT__
4.16 --#CC=gcc -g -O2 -freg-struct-return -D__LIBFLOAT__
4.17 --AR=ar
4.18 -+AR=$(CROSS_COMPILE)ar
4.19 -+#CFLAGS=-O2 -freg-struct-return -fomit-frame-pointer -D__LIBFLOAT__
4.20 -+CFLAGS=-O2 -D__LIBFLOAT__
4.21 -+CC=$(CROSS_COMPILE)gcc
4.22 -+LDFLAGS=-shared -nostdlib
4.23 -+LD=$(CROSS_COMPILE)ld
4.24 -
4.25 - all: libfloat.a libfloat.so.1
4.26 -
4.27 -@@ -12,28 +13,31 @@
4.28 -
4.29 - libfloat.so.1: softfloat.os fplib_glue.os
4.30 - rm -f libfloat.so.1
4.31 -- gcc -shared -Wl,-soname,libfloat.so.1 softfloat.os fplib_glue.os -o libfloat.so.1
4.32 -+ $(LD) $(LDFLAGS) -soname=libfloat.so.1 softfloat.os fplib_glue.os -o libfloat.so.1
4.33 -
4.34 - softfloat.o: softfloat/bits64/softfloat.c
4.35 -- $(CC) -c -o softfloat.o -Isoftfloat/bits64/ARM-gcc softfloat/bits64/softfloat.c
4.36 -+ $(CC) $(CFLAGS) -c -o softfloat.o -Isoftfloat/bits64/ARM-gcc softfloat/bits64/softfloat.c
4.37 -
4.38 - fplib_glue.o: fplib_glue.S
4.39 -- $(CC) -c -o fplib_glue.o fplib_glue.S
4.40 -+ $(CC) $(CFLAGS) -c -o fplib_glue.o fplib_glue.S
4.41 -
4.42 - softfloat.os: softfloat/bits64/softfloat.c
4.43 -- $(CC) -fpic -c -o softfloat.os -Isoftfloat/bits64/ARM-gcc softfloat/bits64/softfloat.c
4.44 -+ $(CC) $(CFLAGS) -fpic -c -o softfloat.os -Isoftfloat/bits64/ARM-gcc softfloat/bits64/softfloat.c
4.45 -
4.46 - fplib_glue.os: fplib_glue.S
4.47 -- $(CC) -fpic -c -o fplib_glue.os fplib_glue.S
4.48 -+ $(CC) $(CFLAGS) -fpic -c -o fplib_glue.os fplib_glue.S
4.49 -
4.50 - install: libfloat.a libfloat.so.1
4.51 -- cp -a libfloat.a $(DESTDIR)/usr/lib
4.52 -- cp -a libfloat.so.1 $(DESTDIR)/usr/lib
4.53 -- cd $(DESTDIR)/usr/lib; ln -s libfloat.so.1 libfloat.so
4.54 -+ install -d -m 755 "$(DESTDIR)/usr/lib"
4.55 -+ install -m 755 libfloat.a "$(DESTDIR)/usr/lib"
4.56 -+ install -m 755 libfloat.so.1 "$(DESTDIR)/usr/lib"
4.57 -+ cd $(DESTDIR)/usr/lib
4.58 -+ ln -s libfloat.so.1 libfloat.so
4.59 -
4.60 - clean:
4.61 - rm -f *.o
4.62 - rm -f *.os
4.63 - rm -f libfloat.a
4.64 - rm -f libfloat.so.1
4.65 -+ rm -f libfloat.so
4.66 - rm -f *~
5.1 --- a/scripts/build/libfloat.sh Sat May 19 11:01:47 2007 +0000
5.2 +++ b/scripts/build/libfloat.sh Sat May 19 13:10:11 2007 +0000
5.3 @@ -7,26 +7,20 @@
5.4
5.5 # Download libfloat
5.6 do_libfloat_get() {
5.7 - # Please note: because the file we download, and the file we store on the
5.8 - # file system don't have the same name, CT_GetFile will always try to
5.9 - # download the file over and over.
5.10 - # To avoid this, we check that the file we want already exists in the
5.11 - # tarball directory first. This is an ugly hack that overrides the standard
5.12 - # CT_GetFile behavior... Sight...
5.13 - lib_float_url="ftp://ftp.de.debian.org/debian/pool/main/libf/libfloat/"
5.14 - ext=`CT_GetFileExtension "${CT_LIBFLOAT_FILE}"`
5.15 - if [ -z "${ext}" ]; then
5.16 - CT_GetFile libfloat_990616.orig "${lib_float_url}"
5.17 - ext=`CT_GetFileExtension "libfloat_990616.orig"`
5.18 - # Hack: remove the .orig extension, and change _ to -
5.19 - mv -v "${CT_TARBALLS_DIR}/libfloat_990616.orig${ext}" \
5.20 - "${CT_TARBALLS_DIR}/libfloat-990616${ext}" 2>&1 |CT_DoLog DEBUG
5.21 - fi
5.22 + # Ah! libfloat separates the version string from the base name with
5.23 + # an underscore. We need to workaround this in a sane manner: soft link.
5.24 + local libfloat_file=`echo "${CT_LIBFLOAT_FILE}" |sed -r -e 's/^libfloat-/libfloat_/;'`
5.25 + CT_GetFile "${libfloat_file}" \
5.26 + ftp://ftp.de.debian.org/debian/pool/main/libf/libfloat
5.27 + CT_Pushd "${CT_TARBALLS_DIR}"
5.28 + ext=`CT_GetFileExtension "${libfloat_file}"`
5.29 + ln -s "${libfloat_file}${ext}" "${CT_LIBFLOAT_FILE}${ext}"
5.30 + CT_Popd
5.31 }
5.32
5.33 # Extract libfloat
5.34 do_libfloat_extract() {
5.35 - [ "${CT_ARCH_FLOAT_SW_LIBFLOAT}" = "y" ] && CT_ExtractAndPatch "${CT_LIBFLOAT_FILE}"
5.36 + CT_ExtractAndPatch "${CT_LIBFLOAT_FILE}"
5.37 }
5.38
5.39 # Build libfloat
5.40 @@ -34,13 +28,12 @@
5.41 # Here we build and install libfloat for the target, so that the C library
5.42 # builds OK with those versions of gcc that have severed softfloat support
5.43 # code
5.44 - [ "${CT_ARCH_FLOAT_SW_LIBFLOAT}" = "y" ] || return 0
5.45 - CT_DoStep INFO "Installing software floating point emulation library libfloat"
5.46 + CT_DoStep INFO "Installing software floating point emulation library libfloat"
5.47 + mkdir build-libfloat
5.48 + cd build-libfloat
5.49
5.50 CT_Pushd "${CT_BUILD_DIR}"
5.51 CT_DoLog EXTRA "Copying sources to build dir"
5.52 - mkdir build-libfloat
5.53 - cd build-libfloat
5.54 ( cd "${CT_SRC_DIR}/${CT_LIBFLOAT_FILE}"; tar cf - . ) |tar xvf - |CT_DoLog ALL
5.55
5.56 CT_DoLog EXTRA "Cleaning library"
6.1 --- a/scripts/crosstool.sh Sat May 19 11:01:47 2007 +0000
6.2 +++ b/scripts/crosstool.sh Sat May 19 13:10:11 2007 +0000
6.3 @@ -97,7 +97,7 @@
6.4 CT_CC_CORE_FILE="${CT_CC_CORE}-${CT_CC_CORE_VERSION}"
6.5 CT_CC_FILE="${CT_CC}-${CT_CC_VERSION}"
6.6 CT_LIBC_FILE="${CT_LIBC}-${CT_LIBC_VERSION}"
6.7 -[ "${CT_ARCH_FLOAT_SW_LIBFLOAT}" = "y" ] && CT_LIBFLOAT_FILE="libfloat-990616"
6.8 +CT_LIBFLOAT_FILE="libfloat-${CT_LIBFLOAT_VERSION}"
6.9
6.10 # Where will we work?
6.11 CT_TARBALLS_DIR="${CT_TOP_DIR}/targets/tarballs"
7.1 --- a/scripts/functions Sat May 19 11:01:47 2007 +0000
7.2 +++ b/scripts/functions Sat May 19 13:10:11 2007 +0000
7.3 @@ -294,7 +294,6 @@
7.4 return 0
7.5 fi
7.6
7.7 - CT_DoLog EXTRA "Retrieving \"${file}\""
7.8 CT_Pushd "${CT_TARBALLS_DIR}"
7.9 # File not yet downloaded, try to get it
7.10 got_it=0
7.11 @@ -303,11 +302,13 @@
7.12 for ext in .tar.bz2 .tar.gz .tgz .tar; do
7.13 if [ -r "${CT_LOCAL_TARBALLS_DIR}/${file}${ext}" -a \
7.14 "${CT_FORCE_DOWNLOAD}" != "y" ]; then
7.15 + CT_DoLog EXTRA "Copying \"${file}\" from local copy"
7.16 cp -v "${CT_LOCAL_TARBALLS_DIR}/${file}${ext}" "${file}${ext}" |CT_DoLog DEBUG
7.17 return 0
7.18 fi
7.19 done
7.20 # Try to download it
7.21 + CT_DoLog EXTRA "Retrieving \"${file}\""
7.22 for ext in .tar.bz2 .tar.gz .tgz .tar; do
7.23 # Try all urls in turn
7.24 for url in "$@"; do