Mercurial > hg > aboriginal
annotate root-filesystem.sh @ 744:759adf5a0fe9
Refactor so include.sh mostly just sets environment variables. Move read_arch_dir to function and call it explicitly (no more need for $NO_ARCH). Make blank_tempdir a function, called explicitly by stages when needed, with some sanity checks. Insert prerequisite tests to later stages so they can detect failure early and provide an explicit erro rmessage, and have those tests happen before blanking $WORK dir, to preserve debugging info. Make buildall.sh depend on prerequisite tests rather than trying to avoid calling later stages (and thus do flow control from asynchronous context). Add FAIL_QUIET option so buildall.sh doesn't spam the log with the new prerequisite error messages.
author | Rob Landley <rob@landley.net> |
---|---|
date | Thu, 11 Jun 2009 05:42:51 -0500 |
parents | 5f5c3747f475 |
children | 34f9a88336a8 |
rev | line source |
---|---|
177 | 1 #!/bin/bash |
43
6d16887ec084
Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2 |
6d16887ec084
Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3 # Get lots of predefined environment variables and shell functions. |
6d16887ec084
Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4 |
669 | 5 source sources/include.sh || exit 1 |
96
137ba51ee993
Delete output directories on re-run, teach build to log and build multiple
Rob Landley <rob@landley.net>
parents:
85
diff
changeset
|
6 |
744
759adf5a0fe9
Refactor so include.sh mostly just sets environment variables. Move read_arch_dir to function and call it explicitly (no more need for $NO_ARCH). Make blank_tempdir a function, called explicitly by stages when needed, with some sanity checks. Insert prerequisite tests to later stages so they can detect failure early and provide an explicit erro rmessage, and have those tests happen before blanking $WORK dir, to preserve debugging info. Make buildall.sh depend on prerequisite tests rather than trying to avoid calling later stages (and thus do flow control from asynchronous context). Add FAIL_QUIET option so buildall.sh doesn't spam the log with the new prerequisite error messages.
Rob Landley <rob@landley.net>
parents:
737
diff
changeset
|
7 # Parse the sources/targets/$1 directory |
759adf5a0fe9
Refactor so include.sh mostly just sets environment variables. Move read_arch_dir to function and call it explicitly (no more need for $NO_ARCH). Make blank_tempdir a function, called explicitly by stages when needed, with some sanity checks. Insert prerequisite tests to later stages so they can detect failure early and provide an explicit erro rmessage, and have those tests happen before blanking $WORK dir, to preserve debugging info. Make buildall.sh depend on prerequisite tests rather than trying to avoid calling later stages (and thus do flow control from asynchronous context). Add FAIL_QUIET option so buildall.sh doesn't spam the log with the new prerequisite error messages.
Rob Landley <rob@landley.net>
parents:
737
diff
changeset
|
8 |
759adf5a0fe9
Refactor so include.sh mostly just sets environment variables. Move read_arch_dir to function and call it explicitly (no more need for $NO_ARCH). Make blank_tempdir a function, called explicitly by stages when needed, with some sanity checks. Insert prerequisite tests to later stages so they can detect failure early and provide an explicit erro rmessage, and have those tests happen before blanking $WORK dir, to preserve debugging info. Make buildall.sh depend on prerequisite tests rather than trying to avoid calling later stages (and thus do flow control from asynchronous context). Add FAIL_QUIET option so buildall.sh doesn't spam the log with the new prerequisite error messages.
Rob Landley <rob@landley.net>
parents:
737
diff
changeset
|
9 read_arch_dir "$1" |
759adf5a0fe9
Refactor so include.sh mostly just sets environment variables. Move read_arch_dir to function and call it explicitly (no more need for $NO_ARCH). Make blank_tempdir a function, called explicitly by stages when needed, with some sanity checks. Insert prerequisite tests to later stages so they can detect failure early and provide an explicit erro rmessage, and have those tests happen before blanking $WORK dir, to preserve debugging info. Make buildall.sh depend on prerequisite tests rather than trying to avoid calling later stages (and thus do flow control from asynchronous context). Add FAIL_QUIET option so buildall.sh doesn't spam the log with the new prerequisite error messages.
Rob Landley <rob@landley.net>
parents:
737
diff
changeset
|
10 |
759adf5a0fe9
Refactor so include.sh mostly just sets environment variables. Move read_arch_dir to function and call it explicitly (no more need for $NO_ARCH). Make blank_tempdir a function, called explicitly by stages when needed, with some sanity checks. Insert prerequisite tests to later stages so they can detect failure early and provide an explicit erro rmessage, and have those tests happen before blanking $WORK dir, to preserve debugging info. Make buildall.sh depend on prerequisite tests rather than trying to avoid calling later stages (and thus do flow control from asynchronous context). Add FAIL_QUIET option so buildall.sh doesn't spam the log with the new prerequisite error messages.
Rob Landley <rob@landley.net>
parents:
737
diff
changeset
|
11 # If this target has a base architecture that's already been built, use that. |
685
90ab1a1f4db5
Teach build not to rebuild base architecture toolchains. Factor out some common code while there.
Rob Landley <rob@landley.net>
parents:
675
diff
changeset
|
12 |
711
20ba34b54140
Rename mini-native.sh to root-filesystem.sh, since that's what it builds.
Rob Landley <rob@landley.net>
parents:
709
diff
changeset
|
13 check_for_base_arch root-filesystem || exit 0 |
685
90ab1a1f4db5
Teach build not to rebuild base architecture toolchains. Factor out some common code while there.
Rob Landley <rob@landley.net>
parents:
675
diff
changeset
|
14 |
744
759adf5a0fe9
Refactor so include.sh mostly just sets environment variables. Move read_arch_dir to function and call it explicitly (no more need for $NO_ARCH). Make blank_tempdir a function, called explicitly by stages when needed, with some sanity checks. Insert prerequisite tests to later stages so they can detect failure early and provide an explicit erro rmessage, and have those tests happen before blanking $WORK dir, to preserve debugging info. Make buildall.sh depend on prerequisite tests rather than trying to avoid calling later stages (and thus do flow control from asynchronous context). Add FAIL_QUIET option so buildall.sh doesn't spam the log with the new prerequisite error messages.
Rob Landley <rob@landley.net>
parents:
737
diff
changeset
|
15 # Die if our prerequisite isn't there. |
759adf5a0fe9
Refactor so include.sh mostly just sets environment variables. Move read_arch_dir to function and call it explicitly (no more need for $NO_ARCH). Make blank_tempdir a function, called explicitly by stages when needed, with some sanity checks. Insert prerequisite tests to later stages so they can detect failure early and provide an explicit erro rmessage, and have those tests happen before blanking $WORK dir, to preserve debugging info. Make buildall.sh depend on prerequisite tests rather than trying to avoid calling later stages (and thus do flow control from asynchronous context). Add FAIL_QUIET option so buildall.sh doesn't spam the log with the new prerequisite error messages.
Rob Landley <rob@landley.net>
parents:
737
diff
changeset
|
16 |
759adf5a0fe9
Refactor so include.sh mostly just sets environment variables. Move read_arch_dir to function and call it explicitly (no more need for $NO_ARCH). Make blank_tempdir a function, called explicitly by stages when needed, with some sanity checks. Insert prerequisite tests to later stages so they can detect failure early and provide an explicit erro rmessage, and have those tests happen before blanking $WORK dir, to preserve debugging info. Make buildall.sh depend on prerequisite tests rather than trying to avoid calling later stages (and thus do flow control from asynchronous context). Add FAIL_QUIET option so buildall.sh doesn't spam the log with the new prerequisite error messages.
Rob Landley <rob@landley.net>
parents:
737
diff
changeset
|
17 if [ -z "$(which "$ARCH-cc")" ] |
759adf5a0fe9
Refactor so include.sh mostly just sets environment variables. Move read_arch_dir to function and call it explicitly (no more need for $NO_ARCH). Make blank_tempdir a function, called explicitly by stages when needed, with some sanity checks. Insert prerequisite tests to later stages so they can detect failure early and provide an explicit erro rmessage, and have those tests happen before blanking $WORK dir, to preserve debugging info. Make buildall.sh depend on prerequisite tests rather than trying to avoid calling later stages (and thus do flow control from asynchronous context). Add FAIL_QUIET option so buildall.sh doesn't spam the log with the new prerequisite error messages.
Rob Landley <rob@landley.net>
parents:
737
diff
changeset
|
18 then |
759adf5a0fe9
Refactor so include.sh mostly just sets environment variables. Move read_arch_dir to function and call it explicitly (no more need for $NO_ARCH). Make blank_tempdir a function, called explicitly by stages when needed, with some sanity checks. Insert prerequisite tests to later stages so they can detect failure early and provide an explicit erro rmessage, and have those tests happen before blanking $WORK dir, to preserve debugging info. Make buildall.sh depend on prerequisite tests rather than trying to avoid calling later stages (and thus do flow control from asynchronous context). Add FAIL_QUIET option so buildall.sh doesn't spam the log with the new prerequisite error messages.
Rob Landley <rob@landley.net>
parents:
737
diff
changeset
|
19 [ -z "$FAIL_QUIET" ] && echo No "$ARCH-cc" in '$PATH'. >&2 |
759adf5a0fe9
Refactor so include.sh mostly just sets environment variables. Move read_arch_dir to function and call it explicitly (no more need for $NO_ARCH). Make blank_tempdir a function, called explicitly by stages when needed, with some sanity checks. Insert prerequisite tests to later stages so they can detect failure early and provide an explicit erro rmessage, and have those tests happen before blanking $WORK dir, to preserve debugging info. Make buildall.sh depend on prerequisite tests rather than trying to avoid calling later stages (and thus do flow control from asynchronous context). Add FAIL_QUIET option so buildall.sh doesn't spam the log with the new prerequisite error messages.
Rob Landley <rob@landley.net>
parents:
737
diff
changeset
|
20 exit 1 |
759adf5a0fe9
Refactor so include.sh mostly just sets environment variables. Move read_arch_dir to function and call it explicitly (no more need for $NO_ARCH). Make blank_tempdir a function, called explicitly by stages when needed, with some sanity checks. Insert prerequisite tests to later stages so they can detect failure early and provide an explicit erro rmessage, and have those tests happen before blanking $WORK dir, to preserve debugging info. Make buildall.sh depend on prerequisite tests rather than trying to avoid calling later stages (and thus do flow control from asynchronous context). Add FAIL_QUIET option so buildall.sh doesn't spam the log with the new prerequisite error messages.
Rob Landley <rob@landley.net>
parents:
737
diff
changeset
|
21 fi |
759adf5a0fe9
Refactor so include.sh mostly just sets environment variables. Move read_arch_dir to function and call it explicitly (no more need for $NO_ARCH). Make blank_tempdir a function, called explicitly by stages when needed, with some sanity checks. Insert prerequisite tests to later stages so they can detect failure early and provide an explicit erro rmessage, and have those tests happen before blanking $WORK dir, to preserve debugging info. Make buildall.sh depend on prerequisite tests rather than trying to avoid calling later stages (and thus do flow control from asynchronous context). Add FAIL_QUIET option so buildall.sh doesn't spam the log with the new prerequisite error messages.
Rob Landley <rob@landley.net>
parents:
737
diff
changeset
|
22 |
759adf5a0fe9
Refactor so include.sh mostly just sets environment variables. Move read_arch_dir to function and call it explicitly (no more need for $NO_ARCH). Make blank_tempdir a function, called explicitly by stages when needed, with some sanity checks. Insert prerequisite tests to later stages so they can detect failure early and provide an explicit erro rmessage, and have those tests happen before blanking $WORK dir, to preserve debugging info. Make buildall.sh depend on prerequisite tests rather than trying to avoid calling later stages (and thus do flow control from asynchronous context). Add FAIL_QUIET option so buildall.sh doesn't spam the log with the new prerequisite error messages.
Rob Landley <rob@landley.net>
parents:
737
diff
changeset
|
23 # Announce start of stage. |
759adf5a0fe9
Refactor so include.sh mostly just sets environment variables. Move read_arch_dir to function and call it explicitly (no more need for $NO_ARCH). Make blank_tempdir a function, called explicitly by stages when needed, with some sanity checks. Insert prerequisite tests to later stages so they can detect failure early and provide an explicit erro rmessage, and have those tests happen before blanking $WORK dir, to preserve debugging info. Make buildall.sh depend on prerequisite tests rather than trying to avoid calling later stages (and thus do flow control from asynchronous context). Add FAIL_QUIET option so buildall.sh doesn't spam the log with the new prerequisite error messages.
Rob Landley <rob@landley.net>
parents:
737
diff
changeset
|
24 |
759adf5a0fe9
Refactor so include.sh mostly just sets environment variables. Move read_arch_dir to function and call it explicitly (no more need for $NO_ARCH). Make blank_tempdir a function, called explicitly by stages when needed, with some sanity checks. Insert prerequisite tests to later stages so they can detect failure early and provide an explicit erro rmessage, and have those tests happen before blanking $WORK dir, to preserve debugging info. Make buildall.sh depend on prerequisite tests rather than trying to avoid calling later stages (and thus do flow control from asynchronous context). Add FAIL_QUIET option so buildall.sh doesn't spam the log with the new prerequisite error messages.
Rob Landley <rob@landley.net>
parents:
737
diff
changeset
|
25 echo -e "$NATIVE_COLOR" |
485
b0438691e9e1
Move color selection into ./config. (The default colors don't look great on a white background.)
Rob Landley <rob@landley.net>
parents:
484
diff
changeset
|
26 echo "=== Building minimal native development environment" |
395
c2b290c1df40
Upgrade BUILD_SHORT to make a small busybox+uClibc system in /usr, with top level symlinks (/bin, /lib, etc) and adjustments to boot script and run-emulator.
Rob Landley <rob@landley.net>
parents:
390
diff
changeset
|
27 |
744
759adf5a0fe9
Refactor so include.sh mostly just sets environment variables. Move read_arch_dir to function and call it explicitly (no more need for $NO_ARCH). Make blank_tempdir a function, called explicitly by stages when needed, with some sanity checks. Insert prerequisite tests to later stages so they can detect failure early and provide an explicit erro rmessage, and have those tests happen before blanking $WORK dir, to preserve debugging info. Make buildall.sh depend on prerequisite tests rather than trying to avoid calling later stages (and thus do flow control from asynchronous context). Add FAIL_QUIET option so buildall.sh doesn't spam the log with the new prerequisite error messages.
Rob Landley <rob@landley.net>
parents:
737
diff
changeset
|
28 blank_tempdir "$WORK" |
759adf5a0fe9
Refactor so include.sh mostly just sets environment variables. Move read_arch_dir to function and call it explicitly (no more need for $NO_ARCH). Make blank_tempdir a function, called explicitly by stages when needed, with some sanity checks. Insert prerequisite tests to later stages so they can detect failure early and provide an explicit erro rmessage, and have those tests happen before blanking $WORK dir, to preserve debugging info. Make buildall.sh depend on prerequisite tests rather than trying to avoid calling later stages (and thus do flow control from asynchronous context). Add FAIL_QUIET option so buildall.sh doesn't spam the log with the new prerequisite error messages.
Rob Landley <rob@landley.net>
parents:
737
diff
changeset
|
29 blank_tempdir "$NATIVE_ROOT" |
96
137ba51ee993
Delete output directories on re-run, teach build to log and build multiple
Rob Landley <rob@landley.net>
parents:
85
diff
changeset
|
30 |
658
dc5512d734f0
Actually put MANIFEST into mini-native.
Rob Landley <rob@landley.net>
parents:
633
diff
changeset
|
31 # Determine which directory layout we're using |
dc5512d734f0
Actually put MANIFEST into mini-native.
Rob Landley <rob@landley.net>
parents:
633
diff
changeset
|
32 |
496
3cebbc0b0723
Rename (invert) NATIVE_NOTOOLCHAIN and NATIVE_NOTOOLSDIR, and tweak colors again.
Rob Landley <rob@landley.net>
parents:
485
diff
changeset
|
33 if [ ! -z "${NATIVE_TOOLSDIR}" ] |
331
d2820523ee06
When doing BUILD_SHORT (without development tools), use / instead of /tools.
Rob Landley <rob@landley.net>
parents:
326
diff
changeset
|
34 then |
423
8029eb9a4a8c
Split out BUILD_NOTOOLS from BUILD_SHORT.
Rob Landley <rob@landley.net>
parents:
417
diff
changeset
|
35 mkdir -p "${TOOLS}/bin" || dienow |
43
6d16887ec084
Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
36 |
331
d2820523ee06
When doing BUILD_SHORT (without development tools), use / instead of /tools.
Rob Landley <rob@landley.net>
parents:
326
diff
changeset
|
37 # Tell the wrapper script where to find the dynamic linker. |
d2820523ee06
When doing BUILD_SHORT (without development tools), use / instead of /tools.
Rob Landley <rob@landley.net>
parents:
326
diff
changeset
|
38 export UCLIBC_DYNAMIC_LINKER=/tools/lib/ld-uClibc.so.0 |
597
3d67228ceb1e
Rename $NATIVE to $NATIVE_ROOT and allow it to be supplied externally so system-image.sh can package up an arbitrary native root filesystem source dir.
Rob Landley <rob@landley.net>
parents:
579
diff
changeset
|
39 UCLIBC_TOPDIR="${NATIVE_ROOT}" |
521
e7d1db74c942
More fiddling to make /tools vs /usr work.
Rob Landley <rob@landley.net>
parents:
519
diff
changeset
|
40 UCLIBC_DLPREFIX="/tools" |
331
d2820523ee06
When doing BUILD_SHORT (without development tools), use / instead of /tools.
Rob Landley <rob@landley.net>
parents:
326
diff
changeset
|
41 else |
661
75cffdfe71fe
If the root filesystem is read only, the /home mount point already needs to exist.
Rob Landley <rob@landley.net>
parents:
658
diff
changeset
|
42 mkdir -p "${NATIVE_ROOT}"/{tmp,proc,sys,dev,etc,home} || dienow |
521
e7d1db74c942
More fiddling to make /tools vs /usr work.
Rob Landley <rob@landley.net>
parents:
519
diff
changeset
|
43 UCLIBC_TOPDIR="${TOOLS}" |
735
feec13d32dde
Squashfs needs an /etc/resolv.conf, not just /usr/etc/resolv.conf
Rob Landley <rob@landley.net>
parents:
726
diff
changeset
|
44 for i in bin sbin lib etc |
423
8029eb9a4a8c
Split out BUILD_NOTOOLS from BUILD_SHORT.
Rob Landley <rob@landley.net>
parents:
417
diff
changeset
|
45 do |
8029eb9a4a8c
Split out BUILD_NOTOOLS from BUILD_SHORT.
Rob Landley <rob@landley.net>
parents:
417
diff
changeset
|
46 mkdir -p "$TOOLS/$i" || dienow |
597
3d67228ceb1e
Rename $NATIVE to $NATIVE_ROOT and allow it to be supplied externally so system-image.sh can package up an arbitrary native root filesystem source dir.
Rob Landley <rob@landley.net>
parents:
579
diff
changeset
|
47 ln -s "usr/$i" "${NATIVE_ROOT}/$i" || dienow |
423
8029eb9a4a8c
Split out BUILD_NOTOOLS from BUILD_SHORT.
Rob Landley <rob@landley.net>
parents:
417
diff
changeset
|
48 done |
331
d2820523ee06
When doing BUILD_SHORT (without development tools), use / instead of /tools.
Rob Landley <rob@landley.net>
parents:
326
diff
changeset
|
49 fi |
395
c2b290c1df40
Upgrade BUILD_SHORT to make a small busybox+uClibc system in /usr, with top level symlinks (/bin, /lib, etc) and adjustments to boot script and run-emulator.
Rob Landley <rob@landley.net>
parents:
390
diff
changeset
|
50 |
553
80f3356577fc
Move kernel building from mini-native to package-mini-native in preparation for initramfs packaging option.
Rob Landley <rob@landley.net>
parents:
546
diff
changeset
|
51 # Install Linux kernel headers. |
50
5aeba79b8f5f
Remove qemu build (it's in cross-compiler.sh now), move uClibc build right
Rob Landley <rob@landley.net>
parents:
46
diff
changeset
|
52 |
43
6d16887ec084
Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
53 setupfor linux |
6d16887ec084
Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
54 # Install Linux kernel headers (for use by uClibc). |
278
f878f79763c7
Use make -j to install kernel headers.
Rob Landley <rob@landley.net>
parents:
223
diff
changeset
|
55 make headers_install -j "$CPUS" ARCH="${KARCH}" INSTALL_HDR_PATH="${TOOLS}" && |
540
d0b059fd91a8
Link include/asm/page.h to include/sys/user.h, in case people try to build old packages.
Rob Landley <rob@landley.net>
parents:
537
diff
changeset
|
56 # This makes some very old package builds happy. |
d0b059fd91a8
Link include/asm/page.h to include/sys/user.h, in case people try to build old packages.
Rob Landley <rob@landley.net>
parents:
537
diff
changeset
|
57 ln -s ../sys/user.h "${TOOLS}/include/asm/page.h" && |
301
309b574a5059
Redo the $CLEANUP logic to a cleanup function in include.sh (meaning if a
Rob Landley <rob@landley.net>
parents:
295
diff
changeset
|
58 cd .. |
43
6d16887ec084
Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
59 |
301
309b574a5059
Redo the $CLEANUP logic to a cleanup function in include.sh (meaning if a
Rob Landley <rob@landley.net>
parents:
295
diff
changeset
|
60 cleanup linux |
43
6d16887ec084
Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
61 |
50
5aeba79b8f5f
Remove qemu build (it's in cross-compiler.sh now), move uClibc build right
Rob Landley <rob@landley.net>
parents:
46
diff
changeset
|
62 # Build and install uClibc. (We could just copy the one from the compiler |
5aeba79b8f5f
Remove qemu build (it's in cross-compiler.sh now), move uClibc build right
Rob Landley <rob@landley.net>
parents:
46
diff
changeset
|
63 # toolchain, but this is cleaner.) |
5aeba79b8f5f
Remove qemu build (it's in cross-compiler.sh now), move uClibc build right
Rob Landley <rob@landley.net>
parents:
46
diff
changeset
|
64 |
5aeba79b8f5f
Remove qemu build (it's in cross-compiler.sh now), move uClibc build right
Rob Landley <rob@landley.net>
parents:
46
diff
changeset
|
65 setupfor uClibc |
530
ea7a010e5c47
Add ldd/readelf/ldconfig to cross and native toolchains, and teach build to fallback to stable miniconfig when miniconfig-alt is absent.
Rob Landley <rob@landley.net>
parents:
527
diff
changeset
|
66 make CROSS="${ARCH}-" KCONFIG_ALLCONFIG="$(getconfig uClibc)" allnoconfig && |
713
9282f84b31a1
Add NATIVE_TOOLCHAIN=only, to build _just_ the native toolchain (sae set of packages as the cross compiler, only --enable-shared and with uClibc++).
Rob Landley <rob@landley.net>
parents:
711
diff
changeset
|
67 cp .config "${WORK}"/config-uClibc || dienow |
533
b970ffb2eb4d
Work around problem with the make -j dependencies of uClibc.
Rob Landley <rob@landley.net>
parents:
530
diff
changeset
|
68 |
b970ffb2eb4d
Work around problem with the make -j dependencies of uClibc.
Rob Landley <rob@landley.net>
parents:
530
diff
changeset
|
69 # Alas, if we feed install and install_utils to make at the same time with |
b970ffb2eb4d
Work around problem with the make -j dependencies of uClibc.
Rob Landley <rob@landley.net>
parents:
530
diff
changeset
|
70 # -j > 1, it dies. Not SMP safe. |
b970ffb2eb4d
Work around problem with the make -j dependencies of uClibc.
Rob Landley <rob@landley.net>
parents:
530
diff
changeset
|
71 for i in install install_utils |
b970ffb2eb4d
Work around problem with the make -j dependencies of uClibc.
Rob Landley <rob@landley.net>
parents:
530
diff
changeset
|
72 do |
b970ffb2eb4d
Work around problem with the make -j dependencies of uClibc.
Rob Landley <rob@landley.net>
parents:
530
diff
changeset
|
73 make CROSS="${ARCH}-" KERNEL_HEADERS="${TOOLS}/include" \ |
709
64cc63ad26ce
Add BUILD_VERBOSE config option.
Rob Landley <rob@landley.net>
parents:
701
diff
changeset
|
74 PREFIX="${UCLIBC_TOPDIR}/" $VERBOSITY \ |
533
b970ffb2eb4d
Work around problem with the make -j dependencies of uClibc.
Rob Landley <rob@landley.net>
parents:
530
diff
changeset
|
75 RUNTIME_PREFIX="$UCLIBC_DLPREFIX/" DEVEL_PREFIX="$UCLIBC_DLPREFIX/" \ |
b970ffb2eb4d
Work around problem with the make -j dependencies of uClibc.
Rob Landley <rob@landley.net>
parents:
530
diff
changeset
|
76 UCLIBC_LDSO_NAME=ld-uClibc -j $CPUS $i || dienow |
b970ffb2eb4d
Work around problem with the make -j dependencies of uClibc.
Rob Landley <rob@landley.net>
parents:
530
diff
changeset
|
77 done |
721
f0ede6d6c952
Do canadian cross static toolchains properly, via buildall.sh.
Rob Landley <rob@landley.net>
parents:
716
diff
changeset
|
78 |
f0ede6d6c952
Do canadian cross static toolchains properly, via buildall.sh.
Rob Landley <rob@landley.net>
parents:
716
diff
changeset
|
79 # There's no way to specify a prefix for the uClibc utils; rename them by hand. |
f0ede6d6c952
Do canadian cross static toolchains properly, via buildall.sh.
Rob Landley <rob@landley.net>
parents:
716
diff
changeset
|
80 |
f0ede6d6c952
Do canadian cross static toolchains properly, via buildall.sh.
Rob Landley <rob@landley.net>
parents:
716
diff
changeset
|
81 if [ ! -z "$PROGRAM_PREFIX" ] |
f0ede6d6c952
Do canadian cross static toolchains properly, via buildall.sh.
Rob Landley <rob@landley.net>
parents:
716
diff
changeset
|
82 then |
f0ede6d6c952
Do canadian cross static toolchains properly, via buildall.sh.
Rob Landley <rob@landley.net>
parents:
716
diff
changeset
|
83 for i in ldd readelf |
f0ede6d6c952
Do canadian cross static toolchains properly, via buildall.sh.
Rob Landley <rob@landley.net>
parents:
716
diff
changeset
|
84 do |
f0ede6d6c952
Do canadian cross static toolchains properly, via buildall.sh.
Rob Landley <rob@landley.net>
parents:
716
diff
changeset
|
85 mv "${TOOLS}"/bin/{"$i","${PROGRAM_PREFIX}$i"} || dienow |
f0ede6d6c952
Do canadian cross static toolchains properly, via buildall.sh.
Rob Landley <rob@landley.net>
parents:
716
diff
changeset
|
86 done |
f0ede6d6c952
Do canadian cross static toolchains properly, via buildall.sh.
Rob Landley <rob@landley.net>
parents:
716
diff
changeset
|
87 fi |
f0ede6d6c952
Do canadian cross static toolchains properly, via buildall.sh.
Rob Landley <rob@landley.net>
parents:
716
diff
changeset
|
88 |
301
309b574a5059
Redo the $CLEANUP logic to a cleanup function in include.sh (meaning if a
Rob Landley <rob@landley.net>
parents:
295
diff
changeset
|
89 cd .. |
50
5aeba79b8f5f
Remove qemu build (it's in cross-compiler.sh now), move uClibc build right
Rob Landley <rob@landley.net>
parents:
46
diff
changeset
|
90 |
301
309b574a5059
Redo the $CLEANUP logic to a cleanup function in include.sh (meaning if a
Rob Landley <rob@landley.net>
parents:
295
diff
changeset
|
91 cleanup uClibc |
50
5aeba79b8f5f
Remove qemu build (it's in cross-compiler.sh now), move uClibc build right
Rob Landley <rob@landley.net>
parents:
46
diff
changeset
|
92 |
598
5fa326c07bc4
Change NATIVE_TOOLCHAIN to work like all the other config variables: unset gives the default behavior.
Rob Landley <rob@landley.net>
parents:
597
diff
changeset
|
93 if [ "$NATIVE_TOOLCHAIN" == "none" ] |
496
3cebbc0b0723
Rename (invert) NATIVE_NOTOOLCHAIN and NATIVE_NOTOOLSDIR, and tweak colors again.
Rob Landley <rob@landley.net>
parents:
485
diff
changeset
|
94 then |
510
d6182f514567
A system without development headers doesn't need static libraries either.
Rob Landley <rob@landley.net>
parents:
503
diff
changeset
|
95 # If we're not installing a compiler, delete the headers, static libs, |
d6182f514567
A system without development headers doesn't need static libraries either.
Rob Landley <rob@landley.net>
parents:
503
diff
changeset
|
96 # and example source code. |
d6182f514567
A system without development headers doesn't need static libraries either.
Rob Landley <rob@landley.net>
parents:
503
diff
changeset
|
97 |
496
3cebbc0b0723
Rename (invert) NATIVE_NOTOOLCHAIN and NATIVE_NOTOOLSDIR, and tweak colors again.
Rob Landley <rob@landley.net>
parents:
485
diff
changeset
|
98 rm -rf "${TOOLS}"/include && |
510
d6182f514567
A system without development headers doesn't need static libraries either.
Rob Landley <rob@landley.net>
parents:
503
diff
changeset
|
99 rm -rf "${TOOLS}"/lib/*.a && |
496
3cebbc0b0723
Rename (invert) NATIVE_NOTOOLCHAIN and NATIVE_NOTOOLSDIR, and tweak colors again.
Rob Landley <rob@landley.net>
parents:
485
diff
changeset
|
100 rm -rf "${TOOLS}/src" || dienow |
3cebbc0b0723
Rename (invert) NATIVE_NOTOOLCHAIN and NATIVE_NOTOOLSDIR, and tweak colors again.
Rob Landley <rob@landley.net>
parents:
485
diff
changeset
|
101 |
3cebbc0b0723
Rename (invert) NATIVE_NOTOOLCHAIN and NATIVE_NOTOOLSDIR, and tweak colors again.
Rob Landley <rob@landley.net>
parents:
485
diff
changeset
|
102 elif [ "$NATIVE_TOOLCHAIN" == "headers" ] |
423
8029eb9a4a8c
Split out BUILD_NOTOOLS from BUILD_SHORT.
Rob Landley <rob@landley.net>
parents:
417
diff
changeset
|
103 then |
8029eb9a4a8c
Split out BUILD_NOTOOLS from BUILD_SHORT.
Rob Landley <rob@landley.net>
parents:
417
diff
changeset
|
104 |
496
3cebbc0b0723
Rename (invert) NATIVE_NOTOOLCHAIN and NATIVE_NOTOOLSDIR, and tweak colors again.
Rob Landley <rob@landley.net>
parents:
485
diff
changeset
|
105 # If you want to use a compiler other than gcc, you need to keep the headers, |
3cebbc0b0723
Rename (invert) NATIVE_NOTOOLCHAIN and NATIVE_NOTOOLSDIR, and tweak colors again.
Rob Landley <rob@landley.net>
parents:
485
diff
changeset
|
106 # so do nothing here. |
3cebbc0b0723
Rename (invert) NATIVE_NOTOOLCHAIN and NATIVE_NOTOOLSDIR, and tweak colors again.
Rob Landley <rob@landley.net>
parents:
485
diff
changeset
|
107 echo |
423
8029eb9a4a8c
Split out BUILD_NOTOOLS from BUILD_SHORT.
Rob Landley <rob@landley.net>
parents:
417
diff
changeset
|
108 |
310
3a1ae92d6f6a
Teach BUILD_SHORT to remove include files (saving ~5 megs), and move the
Rob Landley <rob@landley.net>
parents:
306
diff
changeset
|
109 else |
50
5aeba79b8f5f
Remove qemu build (it's in cross-compiler.sh now), move uClibc build right
Rob Landley <rob@landley.net>
parents:
46
diff
changeset
|
110 |
43
6d16887ec084
Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
111 # Build and install native binutils |
6d16887ec084
Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
112 |
6d16887ec084
Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
113 setupfor binutils build-binutils |
737
5f5c3747f475
Use $ARCH-cc instead of $ARCH-gcc where possible. (pcc, llvm, tcc, qcc...)
Rob Landley <rob@landley.net>
parents:
735
diff
changeset
|
114 CC="${FROM_ARCH}-cc" AR="${FROM_ARCH}-ar" "${CURSRC}/configure" --prefix="${TOOLS}" \ |
714
db04bd3c11e0
First pass at canadian cross toolchain build. Result doesn't actually work yet, but it builds.
Rob Landley <rob@landley.net>
parents:
713
diff
changeset
|
115 --build="${CROSS_HOST}" --host="${FROM_HOST}" --target="${CROSS_TARGET}" \ |
db04bd3c11e0
First pass at canadian cross toolchain build. Result doesn't actually work yet, but it builds.
Rob Landley <rob@landley.net>
parents:
713
diff
changeset
|
116 --disable-nls --disable-shared --disable-multilib --disable-werror \ |
db04bd3c11e0
First pass at canadian cross toolchain build. Result doesn't actually work yet, but it builds.
Rob Landley <rob@landley.net>
parents:
713
diff
changeset
|
117 --program-prefix="$PROGRAM_PREFIX" $BINUTILS_FLAGS && |
293
cdd26f8acc35
Update to gcc 4.1.2->4.2.2. Still doesn't fix the internal compiler error
Rob Landley <rob@landley.net>
parents:
284
diff
changeset
|
118 make -j $CPUS configure-host && |
714
db04bd3c11e0
First pass at canadian cross toolchain build. Result doesn't actually work yet, but it builds.
Rob Landley <rob@landley.net>
parents:
713
diff
changeset
|
119 make -j $CPUS CFLAGS="-O2 $STATIC_FLAGS" && |
293
cdd26f8acc35
Update to gcc 4.1.2->4.2.2. Still doesn't fix the internal compiler error
Rob Landley <rob@landley.net>
parents:
284
diff
changeset
|
120 make -j $CPUS install && |
43
6d16887ec084
Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
121 cd .. && |
6d16887ec084
Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
122 mkdir -p "${TOOLS}/include" && |
301
309b574a5059
Redo the $CLEANUP logic to a cleanup function in include.sh (meaning if a
Rob Landley <rob@landley.net>
parents:
295
diff
changeset
|
123 cp binutils/include/libiberty.h "${TOOLS}/include" |
43
6d16887ec084
Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
124 |
301
309b574a5059
Redo the $CLEANUP logic to a cleanup function in include.sh (meaning if a
Rob Landley <rob@landley.net>
parents:
295
diff
changeset
|
125 cleanup binutils build-binutils |
43
6d16887ec084
Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
126 |
6d16887ec084
Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
127 # Build and install native gcc, with c++ support this time. |
6d16887ec084
Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
128 |
223
f6973e090c4f
Update mini-native for the new tarball strategy.
Rob Landley <rob@landley.net>
parents:
221
diff
changeset
|
129 setupfor gcc-core build-gcc |
f6973e090c4f
Update mini-native for the new tarball strategy.
Rob Landley <rob@landley.net>
parents:
221
diff
changeset
|
130 setupfor gcc-g++ build-gcc gcc-core |
50
5aeba79b8f5f
Remove qemu build (it's in cross-compiler.sh now), move uClibc build right
Rob Landley <rob@landley.net>
parents:
46
diff
changeset
|
131 # GCC tries to "help out in the kitchen" by screwing up the linux include |
5aeba79b8f5f
Remove qemu build (it's in cross-compiler.sh now), move uClibc build right
Rob Landley <rob@landley.net>
parents:
46
diff
changeset
|
132 # files. Cut out those bits with sed and throw them away. |
295
bbfb6e7bf7e6
Add first pass at Super Hitachi platform.
Rob Landley <rob@landley.net>
parents:
294
diff
changeset
|
133 sed -i 's@^STMP_FIX.*@@' "${CURSRC}/gcc/Makefile.in" && |
46
eeddef87a747
Still doesn't work, but doesn't work better.
Rob Landley <rob@landley.net>
parents:
44
diff
changeset
|
134 # GCC has some deep assumptions about the name of the cross-compiler it should |
eeddef87a747
Still doesn't work, but doesn't work better.
Rob Landley <rob@landley.net>
parents:
44
diff
changeset
|
135 # be using. These assumptions are wrong, and lots of redundant corrections |
294
87df194d555d
Back to gcc 4.1.2 until I find a large enough rock to fix the soft-float thing.
Rob Landley <rob@landley.net>
parents:
293
diff
changeset
|
136 # are required to make it stop. |
737
5f5c3747f475
Use $ARCH-cc instead of $ARCH-gcc where possible. (pcc, llvm, tcc, qcc...)
Rob Landley <rob@landley.net>
parents:
735
diff
changeset
|
137 CC="${FROM_ARCH}-cc" AR="${FROM_ARCH}-ar" AS="${FROM_ARCH}-as" \ |
714
db04bd3c11e0
First pass at canadian cross toolchain build. Result doesn't actually work yet, but it builds.
Rob Landley <rob@landley.net>
parents:
713
diff
changeset
|
138 LD="${FROM_ARCH}-ld" NM="${FROM_ARCH}-nm" \ |
db04bd3c11e0
First pass at canadian cross toolchain build. Result doesn't actually work yet, but it builds.
Rob Landley <rob@landley.net>
parents:
713
diff
changeset
|
139 CC_FOR_TARGET="${ARCH}-cc" AR_FOR_TARGET="${ARCH}-ar" \ |
737
5f5c3747f475
Use $ARCH-cc instead of $ARCH-gcc where possible. (pcc, llvm, tcc, qcc...)
Rob Landley <rob@landley.net>
parents:
735
diff
changeset
|
140 NM_FOR_TARGET="${ARCH}-nm" GCC_FOR_TARGET="${ARCH}-cc" \ |
714
db04bd3c11e0
First pass at canadian cross toolchain build. Result doesn't actually work yet, but it builds.
Rob Landley <rob@landley.net>
parents:
713
diff
changeset
|
141 CXX_FOR_TARGET="${ARCH}-g++" \ |
632
4ab92aee351c
Gcc 4.2 needs three more environment variables set to emit a native compiler.
Rob Landley <rob@landley.net>
parents:
626
diff
changeset
|
142 ac_cv_path_AR_FOR_TARGET="${ARCH}-ar" \ |
4ab92aee351c
Gcc 4.2 needs three more environment variables set to emit a native compiler.
Rob Landley <rob@landley.net>
parents:
626
diff
changeset
|
143 ac_cv_path_RANLIB_FOR_TARGET="${ARCH}-ranlib" \ |
4ab92aee351c
Gcc 4.2 needs three more environment variables set to emit a native compiler.
Rob Landley <rob@landley.net>
parents:
626
diff
changeset
|
144 ac_cv_path_NM_FOR_TARGET="${ARCH}-nm" \ |
294
87df194d555d
Back to gcc 4.1.2 until I find a large enough rock to fix the soft-float thing.
Rob Landley <rob@landley.net>
parents:
293
diff
changeset
|
145 "${CURSRC}/configure" --prefix="${TOOLS}" --disable-multilib \ |
43
6d16887ec084
Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
146 --build="${CROSS_HOST}" --host="${CROSS_TARGET}" --target="${CROSS_TARGET}" \ |
6d16887ec084
Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
147 --enable-long-long --enable-c99 --enable-shared --enable-threads=posix \ |
6d16887ec084
Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
148 --enable-__cxa_atexit --disable-nls --enable-languages=c,c++ \ |
714
db04bd3c11e0
First pass at canadian cross toolchain build. Result doesn't actually work yet, but it builds.
Rob Landley <rob@landley.net>
parents:
713
diff
changeset
|
149 --disable-libstdcxx-pch --program-prefix="$PROGRAM_PREFIX" \ |
443
716b7af6d8c3
Build libsupc++.a in preparation for building uClibc++.
Rob Landley <rob@landley.net>
parents:
432
diff
changeset
|
150 $GCC_FLAGS && |
517
89b2e2c55b28
Give mini-native.sh the same xgcc bypass trick cross-compiler.sh uses.
Rob Landley <rob@landley.net>
parents:
516
diff
changeset
|
151 mkdir gcc && |
89b2e2c55b28
Give mini-native.sh the same xgcc bypass trick cross-compiler.sh uses.
Rob Landley <rob@landley.net>
parents:
516
diff
changeset
|
152 ln -s `which "${ARCH}-gcc"` gcc/xgcc && |
293
cdd26f8acc35
Update to gcc 4.1.2->4.2.2. Still doesn't fix the internal compiler error
Rob Landley <rob@landley.net>
parents:
284
diff
changeset
|
153 make -j $CPUS configure-host && |
714
db04bd3c11e0
First pass at canadian cross toolchain build. Result doesn't actually work yet, but it builds.
Rob Landley <rob@landley.net>
parents:
713
diff
changeset
|
154 make -j $CPUS all-gcc LDFLAGS="$STATIC_FLAGS" && |
456
2a308aa24aec
Make gcc stop putting stuff in a lib64 directory on x86-64 even when we --disable-multilib, and remove spurious uClibc warnings about trying to use the cross compiler to "make allnoconfig".
Rob Landley <rob@landley.net>
parents:
453
diff
changeset
|
155 # Work around gcc bug; we disabled multilib but it doesn't always notice. |
2a308aa24aec
Make gcc stop putting stuff in a lib64 directory on x86-64 even when we --disable-multilib, and remove spurious uClibc warnings about trying to use the cross compiler to "make allnoconfig".
Rob Landley <rob@landley.net>
parents:
453
diff
changeset
|
156 ln -s lib "$TOOLS/lib64" && |
293
cdd26f8acc35
Update to gcc 4.1.2->4.2.2. Still doesn't fix the internal compiler error
Rob Landley <rob@landley.net>
parents:
284
diff
changeset
|
157 make -j $CPUS install-gcc && |
456
2a308aa24aec
Make gcc stop putting stuff in a lib64 directory on x86-64 even when we --disable-multilib, and remove spurious uClibc warnings about trying to use the cross compiler to "make allnoconfig".
Rob Landley <rob@landley.net>
parents:
453
diff
changeset
|
158 rm "$TOOLS/lib64" && |
721
f0ede6d6c952
Do canadian cross static toolchains properly, via buildall.sh.
Rob Landley <rob@landley.net>
parents:
716
diff
changeset
|
159 ln -s "${PROGRAM_PREFIX}gcc" "${TOOLS}/bin/${PROGRAM_PREFIX}cc" && |
443
716b7af6d8c3
Build libsupc++.a in preparation for building uClibc++.
Rob Landley <rob@landley.net>
parents:
432
diff
changeset
|
160 # Now we need to beat libsupc++ out of gcc (which uClibc++ needs to build). |
716b7af6d8c3
Build libsupc++.a in preparation for building uClibc++.
Rob Landley <rob@landley.net>
parents:
432
diff
changeset
|
161 # But don't want to build the whole of libstdc++-v3 because |
716b7af6d8c3
Build libsupc++.a in preparation for building uClibc++.
Rob Landley <rob@landley.net>
parents:
432
diff
changeset
|
162 # A) we're using uClibc++ instead, B) the build breaks. |
716b7af6d8c3
Build libsupc++.a in preparation for building uClibc++.
Rob Landley <rob@landley.net>
parents:
432
diff
changeset
|
163 make -j $CPUS configure-target-libstdc++-v3 && |
716b7af6d8c3
Build libsupc++.a in preparation for building uClibc++.
Rob Landley <rob@landley.net>
parents:
432
diff
changeset
|
164 cd "$CROSS_TARGET"/libstdc++-v3/libsupc++ && |
716b7af6d8c3
Build libsupc++.a in preparation for building uClibc++.
Rob Landley <rob@landley.net>
parents:
432
diff
changeset
|
165 make -j $CPUS && |
716b7af6d8c3
Build libsupc++.a in preparation for building uClibc++.
Rob Landley <rob@landley.net>
parents:
432
diff
changeset
|
166 mv .libs/libsupc++.a "$TOOLS"/lib && |
716b7af6d8c3
Build libsupc++.a in preparation for building uClibc++.
Rob Landley <rob@landley.net>
parents:
432
diff
changeset
|
167 cd ../../../.. |
43
6d16887ec084
Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
168 |
301
309b574a5059
Redo the $CLEANUP logic to a cleanup function in include.sh (meaning if a
Rob Landley <rob@landley.net>
parents:
295
diff
changeset
|
169 cleanup gcc-core build-gcc |
43
6d16887ec084
Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
170 |
716
ff2cd7c539b2
Make canadian cross work by nailing binutils files to gcc's forehead.
Rob Landley <rob@landley.net>
parents:
714
diff
changeset
|
171 # Move the gcc internal libraries and headers somewhere sane |
43
6d16887ec084
Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
172 |
6d16887ec084
Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
173 mkdir -p "${TOOLS}"/gcc && |
6d16887ec084
Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
174 mv "${TOOLS}"/lib/gcc/*/*/include "${TOOLS}"/gcc/include && |
6d16887ec084
Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
175 mv "${TOOLS}"/lib/gcc/*/* "${TOOLS}"/gcc/lib && |
716
ff2cd7c539b2
Make canadian cross work by nailing binutils files to gcc's forehead.
Rob Landley <rob@landley.net>
parents:
714
diff
changeset
|
176 |
ff2cd7c539b2
Make canadian cross work by nailing binutils files to gcc's forehead.
Rob Landley <rob@landley.net>
parents:
714
diff
changeset
|
177 # Rub gcc's nose in the binutils output. |
ff2cd7c539b2
Make canadian cross work by nailing binutils files to gcc's forehead.
Rob Landley <rob@landley.net>
parents:
714
diff
changeset
|
178 cd "${TOOLS}"/libexec/gcc/*/*/ && |
ff2cd7c539b2
Make canadian cross work by nailing binutils files to gcc's forehead.
Rob Landley <rob@landley.net>
parents:
714
diff
changeset
|
179 cp -s "../../../../$CROSS_TARGET/bin/"* . && |
ff2cd7c539b2
Make canadian cross work by nailing binutils files to gcc's forehead.
Rob Landley <rob@landley.net>
parents:
714
diff
changeset
|
180 |
ff2cd7c539b2
Make canadian cross work by nailing binutils files to gcc's forehead.
Rob Landley <rob@landley.net>
parents:
714
diff
changeset
|
181 # build and install gcc wrapper script. |
714
db04bd3c11e0
First pass at canadian cross toolchain build. Result doesn't actually work yet, but it builds.
Rob Landley <rob@landley.net>
parents:
713
diff
changeset
|
182 mv "${TOOLS}/bin/${PROGRAM_PREFIX}gcc" "${TOOLS}/bin/${PROGRAM_PREFIX}rawgcc" && |
db04bd3c11e0
First pass at canadian cross toolchain build. Result doesn't actually work yet, but it builds.
Rob Landley <rob@landley.net>
parents:
713
diff
changeset
|
183 "${FROM_ARCH}-gcc" "${SOURCES}"/toys/ccwrap.c -Os -s \ |
db04bd3c11e0
First pass at canadian cross toolchain build. Result doesn't actually work yet, but it builds.
Rob Landley <rob@landley.net>
parents:
713
diff
changeset
|
184 -o "${TOOLS}/bin/${PROGRAM_PREFIX}gcc" -DGIMME_AN_S $STATIC_FLAGS \ |
db04bd3c11e0
First pass at canadian cross toolchain build. Result doesn't actually work yet, but it builds.
Rob Landley <rob@landley.net>
parents:
713
diff
changeset
|
185 -DGCC_UNWRAPPED_NAME='"'"${PROGRAM_PREFIX}rawgcc"'"' && |
443
716b7af6d8c3
Build libsupc++.a in preparation for building uClibc++.
Rob Landley <rob@landley.net>
parents:
432
diff
changeset
|
186 |
716b7af6d8c3
Build libsupc++.a in preparation for building uClibc++.
Rob Landley <rob@landley.net>
parents:
432
diff
changeset
|
187 # Wrap C++ |
714
db04bd3c11e0
First pass at canadian cross toolchain build. Result doesn't actually work yet, but it builds.
Rob Landley <rob@landley.net>
parents:
713
diff
changeset
|
188 mv "${TOOLS}/bin/${PROGRAM_PREFIX}g++" "${TOOLS}/bin/${PROGRAM_PREFIX}rawg++" && |
db04bd3c11e0
First pass at canadian cross toolchain build. Result doesn't actually work yet, but it builds.
Rob Landley <rob@landley.net>
parents:
713
diff
changeset
|
189 ln "${TOOLS}/bin/${PROGRAM_PREFIX}gcc" "${TOOLS}/bin/${PROGRAM_PREFIX}g++" && |
db04bd3c11e0
First pass at canadian cross toolchain build. Result doesn't actually work yet, but it builds.
Rob Landley <rob@landley.net>
parents:
713
diff
changeset
|
190 rm "${TOOLS}/bin/${PROGRAM_PREFIX}c++" && |
db04bd3c11e0
First pass at canadian cross toolchain build. Result doesn't actually work yet, but it builds.
Rob Landley <rob@landley.net>
parents:
713
diff
changeset
|
191 ln -s "${PROGRAM_PREFIX}g++" "${TOOLS}/bin/${PROGRAM_PREFIX}c++" |
43
6d16887ec084
Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
192 |
432
b697ea9d73f3
Use the wrapper for g++, and clean up compiler install slightly better.
Rob Landley <rob@landley.net>
parents:
424
diff
changeset
|
193 cleanup "${TOOLS}"/{lib/gcc,gcc/lib/install-tools,bin/${ARCH}-unknown-*} |
43
6d16887ec084
Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
194 |
711
20ba34b54140
Rename mini-native.sh to root-filesystem.sh, since that's what it builds.
Rob Landley <rob@landley.net>
parents:
709
diff
changeset
|
195 # Tell future packages to link against the libraries in root-filesystem, |
443
716b7af6d8c3
Build libsupc++.a in preparation for building uClibc++.
Rob Landley <rob@landley.net>
parents:
432
diff
changeset
|
196 # rather than the ones in the cross compiler directory. |
716b7af6d8c3
Build libsupc++.a in preparation for building uClibc++.
Rob Landley <rob@landley.net>
parents:
432
diff
changeset
|
197 |
716b7af6d8c3
Build libsupc++.a in preparation for building uClibc++.
Rob Landley <rob@landley.net>
parents:
432
diff
changeset
|
198 export WRAPPER_TOPDIR="${TOOLS}" |
716b7af6d8c3
Build libsupc++.a in preparation for building uClibc++.
Rob Landley <rob@landley.net>
parents:
432
diff
changeset
|
199 |
716b7af6d8c3
Build libsupc++.a in preparation for building uClibc++.
Rob Landley <rob@landley.net>
parents:
432
diff
changeset
|
200 # Build and install uClibc++ |
716b7af6d8c3
Build libsupc++.a in preparation for building uClibc++.
Rob Landley <rob@landley.net>
parents:
432
diff
changeset
|
201 |
447
4ed02d53fc92
Add C++ support to native compiler, based on uClibc++.
Rob Landley <rob@landley.net>
parents:
445
diff
changeset
|
202 setupfor uClibc++ |
4ed02d53fc92
Add C++ support to native compiler, based on uClibc++.
Rob Landley <rob@landley.net>
parents:
445
diff
changeset
|
203 CROSS= make defconfig && |
701
b4a9c0084f2f
Converted ARMV5L from OABI to EABI with VFP support. Added patches for uClibc and uClibc++ to deal with Unwind Exception handling, made uClibc++ pull in libgcc_eh for this as well, and disabled SJLJ exceptions for ARMV5L EABI, which is apparently required, so --enable-sjlj-exceptions was added to the details file for all the other arches. Also correct the GENTOO_CHOST variable for armeb.
Mark Miller <mark@mirell.org>
parents:
693
diff
changeset
|
204 sed -r -i 's/(UCLIBCXX_HAS_(TLS|LONG_DOUBLE))=y/# \1 is not set/' .config && |
447
4ed02d53fc92
Add C++ support to native compiler, based on uClibc++.
Rob Landley <rob@landley.net>
parents:
445
diff
changeset
|
205 sed -r -i '/UCLIBCXX_RUNTIME_PREFIX=/s/".*"/""/' .config && |
4ed02d53fc92
Add C++ support to native compiler, based on uClibc++.
Rob Landley <rob@landley.net>
parents:
445
diff
changeset
|
206 CROSS= make oldconfig && |
4ed02d53fc92
Add C++ support to native compiler, based on uClibc++.
Rob Landley <rob@landley.net>
parents:
445
diff
changeset
|
207 CROSS="$ARCH"- make && |
4ed02d53fc92
Add C++ support to native compiler, based on uClibc++.
Rob Landley <rob@landley.net>
parents:
445
diff
changeset
|
208 CROSS= make install PREFIX="${TOOLS}/c++" && |
4ed02d53fc92
Add C++ support to native compiler, based on uClibc++.
Rob Landley <rob@landley.net>
parents:
445
diff
changeset
|
209 |
4ed02d53fc92
Add C++ support to native compiler, based on uClibc++.
Rob Landley <rob@landley.net>
parents:
445
diff
changeset
|
210 # Move libraries somewhere useful. |
4ed02d53fc92
Add C++ support to native compiler, based on uClibc++.
Rob Landley <rob@landley.net>
parents:
445
diff
changeset
|
211 |
4ed02d53fc92
Add C++ support to native compiler, based on uClibc++.
Rob Landley <rob@landley.net>
parents:
445
diff
changeset
|
212 mv "${TOOLS}"/c++/lib/* "${TOOLS}"/lib && |
4ed02d53fc92
Add C++ support to native compiler, based on uClibc++.
Rob Landley <rob@landley.net>
parents:
445
diff
changeset
|
213 rm -rf "${TOOLS}"/c++/{lib,bin} && |
470
919121ba6c5c
Move uClibc 0.9.30 build from unstable to stable (and an unrelated fix: symlink uClibc++.a like .so).
Rob Landley <rob@landley.net>
parents:
456
diff
changeset
|
214 ln -s libuClibc++.so "${TOOLS}"/lib/libstdc++.so && |
479 | 215 ln -s libuClibc++.a "${TOOLS}"/lib/libstdc++.a && |
216 cd .. | |
447
4ed02d53fc92
Add C++ support to native compiler, based on uClibc++.
Rob Landley <rob@landley.net>
parents:
445
diff
changeset
|
217 |
4ed02d53fc92
Add C++ support to native compiler, based on uClibc++.
Rob Landley <rob@landley.net>
parents:
445
diff
changeset
|
218 cleanup uClibc++ |
443
716b7af6d8c3
Build libsupc++.a in preparation for building uClibc++.
Rob Landley <rob@landley.net>
parents:
432
diff
changeset
|
219 |
713
9282f84b31a1
Add NATIVE_TOOLCHAIN=only, to build _just_ the native toolchain (sae set of packages as the cross compiler, only --enable-shared and with uClibc++).
Rob Landley <rob@landley.net>
parents:
711
diff
changeset
|
220 fi # End of NATIVE_TOOLCHAIN build |
9282f84b31a1
Add NATIVE_TOOLCHAIN=only, to build _just_ the native toolchain (sae set of packages as the cross compiler, only --enable-shared and with uClibc++).
Rob Landley <rob@landley.net>
parents:
711
diff
changeset
|
221 |
9282f84b31a1
Add NATIVE_TOOLCHAIN=only, to build _just_ the native toolchain (sae set of packages as the cross compiler, only --enable-shared and with uClibc++).
Rob Landley <rob@landley.net>
parents:
711
diff
changeset
|
222 if [ "$NATIVE_TOOLCHAIN" != "only" ] |
9282f84b31a1
Add NATIVE_TOOLCHAIN=only, to build _just_ the native toolchain (sae set of packages as the cross compiler, only --enable-shared and with uClibc++).
Rob Landley <rob@landley.net>
parents:
711
diff
changeset
|
223 then |
9282f84b31a1
Add NATIVE_TOOLCHAIN=only, to build _just_ the native toolchain (sae set of packages as the cross compiler, only --enable-shared and with uClibc++).
Rob Landley <rob@landley.net>
parents:
711
diff
changeset
|
224 |
9282f84b31a1
Add NATIVE_TOOLCHAIN=only, to build _just_ the native toolchain (sae set of packages as the cross compiler, only --enable-shared and with uClibc++).
Rob Landley <rob@landley.net>
parents:
711
diff
changeset
|
225 # Copy qemu setup script and so on. |
9282f84b31a1
Add NATIVE_TOOLCHAIN=only, to build _just_ the native toolchain (sae set of packages as the cross compiler, only --enable-shared and with uClibc++).
Rob Landley <rob@landley.net>
parents:
711
diff
changeset
|
226 |
9282f84b31a1
Add NATIVE_TOOLCHAIN=only, to build _just_ the native toolchain (sae set of packages as the cross compiler, only --enable-shared and with uClibc++).
Rob Landley <rob@landley.net>
parents:
711
diff
changeset
|
227 cp -r "${SOURCES}/native/." "${TOOLS}/" && |
9282f84b31a1
Add NATIVE_TOOLCHAIN=only, to build _just_ the native toolchain (sae set of packages as the cross compiler, only --enable-shared and with uClibc++).
Rob Landley <rob@landley.net>
parents:
711
diff
changeset
|
228 cp "$SRCDIR"/MANIFEST "${TOOLS}/src" && |
9282f84b31a1
Add NATIVE_TOOLCHAIN=only, to build _just_ the native toolchain (sae set of packages as the cross compiler, only --enable-shared and with uClibc++).
Rob Landley <rob@landley.net>
parents:
711
diff
changeset
|
229 cp "${WORK}/config-uClibc" "${TOOLS}/src/config-uClibc" || dienow |
9282f84b31a1
Add NATIVE_TOOLCHAIN=only, to build _just_ the native toolchain (sae set of packages as the cross compiler, only --enable-shared and with uClibc++).
Rob Landley <rob@landley.net>
parents:
711
diff
changeset
|
230 |
9282f84b31a1
Add NATIVE_TOOLCHAIN=only, to build _just_ the native toolchain (sae set of packages as the cross compiler, only --enable-shared and with uClibc++).
Rob Landley <rob@landley.net>
parents:
711
diff
changeset
|
231 if [ -z "${NATIVE_TOOLSDIR}" ] |
9282f84b31a1
Add NATIVE_TOOLCHAIN=only, to build _just_ the native toolchain (sae set of packages as the cross compiler, only --enable-shared and with uClibc++).
Rob Landley <rob@landley.net>
parents:
711
diff
changeset
|
232 then |
9282f84b31a1
Add NATIVE_TOOLCHAIN=only, to build _just_ the native toolchain (sae set of packages as the cross compiler, only --enable-shared and with uClibc++).
Rob Landley <rob@landley.net>
parents:
711
diff
changeset
|
233 sed -i -e 's@/tools/@/usr/@g' "${TOOLS}/sbin/init.sh" || dienow |
9282f84b31a1
Add NATIVE_TOOLCHAIN=only, to build _just_ the native toolchain (sae set of packages as the cross compiler, only --enable-shared and with uClibc++).
Rob Landley <rob@landley.net>
parents:
711
diff
changeset
|
234 fi |
9282f84b31a1
Add NATIVE_TOOLCHAIN=only, to build _just_ the native toolchain (sae set of packages as the cross compiler, only --enable-shared and with uClibc++).
Rob Landley <rob@landley.net>
parents:
711
diff
changeset
|
235 |
9282f84b31a1
Add NATIVE_TOOLCHAIN=only, to build _just_ the native toolchain (sae set of packages as the cross compiler, only --enable-shared and with uClibc++).
Rob Landley <rob@landley.net>
parents:
711
diff
changeset
|
236 # Build and install toybox |
9282f84b31a1
Add NATIVE_TOOLCHAIN=only, to build _just_ the native toolchain (sae set of packages as the cross compiler, only --enable-shared and with uClibc++).
Rob Landley <rob@landley.net>
parents:
711
diff
changeset
|
237 |
9282f84b31a1
Add NATIVE_TOOLCHAIN=only, to build _just_ the native toolchain (sae set of packages as the cross compiler, only --enable-shared and with uClibc++).
Rob Landley <rob@landley.net>
parents:
711
diff
changeset
|
238 setupfor toybox |
9282f84b31a1
Add NATIVE_TOOLCHAIN=only, to build _just_ the native toolchain (sae set of packages as the cross compiler, only --enable-shared and with uClibc++).
Rob Landley <rob@landley.net>
parents:
711
diff
changeset
|
239 make defconfig && |
9282f84b31a1
Add NATIVE_TOOLCHAIN=only, to build _just_ the native toolchain (sae set of packages as the cross compiler, only --enable-shared and with uClibc++).
Rob Landley <rob@landley.net>
parents:
711
diff
changeset
|
240 if [ -z "$USE_TOYBOX" ] |
9282f84b31a1
Add NATIVE_TOOLCHAIN=only, to build _just_ the native toolchain (sae set of packages as the cross compiler, only --enable-shared and with uClibc++).
Rob Landley <rob@landley.net>
parents:
711
diff
changeset
|
241 then |
726
db5cb617339a
Centrialize BUILD_STATIC and make it apply to more of root-filesystem.sh
Rob Landley <rob@landley.net>
parents:
721
diff
changeset
|
242 CFLAGS="$CFLAGS $STATIC_FLAGS" make CROSS="${ARCH}-" && |
713
9282f84b31a1
Add NATIVE_TOOLCHAIN=only, to build _just_ the native toolchain (sae set of packages as the cross compiler, only --enable-shared and with uClibc++).
Rob Landley <rob@landley.net>
parents:
711
diff
changeset
|
243 cp toybox "$TOOLS/bin" && |
9282f84b31a1
Add NATIVE_TOOLCHAIN=only, to build _just_ the native toolchain (sae set of packages as the cross compiler, only --enable-shared and with uClibc++).
Rob Landley <rob@landley.net>
parents:
711
diff
changeset
|
244 ln -s toybox "$TOOLS/bin/patch" && |
9282f84b31a1
Add NATIVE_TOOLCHAIN=only, to build _just_ the native toolchain (sae set of packages as the cross compiler, only --enable-shared and with uClibc++).
Rob Landley <rob@landley.net>
parents:
711
diff
changeset
|
245 ln -s toybox "$TOOLS/bin/oneit" && |
9282f84b31a1
Add NATIVE_TOOLCHAIN=only, to build _just_ the native toolchain (sae set of packages as the cross compiler, only --enable-shared and with uClibc++).
Rob Landley <rob@landley.net>
parents:
711
diff
changeset
|
246 ln -s toybox "$TOOLS/bin/netcat" && |
9282f84b31a1
Add NATIVE_TOOLCHAIN=only, to build _just_ the native toolchain (sae set of packages as the cross compiler, only --enable-shared and with uClibc++).
Rob Landley <rob@landley.net>
parents:
711
diff
changeset
|
247 cd .. |
9282f84b31a1
Add NATIVE_TOOLCHAIN=only, to build _just_ the native toolchain (sae set of packages as the cross compiler, only --enable-shared and with uClibc++).
Rob Landley <rob@landley.net>
parents:
711
diff
changeset
|
248 else |
726
db5cb617339a
Centrialize BUILD_STATIC and make it apply to more of root-filesystem.sh
Rob Landley <rob@landley.net>
parents:
721
diff
changeset
|
249 CFLAGS="$CFLAGS $STATIC_FLAGS" \ |
db5cb617339a
Centrialize BUILD_STATIC and make it apply to more of root-filesystem.sh
Rob Landley <rob@landley.net>
parents:
721
diff
changeset
|
250 make install_flat PREFIX="${TOOLS}"/bin CROSS="${ARCH}-" && |
713
9282f84b31a1
Add NATIVE_TOOLCHAIN=only, to build _just_ the native toolchain (sae set of packages as the cross compiler, only --enable-shared and with uClibc++).
Rob Landley <rob@landley.net>
parents:
711
diff
changeset
|
251 cd .. |
9282f84b31a1
Add NATIVE_TOOLCHAIN=only, to build _just_ the native toolchain (sae set of packages as the cross compiler, only --enable-shared and with uClibc++).
Rob Landley <rob@landley.net>
parents:
711
diff
changeset
|
252 fi |
9282f84b31a1
Add NATIVE_TOOLCHAIN=only, to build _just_ the native toolchain (sae set of packages as the cross compiler, only --enable-shared and with uClibc++).
Rob Landley <rob@landley.net>
parents:
711
diff
changeset
|
253 |
9282f84b31a1
Add NATIVE_TOOLCHAIN=only, to build _just_ the native toolchain (sae set of packages as the cross compiler, only --enable-shared and with uClibc++).
Rob Landley <rob@landley.net>
parents:
711
diff
changeset
|
254 cleanup toybox |
9282f84b31a1
Add NATIVE_TOOLCHAIN=only, to build _just_ the native toolchain (sae set of packages as the cross compiler, only --enable-shared and with uClibc++).
Rob Landley <rob@landley.net>
parents:
711
diff
changeset
|
255 |
9282f84b31a1
Add NATIVE_TOOLCHAIN=only, to build _just_ the native toolchain (sae set of packages as the cross compiler, only --enable-shared and with uClibc++).
Rob Landley <rob@landley.net>
parents:
711
diff
changeset
|
256 # Build and install busybox |
9282f84b31a1
Add NATIVE_TOOLCHAIN=only, to build _just_ the native toolchain (sae set of packages as the cross compiler, only --enable-shared and with uClibc++).
Rob Landley <rob@landley.net>
parents:
711
diff
changeset
|
257 |
9282f84b31a1
Add NATIVE_TOOLCHAIN=only, to build _just_ the native toolchain (sae set of packages as the cross compiler, only --enable-shared and with uClibc++).
Rob Landley <rob@landley.net>
parents:
711
diff
changeset
|
258 setupfor busybox |
9282f84b31a1
Add NATIVE_TOOLCHAIN=only, to build _just_ the native toolchain (sae set of packages as the cross compiler, only --enable-shared and with uClibc++).
Rob Landley <rob@landley.net>
parents:
711
diff
changeset
|
259 make allyesconfig KCONFIG_ALLCONFIG="${SOURCES}/trimconfig-busybox" && |
9282f84b31a1
Add NATIVE_TOOLCHAIN=only, to build _just_ the native toolchain (sae set of packages as the cross compiler, only --enable-shared and with uClibc++).
Rob Landley <rob@landley.net>
parents:
711
diff
changeset
|
260 cp .config "${TOOLS}"/src/config-busybox && |
726
db5cb617339a
Centrialize BUILD_STATIC and make it apply to more of root-filesystem.sh
Rob Landley <rob@landley.net>
parents:
721
diff
changeset
|
261 LDFLAGS="$LDFLAGS $STATIC_FLAGS" \ |
db5cb617339a
Centrialize BUILD_STATIC and make it apply to more of root-filesystem.sh
Rob Landley <rob@landley.net>
parents:
721
diff
changeset
|
262 make -j $CPUS CROSS_COMPILE="${ARCH}-" $VERBOSITY && |
713
9282f84b31a1
Add NATIVE_TOOLCHAIN=only, to build _just_ the native toolchain (sae set of packages as the cross compiler, only --enable-shared and with uClibc++).
Rob Landley <rob@landley.net>
parents:
711
diff
changeset
|
263 make busybox.links && |
9282f84b31a1
Add NATIVE_TOOLCHAIN=only, to build _just_ the native toolchain (sae set of packages as the cross compiler, only --enable-shared and with uClibc++).
Rob Landley <rob@landley.net>
parents:
711
diff
changeset
|
264 cp busybox "${TOOLS}/bin" |
9282f84b31a1
Add NATIVE_TOOLCHAIN=only, to build _just_ the native toolchain (sae set of packages as the cross compiler, only --enable-shared and with uClibc++).
Rob Landley <rob@landley.net>
parents:
711
diff
changeset
|
265 |
9282f84b31a1
Add NATIVE_TOOLCHAIN=only, to build _just_ the native toolchain (sae set of packages as the cross compiler, only --enable-shared and with uClibc++).
Rob Landley <rob@landley.net>
parents:
711
diff
changeset
|
266 [ $? -ne 0 ] && dienow |
9282f84b31a1
Add NATIVE_TOOLCHAIN=only, to build _just_ the native toolchain (sae set of packages as the cross compiler, only --enable-shared and with uClibc++).
Rob Landley <rob@landley.net>
parents:
711
diff
changeset
|
267 |
9282f84b31a1
Add NATIVE_TOOLCHAIN=only, to build _just_ the native toolchain (sae set of packages as the cross compiler, only --enable-shared and with uClibc++).
Rob Landley <rob@landley.net>
parents:
711
diff
changeset
|
268 for i in $(sed 's@.*/@@' busybox.links) |
9282f84b31a1
Add NATIVE_TOOLCHAIN=only, to build _just_ the native toolchain (sae set of packages as the cross compiler, only --enable-shared and with uClibc++).
Rob Landley <rob@landley.net>
parents:
711
diff
changeset
|
269 do |
9282f84b31a1
Add NATIVE_TOOLCHAIN=only, to build _just_ the native toolchain (sae set of packages as the cross compiler, only --enable-shared and with uClibc++).
Rob Landley <rob@landley.net>
parents:
711
diff
changeset
|
270 # Allowed to fail. |
9282f84b31a1
Add NATIVE_TOOLCHAIN=only, to build _just_ the native toolchain (sae set of packages as the cross compiler, only --enable-shared and with uClibc++).
Rob Landley <rob@landley.net>
parents:
711
diff
changeset
|
271 ln -s busybox "${TOOLS}/bin/$i" 2>/dev/null |
9282f84b31a1
Add NATIVE_TOOLCHAIN=only, to build _just_ the native toolchain (sae set of packages as the cross compiler, only --enable-shared and with uClibc++).
Rob Landley <rob@landley.net>
parents:
711
diff
changeset
|
272 done |
9282f84b31a1
Add NATIVE_TOOLCHAIN=only, to build _just_ the native toolchain (sae set of packages as the cross compiler, only --enable-shared and with uClibc++).
Rob Landley <rob@landley.net>
parents:
711
diff
changeset
|
273 cd .. |
9282f84b31a1
Add NATIVE_TOOLCHAIN=only, to build _just_ the native toolchain (sae set of packages as the cross compiler, only --enable-shared and with uClibc++).
Rob Landley <rob@landley.net>
parents:
711
diff
changeset
|
274 |
9282f84b31a1
Add NATIVE_TOOLCHAIN=only, to build _just_ the native toolchain (sae set of packages as the cross compiler, only --enable-shared and with uClibc++).
Rob Landley <rob@landley.net>
parents:
711
diff
changeset
|
275 cleanup busybox |
9282f84b31a1
Add NATIVE_TOOLCHAIN=only, to build _just_ the native toolchain (sae set of packages as the cross compiler, only --enable-shared and with uClibc++).
Rob Landley <rob@landley.net>
parents:
711
diff
changeset
|
276 |
52
6d6551a37687
Add make to mini-native (required one more option switched on in uClibc), add
Rob Landley <rob@landley.net>
parents:
51
diff
changeset
|
277 # Build and install make |
6d6551a37687
Add make to mini-native (required one more option switched on in uClibc), add
Rob Landley <rob@landley.net>
parents:
51
diff
changeset
|
278 |
6d6551a37687
Add make to mini-native (required one more option switched on in uClibc), add
Rob Landley <rob@landley.net>
parents:
51
diff
changeset
|
279 setupfor make |
6d6551a37687
Add make to mini-native (required one more option switched on in uClibc), add
Rob Landley <rob@landley.net>
parents:
51
diff
changeset
|
280 CC="${ARCH}-gcc" ./configure --prefix="${TOOLS}" --build="${CROSS_HOST}" \ |
6d6551a37687
Add make to mini-native (required one more option switched on in uClibc), add
Rob Landley <rob@landley.net>
parents:
51
diff
changeset
|
281 --host="${CROSS_TARGET}" && |
182
fc827ab6166f
Autodetect number of processors and feed appropriate -j to make.
Rob Landley <rob@landley.net>
parents:
177
diff
changeset
|
282 make -j $CPUS && |
293
cdd26f8acc35
Update to gcc 4.1.2->4.2.2. Still doesn't fix the internal compiler error
Rob Landley <rob@landley.net>
parents:
284
diff
changeset
|
283 make -j $CPUS install && |
301
309b574a5059
Redo the $CLEANUP logic to a cleanup function in include.sh (meaning if a
Rob Landley <rob@landley.net>
parents:
295
diff
changeset
|
284 cd .. |
52
6d6551a37687
Add make to mini-native (required one more option switched on in uClibc), add
Rob Landley <rob@landley.net>
parents:
51
diff
changeset
|
285 |
301
309b574a5059
Redo the $CLEANUP logic to a cleanup function in include.sh (meaning if a
Rob Landley <rob@landley.net>
parents:
295
diff
changeset
|
286 cleanup make |
52
6d6551a37687
Add make to mini-native (required one more option switched on in uClibc), add
Rob Landley <rob@landley.net>
parents:
51
diff
changeset
|
287 |
713
9282f84b31a1
Add NATIVE_TOOLCHAIN=only, to build _just_ the native toolchain (sae set of packages as the cross compiler, only --enable-shared and with uClibc++).
Rob Landley <rob@landley.net>
parents:
711
diff
changeset
|
288 # Build and install bash. (Yes, this is an old version. It's intentional.) |
52
6d6551a37687
Add make to mini-native (required one more option switched on in uClibc), add
Rob Landley <rob@landley.net>
parents:
51
diff
changeset
|
289 |
6d6551a37687
Add make to mini-native (required one more option switched on in uClibc), add
Rob Landley <rob@landley.net>
parents:
51
diff
changeset
|
290 setupfor bash |
713
9282f84b31a1
Add NATIVE_TOOLCHAIN=only, to build _just_ the native toolchain (sae set of packages as the cross compiler, only --enable-shared and with uClibc++).
Rob Landley <rob@landley.net>
parents:
711
diff
changeset
|
291 # Remove existing /bin/sh link (busybox) so the bash install doesn't get upset. |
9282f84b31a1
Add NATIVE_TOOLCHAIN=only, to build _just_ the native toolchain (sae set of packages as the cross compiler, only --enable-shared and with uClibc++).
Rob Landley <rob@landley.net>
parents:
711
diff
changeset
|
292 #rm "$TOOLS"/bin/sh |
52
6d6551a37687
Add make to mini-native (required one more option switched on in uClibc), add
Rob Landley <rob@landley.net>
parents:
51
diff
changeset
|
293 # wire around some tests ./configure can't run when cross-compiling. |
6d6551a37687
Add make to mini-native (required one more option switched on in uClibc), add
Rob Landley <rob@landley.net>
parents:
51
diff
changeset
|
294 cat > config.cache << EOF && |
6d6551a37687
Add make to mini-native (required one more option switched on in uClibc), add
Rob Landley <rob@landley.net>
parents:
51
diff
changeset
|
295 ac_cv_func_setvbuf_reversed=no |
6d6551a37687
Add make to mini-native (required one more option switched on in uClibc), add
Rob Landley <rob@landley.net>
parents:
51
diff
changeset
|
296 bash_cv_sys_named_pipes=yes |
6d6551a37687
Add make to mini-native (required one more option switched on in uClibc), add
Rob Landley <rob@landley.net>
parents:
51
diff
changeset
|
297 bash_cv_have_mbstate_t=yes |
66
57f77c25b39d
Hit uClibc build with a large rock so it stops inserting hardwired paths in
Rob Landley <rob@landley.net>
parents:
63
diff
changeset
|
298 bash_cv_getenv_redef=no |
52
6d6551a37687
Add make to mini-native (required one more option switched on in uClibc), add
Rob Landley <rob@landley.net>
parents:
51
diff
changeset
|
299 EOF |
157
dff36fab9e7e
Of course there's a bug. (The ranlib fix was apparently a NOP, this should
Rob Landley <rob@landley.net>
parents:
155
diff
changeset
|
300 CC="${ARCH}-gcc" RANLIB="${ARCH}-ranlib" ./configure --prefix="${TOOLS}" \ |
153
106f3875f606
The bash build continues to be stupid. Force RANLIB.
Rob Landley <rob@landley.net>
parents:
131
diff
changeset
|
301 --build="${CROSS_HOST}" --host="${CROSS_TARGET}" --cache-file=config.cache \ |
106f3875f606
The bash build continues to be stupid. Force RANLIB.
Rob Landley <rob@landley.net>
parents:
131
diff
changeset
|
302 --without-bash-malloc --disable-readline && |
183
d2a27709d3b6
Fixup the -j stuff to actually work. (typo in gcc, and uClibc can't use it.)
Rob Landley <rob@landley.net>
parents:
182
diff
changeset
|
303 # note: doesn't work with -j |
d2a27709d3b6
Fixup the -j stuff to actually work. (typo in gcc, and uClibc can't use it.)
Rob Landley <rob@landley.net>
parents:
182
diff
changeset
|
304 make && |
52
6d6551a37687
Add make to mini-native (required one more option switched on in uClibc), add
Rob Landley <rob@landley.net>
parents:
51
diff
changeset
|
305 make install && |
6d6551a37687
Add make to mini-native (required one more option switched on in uClibc), add
Rob Landley <rob@landley.net>
parents:
51
diff
changeset
|
306 # Make bash the default shell. |
713
9282f84b31a1
Add NATIVE_TOOLCHAIN=only, to build _just_ the native toolchain (sae set of packages as the cross compiler, only --enable-shared and with uClibc++).
Rob Landley <rob@landley.net>
parents:
711
diff
changeset
|
307 ln -sf bash "${TOOLS}/bin/sh" && |
301
309b574a5059
Redo the $CLEANUP logic to a cleanup function in include.sh (meaning if a
Rob Landley <rob@landley.net>
parents:
295
diff
changeset
|
308 cd .. |
52
6d6551a37687
Add make to mini-native (required one more option switched on in uClibc), add
Rob Landley <rob@landley.net>
parents:
51
diff
changeset
|
309 |
301
309b574a5059
Redo the $CLEANUP logic to a cleanup function in include.sh (meaning if a
Rob Landley <rob@landley.net>
parents:
295
diff
changeset
|
310 cleanup bash |
52
6d6551a37687
Add make to mini-native (required one more option switched on in uClibc), add
Rob Landley <rob@landley.net>
parents:
51
diff
changeset
|
311 |
280
00ee362817e1
Cross-compile a native distcc for target.
Rob Landley <rob@landley.net>
parents:
278
diff
changeset
|
312 setupfor distcc |
544
fcdbdb1059fa
Commit 527 broke distccd. Fix it. (Cross compiling remains fiddly.)
Rob Landley <rob@landley.net>
parents:
540
diff
changeset
|
313 CC="${ARCH}-cc" ./configure --host="${CROSS_TARGET}" --prefix="${TOOLS}" \ |
613
518c8e257b3d
Fixes Mark Miller sent for distcc support.
Rob Landley <rob@landley.net>
parents:
598
diff
changeset
|
314 --with-included-popt --disable-Werror && |
293
cdd26f8acc35
Update to gcc 4.1.2->4.2.2. Still doesn't fix the internal compiler error
Rob Landley <rob@landley.net>
parents:
284
diff
changeset
|
315 make -j $CPUS && |
cdd26f8acc35
Update to gcc 4.1.2->4.2.2. Still doesn't fix the internal compiler error
Rob Landley <rob@landley.net>
parents:
284
diff
changeset
|
316 make -j $CPUS install && |
484 | 317 mkdir -p "${TOOLS}/distcc" || dienow |
318 | |
319 for i in gcc cc g++ c++ | |
320 do | |
321 ln -s ../bin/distcc "${TOOLS}/distcc/$i" || dienow | |
322 done | |
301
309b574a5059
Redo the $CLEANUP logic to a cleanup function in include.sh (meaning if a
Rob Landley <rob@landley.net>
parents:
295
diff
changeset
|
323 cd .. |
280
00ee362817e1
Cross-compile a native distcc for target.
Rob Landley <rob@landley.net>
parents:
278
diff
changeset
|
324 |
301
309b574a5059
Redo the $CLEANUP logic to a cleanup function in include.sh (meaning if a
Rob Landley <rob@landley.net>
parents:
295
diff
changeset
|
325 cleanup distcc |
280
00ee362817e1
Cross-compile a native distcc for target.
Rob Landley <rob@landley.net>
parents:
278
diff
changeset
|
326 |
83
8fb80545fe84
Move the "hello world" source into sources/toys. Build (in mini-native)
Rob Landley <rob@landley.net>
parents:
81
diff
changeset
|
327 # Put statically and dynamically linked hello world programs on there for |
315
7fe514d773b9
Install setup script even for BUILD_SHORT.
Rob Landley <rob@landley.net>
parents:
311
diff
changeset
|
328 # test purposes. |
83
8fb80545fe84
Move the "hello world" source into sources/toys. Build (in mini-native)
Rob Landley <rob@landley.net>
parents:
81
diff
changeset
|
329 |
713
9282f84b31a1
Add NATIVE_TOOLCHAIN=only, to build _just_ the native toolchain (sae set of packages as the cross compiler, only --enable-shared and with uClibc++).
Rob Landley <rob@landley.net>
parents:
711
diff
changeset
|
330 "${ARCH}-gcc" "${SOURCES}/toys/hello.c" -Os -s -o "${TOOLS}/bin/hello-dynamic" && |
315
7fe514d773b9
Install setup script even for BUILD_SHORT.
Rob Landley <rob@landley.net>
parents:
311
diff
changeset
|
331 "${ARCH}-gcc" "${SOURCES}/toys/hello.c" -Os -s -static -o "${TOOLS}/bin/hello-static" |
83
8fb80545fe84
Move the "hello world" source into sources/toys. Build (in mini-native)
Rob Landley <rob@landley.net>
parents:
81
diff
changeset
|
332 |
8fb80545fe84
Move the "hello world" source into sources/toys. Build (in mini-native)
Rob Landley <rob@landley.net>
parents:
81
diff
changeset
|
333 [ $? -ne 0 ] && dienow |
8fb80545fe84
Move the "hello world" source into sources/toys. Build (in mini-native)
Rob Landley <rob@landley.net>
parents:
81
diff
changeset
|
334 |
713
9282f84b31a1
Add NATIVE_TOOLCHAIN=only, to build _just_ the native toolchain (sae set of packages as the cross compiler, only --enable-shared and with uClibc++).
Rob Landley <rob@landley.net>
parents:
711
diff
changeset
|
335 fi # End of NATIVE_TOOLCHAIN != only |
9282f84b31a1
Add NATIVE_TOOLCHAIN=only, to build _just_ the native toolchain (sae set of packages as the cross compiler, only --enable-shared and with uClibc++).
Rob Landley <rob@landley.net>
parents:
711
diff
changeset
|
336 |
516
f846099333ac
I can see the man pages being potentially useful, but info pages are a complete waste of space.
Rob Landley <rob@landley.net>
parents:
510
diff
changeset
|
337 # Delete some unneeded files |
f846099333ac
I can see the man pages being potentially useful, but info pages are a complete waste of space.
Rob Landley <rob@landley.net>
parents:
510
diff
changeset
|
338 |
579
05a608d26600
Delete man pages (they take up almost 2 megs) and consolidate some code.
Rob Landley <rob@landley.net>
parents:
576
diff
changeset
|
339 rm -rf "${TOOLS}"/{info,man,libexec/gcc/*/*/install-tools} |
516
f846099333ac
I can see the man pages being potentially useful, but info pages are a complete waste of space.
Rob Landley <rob@landley.net>
parents:
510
diff
changeset
|
340 |
75
38e7e0cc3b9f
Build mksquashfs in the non-short cross-compiler, and use it at the end of
Rob Landley <rob@landley.net>
parents:
68
diff
changeset
|
341 # Clean up and package the result |
43
6d16887ec084
Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
342 |
53
3fd961e31444
Build a gcc wrapper for _target_, and add a "strip" command to halve the
Rob Landley <rob@landley.net>
parents:
52
diff
changeset
|
343 "${ARCH}-strip" "${TOOLS}"/{bin/*,sbin/*,libexec/gcc/*/*/*} |
633
d2cc6cb79afc
Don't strip .a and .o files, even with -strip-unneeded screws 'em up.
Rob Landley <rob@landley.net>
parents:
632
diff
changeset
|
344 "${ARCH}-strip" --strip-unneeded "${TOOLS}"/lib/*.so |
53
3fd961e31444
Build a gcc wrapper for _target_, and add a "strip" command to halve the
Rob Landley <rob@landley.net>
parents:
52
diff
changeset
|
345 |
711
20ba34b54140
Rename mini-native.sh to root-filesystem.sh, since that's what it builds.
Rob Landley <rob@landley.net>
parents:
709
diff
changeset
|
346 create_stage_tarball root-filesystem |
576
036dbe218036
Add BASE_ARCH support, so a hardware architecture can specify a base architecture and just provide a different kernel.
Rob Landley <rob@landley.net>
parents:
572
diff
changeset
|
347 |
50
5aeba79b8f5f
Remove qemu build (it's in cross-compiler.sh now), move uClibc build right
Rob Landley <rob@landley.net>
parents:
46
diff
changeset
|
348 # Color back to normal |
52
6d6551a37687
Add make to mini-native (required one more option switched on in uClibc), add
Rob Landley <rob@landley.net>
parents:
51
diff
changeset
|
349 echo -e "\e[0mBuild complete" |