Commit Graph

596 Commits

Author SHA1 Message Date
Fredrik Holmqvist
4ab0fe4d95 Redo gcc AARCH64 config
Previous setup failed to do link bootstrap libz with msissing
unwind symbols due to not finding libgcc_s.so.1

Change-Id: I80a85502843f82d2324cf816cb761ddfa78e289f
Reviewed-on: https://review.haiku-os.org/c/buildtools/+/3754
Reviewed-by: Fredrik Holmqvist <fredrik.holmqvist@gmail.com>
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2021-03-15 21:51:09 +00:00
Alexander von Gluck IV
f4963fa33e binutils/ld: Add missing __exidx_* to fix arm bootstrap
Change-Id: I3771b54ca5a397950df822f17256ccfb882393d0
Reviewed-on: https://review.haiku-os.org/c/buildtools/+/3547
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2020-12-24 13:52:35 +00:00
Adrien Destugues
c8ecfce34c jam: add an option to generate compile_commands.json
Based on Boost Jam patch: https://github.com/boostorg/build/pull/133
retrofitted to our version. Only the rules whose name contains Cc or C++
are stored there. This can be improved if it's not good enough.

The commands are generated only as they are run. Unfortunately I think
with Jam there isn't really a way to do otherwise.

Change-Id: Ic5d44dc27baa2a2e4157324f6c5a228ab0366afe
Reviewed-on: https://review.haiku-os.org/c/buildtools/+/3260
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2020-09-28 07:08:15 +00:00
Puck Meerburg
51dc302367 jam/Jambase: split AR into ARFLAGS
This brings Jam's usage of AR to be more conventional: the flags for AR
are moved to a separate variable, called ARFLAGS, ensuring that any
environment that overrides the AR variable will still end up using the
correct flags to create the archve.

Change-Id: I00449b284fab132d5fc9239017d742480fb51820
Reviewed-on: https://review.haiku-os.org/c/buildtools/+/3226
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2020-09-16 19:16:28 +00:00
Fredrik Holmqvist
0af6003997 Redo Update MPFR to 4.1.0
GCC had a horrible .gitignore, untracked files were not applied
2020-07-22 10:11:52 +02:00
Fredrik Holmqvist
4389066602 Redo Update GMP to 6.2.0
GCC had a horrible .gitignore, untracked files were not applied
2020-07-22 10:10:16 +02:00
Fredrik Holmqvist
c8db99d323 Redo Update to ISL 0.22.1
GCC had a horrible .gitignore, untracked files were not applied
2020-07-22 10:07:48 +02:00
Fredrik Holmqvist
3fa09319ac Make GCC's gitignore not skip in house deps
This caused untracked files in libs upgrade to be ignored
and also not showing in git status
2020-07-22 10:02:15 +02:00
Fredrik Holmqvist
88896a1144 Update MPFR to 4.1.0
Change-Id: I42dc2a783b3e0082a7583cc7ecaa6b043ba162f4
Reviewed-on: https://review.haiku-os.org/c/buildtools/+/3021
Reviewed-by: Fredrik Holmqvist <fredrik.holmqvist@gmail.com>
2020-07-17 10:34:03 +00:00
Fredrik Holmqvist
4c74403188 Update GMP to 6.2.0
Change-Id: Iae65e95cfa0d92091b8b0a424ae36d88efa76aa9
Reviewed-on: https://review.haiku-os.org/c/buildtools/+/3020
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2020-07-17 10:33:46 +00:00
Fredrik Holmqvist
9897128cb9 Update to ISL 0.22.1
Change-Id: I9d707083f0a9e71d3bcc02b3265bfb233bdbe46c
Reviewed-on: https://review.haiku-os.org/c/buildtools/+/3019
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2020-07-17 10:33:26 +00:00
Adrien Destugues
c3903e95f6 binutils: enable PE support for ARM
Needed for building the EFI bootloader.

