Commit Graph
4756 Commits
Author SHA1 Message Date
PulkoMandy b31ff5b650 ImageRules: remove dependency on bc
POSIX shell now supports $((expression)) for arithmetic expression
evaluation. This removes the need for an external command, which may not
be available on the build host.

Change-Id: Ibd1342c723c2320d77c4de5b1620be32086daa56
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9238
Reviewed-by: Adrien Destugues <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2026-01-07 13:06:57 +00:00
PulkoMandy 368cac3c9d ImageRules: do not include catalogs from .so in dependencies
The rule to add an executable or shared library to the Haiku image
automatically also includes the corresponding locale catalogs and MIME
database entries.

The locale catalogs for .a files linked in the executable are also
included, since .a files are not themselves added to the same package.
This makes sure the executable has all the catalogs it needs.

The jam rule was written assuming that NEEDLIBS would only contain .a
files, but that is not the case when compiling Haiku. Libroot for
example is also in NEEDLIBS (this makes sure it is linked by absolute
file path, whereas LINKLIBS would instead use -lroot and may link the
host system one).

Filter out .so files from the NEEDLIBS list when determining which
catalogs to include.

Fixes #19721.

Change-Id: I04604bd37c656f987dd17be8db6edffe88cee651
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10144
Reviewed-by: Adrien Destugues <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2025-12-28 11:57:29 +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
Christof Meerwald d29137917a build: Add NetBSD as a host platform
* NetBSD is very similar to FreeBSD

* there is no libdl on NetBSD

* packages live in /usr/pkg on NetBSD

* the argument to tolower() must be representable as an unsigned char

Change-Id: Icff569c4472f7e91edd0ce6d489affb04babde7c
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10130
Reviewed-by: waddlesplash <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2025-12-19 17:45:22 +00:00
PulkoMandy 1251c7d8a9 Bootstrap image: Add network stack and drivers to preloaded boot modules
This is needed for network booting the image.

Change-Id: I8132bca717de7e0b72d43ad9b348f045300ef353
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10112
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
2025-12-18 10:45:08 +00:00
Augustin Cavalier 0630e71e0e BuildSetup: Remove some unnecessary disabling of DEBUG.
All these can be built with DEBUG=1 now, it appears.
I tested most of the others and they still fail.

(The settings in this section can be overridden by setting something
else in UserBuildConfig, it appears; they're likely only relevant
when trying to build the entire tree with DEBUG=1.)
2025-12-12 21:19:35 -05:00
PulkoMandy a6e9275281 Fix bootstrap build for arm and arm64
- Update texinfo to 7.2
- Update bash to 5.3
- Update ICU to 70.1

These versions are patched in haikuports.cross and allow cross compiling
from Debian sid with a modern GCC. Confirmed that both architectures can
build a filesystem, kernel and bootloader.
2025-11-22 17:08:33 +01:00
PulkoMandy 92cbc8ab0d Remove some obsolete build rules
CLucene and Taglib have not been updated since the switch to package
management. The old rules do not wrk since they relied on the
haiku-files.org domain. The libraries can be reintroduced as build
packages if we ever decide to resume the project that needed them
(general file content indexing).

Change-Id: Id7e3fb7c5b9070addaaa9763053d7d006f2b3484
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9690
Reviewed-by: waddlesplash <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2025-10-14 12:02:35 +00:00
Augustin Cavalier 1b745b2d9d HaikuBootstrap: tty is now pty. 2025-09-17 15:19:55 -04:00
Augustin Cavalier 01d48fcd27 Rename "tty" driver to "pty".
It was already that way in the source tree.
2025-09-03 19:21:03 -04:00
Jérôme Duval ad49acb949 null: merge /dev/zero and add a /dev/full
present on both FreeBSD and Linux.
useful to test a "disk full" condition.

Change-Id: Ibac6b50e8063c90e3e324ec04ac136c34298cc7f
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9617
Reviewed-by: waddlesplash <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2025-08-29 06:57:40 +00:00
Alexander von Gluck 7a1b94ee07 build-packages/riscv64: Bump zstd to 1.5.7
Change-Id: Iaf198c96950541fa226dabda5c0222b033695de8
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9297
Reviewed-by: waddlesplash <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2025-05-20 13:25:56 +00:00
PulkoMandy c1b0e7e0c5 Jam: Remove BinCommand, Executable, Server and Preference rules
They are all equivalent to the Application rule. Let's make things simpler.

