- moved gcc_distribution into the legacy folder, as it relates to the legacy version of binutils & gcc
git-svn-id: file:///srv/svn/repos/haiku/buildtools/trunk@18091 a95241bf-73f2-0310-859d-f6bbb57e9c96
Diff
gcc_distribution/Changes | 138 --------------------------------------------------------------------------------
gcc_distribution/INSTALL | 118 --------------------------------------------------------------------------------
gcc_distribution/README | 157 --------------------------------------------------------------------------------
gcc_distribution/prepare_distribution.sh | 45 ---------------------------------------------
gcc_distribution/html-docs/create-docs.sh | 61 -------------------------------------------------------------
legacy/gcc_distribution/Changes | 138 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
legacy/gcc_distribution/INSTALL | 118 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
legacy/gcc_distribution/README | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
legacy/gcc_distribution/prepare_distribution.sh | 45 +++++++++++++++++++++++++++++++++++++++++++++
legacy/gcc_distribution/html-docs/create-docs.sh | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
10 files changed, 519 insertions(+), 519 deletions(-)
@@ -1,138 +1,0 @@
Changes (svn-logs) from version 041202 to 060710:
binutils:
------------------------------------------------------------------------
r10420 | zooey | 2004-12-13 18:28:20 +0100 (Mon, 13 Dec 2004) | 3 lines
- we no longer need to hard-patch ld to not allow undefined symbols in
objects, as we now do this via gcc-specs.
------------------------------------------------------------------------
r10421 | zooey | 2004-12-13 18:30:14 +0100 (Mon, 13 Dec 2004) | 4 lines
- we no longer hard-patch ld to not use relocation combination (combreloc),
as the default (using it) seems to generate slightly smaller results and
not break anything.
------------------------------------------------------------------------
r11253 | zooey | 2005-02-05 00:18:59 +0100 (Sat, 05 Feb 2005) | 5 lines
- patched $(MK_DOC) into the default dependencies, such that chow.c gets
built during the make process. Before, it was being built during the
install process, when gcc might not be available, if the install goes
into an empty folder. Now, installs in empty folders work properly.
------------------------------------------------------------------------
r11255 | zooey | 2005-02-05 00:37:16 +0100 (Sat, 05 Feb 2005) | 6 lines
- switched some compile-time dependencies to target dependencies, such that
cross-compiling with BeOS target works.
- tweaked build-procedure to allow for proper generation of a i586-pc-beos
cross-compiler on LINUX.
- added documentation for creation of cross-compiler.
------------------------------------------------------------------------
r11774 | bonefish | 2005-03-17 09:34:20 +0100 (Thu, 17 Mar 2005) | 1 line
Move trunk into respective module.
------------------------------------------------------------------------
r15035 | bonefish | 2005-11-19 22:01:04 +0100 (Sat, 19 Nov 2005) | 2 lines
Patch by Oliver to allow allow building with gcc 4.
------------------------------------------------------------------------
r15072 | bonefish | 2005-11-22 16:54:23 +0100 (Tue, 22 Nov 2005) | 2 lines
Moved the old binutils to their new home.
------------------------------------------------------------------------
gcc:
------------------------------------------------------------------------
r10418 | zooey | 2004-12-13 17:14:42 +0100 (Mon, 13 Dec 2004) | 2 lines
- added missing documentation for --relative-path-errors option.
------------------------------------------------------------------------
r10419 | zooey | 2004-12-13 17:17:00 +0100 (Mon, 13 Dec 2004) | 3 lines
- added --no-undefined to the specs so that we can drop a patch that changed
ld to use this as default.
------------------------------------------------------------------------
r10475 | shatty | 2004-12-16 04:46:43 +0100 (Thu, 16 Dec 2004) | 2 lines
provide convenience fixed(ios&) and scientific(ios&) inline functions
------------------------------------------------------------------------
r10545 | shatty | 2004-12-30 00:38:46 +0100 (Thu, 30 Dec 2004) | 2 lines
fixed scientific(ios& i) - thanks to John [Beta] Drinkwater
------------------------------------------------------------------------
r11255 | zooey | 2005-02-05 00:37:16 +0100 (Sat, 05 Feb 2005) | 6 lines
- switched some compile-time dependencies to target dependencies, such that
cross-compiling with BeOS target works.
- tweaked build-procedure to allow for proper generation of a i586-pc-beos
cross-compiler on LINUX.
- added documentation for creation of cross-compiler.
------------------------------------------------------------------------
r11421 | zooey | 2005-02-19 14:01:14 +0100 (Sat, 19 Feb 2005) | 15 lines
- Applied several (old, external) patches that enable the support for anonymous
structs and unions in C as well as in C++ (application of this patch has
been sugggested by execom through BeBits-talkback).
This mail-thread explains the problem & solution:
http://gcc.gnu.org/ml/gcc-bugs/1999-08n/msg00914.html
These are the patches that have been applied:
gcc-2.95-anon-struct-union.diff
gcc-2.95-c++-tidy.diff
gcc-2.95-c++-anon-struct.diff
gcc-2.95-c++-anon-struct2.diff
which can all be found here:
ftp://ftp.xraylith.wisc.edu/pub/khan/gnu-win32/cygwin/gcc-2.95/patches/
------------------------------------------------------------------------
r11774 | bonefish | 2005-03-17 09:34:20 +0100 (Thu, 17 Mar 2005) | 1 line
Move trunk into respective module.
------------------------------------------------------------------------
r14561 | bonefish | 2005-10-29 02:30:19 +0200 (Sat, 29 Oct 2005) | 1 line
Avoid a clash of two different RETURN enums. Happens under Linux; don't know
why not under BeOS.
------------------------------------------------------------------------
r14562 | bonefish | 2005-10-29 02:56:06 +0200 (Sat, 29 Oct 2005) | 3 lines
When bash 3 is run POSIX compatible (e.g. as /bin/sh), invoking "trap"
without command argument is not allowed anymore.
------------------------------------------------------------------------
r14978 | nwhitehorn | 2005-11-17 01:47:53 +0100 (Thu, 17 Nov 2005) | 2 lines
Fixed libiberty to build on FreeBSD. A few more problems to go.
------------------------------------------------------------------------
r15071 | bonefish | 2005-11-22 16:53:32 +0100 (Tue, 22 Nov 2005) | 2 lines
Moved the old gcc to its new home.
------------------------------------------------------------------------
r16119 | zooey | 2006-01-28 15:35:27 +0100 (Sat, 28 Jan 2006) | 4 lines
moved USE_EGCS_MANGLED_NAMES from host to target config file in order to
generate "correct" (aka BeOS-specific) symbols when using the cross
compiler, too.
------------------------------------------------------------------------
r16140 | zooey | 2006-01-29 19:06:48 +0100 (Sun, 29 Jan 2006) | 4 lines
Added cc1plus as bootstrap-dependency such that fix_bdirectwin_typeinfo.cpp can
be compiled (it requires a c++-compiler, of course).
This fixes the build on R5.
------------------------------------------------------------------------
@@ -1,118 +1,0 @@
How to install gcc-2.95.3 under different versions of BeOS.
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
BeOS R5 (with or without BONE):
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
The compiler, linker and tools:
1. extract gcc-2.95.3_binutils-2.15.zip to /boot/develop/tools
2. if the folder /boot/develop/tools/gnupro exists, rename it
3. create the link:
/boot/develop/tools/gnupro
-> /boot/develop/tools/gcc-2.95.3_binutils-2.15
--------------------------------------------------------------------------
In order to switch between different compilers later, you just need to
adjust the link:
/boot/develop/tools/gnupro -> /boot/develop/tools/...
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
The new libstdc++ (optional but recommended):
1. rename /boot/develop/headers/cpp
2. execute this in Terminal (creates a link without dereferencing):
ln -snf /boot/develop/tools/gnupro/include/g++ /boot/develop/headers/cpp
3. rename /boot/beos/system/lib/libstdc++.r4.so (e.g. libstdc++.r4.so.R5)
4. copy /boot/develop/tools/gcc-2.95.3_binutils-2.15/lib/libstdc++.r4.so
to /boot/beos/system/lib/libstdc++.r4.so
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Dano:
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
The compiler, linker and tools:
1. extract gcc-2.95.3_binutils-2.15.zip to /boot/develop/tools
2. if the folder /boot/develop/tools/gnupro exists, rename it
3. create the link:
/boot/develop/tools/gnupro
-> /boot/develop/tools/gcc-2.95.3_binutils-2.15
4. extract sdk_gcc-2.95.3_binutils-2.15.zip to /boot/develop/tools
5. if the folder /boot/develop/tools/sdk exists, rename it
6. create the link:
/boot/develop/tools/sdk
-> /boot/develop/tools/sdk_gcc-2.95.3_binutils-2.15
--------------------------------------------------------------------------
In order to switch between different compilers later, you just need to
adjust the two links:
/boot/develop/tools/gnupro -> /boot/develop/tools/...
/boot/develop/tools/sdk -> /boot/develop/tools/...
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
The new libstdc++ (optional but recommended):
1. rename /boot/develop/headers/cpp
2. execute this in Terminal (creates a link without dereferencing):
ln -snf /boot/develop/tools/gnupro/include/g++ /boot/develop/headers/cpp
3. rename /boot/beos/system/lib/libstdc++.r4.so (e.g. libstdc++.r4.so.Dano)
4. copy /boot/develop/tools/gcc-2.95.3_binutils-2.15/lib/libstdc++.r4.so
to /boot/beos/system/lib/libstdc++.r4.so
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Zeta (untested, please tell me if it doesn't work):
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
The compiler, linker and tools (installed into the Zeta-devkit):
1. extract gcc-2.95.3_binutils-2.15.zip
to /etc/develop/zeta-r1-gcc2-x86/tools
2. if the folder /etc/develop/zeta-r1-gcc2-x86/tools/gnupro exists, rename it
3. create the link:
/etc/develop/zeta-r1-gcc2-x86/tools/gnupro
-> /etc/develop/zeta-r1-gcc2-x86/tools/gcc-2.95.3_binutils-2.15
4. extract sdk_gcc-2.95.3_binutils-2.15.zip
to /etc/develop/zeta-r1-gcc2-x86/tools
5. if the folder /etc/develop/zeta-r1-gcc2-x86/tools/sdk exists, rename it
6. create the link:
/etc/develop/zeta-r1-gcc2-x86/tools/sdk
-> /etc/develop/zeta-r1-gcc2-x86/tools/sdk_gcc-2.95.3_binutils-2.15
--------------------------------------------------------------------------
In order to switch between different compilers (for the Zeta target) later,
you just need to adjust the two links:
/etc/develop/zeta-r1-gcc2-x86/tools/gnupro
-> /etc/develop/zeta-r1-gcc2-x86/tools/...
/etc/develop/zeta-r1-gcc2-x86/tools/sdk
-> /etc/develop/zeta-r1-gcc2-x86/tools/...
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
The compiler, linker and tools (linked into the R5-devkit):
1. create the link:
/etc/develop/beos-r5-gcc2-x86/tools/gcc-2.95.3_binutils-2.15
-> /etc/develop/zeta-r1-gcc2-x86/tools/gcc-2.95.3_binutils-2.15
2. if the folder /etc/develop/beos-r5-gcc2-x86/tools/gnupro exists, rename it
3. create the link:
/etc/develop/beos-r5-gcc2-x86/tools/gnupro
-> /etc/develop/beos-r5-gcc2-x86/tools/gcc-2.95.3_binutils-2.15
--------------------------------------------------------------------------
In order to switch between different compilers (for the R5 target) later,
you just need to adjust the link:
/etc/develop/beos-r5-gcc2-x86/tools/gnupro
-> /etc/develop/beos-r5-gcc2-x86/tools/...
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
The new libstdc++ for target Zeta (optional but recommended):
1. rename /etc/develop/zeta-r1-gcc2-x86/headers/cpp
2. execute this in Terminal (creates a link without dereferencing):
ln -snf /etc/develop/zeta-r1-gcc2-x86/tools/gnupro/include/g++ /etc/develop/zeta-r1-gcc2-x86/headers/cpp
3. rename /boot/beos/system/lib/libstdc++.r4.so (e.g. libstdc++.r4.so.Zeta)
4. copy /etc/develop/zeta-r1-gcc2-x86/tools/gcc-2.95.3_binutils-2.15/lib/libstdc++.r4.so
to /boot/beos/system/lib/libstdc++.r4.so
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
The new libstdc++ for target R5 (optional but recommended):
1. rename /etc/develop/beos-r5-gcc2-x86/headers/cpp
2. execute this in Terminal (creates a link without dereferencing):
ln -snf /etc/develop/beos-r5-gcc2-x86/tools/gnupro/include/g++ /etc/develop/beos-r5-gcc2-x86/headers/cpp
3. rename /etc/develop/beos-r5-gcc2-x86/lib/x86/libstdc++.r4.so (e.g. libstdc++.r4.so.R5)
4. copy /etc/develop/beos-r5-gcc2-x86/tools/gcc-2.95.3_binutils-2.15/lib/libstdc++.r4.so
to /etc/develop/beos-r5-gcc2-x86/lib/x86/libstdc++.r4.so
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Have fun!
Please send questions & bug-reports to: Oliver Tappe <gcc@hirschkaefer.de>
@@ -1,157 +1,0 @@
This is a package of gcc-2.95.3 and binutils-2.15 for BeOS.
Please consult the file "INSTALL" for info about how to install this package.
This port is based on the work done by Takashi Toyoshima, which in turn is
based on the official gnupro-releases done by Fred Fish and others at Be.
Thanks to these guys and thanks to everyone who helped testing this new release!
Lots of patches have been applied to get gcc-2.95.3 working properly on BeOS,
you can find the gory details in the cvs-log-archives.
These are the main changes:
- this gcc-2.95.3 won't crash just because one is using iostreams and/or STL.
- an improved and less buggy libstdc++.r4.so is included (with new headers).
- the tool-chain now defaults to B_LOW_PRIORITY, such that you can do other
things while a large build is running. Thanks to Andrew Bachmann for
suggesting this. You can override the default with -priority=<prio>.
- optimization is much more reliable now (it really is a bad idea to
use -O2 or -O3 with older compilers, as the likelihood of things going
very wrong is high!).
This port should be more reliable when using -O2 or even -O3, but: YMMV!
- new html-documentation is included for all tools.
- the gcc-option '-shared' is now working again, '-nostart' is a (BeOS-
specific) synonym for it.
Bugs/Peculiarities:
- the default specs no longer include -lnet on R5, so some projects that are
relying on this implicit linking against libnet.so fail during linking
stage with messages like 'undefined reference to select' (or similar).
This can be fixed by explicitly adding -lnet to the build.
The reason for leaving out -lnet from the specs is that this is the way
things are done under Dano & Zeta and I'd like to avoid having to provide
different releases for each platform.
Anyway, if you really want to get back the original R5 behaviour, just change
the link
/boot/develop/tools/gnupro/lib/gcc-lib/i586-pc-beos/2.95.3-beos-xxx/specs
such that it points to specs.R5 and the R5-compatible specs should be active.
- gcc-2.95.3 (rightly) complains about code that calls delete on void*. This
code did not trigger any complaints with older compilers, but it probably
did not do what the programmer intended. If the pointer is in fact pointing
to an object, no destructors will be called, only the memory will be freed.
If that is the original intention, then the global operator delete should
be used instead:
void cleanup (void* cookie)
{
delete cookie;
}
becomes
void cleanup (void* cookie)
{
::operator delete cookie;
}
If the destructor should be called, you have to cast the void* to the
appropriate type (or preferably get rid of that void* cruft).
- the linker goes out of its way to avoid generating relocation entries of
type R_386_NONE with an offset of 0, as this crashes the dynamic loader
of BONE/Dan0/Zeta.
Part of the dynamic loading process is the relocation of several entries
inside the binary to its real position in memory. The linker generates the
neccessary relocation entries, telling the loader for each relocation, what
kind of relocation is to be done (type) and where the relocation takes place
(offset into the binary-section). These relocation entries live in several
sections named ".rel."...
The linker from binutils-2.15 seems to do some more optimization than older
linkers, converting unneeded relocation-entries (pointing to sections that
were discarded during the link) to the R_386_NONE type, which in fact
means: "do nothing". The offset of these relocation entries is set to 0.
[Sidenote: it would be better to remove this entries altogether, but
that could change the size of an already layed-out section, which -
according to the binutils maintainers - is difficult, so the free space
is not yet reclaimed by ld].
Now it seems that the newer dynamic loader is a bit peculiar about how to
handle these "do nothing" requests: it is perfectly happy to nothing at most
offsets, only offset 0 it doesn't like at all, as it then tries to execute
code like the following:
xor eax, eax
movl (eax), eax
which, naturally, crashes the machine.
The solution to this was to leave the original offset of these relocation
entries in place, just change the type to R_386_NONE. This hack seems to
work for all BeOS dynamic loaders.
- The Be-compilers had the habit of putting automatically generated functions
into each object file that uses them. This behaviour corresponds to what gcc
calls multiple symbol spaces. For ELF, however, multiple symbol spaces do
not make much sense, as all global symbols are automatically being exported
(i.e. there is only a single symbol space).
This version of gcc activates multiple symbol spaces only when optimization
is switched off. In optimizing mode, a single symbol space is used, in order
to yield smaller object files, libraries and apps.
You can use the new switch -f(no-)multiple-symbol-spaces to force gcc to
use (or not use) multiple symbol spaces.
- Every app is now automatically linked against a (new) object file named
fix_bdirectwin_typeinfo.o
As a result of the multiple / single symbol space issue, older compilers
generate typeinfo-functions in each object file that uses them (via
dynamic_cast).
As this compiler uses a single symbol space when optimizing, type-info
functions are not kept in each object file, but they are taken from the
library which "defines" the class that is the target of the dynamic_cast.
This works fine for most cases, but the Be-libraries seem to contain a
broken version of the BDirectWindow-typeinfo-function.
The difference here is that older compilers never used this function, as the
linker always linked to the (object-file-)internal version of this funtion.
Gcc-2.95.3 doesn't always generate these, so that the one living inside the
Be-libraries is being used, which in turn leads to a crash (examples are
GLTeapot or libSDL.so).
As a solution to this problem, I have created a new object file, named
fix_bdirectwin_typeinfo.o, that contains an implementation of the
BDirectWindow-typeinfo-funtion. Every app and library is now linked against
this file automatically (by means of the specs-file), such that the broken
implementation from the libs isn't used.
You can use the new switch -no-beos-fixes to switch off this fix. This is
especially useful if you are debugging small test applications and you do
not want/need the symbols from fix_bdirectwin_typeinfo.o.
What remains a mystery to me is to what respect this function is broken
and how it found its way into the libs in the first place...
- gcc-2.95.3 is a bit more decisive when it comes to the handling of inline
assembly operand constraints. The original gcc-2.95.3 contained a bug
(or two rather) that resulted in a complaint about a "fixed or forbidden
register" bx or bp being spilled for an inline asm-clause that requires
rather a lot of register operands. This bug has been fixed (i.e. bx and
bp are now only spilled if it is safe to do so), but it's still quite
probable that inline assembly that compiled and worked for gnupro-000224
may not compile instantly with gcc-2.95.3.
So far I have been able to fix all the inline assembly related problems by
specifying other operand constraints, but I wouldn't be surprised if there
are projects out there for which this won't work.
- the generation of debugging info has been, and still is, problematic. So
whenever you encounter weird error messages or other strange behaviour,
please try to deactivate debug-info (remove -g from the build).
I think it is especially unwise to combine optimization with debug-info
(which a lot of opensource projects seem to do by default), as this
combination seems to be the least reliable during compilation and the
resulting apps aren't useful in the debugger either.
- I believe 2.95.3 improves upon the other available compilers for BeOS, but
this does not mean that it is better for all purposes, it is just different!
So don't be surprised if you encounter internal compiler errors with code
that worked for gnupro-000224 or gnupro-991026. Please send me info about
any such cases so that I can *try* to work out a solution.
Please send questions & bug-reports to: Oliver Tappe <gcc@hirschkaefer.de>
@@ -1,45 +1,0 @@
GCC_VER=`gcc --version`
FULL_VER=gcc-2.95.3_binutils-2.15
strip --strip-unneeded /boot/develop/tools/gnupro/bin/*
strip --strip-unneeded /boot/develop/tools/gnupro/i586-pc-beos/bin/*
strip --strip-unneeded /boot/develop/tools/gnupro/lib/*
strip --strip-unneeded /boot/develop/tools/gnupro/lib/gcc-lib/i586-pc-beos/$GCC_VER/*
rm -rf /boot/develop/tools/gnupro/info
rm -rf /boot/develop/tools/gnupro/man
rm -rf /boot/develop/tools/gnupro/html-docs
cp -a html-docs /boot/develop/tools/gnupro
rm /boot/develop/tools/gnupro/html-docs/asconfig.texi
rm /boot/develop/tools/gnupro/html-docs/create-docs.sh
rm -rf /boot/develop/tools/gnupro/share
sed "s/-lroot/-lroot -lnet/" /boot/develop/tools/gnupro/lib/gcc-lib/i586-pc-beos/$GCC_VER/specs >/boot/develop/tools/gnupro/lib/gcc-lib/i586-pc-beos/$GCC_VER/specs.R5
mv /boot/develop/tools/gnupro/lib/gcc-lib/i586-pc-beos/$GCC_VER/specs /boot/develop/tools/gnupro/lib/gcc-lib/i586-pc-beos/$GCC_VER/specs.Default
ln -sf /boot/develop/tools/gnupro/lib/gcc-lib/i586-pc-beos/$GCC_VER/specs.Default /boot/develop/tools/gnupro/lib/gcc-lib/i586-pc-beos/$GCC_VER/specs
cp -a ../gcc/COPYING* /boot/develop/tools/gnupro/
mimeset /boot/develop/tools/gnupro/
rm -rf /boot/develop/tools/sdk_$FULL_VER
mkdir -p /boot/develop/tools/sdk_$FULL_VER
cat >/boot/develop/tools/sdk_$FULL_VER/Readme <<EOF
This folder exists to integrate gcc into the Dano/Zeta layout of the
development-tools. If you want to activate $GCC_VER, just make a link from
/etc/develop/zeta-r1-gcc2-x86/tools/sdk to this folder.
EOF
mkdir -p /boot/develop/tools/sdk_$FULL_VER/release/H-i586-pc-beos5/T-i586-pc-beos5/i586-pc-beos5
pushd /boot/develop/tools/sdk_$FULL_VER/release/H-i586-pc-beos5/T-i586-pc-beos5/i586-pc-beos5
ln -sf ../../../../../$FULL_VER/i586-pc-beos/lib lib
cd ..
ln -sf ../../../../$FULL_VER/bin bin
ln -sf ../../../../$FULL_VER/lib lib
popd
@@ -1,61 +1,0 @@
BINUTILS=binutils
GCC=gcc
echo generation html-docs for as...
ln -sf ../../$BINUTILS/gas/doc/all.texi asconfig.texi
texi2html -split=section -top_file=index.html -toc_file=toc.html -subdir=as ../../$BINUTILS/gas/doc/as.texinfo
ln -sf as/index.html as.html
echo generation html-docs for as...
texi2html -split=section -top_file=index.html -toc_file=toc.html -subdir=as-internals ../../$BINUTILS/gas/doc/internals.texi
ln -sf as-internals/index.html as-internals.html
echo generation html-docs for bfd...
texi2html -split=section -top_file=index.html -toc_file=toc.html -subdir=bfd ../../$BINUTILS/bfd/doc/bfd.texinfo
ln -sf bfd/index.html bfd.html
echo generation html-docs for bfdint...
texi2html -split=section -top_file=index.html -toc_file=toc.html -subdir=bfd-internals ../../$BINUTILS/bfd/doc/bfdint.texi
ln -sf bfd-internals/index.html bfd-internals.html
echo generation html-docs for binutils...
texi2html -split=section -top_file=index.html -toc_file=toc.html -subdir=binutils -I ../../$BINUTILS-obj/binutils/doc ../../$BINUTILS/binutils/doc/binutils.texi
ln -sf binutils/index.html binutils.html
echo generation html-docs for configure...
texi2html -split=section -top_file=index.html -toc_file=toc.html -subdir=configure ../../$BINUTILS/etc/configure.texi
ln -sf configure/index.html configure.html
echo generation html-docs for cpp...
texi2html -split=section -top_file=index.html -toc_file=toc.html -subdir=cpp ../../$GCC/gcc/cpp.texi
ln -sf cpp/index.html cpp.html
echo generation html-docs for gcc...
texi2html -split=section -top_file=index.html -toc_file=toc.html -subdir=gcc ../../$GCC/gcc/gcc.texi
ln -sf gcc/index.html gcc.html
echo generation html-docs for g++int...
texi2html -split=section -top_file=index.html -toc_file=toc.html -subdir=g++-internals ../../$GCC/gcc/cp/gxxint.texi
ln -sf g++-internals/index.html g++-internals.html
echo generation html-docs for gprof...
texi2html -split=section -top_file=index.html -toc_file=toc.html -subdir=gprof ../../$BINUTILS/gprof/gprof.texi
ln -sf gprof/index.html gprof.html
echo generation html-docs for iostream...
texi2html -split=section -nonumber -top_file=index.html -toc_file=toc.html -subdir=iostream ../../$GCC/libio/iostream.texi
ln -sf iostream/index.html iostream.html
echo generation html-docs for ld...
texi2html -split=section -top_file=index.html -toc_file=toc.html -subdir=ld -I ../../$BINUTILS/bfd/doc ../../$BINUTILS/ld/ld.texinfo
ln -sf ld/index.html ld.html
echo generation html-docs for ldint...
texi2html -split=section -top_file=index.html -toc_file=toc.html -subdir=ld-internals ../../$BINUTILS/ld/ldint.texinfo
ln -sf ld-internals/index.html ld-internals.html
echo generation html-docs for libiberty...
texi2html -split=section -top_file=index.html -toc_file=toc.html -subdir=libiberty ../../$BINUTILS/libiberty/libiberty.texi
ln -sf libiberty/index.html libiberty.html
@@ -1,0 +1,138 @@
Changes (svn-logs) from version 041202 to 060710:
binutils:
------------------------------------------------------------------------
r10420 | zooey | 2004-12-13 18:28:20 +0100 (Mon, 13 Dec 2004) | 3 lines
- we no longer need to hard-patch ld to not allow undefined symbols in
objects, as we now do this via gcc-specs.
------------------------------------------------------------------------
r10421 | zooey | 2004-12-13 18:30:14 +0100 (Mon, 13 Dec 2004) | 4 lines
- we no longer hard-patch ld to not use relocation combination (combreloc),
as the default (using it) seems to generate slightly smaller results and
not break anything.
------------------------------------------------------------------------
r11253 | zooey | 2005-02-05 00:18:59 +0100 (Sat, 05 Feb 2005) | 5 lines
- patched $(MK_DOC) into the default dependencies, such that chow.c gets
built during the make process. Before, it was being built during the
install process, when gcc might not be available, if the install goes
into an empty folder. Now, installs in empty folders work properly.
------------------------------------------------------------------------
r11255 | zooey | 2005-02-05 00:37:16 +0100 (Sat, 05 Feb 2005) | 6 lines
- switched some compile-time dependencies to target dependencies, such that
cross-compiling with BeOS target works.
- tweaked build-procedure to allow for proper generation of a i586-pc-beos
cross-compiler on LINUX.
- added documentation for creation of cross-compiler.
------------------------------------------------------------------------
r11774 | bonefish | 2005-03-17 09:34:20 +0100 (Thu, 17 Mar 2005) | 1 line
Move trunk into respective module.
------------------------------------------------------------------------
r15035 | bonefish | 2005-11-19 22:01:04 +0100 (Sat, 19 Nov 2005) | 2 lines
Patch by Oliver to allow allow building with gcc 4.
------------------------------------------------------------------------
r15072 | bonefish | 2005-11-22 16:54:23 +0100 (Tue, 22 Nov 2005) | 2 lines
Moved the old binutils to their new home.
------------------------------------------------------------------------
gcc:
------------------------------------------------------------------------
r10418 | zooey | 2004-12-13 17:14:42 +0100 (Mon, 13 Dec 2004) | 2 lines
- added missing documentation for --relative-path-errors option.
------------------------------------------------------------------------
r10419 | zooey | 2004-12-13 17:17:00 +0100 (Mon, 13 Dec 2004) | 3 lines
- added --no-undefined to the specs so that we can drop a patch that changed
ld to use this as default.
------------------------------------------------------------------------
r10475 | shatty | 2004-12-16 04:46:43 +0100 (Thu, 16 Dec 2004) | 2 lines
provide convenience fixed(ios&) and scientific(ios&) inline functions
------------------------------------------------------------------------
r10545 | shatty | 2004-12-30 00:38:46 +0100 (Thu, 30 Dec 2004) | 2 lines
fixed scientific(ios& i) - thanks to John [Beta] Drinkwater
------------------------------------------------------------------------
r11255 | zooey | 2005-02-05 00:37:16 +0100 (Sat, 05 Feb 2005) | 6 lines
- switched some compile-time dependencies to target dependencies, such that
cross-compiling with BeOS target works.
- tweaked build-procedure to allow for proper generation of a i586-pc-beos
cross-compiler on LINUX.
- added documentation for creation of cross-compiler.
------------------------------------------------------------------------
r11421 | zooey | 2005-02-19 14:01:14 +0100 (Sat, 19 Feb 2005) | 15 lines
- Applied several (old, external) patches that enable the support for anonymous
structs and unions in C as well as in C++ (application of this patch has
been sugggested by execom through BeBits-talkback).
This mail-thread explains the problem & solution:
http://gcc.gnu.org/ml/gcc-bugs/1999-08n/msg00914.html
These are the patches that have been applied:
gcc-2.95-anon-struct-union.diff
gcc-2.95-c++-tidy.diff
gcc-2.95-c++-anon-struct.diff
gcc-2.95-c++-anon-struct2.diff
which can all be found here:
ftp://ftp.xraylith.wisc.edu/pub/khan/gnu-win32/cygwin/gcc-2.95/patches/
------------------------------------------------------------------------
r11774 | bonefish | 2005-03-17 09:34:20 +0100 (Thu, 17 Mar 2005) | 1 line
Move trunk into respective module.
------------------------------------------------------------------------
r14561 | bonefish | 2005-10-29 02:30:19 +0200 (Sat, 29 Oct 2005) | 1 line
Avoid a clash of two different RETURN enums. Happens under Linux; don't know
why not under BeOS.
------------------------------------------------------------------------
r14562 | bonefish | 2005-10-29 02:56:06 +0200 (Sat, 29 Oct 2005) | 3 lines
When bash 3 is run POSIX compatible (e.g. as /bin/sh), invoking "trap"
without command argument is not allowed anymore.
------------------------------------------------------------------------
r14978 | nwhitehorn | 2005-11-17 01:47:53 +0100 (Thu, 17 Nov 2005) | 2 lines
Fixed libiberty to build on FreeBSD. A few more problems to go.
------------------------------------------------------------------------
r15071 | bonefish | 2005-11-22 16:53:32 +0100 (Tue, 22 Nov 2005) | 2 lines
Moved the old gcc to its new home.
------------------------------------------------------------------------
r16119 | zooey | 2006-01-28 15:35:27 +0100 (Sat, 28 Jan 2006) | 4 lines
moved USE_EGCS_MANGLED_NAMES from host to target config file in order to
generate "correct" (aka BeOS-specific) symbols when using the cross
compiler, too.
------------------------------------------------------------------------
r16140 | zooey | 2006-01-29 19:06:48 +0100 (Sun, 29 Jan 2006) | 4 lines
Added cc1plus as bootstrap-dependency such that fix_bdirectwin_typeinfo.cpp can
be compiled (it requires a c++-compiler, of course).
This fixes the build on R5.
------------------------------------------------------------------------
@@ -1,0 +1,118 @@
How to install gcc-2.95.3 under different versions of BeOS.
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
BeOS R5 (with or without BONE):
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
The compiler, linker and tools:
1. extract gcc-2.95.3_binutils-2.15.zip to /boot/develop/tools
2. if the folder /boot/develop/tools/gnupro exists, rename it
3. create the link:
/boot/develop/tools/gnupro
-> /boot/develop/tools/gcc-2.95.3_binutils-2.15
--------------------------------------------------------------------------
In order to switch between different compilers later, you just need to
adjust the link:
/boot/develop/tools/gnupro -> /boot/develop/tools/...
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
The new libstdc++ (optional but recommended):
1. rename /boot/develop/headers/cpp
2. execute this in Terminal (creates a link without dereferencing):
ln -snf /boot/develop/tools/gnupro/include/g++ /boot/develop/headers/cpp
3. rename /boot/beos/system/lib/libstdc++.r4.so (e.g. libstdc++.r4.so.R5)
4. copy /boot/develop/tools/gcc-2.95.3_binutils-2.15/lib/libstdc++.r4.so
to /boot/beos/system/lib/libstdc++.r4.so
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Dano:
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
The compiler, linker and tools:
1. extract gcc-2.95.3_binutils-2.15.zip to /boot/develop/tools
2. if the folder /boot/develop/tools/gnupro exists, rename it
3. create the link:
/boot/develop/tools/gnupro
-> /boot/develop/tools/gcc-2.95.3_binutils-2.15
4. extract sdk_gcc-2.95.3_binutils-2.15.zip to /boot/develop/tools
5. if the folder /boot/develop/tools/sdk exists, rename it
6. create the link:
/boot/develop/tools/sdk
-> /boot/develop/tools/sdk_gcc-2.95.3_binutils-2.15
--------------------------------------------------------------------------
In order to switch between different compilers later, you just need to
adjust the two links:
/boot/develop/tools/gnupro -> /boot/develop/tools/...
/boot/develop/tools/sdk -> /boot/develop/tools/...
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
The new libstdc++ (optional but recommended):
1. rename /boot/develop/headers/cpp
2. execute this in Terminal (creates a link without dereferencing):
ln -snf /boot/develop/tools/gnupro/include/g++ /boot/develop/headers/cpp
3. rename /boot/beos/system/lib/libstdc++.r4.so (e.g. libstdc++.r4.so.Dano)
4. copy /boot/develop/tools/gcc-2.95.3_binutils-2.15/lib/libstdc++.r4.so
to /boot/beos/system/lib/libstdc++.r4.so
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Zeta (untested, please tell me if it doesn't work):
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
The compiler, linker and tools (installed into the Zeta-devkit):
1. extract gcc-2.95.3_binutils-2.15.zip
to /etc/develop/zeta-r1-gcc2-x86/tools
2. if the folder /etc/develop/zeta-r1-gcc2-x86/tools/gnupro exists, rename it
3. create the link:
/etc/develop/zeta-r1-gcc2-x86/tools/gnupro
-> /etc/develop/zeta-r1-gcc2-x86/tools/gcc-2.95.3_binutils-2.15
4. extract sdk_gcc-2.95.3_binutils-2.15.zip
to /etc/develop/zeta-r1-gcc2-x86/tools
5. if the folder /etc/develop/zeta-r1-gcc2-x86/tools/sdk exists, rename it
6. create the link:
/etc/develop/zeta-r1-gcc2-x86/tools/sdk
-> /etc/develop/zeta-r1-gcc2-x86/tools/sdk_gcc-2.95.3_binutils-2.15
--------------------------------------------------------------------------
In order to switch between different compilers (for the Zeta target) later,
you just need to adjust the two links:
/etc/develop/zeta-r1-gcc2-x86/tools/gnupro
-> /etc/develop/zeta-r1-gcc2-x86/tools/...
/etc/develop/zeta-r1-gcc2-x86/tools/sdk
-> /etc/develop/zeta-r1-gcc2-x86/tools/...
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
The compiler, linker and tools (linked into the R5-devkit):
1. create the link:
/etc/develop/beos-r5-gcc2-x86/tools/gcc-2.95.3_binutils-2.15
-> /etc/develop/zeta-r1-gcc2-x86/tools/gcc-2.95.3_binutils-2.15
2. if the folder /etc/develop/beos-r5-gcc2-x86/tools/gnupro exists, rename it
3. create the link:
/etc/develop/beos-r5-gcc2-x86/tools/gnupro
-> /etc/develop/beos-r5-gcc2-x86/tools/gcc-2.95.3_binutils-2.15
--------------------------------------------------------------------------
In order to switch between different compilers (for the R5 target) later,
you just need to adjust the link:
/etc/develop/beos-r5-gcc2-x86/tools/gnupro
-> /etc/develop/beos-r5-gcc2-x86/tools/...
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
The new libstdc++ for target Zeta (optional but recommended):
1. rename /etc/develop/zeta-r1-gcc2-x86/headers/cpp
2. execute this in Terminal (creates a link without dereferencing):
ln -snf /etc/develop/zeta-r1-gcc2-x86/tools/gnupro/include/g++ /etc/develop/zeta-r1-gcc2-x86/headers/cpp
3. rename /boot/beos/system/lib/libstdc++.r4.so (e.g. libstdc++.r4.so.Zeta)
4. copy /etc/develop/zeta-r1-gcc2-x86/tools/gcc-2.95.3_binutils-2.15/lib/libstdc++.r4.so
to /boot/beos/system/lib/libstdc++.r4.so
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
The new libstdc++ for target R5 (optional but recommended):
1. rename /etc/develop/beos-r5-gcc2-x86/headers/cpp
2. execute this in Terminal (creates a link without dereferencing):
ln -snf /etc/develop/beos-r5-gcc2-x86/tools/gnupro/include/g++ /etc/develop/beos-r5-gcc2-x86/headers/cpp
3. rename /etc/develop/beos-r5-gcc2-x86/lib/x86/libstdc++.r4.so (e.g. libstdc++.r4.so.R5)
4. copy /etc/develop/beos-r5-gcc2-x86/tools/gcc-2.95.3_binutils-2.15/lib/libstdc++.r4.so
to /etc/develop/beos-r5-gcc2-x86/lib/x86/libstdc++.r4.so
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Have fun!
Please send questions & bug-reports to: Oliver Tappe <gcc@hirschkaefer.de>
@@ -1,0 +1,157 @@
This is a package of gcc-2.95.3 and binutils-2.15 for BeOS.
Please consult the file "INSTALL" for info about how to install this package.
This port is based on the work done by Takashi Toyoshima, which in turn is
based on the official gnupro-releases done by Fred Fish and others at Be.
Thanks to these guys and thanks to everyone who helped testing this new release!
Lots of patches have been applied to get gcc-2.95.3 working properly on BeOS,
you can find the gory details in the cvs-log-archives.
These are the main changes:
- this gcc-2.95.3 won't crash just because one is using iostreams and/or STL.
- an improved and less buggy libstdc++.r4.so is included (with new headers).
- the tool-chain now defaults to B_LOW_PRIORITY, such that you can do other
things while a large build is running. Thanks to Andrew Bachmann for
suggesting this. You can override the default with -priority=<prio>.
- optimization is much more reliable now (it really is a bad idea to
use -O2 or -O3 with older compilers, as the likelihood of things going
very wrong is high!).
This port should be more reliable when using -O2 or even -O3, but: YMMV!
- new html-documentation is included for all tools.
- the gcc-option '-shared' is now working again, '-nostart' is a (BeOS-
specific) synonym for it.
Bugs/Peculiarities:
- the default specs no longer include -lnet on R5, so some projects that are
relying on this implicit linking against libnet.so fail during linking
stage with messages like 'undefined reference to select' (or similar).
This can be fixed by explicitly adding -lnet to the build.
The reason for leaving out -lnet from the specs is that this is the way
things are done under Dano & Zeta and I'd like to avoid having to provide
different releases for each platform.
Anyway, if you really want to get back the original R5 behaviour, just change
the link
/boot/develop/tools/gnupro/lib/gcc-lib/i586-pc-beos/2.95.3-beos-xxx/specs
such that it points to specs.R5 and the R5-compatible specs should be active.
- gcc-2.95.3 (rightly) complains about code that calls delete on void*. This
code did not trigger any complaints with older compilers, but it probably
did not do what the programmer intended. If the pointer is in fact pointing
to an object, no destructors will be called, only the memory will be freed.
If that is the original intention, then the global operator delete should
be used instead:
void cleanup (void* cookie)
{
delete cookie;
}
becomes
void cleanup (void* cookie)
{
::operator delete cookie;
}
If the destructor should be called, you have to cast the void* to the
appropriate type (or preferably get rid of that void* cruft).
- the linker goes out of its way to avoid generating relocation entries of
type R_386_NONE with an offset of 0, as this crashes the dynamic loader
of BONE/Dan0/Zeta.
Part of the dynamic loading process is the relocation of several entries
inside the binary to its real position in memory. The linker generates the
neccessary relocation entries, telling the loader for each relocation, what
kind of relocation is to be done (type) and where the relocation takes place
(offset into the binary-section). These relocation entries live in several
sections named ".rel."...
The linker from binutils-2.15 seems to do some more optimization than older
linkers, converting unneeded relocation-entries (pointing to sections that
were discarded during the link) to the R_386_NONE type, which in fact
means: "do nothing". The offset of these relocation entries is set to 0.
[Sidenote: it would be better to remove this entries altogether, but
that could change the size of an already layed-out section, which -
according to the binutils maintainers - is difficult, so the free space
is not yet reclaimed by ld].
Now it seems that the newer dynamic loader is a bit peculiar about how to
handle these "do nothing" requests: it is perfectly happy to nothing at most
offsets, only offset 0 it doesn't like at all, as it then tries to execute
code like the following:
xor eax, eax
movl (eax), eax
which, naturally, crashes the machine.
The solution to this was to leave the original offset of these relocation
entries in place, just change the type to R_386_NONE. This hack seems to
work for all BeOS dynamic loaders.
- The Be-compilers had the habit of putting automatically generated functions
into each object file that uses them. This behaviour corresponds to what gcc
calls multiple symbol spaces. For ELF, however, multiple symbol spaces do
not make much sense, as all global symbols are automatically being exported
(i.e. there is only a single symbol space).
This version of gcc activates multiple symbol spaces only when optimization
is switched off. In optimizing mode, a single symbol space is used, in order
to yield smaller object files, libraries and apps.
You can use the new switch -f(no-)multiple-symbol-spaces to force gcc to
use (or not use) multiple symbol spaces.
- Every app is now automatically linked against a (new) object file named
fix_bdirectwin_typeinfo.o
As a result of the multiple / single symbol space issue, older compilers
generate typeinfo-functions in each object file that uses them (via
dynamic_cast).
As this compiler uses a single symbol space when optimizing, type-info
functions are not kept in each object file, but they are taken from the
library which "defines" the class that is the target of the dynamic_cast.
This works fine for most cases, but the Be-libraries seem to contain a
broken version of the BDirectWindow-typeinfo-function.
The difference here is that older compilers never used this function, as the
linker always linked to the (object-file-)internal version of this funtion.
Gcc-2.95.3 doesn't always generate these, so that the one living inside the
Be-libraries is being used, which in turn leads to a crash (examples are
GLTeapot or libSDL.so).
As a solution to this problem, I have created a new object file, named
fix_bdirectwin_typeinfo.o, that contains an implementation of the
BDirectWindow-typeinfo-funtion. Every app and library is now linked against
this file automatically (by means of the specs-file), such that the broken
implementation from the libs isn't used.
You can use the new switch -no-beos-fixes to switch off this fix. This is
especially useful if you are debugging small test applications and you do
not want/need the symbols from fix_bdirectwin_typeinfo.o.
What remains a mystery to me is to what respect this function is broken
and how it found its way into the libs in the first place...
- gcc-2.95.3 is a bit more decisive when it comes to the handling of inline
assembly operand constraints. The original gcc-2.95.3 contained a bug
(or two rather) that resulted in a complaint about a "fixed or forbidden
register" bx or bp being spilled for an inline asm-clause that requires
rather a lot of register operands. This bug has been fixed (i.e. bx and
bp are now only spilled if it is safe to do so), but it's still quite
probable that inline assembly that compiled and worked for gnupro-000224
may not compile instantly with gcc-2.95.3.
So far I have been able to fix all the inline assembly related problems by
specifying other operand constraints, but I wouldn't be surprised if there
are projects out there for which this won't work.
- the generation of debugging info has been, and still is, problematic. So
whenever you encounter weird error messages or other strange behaviour,
please try to deactivate debug-info (remove -g from the build).
I think it is especially unwise to combine optimization with debug-info
(which a lot of opensource projects seem to do by default), as this
combination seems to be the least reliable during compilation and the
resulting apps aren't useful in the debugger either.
- I believe 2.95.3 improves upon the other available compilers for BeOS, but
this does not mean that it is better for all purposes, it is just different!
So don't be surprised if you encounter internal compiler errors with code
that worked for gnupro-000224 or gnupro-991026. Please send me info about
any such cases so that I can *try* to work out a solution.
Please send questions & bug-reports to: Oliver Tappe <gcc@hirschkaefer.de>
@@ -1,0 +1,45 @@
GCC_VER=`gcc --version`
FULL_VER=gcc-2.95.3_binutils-2.15
strip --strip-unneeded /boot/develop/tools/gnupro/bin/*
strip --strip-unneeded /boot/develop/tools/gnupro/i586-pc-beos/bin/*
strip --strip-unneeded /boot/develop/tools/gnupro/lib/*
strip --strip-unneeded /boot/develop/tools/gnupro/lib/gcc-lib/i586-pc-beos/$GCC_VER/*
rm -rf /boot/develop/tools/gnupro/info
rm -rf /boot/develop/tools/gnupro/man
rm -rf /boot/develop/tools/gnupro/html-docs
cp -a html-docs /boot/develop/tools/gnupro
rm /boot/develop/tools/gnupro/html-docs/asconfig.texi
rm /boot/develop/tools/gnupro/html-docs/create-docs.sh
rm -rf /boot/develop/tools/gnupro/share
sed "s/-lroot/-lroot -lnet/" /boot/develop/tools/gnupro/lib/gcc-lib/i586-pc-beos/$GCC_VER/specs >/boot/develop/tools/gnupro/lib/gcc-lib/i586-pc-beos/$GCC_VER/specs.R5
mv /boot/develop/tools/gnupro/lib/gcc-lib/i586-pc-beos/$GCC_VER/specs /boot/develop/tools/gnupro/lib/gcc-lib/i586-pc-beos/$GCC_VER/specs.Default
ln -sf /boot/develop/tools/gnupro/lib/gcc-lib/i586-pc-beos/$GCC_VER/specs.Default /boot/develop/tools/gnupro/lib/gcc-lib/i586-pc-beos/$GCC_VER/specs
cp -a ../gcc/COPYING* /boot/develop/tools/gnupro/
mimeset /boot/develop/tools/gnupro/
rm -rf /boot/develop/tools/sdk_$FULL_VER
mkdir -p /boot/develop/tools/sdk_$FULL_VER
cat >/boot/develop/tools/sdk_$FULL_VER/Readme <<EOF
This folder exists to integrate gcc into the Dano/Zeta layout of the
development-tools. If you want to activate $GCC_VER, just make a link from
/etc/develop/zeta-r1-gcc2-x86/tools/sdk to this folder.
EOF
mkdir -p /boot/develop/tools/sdk_$FULL_VER/release/H-i586-pc-beos5/T-i586-pc-beos5/i586-pc-beos5
pushd /boot/develop/tools/sdk_$FULL_VER/release/H-i586-pc-beos5/T-i586-pc-beos5/i586-pc-beos5
ln -sf ../../../../../$FULL_VER/i586-pc-beos/lib lib
cd ..
ln -sf ../../../../$FULL_VER/bin bin
ln -sf ../../../../$FULL_VER/lib lib
popd
@@ -1,0 +1,61 @@
BINUTILS=binutils
GCC=gcc
echo generation html-docs for as...
ln -sf ../../$BINUTILS/gas/doc/all.texi asconfig.texi
texi2html -split=section -top_file=index.html -toc_file=toc.html -subdir=as ../../$BINUTILS/gas/doc/as.texinfo
ln -sf as/index.html as.html
echo generation html-docs for as...
texi2html -split=section -top_file=index.html -toc_file=toc.html -subdir=as-internals ../../$BINUTILS/gas/doc/internals.texi
ln -sf as-internals/index.html as-internals.html
echo generation html-docs for bfd...
texi2html -split=section -top_file=index.html -toc_file=toc.html -subdir=bfd ../../$BINUTILS/bfd/doc/bfd.texinfo
ln -sf bfd/index.html bfd.html
echo generation html-docs for bfdint...
texi2html -split=section -top_file=index.html -toc_file=toc.html -subdir=bfd-internals ../../$BINUTILS/bfd/doc/bfdint.texi
ln -sf bfd-internals/index.html bfd-internals.html
echo generation html-docs for binutils...
texi2html -split=section -top_file=index.html -toc_file=toc.html -subdir=binutils -I ../../$BINUTILS-obj/binutils/doc ../../$BINUTILS/binutils/doc/binutils.texi
ln -sf binutils/index.html binutils.html
echo generation html-docs for configure...
texi2html -split=section -top_file=index.html -toc_file=toc.html -subdir=configure ../../$BINUTILS/etc/configure.texi
ln -sf configure/index.html configure.html
echo generation html-docs for cpp...
texi2html -split=section -top_file=index.html -toc_file=toc.html -subdir=cpp ../../$GCC/gcc/cpp.texi
ln -sf cpp/index.html cpp.html
echo generation html-docs for gcc...
texi2html -split=section -top_file=index.html -toc_file=toc.html -subdir=gcc ../../$GCC/gcc/gcc.texi
ln -sf gcc/index.html gcc.html
echo generation html-docs for g++int...
texi2html -split=section -top_file=index.html -toc_file=toc.html -subdir=g++-internals ../../$GCC/gcc/cp/gxxint.texi
ln -sf g++-internals/index.html g++-internals.html
echo generation html-docs for gprof...
texi2html -split=section -top_file=index.html -toc_file=toc.html -subdir=gprof ../../$BINUTILS/gprof/gprof.texi
ln -sf gprof/index.html gprof.html
echo generation html-docs for iostream...
texi2html -split=section -nonumber -top_file=index.html -toc_file=toc.html -subdir=iostream ../../$GCC/libio/iostream.texi
ln -sf iostream/index.html iostream.html
echo generation html-docs for ld...
texi2html -split=section -top_file=index.html -toc_file=toc.html -subdir=ld -I ../../$BINUTILS/bfd/doc ../../$BINUTILS/ld/ld.texinfo
ln -sf ld/index.html ld.html
echo generation html-docs for ldint...
texi2html -split=section -top_file=index.html -toc_file=toc.html -subdir=ld-internals ../../$BINUTILS/ld/ldint.texinfo
ln -sf ld-internals/index.html ld-internals.html
echo generation html-docs for libiberty...
texi2html -split=section -top_file=index.html -toc_file=toc.html -subdir=libiberty ../../$BINUTILS/libiberty/libiberty.texi
ln -sf libiberty/index.html libiberty.html