Commit Graph

3979 Commits

Author SHA1 Message Date
Alexander von Gluck IV d787141342 efi: Only no-red-zone and accumulate on x86_64
* We're making the assumption about EFI here, but it's
  fine since those defines will just go unused on non-efi builds.
* Jam segfaults when we get two for's, a case, and an if deep.
  (adding an x86_64 check to efi section just below)

Change-Id: Id98e87b6570ddc7d9c2195cd05b0526e71771675
2018-10-28 19:35:14 -05:00
Augustin Cavalier 80abc9a907 build: Restore a mechanism to build EFI-less anyboots and CDs.
This fixes the 32-bit build following the merge of multiple bootloaders
support.

Fixes #14656.
2018-10-27 16:57:35 -04:00
Barrett17 de42fb602e Welcome Codec Kit!
* Fix MediaDebug header.
* Add codec lib name mapping.
2018-10-24 16:12:10 +02:00
Barrett17 1275248a77 codec_kit: First half
* Move all codec stuff into libcodec.so
2018-10-24 16:12:03 +02:00
Alexander von Gluck IV 8522edfe36 jam: Ensure common boot LDFLAGS and ASFLAGS get distributed 2018-10-19 08:55:41 -05:00
Alexander von Gluck IV dd45d433ed u-boot: Fix after multi-loader changes
* Move MMU image to a real image define vs being crammed into
  the u-boot bootloader Jamfile
* ARM not working yet, but better!
* x86 still builds

Change-Id: I3fb873dbac06fe2db893915b667bf3ce1df44686
2018-10-18 10:49:59 -05:00
Alexander von Gluck IV 59bba8b9ec build: Make EFI opt-out vs opt-in
Change-Id: I94a5692b2e39e45ff843182f43fa757a0549583c
2018-10-17 21:21:47 -05:00
Jessica Hamilton 1f96a3cbde system/boot: Add support for multiple bootloaders 2018-10-17 14:47:46 -05:00
waddlesplash 0dd0b40f89 BuildFeatures: Remove curl buildfeature.
No longer used.

Change-Id: I3a97e18e76da0995f9ab8599b796144c5bc0452c
Reviewed-on: https://review.haiku-os.org/606
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2018-09-30 04:33:42 +00:00
waddlesplash 1a7a96606c BuildSetup: Link against -ldl as well as -lm on non-Haiku.
Fixes the build of libpackage_build following Curl dependency removal.

Change-Id: Idd08fc1c099ba19c6b46c447686f36ce0b35652a
Reviewed-on: https://review.haiku-os.org/605
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2018-09-30 03:28:44 +00:00
Augustin Cavalier 2627aa0698 HaikuPorts: Update build-packages again to pull in new Mesa. 2018-09-27 00:37:43 -04:00
Augustin Cavalier b16a18cba6 build: Include extra information in the package version.
Previously only the "effective revision", i.e. the hrev by itself,
was used. Now we include the "commits ahead" count and the "dirty" flag,
if they're there, using _ instead of - of course.

Change-Id: I5238d01926c2cca242bffbdef30bff606a173a06
Reviewed-on: https://review.haiku-os.org/596
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
(cherry picked from commit e7c5d994267fb7d49e3dd50c2854e9b37c9ffca1)
Reviewed-on: https://review.haiku-os.org/597
2018-09-27 03:38:07 +00:00
Augustin Cavalier 36378fb355 DefaultBuildProfiles: Make sure the final CD image is <= 694MB. 2018-09-26 02:45:05 -04:00
Augustin Cavalier 7a382debc3 HaikuPorts: Update the build-packages set. 2018-09-26 02:43:36 -04:00
Augustin Cavalier d6a1675c00 DefaultBuildProfiles: Without sources, release images fit in 700MB.
We don't want to ship these images as the ones for main distribution,
but at least we can make them available as downloads for those who do want
to use CDs.
2018-09-25 23:05:23 -04:00
Alexander von Gluck IV 85428f0e6b profiles: Bump release to 1100/1300 MiB
* This gives us plenty of space for source packages.
* A Mini-DVD is 1.4 GiB, and USB sticks of 2 GiB are at
  the sweet spot of low-price vs size.
* Unused space will be compressed in release zip.
* We blew by 700 MiB long ago. Sorry CD-R folks.

