mirror of
https://review.haiku-os.org/buildtools
synced 2026-02-04 07:53:14 +01:00
- 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
This commit is contained in:
138
legacy/gcc_distribution/Changes
Normal file
138
legacy/gcc_distribution/Changes
Normal file
@@ -0,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.
|
||||
|
||||
------------------------------------------------------------------------
|
||||
118
legacy/gcc_distribution/INSTALL
Normal file
118
legacy/gcc_distribution/INSTALL
Normal file
@@ -0,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>
|
||||
157
legacy/gcc_distribution/README
Normal file
157
legacy/gcc_distribution/README
Normal file
@@ -0,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>
|
||||
61
legacy/gcc_distribution/html-docs/create-docs.sh
Normal file
61
legacy/gcc_distribution/html-docs/create-docs.sh
Normal file
@@ -0,0 +1,61 @@
|
||||
#! /bin/sh
|
||||
|
||||
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
|
||||
45
legacy/gcc_distribution/prepare_distribution.sh
Normal file
45
legacy/gcc_distribution/prepare_distribution.sh
Normal file
@@ -0,0 +1,45 @@
|
||||
# this script prepares the /boot/develop/tools/gnupro-folder for distribution
|
||||
#
|
||||
GCC_VER=`gcc --version`
|
||||
FULL_VER=gcc-2.95.3_binutils-2.15
|
||||
# strip executables
|
||||
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/*
|
||||
# remove info- and man-docs, install html-docs
|
||||
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
|
||||
# remove locale files
|
||||
rm -rf /boot/develop/tools/gnupro/share
|
||||
# install separate specs-files for R5 and Dano, use Dano by default
|
||||
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/
|
||||
# install readline lib, headers and html-docs
|
||||
#strip --strip-unneeded ~/Sources/ports/readline-5.0/lib*.a
|
||||
#cp -a ~/Sources/ports/readline-5.0/lib*.a /boot/develop/tools/gnupro/lib/
|
||||
#cp -a /boot/home/config/include/readline /boot/develop/tools/gnupro/include/
|
||||
#cp -a ~/Sources/ports/readline-5.0/doc/readline.html /boot/develop/tools/gnupro/html-docs/
|
||||
# identify all files
|
||||
mimeset /boot/develop/tools/gnupro/
|
||||
# add sdk-subfolder and create the required links:
|
||||
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
|
||||
Reference in New Issue
Block a user