Change-Id: I71f8518dae275542019d95fbdd7548b2129eeca8
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9237
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: Adrien Destugues <[email protected]>
2025-05-04 21:30:49 +00:00
Augustin Cavalier e249d5a241 HaikuBootstrap: Add missing PCI modules. 2025-04-22 14:40:49 -04:00
PulkoMandy caa62d911c Update haikuportscross package definitions to use new version of m4
Change-Id: Ica56fc6787f6f5dd7f5d6aa49b30989df7e0c24c
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9156
Haiku-Format: Haiku-format Bot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
2025-04-07 20:32:24 +00:00
Sylvain78 d67db61955 [netboot] Improvements on boot menu for PXE Boot
-Display "Network" as boot method
-Set the name of the boot volume to 'IP:filename' in case of net boot, "CD-ROM" in case of CD boot method.
-TODO : set a default volume name in TarFS::Volume() ?

Change-Id: Ia44d8f93227be5243af5c210375a635790daf0f7
Reviewed-on: https://review.haiku-os.org/c/haiku/+/8523
Tested-by: Commit checker robot <[email protected]>
Haiku-Format: Haiku-format Bot <[email protected]>
Reviewed-by: Adrien Destugues <[email protected]>
2025-03-27 17:25:28 +00:00
John Scipione def8a585fa BuildSetup: ld on darwin does not support --no-as-needed
Change-Id: I2f5ada95d5f8b346374aebc3a1a8114f345cb29f
Reviewed-on: https://review.haiku-os.org/c/haiku/+/8906
Reviewed-by: waddlesplash <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2025-02-04 17:27:04 +00:00
Augustin Cavalier 62f8ef3a7f BuildSetup: Clean up HOST_KERNEL and linking rules.
* Drop all HOST_KERNEL_* definitions, they aren't used or needed
   anymore, it seems.

 * Use --no-as-needed unconditionally; it works under Clang+LLD now.
   (and indeed it's still needed for the "unzip" host tool to
   compile and link properly.)

 * Drop --copy-dt-needed-entries. It was added around the time of
   GCC 10, but it seems that it's not needed anymore, or at least I
   did a minimum build having compiled the host tools without it
   and all seemed to be fine. Furthermore, it seems lld doesn't support
   it, so this fixes the build under FreeBSD and other platforms
   that also don't use ld.bfd same as Darwin/macOS.
2025-02-04 01:13:06 -05:00
Jérôme Duval c8cd427e30 build: extend stack protection
* use -fstack-protector-strong and -fstack-clash-protection
* also bin and some user add-ons

Change-Id: I593365e55414ac447bde54980a5c73202e9bb172
Reviewed-on: https://review.haiku-os.org/c/haiku/+/8887
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
Reviewed-by: Adrien Destugues <[email protected]>
Haiku-Format: Haiku-format Bot <[email protected]>
2025-02-03 17:14:18 +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
Jérôme Duval e01dfaf620 build: add acpi_thermal, amd_thermal and pch_thermal to minimum definition
Change-Id: I943b77390266c4e444ddb406455ebaa6a9549565
Reviewed-on: https://review.haiku-os.org/c/haiku/+/8856
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: Jérôme Duval <[email protected]>
Haiku-Format: Haiku-format Bot <[email protected]>
2025-01-23 05:25:54 +00:00
Devin Gillman 6a9e72b0d3 BuildSetup: Added HomeBrew Apple Silicon paths.
Addresses issue here: https://discuss.haiku-os.org/t/building-on-macos-cannot-find-zstd-h/14489/4

And the differences are called out on the install page here: https://docs.brew.sh/Installation

Cleanups by waddlesplash: put the new paths in their own 'block'
and adjust comments.

Change-Id: Ie00fbc07abae141d8ac0580dd661a2fc3cf7a216
Reviewed-on: https://review.haiku-os.org/c/haiku/+/8732
Reviewed-by: waddlesplash <[email protected]>
2024-12-30 17:06:31 +00:00
Alexander von Gluck 33beece770 jam/BuildSetup: Gracefully handle arm64, riscv HOST_CPU
* HOST_CPU was getting set to "" on arm64 host builds of
  Haiku which resulted in varying host tool directories
  objects/linux/x86_64/release vs objects/linux/release
* This captures the changes in buildtools abcf50c2 which
  adds proper arm 64, and riscv 32/64 OSPLAT definitions

Change-Id: Ife768fe3e4b1f90748b8f09afd632d4cd9c87d2d
Reviewed-on: https://review.haiku-os.org/c/haiku/+/8720
Reviewed-by: waddlesplash <[email protected]>
2024-12-27 15:29:12 +00:00
Augustin Cavalier ce14c3c0f1 build: Remove the profile from the JAM_TARGETS.
The DefineBuildProfile logic implicitly removes it later on
when it replaces JAM_TARGETS entirely. But in some cases it
may not do that, and so if we want it to be removed in all cases,
we have to do that here.

