252 Commits
Author SHA1 Message Date
SED4906 c12b2aba11 build: initial support for ppc64
https://review.haiku-os.org/c/buildtools/+/2784

Change-Id: If429e20752712224ffc2afb0c32ca94d14a8b7a8
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10809
Haiku-Format: Haiku-format Bot <[email protected]>
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: Adrien Destugues <[email protected]>
2026-06-05 10:52:04 +00:00
Augustin Cavalier ff1c6abba8 build_cross_tools (GCC2): Use -std=gnu89 for GCC 13 also.
It shouldn't hurt, and may fix the build in more environments.
2026-05-19 13:15:41 -04:00
Augustin Cavalier d693dd96fc Better handling for use of newer GCCs to build GCC2.
* Move the logic to build_cross_tools, as some scripts use this
   directly.

 * Use gnu89 standard instead of disabling specific warnings.

 * Reduce optimization level used to compile GCC, to try and stave
   off possible bugs.

 * Explain why 32-bit is used for GCC 2. (With some hacks,
   GCC 2 compiled in 64-bit mode can be used to build an image
   that does get to the desktop, though.)

Tested with GCC 14.2.
2026-04-08 00:29:33 -04:00
Humdinger 3570c2e1b2 Add MAIL:label attribute
To be used by the user to assign a custom label to an email, see
forum thread [1].
It's supposed to replace the mis-use of MAIL:status which should be left
to show the actual status of an email ("New", "Sent", "Replied", etc.).

[1] https://discuss.haiku-os.org/t/introducing-a-new-indexed-attribute-meta-tag

Change-Id: I76f40beeb2c42ab40efa04db3ee3b1b6f77ec926
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10303
Reviewed-by: Adrien Destugues <[email protected]>
2026-02-20 11:45:09 +00:00
Christof Meerwald 09115ce009 build: Fix NetBSD build issues
* Use LITTLE_ENDIAN instead of __LITTLE_ENDIAN (LITTLE_ENDIAN is what
  POSIX now specifies and everyone seems to define - NetBSD also
  defines _LITTLE_ENDIAN, but not __LITTLE_ENDIAN)

* file descriptors greater than 2 must be explicitly passed to a child
  on NetBSD. POSIX leaves that unspecified, see
  https://pubs.opengroup.org/onlinepubs/9799919799/utilities/V3_chap02.html#exec

* system library functions get declared with visibility "default" on
  NetBSD, so a "hidden" visibility attribute is ignored on a
  redeclaration. Work around by putting the functions in a namespace -
  as they are extern "C", they still end up in the object file without
  the namespace qualifier.

* remove the cast on the NULL pointer on the funopen call - it's not
  needed and the types are different between FreeBSD (fpos_t) and
  NetBSD/OpenBSD (off_t); also trying to change that upstream
  https://github.com/openSUSE/libsolv/pull/603

Change-Id: I6ab7f3c74d18960d7589b403a1c219cdac85a453
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10133
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: Adrien Destugues <[email protected]>
2025-12-23 09:01:45 +00:00
Pascal Abresch e4c39f6a93 build: use command -v instead of which
Change-Id: Iec85bc1a2d5f2f3a88eae66ae1883c1301e1d3ba
Reviewed-on: https://review.haiku-os.org/c/haiku/+/8875
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: Máximo Castañeda <[email protected]>
Haiku-Format: Haiku-format Bot <[email protected]>
2025-02-03 14:13:34 +00:00
Augustin Cavalier b22fab9510 build_haiku_image: Fix type of MAIL:draft and MAIL:flags indexes.
Fixes #18503.
2023-08-25 14:53:50 -04:00
Alexander von Gluck IV 46cbd8ea98 build: Remove usage of obsolescent egrep
* "egrep: warning: egrep is obsolescent; using grep -E"
* egrep on haiku is a shell script calling grep -E
* given the warnings in the latest egrep, lets get
  ahead of the curve and migrate to grep -E

Change-Id: I0fc2b936c7a9c52f87caf97d8e9ac42516fee014
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5718
Reviewed-by: Adrien Destugues <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2022-10-06 16:28:01 +00:00
PulkoMandy ea56f5e0be kernel: replace Spleen font with an enlarged version of the original KDL font
Recently we introduced Spleen as a larger font for KDL for high
resolution displays. However, it looks quite different from our original
font. I designed an enlarged version of our original font (designed by
Brian J. Swetland and also found in NewOS, LK and Fuchsia) to use
instead.

