Commit Graph

105 Commits

Author SHA1 Message Date
Wolfgang Thaller
693abc1998 Convert all MPW .o files from InterfacesAndLibraries 2019-01-24 17:37:28 +01:00
Wolfgang Thaller
7d2fd1bf78 make pascal attribute imply C linkage (fixes #75) 2019-01-21 21:42:41 +01:00
Wolfgang Thaller
b6bbe4d5a4 fix double make rule for m68k-mac-pragmas.o 2019-01-21 21:41:53 +01:00
Wolfgang Thaller
2999ed8613 change the way gcc's collect2 works to fix #74
GCC's AIX port, which RetroPPC is based on, uses a different method
from most other platforms to collect the list of all global constructors
and the list of all exception handling tables.
The "standard" method does not work on AIX because IBM's linker will
discard those symbols too early for GCC's liking if they are not
directly referenced.

Unfortunately, the workaround seems to keep too much, so PPC C++
exececutables were at least 1.1MB big.

We don't need to be compatible with IBM's linker. Instead, hack binutils
to keep the symbols that we need kept, and allow GCC to use the
"standard" method for the collect2 pass.

PowerPC application sizes are now down to a reasonable size.
2019-01-13 22:33:07 +01:00
Wolfgang Thaller
5443381d68 fix pascal calls 2019-01-03 22:55:50 +01:00
Wolfgang Thaller
d520ee4311 attempt to improve code quality for pascal calls 2019-01-03 20:59:51 +01:00
Wolfgang Thaller
413bb90073 (hopefully) fix pascal calls for gcc 8.2 2019-01-02 00:15:42 +01:00
Wolfgang Thaller
1e59241091 make raw_inline work again for gcc 8.2 2019-01-02 00:14:08 +01:00
Wolfgang Thaller
3b0ef808de re-merge newlib 2018-12-29 10:19:56 +01:00
Wolfgang Thaller
5420e7d4ce Merge branch 'upstream' into gcc-8.2 2018-12-29 10:04:44 +01:00
Wolfgang Thaller
ec13cc9ce7 fix newlib 2018-12-29 09:59:36 +01:00
Wolfgang Thaller
78de0215f8 gcc 8.2 fixups 2018-12-29 00:41:17 +01:00
Wolfgang Thaller
39af85e1fd restore upgraded intl 2018-12-28 18:55:40 +01:00
Wolfgang Thaller
3f05837f3f Merge branch 'upstream' into gcc-8.2
# Conflicts:
#	binutils/bfd/config.bfd
#	binutils/gas/configure.tgt
#	binutils/intl/ChangeLog
#	binutils/intl/aclocal.m4
#	binutils/intl/config.h.in
#	binutils/intl/configure
#	binutils/intl/configure.ac
#	binutils/ld/configure.tgt
#	gcc/gcc/c/c-decl.c
#	gcc/gcc/c/c-parser.c
#	gcc/gcc/calls.c
#	gcc/gcc/combine.c
#	gcc/gcc/config/m68k/m68k-protos.h
#	gcc/gcc/config/m68k/m68k.c
#	gcc/gcc/config/rs6000/rs6000.opt
#	gcc/gcc/cp/parser.c
#	gcc/gcc/expr.c
#	gcc/intl/ChangeLog
#	gcc/intl/configure
#	gcc/intl/configure.ac
#	gcc/newlib/configure.host
2018-12-28 17:02:51 +01:00
Wolfgang Thaller
5dfed9d403 upgrade to gcc 8.2.0 and newlib 3.0.0 2018-12-28 16:30:48 +01:00
Wolfgang Thaller
1594085852 patch for gcc bug https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86724 (already fixed upstream in gcc 7.3.1 and 8.2.1) 2018-12-22 15:47:37 +01:00
Wolfgang Thaller
9611c86ca1 Don't compile multilibs for 68060, fidoa, and cpu32 (fixes #56) 2018-08-17 02:40:15 +02:00
Wolfgang Thaller
a135f0b196 libretro: use separate library file names for Carbon and Classic PPC 2018-05-16 02:08:25 +02:00
Wolfgang Thaller
b09ecaf30b fix macsbug symbols again - why didn't I know about .pushsection from the beginning? 2018-05-14 21:36:17 +02:00
Wolfgang Thaller
1ae9256e9c Fix compilation for PowerPC - see #57 2018-05-14 00:01:59 +02:00
Wolfgang Thaller
9d304134f2 Fix interaction between pascal and pragma parameter (pascal should be ignored) 2018-05-07 22:41:29 +02:00
Wolfgang Thaller
055976d4ca fix setjmp for PowerPC 2018-05-05 01:18:54 +02:00
Wolfgang Thaller
bb894a87c5 make --mac-strip-macsbug (mostly) work again, see #32 2018-05-01 19:42:14 +02:00
Wolfgang Thaller
401278a18e powerpc: fix global destructors (fix #40) 2018-03-28 22:10:12 +02:00
anthony
c539261ef4 Updated intl from 0.12.1 to 0.19.8.1 to fix compilation errors.
Added missing Cygwin packages to readme.
2018-01-03 17:17:53 +11:00
Wolfgang Thaller
d7976cae6b add __PPC__ to list of predefined symbols for powerpc-macos 2017-12-04 22:11:33 +01:00
Anthony Super
1c1604fbcc Windows/Cygwin fixes and documentation 2017-10-18 08:28:14 +11:00
Wolfgang Thaller
c47772e62f make functions return pointers in D0 on 68K. See issue #35. *RECOMPILE STRONGLY RECOMMENDED*
This is compatible with MPW and incompatible with Codewarrior.
2017-10-15 14:24:25 +02:00
Wolfgang Thaller
bc200ad489 For *-apple-macos-gcc, -Wno-trigraphs is now the default.
('????' is a common four character code on Classic MacOS, we don't want warnings)
2017-10-08 20:55:04 +02:00
Wolfgang Thaller
e8063b8cf6 C library/system calls: clean up, implement open, read, write, close, lseek; clean up the command line gcc passes to ld 2017-10-08 19:28:10 +02:00
Wolfgang Thaller
b2790cf0fb newlib: add definitions for _READ_WRITE_BUFSIZE_TYPE and _READ_WRITE_RETURN_TYPE.
TODO: figure out where they should really go.
2017-10-07 16:08:32 +02:00
Wolfgang Thaller
b30c823f2b gcc m68k: put macsbug symbols in the same section as the function again, because gcc7 sometimes puts two functions in one section. --mac-strip-macsbug has no effect for now. 2017-10-07 16:07:53 +02:00
Wolfgang Thaller
6edc940bd2 newlib: re-instate aix-style setjmp.S 2017-10-07 16:06:11 +02:00
Wolfgang Thaller
1f10508c9b fix merge problem: newlib configure.host - powerpc-macos target 2017-10-07 16:05:49 +02:00
Wolfgang Thaller
46c502e5da fix merge problem: struct field alignment in powerpc-macos gcc 2017-10-07 16:04:54 +02:00
Wolfgang Thaller
19ab4d99ae Merge branch 'upstream' into gcc-7.2
# Conflicts:
#	binutils/bfd/config.bfd
#	binutils/ld/configure.tgt
#	gcc/gcc/c-family/c-common.c
#	gcc/gcc/c/c-parser.c
#	gcc/gcc/calls.c
#	gcc/gcc/config/m68k/m68k.c
#	gcc/gcc/config/rs6000/rs6000.c
#	gcc/gcc/config/rs6000/rs6000.opt
#	hfsutils/COPYING
#	hfsutils/install-sh
2017-10-07 02:46:50 +02:00
Wolfgang Thaller
65c83606fb Update gcc to 7.2.0, binutils to 2.29, newlib to 2.5.0 2017-10-07 02:16:47 +02:00
Wolfgang Thaller
a68112b08d enable -ffunction-sections for libgcc and libc 2017-09-30 03:01:49 +02:00
Wolfgang Thaller
70be98cb62 put macsbug name in separate section so it can be stripped out - and hack ld so that it won't be stripped out by -gc-sections 2017-09-29 22:02:21 +02:00
Wolfgang Thaller
33a2744643 Take responsibility: don't use standard crtbegin/end anymore, now that we control the linker script 2017-09-24 20:04:11 +02:00
Wolfgang Thaller
a6bc7b5de6 elf2flt is no longer the right name 2017-09-24 14:10:37 +02:00
Wolfgang Thaller
4d0f9e202c m68k: uppercase pascal functions for linking 2017-04-25 02:14:56 +02:00
Wolfgang Thaller
301994c27d restore -carbon option, lost during merge 2017-04-15 10:09:07 +02:00
Wolfgang Thaller
f81f308e0e fix missing newlib files removed during merge 2017-04-14 22:38:01 +02:00
Wolfgang Thaller
431390d872 brutally use absolute addresses in exception handling tables and stick them in .data (for now) 2017-04-12 11:55:14 +02:00
Wolfgang Thaller
17d92f98a3 work around a mysterious compiler crash 2017-04-12 11:54:30 +02:00
Wolfgang Thaller
71f78cceb8 Merge branch 'upstream' into gcc-6.3
# Conflicts:
#	binutils/bfd/coff-rs6000.c
#	gcc/gcc/calls.c
#	gcc/gcc/config/m68k/m68k.c
#	gcc/gcc/config/rs6000/rs6000.opt
#	gcc/gcc/cp/cfns.gperf
#	gcc/gcc/cp/cfns.h
#	gcc/gcc/cp/parser.c
2017-04-11 23:25:51 +02:00
Wolfgang Thaller
d464252791 re-add newlib 2017-04-11 23:13:36 +02:00
Wolfgang Thaller
26c2330aae patch gcc to compile with gcc 6.2 (long since fixed in the official gcc) 2017-04-11 18:55:40 +02:00
Wolfgang Thaller
21ec187812 68K: get -mpcrel to work (for tiny programs) 2017-04-11 18:55:39 +02:00