Unfortunately gcc doesn't know how to generate PE binaries for AArch64,
so a different solution will be needed there.

Change-Id: Id50d57ae81bdd7a18d424305d08fc55f312a2588
Reviewed-on: https://review.haiku-os.org/c/buildtools/+/2414
Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com>
2020-07-05 15:12:04 +00:00
Augustin Cavalier
c473a032a0 jam: Use posix_spawn on Haiku. 2020-05-30 00:01:23 -04:00
Augustin Cavalier
2ebb811a77 Force libiberty to consider all filesystems as potentially case-sensitive.
Whose idea was this?!

Fixes #14963.
2020-05-03 15:47:38 -04:00
Augustin Cavalier
5720e0c88e Remove obsolete installation guides. 2020-05-03 15:47:00 -04:00
François Revol
32f9366f9e gcc: fix m68k for GCC 8.3 2019-11-02 03:47:32 +01:00
François Revol
f91439b9da binutils: don't require coff, we don't need it anyway
binutils dropped support for COFF and a.out so it won't build anyway.
2019-11-02 02:57:15 +01:00
Jaroslaw Pelczar
f420f1565f GCC: Fix missing haiku in config.host for ARM64
This allows bootstrap-raw target to build GCC for ARM64

Signed-off-by: Jaroslaw Pelczar <jarek@jpelczar.com>
Change-Id: Id64b8c041b3488a78219b8a2b633a3fedc9ee4f0
Reviewed-on: https://review.haiku-os.org/c/buildtools/+/1821
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2019-09-15 16:01:04 +00:00
Jaroslaw Pelczar
e4426fc38a gcc: Add initial support for AArch64 Haiku
Signed-off-by: Jaroslaw Pelczar <jarek@jpelczar.com>
Change-Id: I8bd362b61ded01ae1b15d0a999d0db947204aeb7
Reviewed-on: https://review.haiku-os.org/c/buildtools/+/1797
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2019-09-01 03:06:22 +00:00
Jaroslaw Pelczar
e97614541b binutils: Add support for Haiku ARM64 target
Signed-off-by: Jaroslaw Pelczar <jarek@jpelczar.com>
Change-Id: Iebbfba7285429bded988ed0f80a574c471fa9f7d
Reviewed-on: https://review.haiku-os.org/c/buildtools/+/1796
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2019-09-01 03:06:22 +00:00
Simon South
18e01e2af6 jam: jcache: Accept empty input files
Make new_string_list() initialize the buffer it creates to hold a file's
contents, preventing a segfault later on should jam attempt to parse the
contents of an empty file.

Fixes #15250.

Change-Id: I907dccd26e1ca35fbe07ed6d624b0144487134fe
Reviewed-on: https://review.haiku-os.org/c/buildtools/+/1716
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2019-08-13 20:22:35 +00:00
Simon South
86f02e2a45 gcc: Use correct linker emulation on arm
Among other things this ensures the TARGET2_TYPE linker option is set
correctly, preventing "unresolvable R_ARM_REL32 relocation" errors at
link time.

Fixes #15122.

Change-Id: Id4c6e97cc1739ecfac0f7cd0ec93927750f1b313
Reviewed-on: https://review.haiku-os.org/c/1702
Reviewed-by: Rene Gollent <rene@gollent.com>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2019-08-11 19:01:15 +00:00
Alexander von Gluck IV
56d94c3a71 legacy/gcc: Fix cpp cross-tool prefix
* Noticed that our gcc2 randomly produces a "cpp" instead of a i586-pc-haiku-cpp
* A quick google search turned up a vintage patch for palmos which also
  fixes this issue:
  https://github.com/jichu4n/prc-tools-remix/blob/master/prc-tools-2.3/gcc-2.95.3.palmos.diff
* Confirmed it fixes the issue, and built a x86_gcc2 image without any
  issues