Change-Id: I10872e407d45b906f8b6c7ba44b2f993dcd19bff
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5382
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: Adrien Destugues <[email protected]>
2022-06-19 08:38:46 +00:00
Jessica Hamilton e9e00b80c0 cross_tools: allow specifying a custom sysroot path
* Use with --sysroot /path/to/sysroot; useful for CI
  environments and cross-building.

Change-Id: I27a93a5d209cd5324591587e85fce9b47c18172d
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5318
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: Adrien Destugues <[email protected]>
2022-06-05 09:08:20 +00:00
Augustin Cavalier db0b7d8401 build: Use $rmAttrs and $(RM) in more places instead of 'rm' directly.
Should not result in a functional change in most cases, but it might
on some systems without full xattrs or emulation.
2021-09-06 15:59:44 -04:00
Augustin Cavalier d8ffdea39e build/scripts: Add missing set -e to rm_attrs. 2021-09-06 15:58:03 -04:00
Zoltán Mizsei e7e3b6c14a build/cross_tools_gcc4: explicit disable libatomic and libgomp
Change-Id: If8cad96420cd249106c611aaf59353adab1271ee
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3897
Reviewed-by: Jérôme Duval <[email protected]>
2021-05-06 08:13:40 +00:00
Fredrik Holmqvist 9e4c5cf124 Add -std=c++14 to build_cross_tools_gcc4
CLang fails to build ISL otherwise, and if you are setting up
cross compiling, you should have a modern enough compiler

Fixes #16434

Change-Id: Ieb4a33015899896ea3bb2d1abc59b10fe0b4b3f2
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3730
Reviewed-by: Fredrik Holmqvist <[email protected]>
2021-02-02 17:44:47 +00:00
Alexander von Gluck IV d123849688 build/cross-tools: explicitly set ISA for riscv64
* Enable TLS for riscv64. For now select a dummy
  implementation.
* RISC-V has a register (tp) dedicated to TLS
* All the "desktop-like" RV64 chipsets implement GC
* Same ISA we currently build for... but calls it out
  in-case defaults change.

Change-Id: I623b6e5c309b6a6e80ec378e456b2335c561269d
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3632
Reviewed-by: Adrien Destugues <[email protected]>
2021-01-20 19:38:01 +00:00
Alexander von Gluck IV f598f71cd5 build/cross_tools_gcc4: x86_64, explicit enable-multilib
* This was originally added circa 2012. via hrev43954
* Our toolchain appears to work fine now with explicit
  multilib enabled.

Change-Id: I1f5d55c63a6b3b6ab1c4db95da3d14d5ef2da0df
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3315
Reviewed-by: Jérôme Duval <[email protected]>
2020-10-15 12:48:38 +00:00
Alexander von Gluck IV c33a98eebc build/scripts/gcc2: Specify -fcommon as the default changed in gcc10
* gcc10 changed to -fno-common default
* Resolves #16520

Change-Id: I9af2234532177f2153159eea94a05a106587ebbb
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3317
Reviewed-by: Adrien Destugues <[email protected]>
2020-10-14 15:36:20 +00:00
Adrien Destugues 12ef216972 build_haiku_image: no fs indices on CDs
The iso9660 filesystem does not support them
2020-07-22 17:48:32 +02:00
Adrien Destugues 5b80a2fa0d build_haiku_image: don't recreate indices when updating
mkinex fails when the indices already exist.
2020-07-21 18:38:06 +02:00
Adrien Destugues c5aa9dfb4c Create filesystem indices when creating Haiku image
Fixes #4424.

Change-Id: I737ee4f9bb70ce48c0c94f3a862a3073da8c0c4d
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2796
Reviewed-by: Jérôme Duval <[email protected]>
2020-07-18 14:00:10 +00:00
Fredrik Holmqvist 7cea5bf07f Remove graphite building, we have gcc with these deps in build
When we moved ISL, MPFR, GMP and so on inside GCC we no longer
need to do any specific building to support graphite.
2020-07-18 15:19:17 +02:00
Augustin Cavalier dd419e59dc build_haiku_image: Distinguish between system (activated) and unactivated packages.
Previously, all packages on the image, both activated and unactivated,
were in $systemPackages, so if a package actually in /system/packages
had a dependency in the Installer optional package area, the dependency
checking would see no problem but the generated image would be broken.

Now, packages going into /system/packages are treated separately
from those going elsewhere, and error checks added so the above
condition will not occur.

