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]>
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]>
* 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]>
* 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]>
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.)
- 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.
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]>
-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]>
* 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.
* 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]>
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.
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.
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]>
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]>
* 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.
_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.)
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.
* 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.