Change-Id: I33959248f10b69d64a4a9e430a9c254a162bcb53
Reviewed-on: https://review.haiku-os.org/c/1583
Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2019-07-12 02:18:03 +00:00
Alexander von Gluck IV
d113c7b5b4 binutils: Fix powerpc gas target for Haiku
Change-Id: Ibdf538b02f3c0dab558ac3f4e3333a4b5cfba2af
2019-07-11 19:13:46 -05:00
Alexander von Gluck IV
a82c1c48e3 binutils: Apply Haiku patches to 2.32
Change-Id: I73351225879f0c62613c9e6eff3e2bfc4251f86c
Reviewed-on: https://review.haiku-os.org/c/1537
Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com>
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2019-07-11 17:29:38 +00:00
Alexander von Gluck IV
0cb01df558 binutils: Import binutils-2.32
Change-Id: I7a413a81d33762f3cb1e8c67883d1e616f83d0e9
Reviewed-on: https://review.haiku-os.org/c/1536
Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com>
2019-07-11 17:29:38 +00:00
Augustin Cavalier
6fb237714b gcc: Change ARM typeinfo behavior to match other architectures.
For all other architectures, these lines were removed in
btrev39570. For some reason, ARM was missed. Now we rectify that.
2019-06-15 20:44:57 -04:00
Alexander von Gluck IV
9d7404d604 gcc: Fix startfile search prefixes and bootstraps
* ac9c3b700 introduced modifications to configure.ac which added
  HYBRID_SECONDARY support to configure. Without these changes,
  HYBRID_SECONDARY = @HYBRID_SECONDARY@ in Makefile.in (configure
  doesn't template it out) which trickled into library search paths
  in various places. (if def, set to contents of HYBRID_SECONDARY)
* Fixes bootstraps across all architectures (that bootstrap ;-))
2019-06-02 17:57:02 -05:00
Alexander von Gluck IV
e649c97b4a gcc: Add missing Haiku stdint defines for m68k,riscv,mipsel,ppc,sparc64
Change-Id: Iab32e700d7cfaddae8e76742ddc7eb25fbe2c865
2019-05-24 20:33:26 -05:00
Augustin Cavalier
341e3be74c Merge our changes into GCC 8.3. 2019-05-24 19:14:48 -04:00
Augustin Cavalier
b0a6bed08c Import GCC 8.3. 2019-05-23 17:48:23 -04:00
PulkoMandy
a07def6dc6 binutils: enable a.out target for sparc.
We need this to build the openfirmware loader.

Change-Id: Ie53a71fffdbe7e08bce5447062618fd05afc8fed
Reviewed-on: https://review.haiku-os.org/c/1362
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2019-04-04 20:32:38 +00:00
Alexander von Gluck IV
931a9c38d5 riscv64: Fix startfile spec which breaks sysroot
* STARTFILE_PREFIX_SPEC is defined to /usr,/lib,etc on riscv.h
  which seems to override the sysroot paths for libraries.

Change-Id: Ia6b785ba1e5421a86227204b73b90496fb1af3ff
2019-04-03 21:13:19 -05:00
Alexander von Gluck IV
c162732461 riscv64: Disable MULTILIB for now to keep things simple
Change-Id: I569d0ba9512d635dfe03fbc9fcd95289d9c44098
Reviewed-on: https://review.haiku-os.org/c/1348
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2019-04-02 20:06:27 +00:00
Alexander von Gluck IV
fb78ddf2aa riscv64: Fix potentially missing ld/gas
Change-Id: I832bb2f4c2872c1c80cd9cd11e32387f9a48a3df
Reviewed-on: https://review.haiku-os.org/c/1347
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2019-04-02 20:06:27 +00:00
PulkoMandy
db2fd1989f Fix gcc config for Haiku on sparc
- Remove accidentally copied NetBSD stuff, so we actually use our
  linkspec
- Put the files in the correct order in config.gcc

This gets us past stage0 bootstrapping (building gcc_bootstrap package).