Fixes commands like "jam -q -jN @nightly-anyboot haiku.hpkg"
giving a "don't know how to make @nightly-anyboot" message.
2024-12-23 15:54:49 -05:00
Augustin Cavalier 1aabdb2b8d build: De-indent CommandLineArguments.
If no targets are specified, exit with an error. But this should
never happen, since jam implicitly specifies "all" even if
nothing specific is given.
2024-12-23 15:52:30 -05:00
Augustin Cavalier 8b67e745eb build: Add check that a value was specified in SetConfigVar.
e.g. if one merely has "SetConfigVar DEBUG : HAIKU_TOP src system kernel ;"
this won't actually set a value for DEBUG, and thus it won't use one
of the pre-set debug objects directories, and so all the objects will
wind up in the root of wherever jam is run.
2024-12-23 15:33:03 -05:00
PulkoMandy 1b6f159e88 neomagic: enable -Werror, fix compiler warnings
Change-Id: I176a316c6cb18d3684cf6166c4a2fe74f816d0d8
Reviewed-on: https://review.haiku-os.org/c/haiku/+/8702
Reviewed-by: Adrien Destugues <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2024-12-22 14:27:47 +00:00
PulkoMandy 1fd7b2f396 3dfx driver: enable -Werror and fix warnings
Change-Id: I8278dab0456dbad86c27e483fcb91a9c21d3f517
Reviewed-on: https://review.haiku-os.org/c/haiku/+/8701
Reviewed-by: Adrien Destugues <[email protected]>
2024-12-22 14:27:47 +00:00
PulkoMandy a4d7ac5b5f ArchitectureRules: enable -Werror for more video drivers
Change-Id: I446716f1b767f390dc589715f8bd41f50de325f2
Reviewed-on: https://review.haiku-os.org/c/haiku/+/8699
Reviewed-by: Adrien Destugues <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2024-12-22 08:38:02 +00:00
Anarchos 4d3a68fb7d netboot: bump size for tar decompression
Add network add-ons drivers to the archive for x86_64 architecture too.

Change-Id: I8296586d5f2b1f3d4c08250e28aefd32428b21b9
Reviewed-on: https://review.haiku-os.org/c/haiku/+/8522
Haiku-Format: Haiku-format Bot <[email protected]>
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: Adrien Destugues <[email protected]>
2024-12-21 07:46:10 +00:00
Augustin Cavalier 6e1bd12f74 locked_pool: Delete.
The SCSI module was the only thing using it, and now it isn't
used at all.
2024-11-05 14:05:04 -05:00
Augustin Cavalier a0e3665350 HaikuPortsCross/x86: Synchronize. 2024-10-18 16:07:44 -04:00
Augustin Cavalier a740e21b6b HaikuPortsCross: Drop libsolv_bootstrap.
It isn't used anymore, libsolv is vendored in-tree.
2024-10-18 16:04:57 -04:00
Augustin Cavalier 724227e017 intel_cstates: Rename to x86_cstates.
It works just fine on modern AMD CPUs, too.
2024-10-17 13:55:33 -04:00
Jessica Hamilton 7c6ab83094 configure: detect supported retry flags for wget.
Some systems may be using wget2 symlinked to wget (Fedora,
currently), which doesn't support --retry-on-host-error.

Change-Id: I9fac080e7ac1cc4c39a03f6c27e9c42f8697ecff
Reviewed-on: https://review.haiku-os.org/c/haiku/+/8336
Tested-by: Commit checker robot <[email protected]>
Haiku-Format: Haiku-format Bot <[email protected]>
Reviewed-by: Adrien Destugues <[email protected]>
2024-10-14 11:01:19 +00:00
Augustin Cavalier 6e690f7d11 drivers/network: Rename "vmx" to "vmxnet" and clean up glue. 2024-10-09 13:40:20 -04:00
CodeforEvolution 48d27198d0 vmx: Introduce VMXNET3 Network Driver from FreeBSD 14.1
Tested with VMWare Workstation Pro 17.6.0 with Haiku x86_64 hrev58201.
To test, had to manually open the .vmx file associated with the VM and added the line:
ethernet0.virtualDev = "vmxnet3"