Change-Id: I3bbe4508777027f6fe7c0ee2992637541feeb88f
2018-09-24 08:59:23 -05:00
Augustin Cavalier 503d889314 Remove the "Haiku" screensaver from the tree.
As discussed in #14447.
2018-09-10 19:51:02 -04:00
Augustin Cavalier 23446707de ArchitectureRules: Pass -shared to the universally to the linker when using Clang. 2018-09-08 18:56:33 -04:00
Augustin Cavalier 372195500d Versioning: Add BETA_1 and PRE_BETA_2 version constants.
* PRE_BETA_2 is now the default in master.
 * For libbe: R1/alpha4 used internal=8, but nobody bumped master
   at the same time, so now we are on internal=9.
2018-08-28 00:21:13 -04:00
Augustin Cavalier 0804aecea1 HaikuPorts: Add lcms, needed by openjp2. 2018-08-27 00:45:29 -04:00
Augustin Cavalier b58a151493 build: Link against libgcc_s.so.1 instead of libgcc_s.so.
The latter is not just a symlink to the former, but is a small pseudo-
library that tells the linker to use the .so.1 version instead. As we
do not pass -L to this directory to the linker invocation, the linker
thus cannot find it, and so errors out.

We rightly do not want the linker doing "magic" things for us that
we don't expect, and so even if this one case is fine, we shouldn't
allow the linker to take care of this automatically for us when
it comes to libroot and other core system functionality, especially
as going forward we may indeed add a second libgcc version due to ABI
breaks. Instead, link against .so.1 directly.

Fixes the build breakage caused by the GCC 7 bump.
2018-08-26 13:35:40 -04:00
Augustin Cavalier 5fd406b4c8 HaikuPorts: Add OpenJPEG to the build packages set.
We now build libicns against it. It seems that it is better-maintained than
JasPer, so we should probably consider switching the JPEG2000Translator to
use it also.
2018-08-26 12:44:29 -04:00
Augustin Cavalier 7d5faaf44f OptionalPackages: Remove some of the less-useful devel packages.
ffmpeg_devel pulls in some other devel packages we don't really need,
and very few things are built against it anyway, so whoever needs it
can install it manually. Same goes for freetype and fontconfig.
2018-08-26 12:33:36 -04:00
Augustin Cavalier 21909dacd2 HaikuPorts: Update build-packages set. 2018-08-26 01:29:35 -04:00
Augustin Cavalier 9b41d53230 HaikuSource: Add missing SEARCH. 2018-08-23 20:11:49 -04:00
Augustin Cavalier a41d815c67 ramfs: Lots of fixes to the build.
* Store pointers in an addr_t instead of int32, for 64-bit's sake
 * Use DebugSupport.h instead of userlandfs Debug.h and remove extra parentheses
 * Create a header-only String class based on the userlandfs String and use it
 * RecursiveLock instead of Locker.
 * Jamfile cleanups and other misc. changes.

It isn't yet adapted to the new VFS API, so the build is still somewhat
broken.
2018-08-22 19:19:56 -04:00
Augustin Cavalier e0d28cdccf reiserfs: Fix the build and enable on x86_64. 2018-08-22 19:19:54 -04:00
Augustin Cavalier d37ae86568 LocaleRules: Add a second version of the catalog extraction actions.
Clang behaves slightly differently than GCC and allows us to steamroll
some errors we don't care about that GCC does not.
2018-08-21 20:52:41 -04:00
noreply@haiku-os.org 5174b9e8d1 Revert "Update translations from Pootle"
This reverts commit 6b7f260899.
2018-08-21 17:58:13 +00:00
Autocomitter 6b7f260899 Update translations from Pootle 2018-08-21 14:12:05 +00:00
Augustin Cavalier c20e7a6862 build: Add a haiku_source package.
This contains the contents of Haiku's sources, which is necessary
to include in "with source" builds for proper (L)GPL compliance,
mostly because we have GPL code in the tree.
2018-08-20 21:00:25 -04:00
Augustin Cavalier 28ab14e35f MainBuildRules: Use $(CC) -E instead of "cpp" as the preprocessor.
"cpp" is the system C preprocessor, not the one from our cross-compiler,
and in the case of my system which does not have GCC installed at all,
it doesn't even exist.

With this, Clang-ARM builds successfully create a "haiku-arm.mmc".
I couldn't get it to output, even after blessing it with "rune",
but that may just be my fault...
2018-08-17 21:54:56 -04:00
Augustin Cavalier bd43e4ae23 ArchitectureRules: Add -fPIC and fix warning flags for Clang. 2018-08-17 12:03:53 -04:00
Alexander von Gluck IV 816a311dd7 build/clang: Use elf_i386 under clang for 32-bit bootloader
Change-Id: If4606e62e94b9d4e393a667d35c09b9471b66653
2018-08-17 10:17:27 -05:00
Augustin Cavalier 8bc13c5528 BuildSetup: Default HOST_C++ and HOST_LINK to HOST_CC.
Now that HOST_CC is actually passed in, we need to default
everything to it; otherwise, it's up to the Jambase as to
what CC we are actually using.