Change-Id: I245a5ae111a6ca5e02b55e7a49e47cadcbc21731
Reviewed-on: https://review.haiku-os.org/c/1081
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2019-02-23 16:37:14 +00:00
Augustin Cavalier
fd2fd983c5 gcc/mpfr: Disable LTO unconditionally.
This is kind of a hack, but really it's the configure script that
is broken, as it hard-checks for "gcc-ar" which of course does not
work with Clang builds. We want LTO to be enabled in GCC, and
GCC unconditionally passes all arguments it gets to sub-configures,
so all we can do is stop the flag from having any effect.

Fixes #14733.
2019-02-20 22:49:25 -05:00
Alexander von Gluck IV
abcbee7bba haiku: Add riscv arch support
Change-Id: Ifa5b93cb959798d74ed045f53f5050651f409314
Reviewed-on: https://review.haiku-os.org/c/1062
Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com>
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2019-02-21 01:32:48 +00:00
Adrien Destugues
198e0fde5e haiku: Get sparc buildtools going
- If kallisti5 is having fun with RISC-V, why can't I too?
- Gets as far as complaining we don't have a libsolv package in
  non-bootstrap builds

Change-Id: I0bb2b632d8f9007d5ad130f8cfddda36787050fc
Reviewed-on: https://review.haiku-os.org/c/1060
Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com>
2019-02-19 18:28:17 +00:00
Augustin Cavalier
b3407e33b3 Jambase: Restore old ar flags to fix GCC2. 2018-11-25 11:08:39 -05:00
Augustin Cavalier
6ce894a916 jam: Bump Jambase version, fix typo, and regenerate jambase.c. 2018-11-21 19:07:39 -05:00
Augustin Cavalier
2671c4b959 Jambase: Change default ARFLAGS and enable NOARSCAN by default.
On most systems, "D" (deterministic) is now the default archiving mode,
and so specifying "u" will throw a warning that "D" is being used anyway.
Jam previously assumed, as it was passing "u", that the timestamps inside
.a's were valid when they were actually 0, which was leading to spurious
rebuilds of .as.

After this change, we assume archives cannot be scanned for timestamps,
which should stop the spurious rebuilds of targets on most systems.
2018-11-21 18:46:31 -05:00
Augustin Cavalier
1d198a6bf6 Jambase: Update some rules from Haiku's overridden set.
These are the simple ones that were just overridden to handle spaces
in file names properly.
2018-11-21 18:44:04 -05:00
Augustin Cavalier
35013601f4 Jambase: Remove crelib.
Not needed anymore as I've just removed the platforms that used it.
2018-11-21 18:35:02 -05:00
Augustin Cavalier
8f66ea4bf2 Jambase: Remove old UNIXes. 2018-11-21 18:27:25 -05:00
Augustin Cavalier
b47cc04d00 Jambase: Add a blanket disclaimer about modifications.
Hopefully this is enough to satisfy the license requirements.
Remove some of the "LOCAL CHANGE" comments as a result (ones about
the HeaderCache remain.)
2018-11-21 15:00:12 -05:00
Augustin Cavalier
4d114c95a7 Jambase: Remove Mac OS 9 support.
macOS support is provided via the "MACOSX" case under "UNIX"
and is unaffected by this.

Also remove the Win98 (!) cruft while we're at it.
2018-11-21 14:57:36 -05:00
Augustin Cavalier
531869677c Jambase: Remove RELOCATE.
We don't need to support these ancient compliers anymore, so this
hack can go away.
2018-11-21 14:53:20 -05:00
Augustin Cavalier
161fe1206c Jambase: Remove OS/2, VMS, and Borland support. 2018-11-21 14:51:27 -05:00
Augustin Cavalier
7d73e6afae Jambase: Cleanup formatting and inline LICENSE.
No functional change intended.

We have been putting off refactoring this for too long. It's time to
change that.
2018-11-21 14:48:04 -05:00