(I ran into this while working on the build-package upgrade
in the following commits.)
2020-04-19 17:53:10 -04:00
Alexander von Gluck IV cb837539f5 build/scripts: make toolchain scripts more self-sustainable
Change-Id: Ibe4cf105a20184392498371ba770529d69bd61a7
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2417
Reviewed-by: waddlesplash <[email protected]>
2020-03-24 18:24:13 +00:00
Alexander von Gluck IV 3d4c153e17 buildtools: Disable tls on riscv64 for now
Change-Id: I8084e0fa2ffbaf04242fa14617807d83abbd5586
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1556
Reviewed-by: Alex von Gluck IV <[email protected]>
Reviewed-by: Adrien Destugues <[email protected]>
2019-08-21 12:00:51 +00:00
Alexander von Gluck IV 890224c31c scripts/find_triplet: Fix shell, requires bash not sh
Change-Id: Ie8219230810856c2a5f1c99bb6f3162eeff0964e
2019-08-19 09:05:52 -05:00
Alexander von Gluck IV 925d9f1909 build/scripts: Add find_triplet to allow easy solving of arch to gcc triplet 2019-08-01 10:36:01 -05:00
Augustin Cavalier d511533a48 build_cross_tools_gcc4: Keep static libstdc++, but rename it.
The gcc_bootstrap recipe still needs it, it seems.
2019-06-16 20:30:53 -04:00
Augustin Cavalier 9bb9cc8896 build_cross_tools_gcc4: Remove the generated static libstdc++.
We always want to use the shared one from the syslibs package,
never the shared one from this build.

Part of #14842: after this change, the ICU build now fails with
"cannot find libstdc++" instead of an invalid symbol.
2019-06-15 15:42:13 -04:00
Augustin Cavalier 4dd5af2f75 build_cross_tools_gcc4: Handle $PATH having spaces in it properly.
Fixes the build of the cross tools under WSL.
2019-02-21 14:02:13 -05:00
Augustin Cavalier 5a7156f435 build_cross_tools_gcc4: Clear "missing" scripts instead of touching files.
This just stops the errors from occuring rather than trying to
rebuild the files at all. This is much cleaner, and solves
a few cases that the other method did not.
2019-02-21 14:01:40 -05:00
Augustin Cavalier 849f58107a build_cross_tools_gcc4: Enable initfini-array in binutils.
Our implementation of it now behaves properly after the last commit.

Change-Id: I6bebc91ae0f9512ea07ad6a7a4ccea9ee758e01b
Reviewed-on: https://review.haiku-os.org/c/908
Reviewed-by: waddlesplash <[email protected]>
2019-01-28 16:37:28 +00:00
Augustin Cavalier b3dc16eecb build: Use xorriso instead of mkisofs or genisoimage.
It seems that not all Linux distributions ship an EFI-enabled
cdrtools (i.e. mkisofs takes -e option), Arch being one that
does not.

So instead, we now use xorriso universally, which is
as (or more, in most cases) widely available, and supports
emulating mkisofs with the EFI commands universally.

This also has the added benefit that we can drop genisoimage
support altogether.
2019-01-08 19:31:15 -05:00
Augustin Cavalier 17640964db build_haiku_image: Remove obsolete copyright concatenator.
All third-party software is now packaged and we ship the licenses
directory.
2018-11-15 20:32:22 -05:00
Augustin Cavalier d8b0a13568 build_cross_tools: export ACLOCAL to stop GCC from trying to use it.
This should fix the build of the crosstools on Haiku, CentOS, and
other platforms with versions of autofools too old or too new for
GCC 7.
2018-11-10 14:41:55 -05:00
waddlesplash 2d9270e859 determine_haiku_revision: Properly get rid of the commit hash.
Change-Id: I3f57b1cd4d819e7f531001d747bf7b103954a918
Reviewed-on: https://review.haiku-os.org/581
Reviewed-by: waddlesplash <[email protected]>
2018-09-18 19:50:52 +00:00
Augustin Cavalier 563a1a0da1 determine_haiku_revision: Rework "no tag on HEAD" output.
When HEAD is tagged, the output will be identical to what it was
before (the latest hrev tag and nothing else.) When HEAD is not tagged,
and the most recent tag is further back, we now use a format like this:

hrevXXXXX+N(+dirty)

... where N is the number of commits since hrevXXXXX, and +dirty is added
if the working tree is dirty. This is significantly shorter than the
previous model (as it does not have the Git revision.)

Fixes #14445.

Change-Id: Ide7f66cf0ac1c1f05402afc52b6be3b68b66d6dc
Reviewed-on: https://review.haiku-os.org/566
Reviewed-by: waddlesplash <[email protected]>
2018-09-16 00:09:14 +00:00
waddlesplash d28caaed68 build_cross_tools: Also touch .in files to prevent their regeneration.
Change-Id: Id893460327fd6db064c6fc0fb4de8e6ada1b1773
Reviewed-on: https://review.haiku-os.org/496
Reviewed-by: waddlesplash <[email protected]>
2018-08-28 21:27:50 +00:00
waddlesplash d34addaf3f build_cross_tools: Compile GCC2 as 32-bit everywhere.
It is just straight up broken on most systems without this, as
the same "cast specifies signature type" appears there too.

