scripts/functions: Use stat correctly on non-GNU (BSD/Darwin) systems.
Call to get the directory mode depending on $CT_SYS_OS
yann.morin.1998@anciens.enib.fr:
CT_SYS_OS has changed on Linuxsystem, it only gets the kernel name "Linux",
and not the system name, 'GNU/'.
1 This patch (C) 2007 Yann E. MORIN
4 First hunk of this patch solves compiling uClibc:
6 make[1]: Entering directory `/home/ymorin/x-tools/build/armeb-unknown-linux-uclibc/gcc-4.1.1-uClibc-0.9.28.1/build-libc'
8 libc/libc_so.a(difftime.os): In function `difftime':
9 difftime.c:(.text+0x8): undefined reference to `__floatsidf'
10 difftime.c:(.text+0x2c): undefined reference to `__subdf3'
11 libc/libc_so.a(_fpmaxtostr.os): In function `_fpmaxtostr':
12 _fpmaxtostr.c:(.text+0xd4): undefined reference to `__nedf2'
13 _fpmaxtostr.c:(.text+0xf8): undefined reference to `__eqdf2'
14 _fpmaxtostr.c:(.text+0x114): undefined reference to `__divdf3'
15 _fpmaxtostr.c:(.text+0x120): undefined reference to `__ltdf2'
16 _fpmaxtostr.c:(.text+0x1c4): undefined reference to `__muldf3'
17 _fpmaxtostr.c:(.text+0x388): undefined reference to `__gedf2'
18 _fpmaxtostr.c:(.text+0x430): undefined reference to `__adddf3'
19 libc/libc_so.a(__psfs_do_numeric.os): In function `__psfs_do_numeric':
20 __psfs_do_numeric.c:(.text+0x520): undefined reference to `__truncdfsf2'
21 libc/libc_so.a(strtof.os): In function `strtof':
22 strtof.c:(.text+0x1c): undefined reference to `__extendsfdf2'
23 /home/ymorin/x-tools/build/armeb-unknown-linux-uclibc/gcc-4.1.1-uClibc-0.9.28.1/cc_core_prefix/lib/gcc/arm-linux-uclibc/4.1.1/libgcc.a(_fixunsdfsi.o):
24 In function `__fixunsdfsi':
25 libgcc2.c:(.text+0x34): undefined reference to `__fixdfsi'
26 make[2]: *** [lib/libc.so] Error 1
27 make[1]: *** [lib/libc.so.0] Error 2
28 make[1]: Leaving directory `/home/ymorin/x-tools/build/armeb-unknown-linux-uclibc/gcc-4.1.1-uClibc-0.9.28.1/build-libc'
29 make: *** [/home/ymorin/x-tools/build/armeb-unknown-linux-uclibc/gcc-4.1.1-uClibc-0.9.28.1/build-libc/lib/libc.a]
32 The second hunk fixes building final gcc because soft-float implies using -lfloat (which we don't have).
35 diff -dur gcc-4.2.0.orig/gcc/config.gcc gcc-4.2.0/gcc/config.gcc
36 --- gcc-4.2.0.orig/gcc/config.gcc 2007-07-15 11:24:18.000000000 +0200
37 +++ gcc-4.2.0/gcc/config.gcc 2007-07-15 11:26:02.000000000 +0200
39 default_use_cxa_atexit=yes
42 - tmake_file="$tmake_file arm/t-linux"
43 + tmake_file="$tmake_file arm/t-linux arm/t-arm-elf"
46 tm_file="$tm_file arm/aout.h arm/arm.h"
47 diff -dur gcc-4.2.0.orig/gcc/config/arm/linux-elf.h gcc-4.2.0/gcc/config/arm/linux-elf.h
48 --- gcc-4.2.0.orig/gcc/config/arm/linux-elf.h 2007-07-15 11:24:18.000000000 +0200
49 +++ gcc-4.2.0/gcc/config/arm/linux-elf.h 2007-07-15 11:26:02.000000000 +0200
52 %{!shared:%{profile:-lc_p}%{!profile:-lc}}"
54 -#define LIBGCC_SPEC "%{msoft-float:-lfloat} %{mfloat-abi=soft*:-lfloat} -lgcc"
55 +#define LIBGCC_SPEC "-lgcc"
57 #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"