Found by trying to build Haiku on a system that has no "cc"
executable, but Jam tried to use it anyway (as all three of CC,
C++, and LINK.)
2018-08-15 14:41:40 -04:00
Augustin Cavalier 252e4f6299 configure: Set a default LINKFLAGS in addition to LDFLAGS.
The former is passed to the compiler when linking using it,
the latter is passed to ld when it is invoked directly.

Also modify ArchitectureRules to not overwrite this setting.
2018-08-15 14:19:30 -04:00
Augustin Cavalier 937314e526 ArchitectureRules: Enable --no-undefined on GCC2.
Seems to work just fine.
2018-08-14 13:54:36 -04:00
Augustin Cavalier 4c13d20c24 LocaleRules: Pass the files to the preprocessor instead of piping it in.
This rule process the entire target's source files at once, and so
whoever wrote this rule in the first place (PulkoMandy?) probably
assumed without even testing that "cc -E" would create multiple
outputs for multiple inputs.

It doesn't, though: it just outputs them in sequence on the command line
the same way it does when the files are piped in through "cat". This
also has other advantages (e.g. preprocess errors caused by the compiler
assuming it was C not C++ code and so not defining __cplusplus, local
includes are now resolved properly, etc.)

Doing it this way does exposes other problems like the one fixed in the
previous commit (headers with no context defined, which worked previously
only because they used the context of the preceding `cat`'ed file.)

We now also remove the .pre file after collecting the catkeys.
2018-08-13 17:00:16 -04:00
Augustin Cavalier 20c61bb7a4 Revert unrelated changes from previous commit.
I should have read the update script more closely as to
how it added changes for committing...
2018-08-13 15:58:01 -04:00
Autocomitter ef9994ee77 Update translations from Pootle 2018-08-13 19:45:39 +00:00
Augustin Cavalier b8a38e2bc1 ArchitectureRules: Move Clang warning flags to appropriate location.
Also tweak the no-delete-null-pointer-checks comment so it's slightly
less offending of the 80-chars rule.
2018-08-11 15:36:04 -04:00
Augustin Cavalier e823d3f06f BeOSRules: Pass CCFLAGS through to the compiler during ResComp.
Otherwise, Clang warns that we haven't set an architecture on ARM,
which is set in CCFLAGS. Since these might also contain other flags
that affect the preprocessor, there isn't any good reason to not
pass it through, so do that.
2018-08-11 15:33:08 -04:00
Augustin Cavalier d0bfb2c044 ArchitectureRules: Append Clang flags before potential early-exit.
Gets the Clang-ARM build a bit further into libroot.
2018-08-11 15:26:54 -04:00
Augustin Cavalier 47a96c099e MainBuildRules: Fix CreateAsmStructOffsetsHeader on recent Clang.
It seems that at on some platforms at least, Clang uses @define instead
of #define, but with functionally identical syntax, so use sed to
process it as such.
2018-08-11 15:20:30 -04:00
Augustin Cavalier cf10fee2c1 ArchitectureRules: Pass -march / -mcpu flags to the assembler also.
Fixes #14317.
2018-08-11 15:18:36 -04:00
Alexander von Gluck IV 459da273e4 build_packages: Now update arm and ppc after hardlinks (oops)
Change-Id: I2140dc50fb1cedcede317deb1a3473ec4db7871c
2018-08-08 10:27:49 -05:00
Alexander von Gluck IV dc6b314309 build_packages: add efi for ppc and arm for fun
Change-Id: I81575e9f96d9682d17d5badd83808baaba4a7c69
2018-08-08 10:21:34 -05:00
Alexander von Gluck IV 3718fb861d efi: Drop x86_64 assumptions.
Change-Id: I3d806f43ef951013369fd0bf906eca5977e8d34c
2018-08-08 10:18:06 -05:00
Alexander von Gluck IV a0f7292802 efi: no-red-zone and accumulate-outgoing-args only x86
Change-Id: Ic9d94298d21e55beb2829be8dbd09f4b3d5db99a
2018-08-08 10:10:37 -05:00
Alexander von Gluck IV 38fc668b2e arm64: Add architecture rules
Change-Id: Ia9cbe77e810b3ab1bde5677a16cc2fbd931de965
2018-08-03 09:55:49 -05:00