Exactly why this fixes the problem does not appear to be any more known
than it was when this was first instated in 2012.
2018-08-27 22:25:18 -04:00
waddlesplash 2cf7d49495 build_cross_tools: Touch configure scripts so the Makefiles don't regenerate them. 2018-08-27 19:06:22 -04:00
waddlesplash 75f7932ae2 build_cross_tools_gcc4: Forcibly disable maintainer mode.
This should stop GCC from trying to reconfigure.
2018-08-26 22:24:45 -04:00
waddlesplash d1feb7cb60 build_cross_tools: Have scripts exit on failure.
Previously they just silently continued, which meant that if part of the
cross-tools build failed, you would have to scroll back pretty far to
see what the failure was.
2018-05-19 14:54:10 -04:00
Alexander von Gluck IV 82876dc4cb build_cross_tools_gcc4: Disable TLS on PowerPC for now
Change-Id: Ib99a1a4aeeb5d17a301ffd1d9c5fcadd37261ebf
2018-02-28 21:46:24 -06:00
Augustin Cavalier 825700d34a configure: Rewrite implementation of --update.
Previously --update was kind of a hack, as it just dumped all
the variables from BuildConfig back into ./configure and attempted
to rerun from there.

Instead, now we store all of the variables and environs configure
was invoked with in the top of BuildConfig and re-call it using them.
This is much more robust, as configure will actually recompute
all of the values from the BuildConfig.

As a side effect, if configure was originally invoked to build crosstools,
it would have done so again, so instead add a check to see if they
exist, and skip them if they do. It's easy enough to delete the
directory if you want to force a crosstools rebuild.

Briefly discussed with mmlr on IRC.
2017-12-04 20:14:18 -05:00
Jessica Hamilton 6cc6f04747 build_cross_tools_gcc4: bring in sync with native compiler.
* Previously, the cross-compiler would generate code that doesn't
  run on Haiku, particularly where TLS is concerned. It also ended
  up with a c++config.h header incompatible with the version in
  the native compiler.
* Now possible to correctly cross-compile rust for Haiku.
2017-09-05 21:41:39 +00:00
Jérôme Duval 03820c114a Update binutils_x86 and binutils for x86_gcc2 and x86_64.
* starting with 2.27, binutils defaults to initfini-array instead of init and fini,
this leads to problems in Haiku, just disable for the time being.
2017-08-06 14:12:28 +02:00
Adrien Destugues fda0bf77fb Revert "repo rework: Re-add compatibility url field"
Revert "repo rework: Remove stubs; Breaks repo compat."
Revert "repo rework: Remove need for repos to be self-aware"

This reverts commit a2b2f4d642.
This reverts commit 602076ef82.
This reverts commit 5ffaf72c8a.

These changes break the build on Haiku and the ability to create repo
mirrors, for the lack of a replacement for the URL (an UUID was evoked
on the mailing lists, but not implemented).

We are due for a release soon, please don't break the build.
2016-12-10 12:55:56 +01:00
Alexander von Gluck IV 5ffaf72c8a repo rework: Remove need for repos to be self-aware
* See #12917 for details.
* Squashed to one commit to make revert easy if we
  run into any issues.
* pkgman is now pre-attached to the 'current' repo
  version within nightly images so they can be updated
  by default.
* This shouldn't impact us keeping older sets of package
  versions by commit hash for building older hrevs.
* There are XXX stubs with "Kill me". These will need
  to be dropped after users are given sufficent time to
  upgrade. We're dropping a previously required field (url)
  so making this a slowish roll out.
* Makes the repos a lot less restrictive which should
  help PM package building automation be a bit easier.
* Once this stuff smooths out, we'll add UUID's to the
  repo definitions for duplicate repo detection.
2016-12-02 00:41:06 -06:00
François Revol e409118307 configure: pass proper gdb target for m68k 2016-10-20 13:30:33 +02:00
François Revol 4da6cf8403 configure: allow building GDB along with the buildtools
from a stock GDB source tree.

I was getting tired of doing it manually.

Note the prefix is not exactly the same as the buildtools since the
machine triplet is different, but it's not an issue.

Tested with arm and ppc with GDB 7.8. Might need patching gdbTarget for other archs,
as stock GDB doesn't know about Haiku.
2016-10-20 11:14:50 +02:00
François Revol 96c72d6933 typo 2016-10-20 11:14:50 +02:00