Change-Id: Ic76dcc61583707345bee46624814a38f66eb4f9f
Reviewed-on: https://review.haiku-os.org/c/haiku/+/8438
Reviewed-by: waddlesplash <[email protected]>
2024-10-08 12:16:49 +00:00
Augustin Cavalier d0ff5bacff ArchitectureRules: Reinstate the -fno-builtin-fork for 32-bit x86 only. 2024-09-24 14:47:27 -04:00
Augustin Cavalier c289d46cf1 ArchitectureRules: Cleanups to base flags.
* Trim down comment about fno-delete-null-pointer-checks.

 * Remove -fno-builtin-fork -fno-builtin-vfork, they don't seem
   to be needed with GCC 13.

 * Remove legacy-GCC settings from kernel flags, as we don't use
   legacy-GCC there anymore. Also drop fno-builtin as ffreestanding
   implies this.
2024-09-24 13:51:22 -04:00
Augustin Cavalier b47e8b0cad build: Unify BeOS ABI compatibility ifdefs around __HAIKU_BEOS_COMPATIBLE.
_BEOS_R5_COMPATIBLE_ was defined in ArchitectureRules while
__HAIKU_BEOS_COMPATIBLE is defined in HaikuConfig.h (which is
in the include path for sys/types, SupportDefs, and other
base headers.)
2024-09-24 12:09:33 -04:00
Adrien Destugues 6d3408c82f Add Wonderbrush to release for all architectures
Previously wonderbrush was closed source and only available for 32bit
x86, but that is not the case anymore.

Fixes #19093

Change-Id: I05a34f7aaf82ea7cc2f65b7cbd39eeaf222d6143
Reviewed-on: https://review.haiku-os.org/c/haiku/+/8351
Haiku-Format: Haiku-format Bot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2024-09-20 17:46:07 +00:00
Augustin Cavalier a5dbc9f81c HaikuPorts: Synchronize. 2024-09-10 23:21:22 -04:00
Augustin Cavalier 0ef833e5e8 build: Only add haiku_source to package repository if HAIKU_INCLUDE_SOURCES is set.
This way, we won't build the source package unnecessarily for
nightly images when it isn't included in the build.
2024-09-02 15:59:58 -04:00
Adrien Destugues 64b7d332ba Add a note about why some parts of the code are not built with -Werror. 2024-08-27 13:08:06 +02:00
Adrien Destugues 4cce55e112 Revert "ArchitectureRules: Remove lines for -Werror for FreeBSD drivers."
This reverts commit 946839b850.

Keeping these allow to keep track of why Werror is not enabled for the
entire network drivers subdirectory.
2024-08-27 13:01:59 +02:00
Augustin Cavalier 946839b850 ArchitectureRules: Remove lines for -Werror for FreeBSD drivers.
This is imported code from FreeBSD; using -Werror here doesn't make much
sense. Most of the lines were commented out anyway.

Lines for native drivers left alone, of course.
2024-08-24 13:57:04 -04:00
Augustin Cavalier 90b84ff209 ArchitectureRules: Cleanup and adjustments for Clang.
* Clang -target *haiku* now properly sets -fPIC and -shared.

 * Clang now understands -fno-semantic-interposition.

 * Add necessary LINKFLAGS for the kernel to get only 2 LOAD segments.

 * Remove workaround to remove -fPIC from the BOOT flags now that
   we don't inject it.

It is now possible (with a few minor hacks) to build a full system
image with Clang + LLD. The BIOS loader crashes on startup however, but
using a GCC-built BIOS loader, the system can boot all the way to the
desktop.
2024-08-24 12:38:04 -04:00
Augustin Cavalier d998a69e4d ArchitectureRules: Add two more -Wno to Clang warnings setup.
These generate too much spam.
2024-08-24 01:44:42 -04:00
John Scipione 55e018dcb8 DefaultBuildProfiles: Increase nightly image size to 650MB
... up from 600MB because we need a bit more space for swap in the
live environment for 3d apps.

Fixes #18986

Change-Id: Ie8ba03c2fb65d02f1c26609d78101ee355d65630
Reviewed-on: https://review.haiku-os.org/c/haiku/+/8085
Reviewed-by: waddlesplash <[email protected]>
Haiku-Format: Haiku-format Bot <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2024-08-21 17:17:57 +00:00
Jérôme Duval 1512c9d2f3 Add the linprog headers to the haiku_devel package.
these are required by libalm headers

Change-Id: I7eb0164383ca919f0ede72952759a85a66a88c70
Reviewed-on: https://review.haiku-os.org/c/haiku/+/8086
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
Haiku-Format: Haiku-format Bot <[email protected]>
2024-08-21 17:17:43 +00:00