608 Commits

Author SHA1 Message Date
Franck LeCodeur
c3d8487752 jam: Fix build warnings. Add missing include for POSIX compliant systems.
Warnings were:

Cc bin.linuxx86/fileunix.o
fileunix.c: In function ‘file_archscan’:
fileunix.c:217:6: warning: implicit declaration of function ‘read’; did you mean ‘fread’? [-Wimplicit-function-declaration]
  217 |  if( read( fd, buf, SARMAG ) != SARMAG ||
      |      ^~~~
      |      fread
fileunix.c:220:6: warning: implicit declaration of function ‘close’; did you mean ‘pclose’? [-Wimplicit-function-declaration]
  220 |      close( fd );
      |      ^~~~~
      |      pclose
fileunix.c:272:3: warning: implicit declaration of function ‘lseek’; did you mean ‘fseek’? [-Wimplicit-function-declaration]
  272 |   lseek(fd, offset + SARHDR, 0);
      |   ^~~~~
      |   fseek

Change-Id: Iedcdec01deb929d6c91ebc9d7eb72497fe078dd4
Reviewed-on: https://review.haiku-os.org/c/buildtools/+/4399
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
btrev43176
2021-09-02 19:34:43 +00:00
Franck LeCodeur
f5c73e1b90 jam: Fix build warning. Correct expression.
Pointer to struct on stack was given instead of the calculated value.

Warning was:

Cc bin.linuxx86/expand.o
expand.c: In function ‘var_expand’:
expand.c:210:49: warning: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘LIST *’ {aka ‘struct _list *’} [-Wformat=]
  210 |       printf("MAXSYM is too low! Need at least %d\n", l);
      |                                                ~^     ~
      |                                                 |     |
      |                                                 int   LIST * {aka struct _list *}

Change-Id: I65ab593287fc1b9aa2aba0056714726e29467012
Reviewed-on: https://review.haiku-os.org/c/buildtools/+/4398
Reviewed-by: John Scipione <jscipione@gmail.com>
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>
btrev43175
2021-09-02 19:32:44 +00:00
Michael Matz
1673cf9c0f binutils: elf/riscv: Fix relaxation with aliases [PR28021]
* This is a backport of a fix in binutils master and 2.37
  commit: 235f5ef4a6b8fbdcfaea8b629f7c6a9792a789de
* Solves a dobuble-relaxation optimization in binutils under riscv64

Change-Id: I6a2ed520615b5e36bbb0003bf3a6a186c0aaeca1
Reviewed-on: https://review.haiku-os.org/c/buildtools/+/4412
Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
btrev43174
2021-09-01 20:51:50 +00:00
Franck LeCodeur
cc988c8c90 jam: Fix build warning. Add missing include for Linux.
Warning was:

Cc bin.linuxx86/execunix.o
execunix.c: In function ‘execwait’:
execunix.c:301:19: warning: implicit declaration of function ‘wait’ [-Wimplicit-function-declaration]
  301 |      while( ( w = wait( &status ) ) == -1 && errno == EINTR )
      |

Change-Id: I7c0e53db8d18e9e6cb317980cb9be9026b7fce20
Reviewed-on: https://review.haiku-os.org/c/buildtools/+/4400
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>
btrev43173
2021-08-30 16:36:29 +00:00
Franck LeCodeur
88d0e51d38 jam: Fix warning. Argument has type long int but indicated format was int.
Cc bin.linuxx86/variable.o
variable.c: In function ‘var_defines’:
variable.c:121:46: warning: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘long int’ [-Wformat=]
  121 |    printf("MAXSYM is too low, need at least %d\n", val - *e);
      |                                             ~^     ~~~~~~~~
      |                                              |         |
      |                                              int       long int
      |                                             %ld

Change-Id: I389577a71416029fdff0f486af745ea482b14ddd
Reviewed-on: https://review.haiku-os.org/c/buildtools/+/4397
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>
btrev43172
2021-08-30 16:34:35 +00:00
Fredrik Holmqvist
5cccbfddba aarch64-haiku config, remove file_end_indicate_exec_stack
This causes unwanted .note.GNU-stack entries which we don't want.
It seems to be an old flag for executable permissions on stack.
btrev43171
2021-08-29 18:36:12 +02:00
Franck LeCodeur
dcd0415ded jam: Fix warning. Include missing header file.
Include header file for function prototypes hcache_init, hcache_done.
Note that include order is important, i.e. include has to be placed after the lists.h and rules.h includes.

Change-Id: Ic8a286662c8267bdfd19011b5ed8e825ee16d7ee
Reviewed-on: https://review.haiku-os.org/c/buildtools/+/4396
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>
btrev43170
2021-08-28 06:25:13 +00:00
Franck LeCodeur
1456812988 buildtools: Remove build warnings which are caused by missing return type declarations.
Change-Id: I3cba648f45e9eb537eb43ee2345c59fc33976dc7
Reviewed-on: https://review.haiku-os.org/c/buildtools/+/4376
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
btrev43169
2021-08-27 13:29:07 +00:00
Alexander von Gluck IV
2f8f3a16b7 binutils/emulparams: Rely on elf_i386.sh, layering haiku on top
* Solves a new segfault encountered while linking our 32-bit
  bios_ia32 loader under x86_64 (-m elf_i386_haiku)
  backtrace:
    _bfd_x86_elf_link_setup_gnu_properties() : reason: SIGSEGV
    elf_i386_link_setup_gnu_properties()
    ldelf_after_open()
    lang_process()
    main()
* I maintained our adjustments which differ / don't exist in
  elf_i386.  Lots of new code inclusions though in elf_i386

Change-Id: I9220730ba41bc029e40d1b4a8e5fbd85b312c1b5
Reviewed-on: https://review.haiku-os.org/c/buildtools/+/4375
Reviewed-by: Fredrik Holmqvist <fredrik.holmqvist@gmail.com>
Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com>
btrev43168
2021-08-26 20:24:40 +00:00
Alexander von Gluck IV
7c3988da64 binutils: Apply Haiku patches to 2.36.1
* a82c1c - Base Haiku patches
* d113c7 - Fix powerpc gas target for Haiku
* e97614 - arm64 target support
* f91439 - don't require coff, we don't need it anyway
* c3903e - enable PE support for ARM
* f4963f - Add missing __exidx_* to fix arm bootstrap

Change-Id: I27d810fa49c38ed6e1548fc1f880bebb62ee0d64
Reviewed-on: https://review.haiku-os.org/c/buildtools/+/4374
Reviewed-by: Fredrik Holmqvist <fredrik.holmqvist@gmail.com>
Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com>
2021-08-26 20:24:40 +00:00
Alexander von Gluck IV
46e1ce6913 binutils: Import binutils 2.36.1
Change-Id: I06fc1c19229e26c20132c255c92b7e71ea3cc31a
Reviewed-on: https://review.haiku-os.org/c/buildtools/+/4372
Reviewed-by: Fredrik Holmqvist <fredrik.holmqvist@gmail.com>
Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com>
2021-08-26 20:24:40 +00:00
Przemysław Buczkowski
9c6e71079b GCC: Patch for Apple Silicon compatibility
This patch fixes a linker error occuring when compiling
the cross-compiler on macOS and ARM64 architecture.

Adapted from:
https://github.com/richfelker/musl-cross-make/issues/116#issuecomment-823612404

Change-Id: Ia3ee98a163bbb62689f42e2da83a5ef36beb0913
Reviewed-on: https://review.haiku-os.org/c/buildtools/+/4329
Reviewed-by: John Scipione <jscipione@gmail.com>
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
btrev43167
2021-08-23 18:31:22 +00:00
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>
btrev43166
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>
btrev43165
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>
btrev43164
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>
btrev43163
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
btrev43162
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>
btrev43161
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>
btrev43160
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>
btrev43159
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>
btrev43158
2020-07-05 15:12:04 +00:00
Augustin Cavalier
c473a032a0 jam: Use posix_spawn on Haiku. btrev43157 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.
btrev43156
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 btrev43155 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>
btrev43154
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>
btrev43153
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>
btrev43152
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>
btrev43151
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>
btrev43150
2019-07-12 02:18:03 +00:00
Alexander von Gluck IV
d113c7b5b4 binutils: Fix powerpc gas target for Haiku
Change-Id: Ibdf538b02f3c0dab558ac3f4e3333a4b5cfba2af
btrev43149
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>
btrev43148
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.
btrev43147
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 ;-))
btrev43146
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
btrev43145
2019-05-24 20:33:26 -05:00
Augustin Cavalier
341e3be74c Merge our changes into GCC 8.3. btrev43144 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>
btrev43143
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
btrev43142
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>
btrev43141
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>
btrev43140
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.
btrev43139
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>
btrev43138
2019-02-21 01:32:48 +00:00