Commit Graph

46 Commits

Author SHA1 Message Date
Ithamar R. Adema
f9f3b564ac ARM: only enable C++11 for libroot, not globally
This resembles the x86_64 build, and fixes the compilation issues
with the bootloader stdio.h header.

Fixes #11144
2014-09-01 15:28:49 +02:00
Adrien Destugues
f66aa8595c Enable C++11 for all ARM targets, not just beagle.
* Also clean up the flags definitions in the beagle target to avoid
repeating the flags 3 times.
2014-08-18 09:00:50 +02:00
Oliver Tappe
11ae3c5fe7 Cleanup build system and configuration.
* Drop unused variables from build system that refer to the system
  libraries.
* Drop unused lists of libgcc objects.
* Drop no longer used variables from configuration script.
* Remove no longer needed building of kernel-libgcc and -libsupc++ from
  build_cross_tools_gcc4, only the boot-specific (32-bit) libs are
  built for a x86_64 target.
* Explicitly disable threads and TLS support when building the cross
  compiler, as the only libraries that are used by Haiku's build system
  is the 32-bit libgcc and libsupc++ for the bootloader on x86_64 (and
  for that neither is wanted).
2014-08-13 13:32:45 +02:00
Oliver Tappe
220d040227 Use libstdc++, libsupc++ and libgcc from gcc_syslibs.
* Instead of faking libstdc++.so from libstdc++.a, use libstdc++.so
  from the gcc_syslibs build feature for everything except x86_gcc2.
* Use libgcc_s.so from the gcc_syslibs build feature for everything but
  x86_gcc2 (which still carries libgcc as part of libroot.so).
* Drop filtering of libgcc objects for libroot, as that is no longer
  necessary since we're only using libgcc-as-single-object for libroot
  with x86_gcc2, where the filtered object file doesn't exist. Should
  the objects that used to be filtered cause any problems as part of
  libgcc_s.so, we can always filter them as part of the gcc build.
* Use libsupc++.so from the gcc_syslibs build feature for everything but
  x86_gcc2.
* Adjust all Jamfiles accordingly.
* Deactivate building of faked libstdc++.so for non-x86-gcc2. For
  x86_gcc2, we still build libstdc++.so from the sources in the Haiku
  source tree as part of the Haiku build .
* Put gcc_syslibs package onto the image, when needed.
2014-08-13 13:32:44 +02:00
Oliver Tappe
77253e671b Switch to using crtbeginS.o and crtendS.o unconditionally. 2014-08-13 13:32:44 +02:00
Oliver Tappe
afde44733f * When using the non-legacy compiler, use the c++ and gcc headers
provided in the gcc_syslibs_devel build feature for building Haiku.
* Simplify declaration of c++ and gcc headers for the legacy compiler -
  in the end we always use the ones living by our source tree anyway.
* Fix a couple of missing local declarations for jam variables, which
  were necessary to avoid a build problem with strace. There are
  probably more bugs like these hiding in our build system files, but
  I'm saving the fix for those to the next commit.
* Add new gcc packages to the HaikuPorts (x86*-)repositories.
2014-08-13 13:32:34 +02:00
Oliver Tappe
36f3164c3e Fix #11076 - build failing on Haiku.
* Haiku does not currently provide crtbeginS.o and crtendS.o, so
  we fall back to crtbegin.o and crtend.o.
  
This should not have any ill-effects, as the available compilers on
Haiku do not use __cxa_atexit() yet.
2014-07-27 16:00:53 +02:00
Oliver Tappe
a36fd6667a Use crtbeginS.o and crtendS.o everywhere.
* Gcc is now using __cxa_atexit, so we need to use the crtbegin
  and crtend implementations that are meant to be used for shared
  libraries. This avoids crashes of servers that load add-ons
  (Media-Addon-Server and Print-Server) when shutting down Haiku.
* As executable are shared on Haiku, we use crtbeginS.o and crtendS.o
  for those, too.
* To simplify, we even use crtbeginS.o and crtendS.o in the kernel,
  but there they don't currently make a difference, as the respective
  initialization and cleanup functions are not being invoked by the
  kernel.
2014-07-26 19:13:24 +02:00
Jonathan Schleifer
8f9b4f71c5 Fix comment 2014-07-17 01:25:27 +02:00
Jonathan Schleifer
32ccf45f44 build/jam/ArchitectureRules: Check for != 1, not = 0 2014-07-17 01:14:55 +02:00
Ingo Weinhold
e8681d9409 Increase boot loader size for x86* boot floppy a bit 2014-07-12 18:41:09 +02:00
Oliver Tappe
006637a9b6 Revert "Increase HAIKU_BOOT_ARCHIVE_IMAGE_OFFSET for debug builds."
* That change did not make any sense, as the floppy-boot images
  can't be built in debug mode anyway (the result is much too large).

This reverts commit 911821275a.
2014-06-11 09:43:42 +02:00
Oliver Tappe
911821275a Increase HAIKU_BOOT_ARCHIVE_IMAGE_OFFSET for debug builds. 2014-06-02 02:00:28 +02:00
Pawel Dziepak
2c001246a0 build: when using gcc4 build kernel with c++11 2014-05-08 23:07:50 +02:00
Oliver Tappe
8c54af563c Whitespace cleanup in root and 'build' folder.
* Removed trailing whitespace and empty lines at top of files.
2014-05-01 12:55:41 +02:00
Adrien Destugues
840839b546 In jam, unset variables aren't equal to 0
Make our Werror check work again with gcc.
2014-04-15 09:17:57 +02:00
Jonathan Schleifer
ecf79f7430 Fix my previous commit
I didn't realize that if $(var) is true if var is 0. Only noticed that
after pushing, sorry.
2014-04-03 18:52:17 +02:00
Jonathan Schleifer
c2b76f7f8f Add --use-clang option to configure
This also adjusts the jam files to not use $(CLANG) anymore.
2014-04-03 18:26:29 +02:00
Jonathan Schleifer
a04a520b0d Switch back from yasm to nasm
These days, nasm supports more instructions than yasm. Additionally, it
offers a disassembler.
2014-03-28 23:10:24 +01:00
Jonathan Schleifer
4626c49e32 desklink: Fix %ld being used instead of B_PRId32
Also enables -Werror.
2014-03-27 20:36:39 +01:00
Jonathan Schleifer
18bac98397 Fix missing includes in libbsd
This makes it compile with -Werror.
2014-03-22 21:23:30 +01:00
Alexander von Gluck IV
d035469704 ARM: Name beagleboneblk back to beagle
* Pulkomandy pointed out that all Beagle hardware is
  very similar so we could likely get away with a single
  ARM target board.
2014-02-26 15:33:40 -06:00
Alexander von Gluck IV
6d3363214f ARM: Simplify board specification
* Don't assume verdex as it isn't clear this was
  occurring.
* Make an educated guess on HAIKU_BOOT_PLATFORM
  based on provided board (but still allow it to
  be overridden)
* Error out if user doesn't populate
  HAIKU_BOOT_PLATFORM or enters an unknown board
  name.
* You need to add "-sHAIKU_BOOT_BOARD=xxx" to
  your jam to build for the proper ARM device.
* Rename beagle to beagleboneblk as per the
  documentation.
2014-02-26 00:27:18 -06:00
Alexander von Gluck IV
1b38c3412c mips: Remove mips
* As per the ML discussions. Bumps MIPS to tier 3.
* We've reached a unanimous descision that MIPS doesn't
  target any real / valid hardware Haiku wants to pursue
  at the moment.  In the event that anyone wants to pursue
  MIPS, feel free to fork Haiku into your own repository
  (and we'll even link to it on the website ports page)
* If someone develops a viable plan for MIPS (and gets the
  port working, it can be readded at a later date)
2014-02-18 16:29:09 -06:00
Pawel Dziepak
3306e3aa75 build: Enable -Werror for add-ons/kernel/power 2014-01-29 04:11:42 +01:00
Pawel Dziepak
bf1694667e build: Enable -Werror for libroot/os 2014-01-29 04:11:42 +01:00
Pawel Dziepak
225acfb3b0 build: Enable -Werror for bootloader 2014-01-29 04:11:42 +01:00
Jonathan Schleifer
624435c494 Add flags needed for Clang to the build system.
This uses a variable CLANG that should be set to the Clang version. For
now, this has to be done manually (e.g. when invoking jam using jam
-sCLANG=34), but later, this will be auto-detected.

Work towards bug #10396
2014-01-11 17:33:36 -06:00
Alexander von Gluck IV
eb45d168e1 GL: Remove OpenGL kit, x86 Mesa
* Depend on Mesa packages to provide functionality
2013-12-22 23:36:02 -06:00
Ingo Weinhold
1604cdaef8 Update -Werror work-around for arch_debug_console.o
Fixes the gcc 2 build again.
2013-12-05 20:42:06 +01:00
Ingo Weinhold
724f4e2d38 Fix kernel -Werror support
The introduction of secondary arch support for kernel files disabled
-Werror for all kernel files, since the -Werror flags were moved from
{CC,C++}FLAGS to TARGET_WARNING_{CC,C++}FLAGS_<arch>, which, however,
was overwritten by the SetupKernel rule. This commit introduces new
global variables {HAIKU,HOST,TARGET}_WERROR_FLAGS[_<arch>], which
contain the additional -Werror flags to be applied for the architecture.
The config variable WARNINGS can be set to "treatAsErrors" to cause
-Werror and {HOST,TARGET}_WERROR_FLAGS[_<arch>] to be appended to the
compilation flags.

Fixes #10280.
2013-12-05 12:48:22 +01:00
Ingo Weinhold
e29f08c37c Strip executables on m68k boot floppy image 2013-10-12 17:24:26 +02:00
Ingo Weinhold
7879928fb2 Revert "Enable stripping binaries in m68k boot floppy"
This reverts commit e986f5fce9.
2013-10-12 16:00:21 +02:00
François Revol
e986f5fce9 Enable stripping binaries in m68k boot floppy
This makes it fit again.

We can't reference in BuildSetup a variable set with the other
ones in KernelArchitectureSetup since the rule is invoked later.
2013-10-11 23:30:57 +02:00
François Revol
4d5508263e libroot: Properly fix linking with libgcc without cmdline overflow
Instead of listing all the objects we want from the libgcc archive
we just make a copy of it and remove those we don't want, and link
to it.

This should allow returning MAXLINE in jam to a sane value.
2013-10-08 23:34:57 +02:00
François Revol
f7d6c2f8e5 M68K: Switch to new gcc options for specifying cpu
Latest gcc converts the old ones to the new ones anyway...
including when passing to gas, which of course is not new enough,
so we have to also force gcc to pass the old one around in one case.
2013-09-30 04:02:21 +02:00
Ingo Weinhold
81291304ad Merge remote-tracking branch 'haiku/master' into package-management
Conflicts:
	build/jam/BuildSetup
	build/jam/HaikuImage
	build/jam/board/sam460ex/BoardSetup
	build/jam/board/verdex/BoardSetup
	data/catalogs/apps/icon-o-matic/fr.catkeys
	src/add-ons/kernel/drivers/audio/hda/hda_codec.cpp
	src/add-ons/kernel/drivers/disk/usb/usb_disk/usb_disk.cpp
	src/apps/debugger/files/FileManager.cpp
	src/apps/debugger/files/FileManager.h
	src/apps/debugger/user_interface/gui/inspector_window/MemoryView.cpp
	src/apps/haiku-depot/MainWindow.cpp
	src/apps/haiku-depot/MainWindow.h
	src/apps/haiku-depot/Model.cpp
	src/apps/haiku-depot/PackageInfo.h
	src/apps/haiku-depot/PackageInfoListener.h
	src/apps/haiku-depot/PackageInfoView.cpp
	src/apps/haiku-depot/PackageInfoView.h
	src/apps/haiku-depot/PackageListView.cpp
	src/apps/haiku-depot/PackageListView.h
	src/system/kernel/arch/arm/arch_timer.cpp
	src/system/libroot/os/arch/arm/atomic.S
	src/tools/translation/bitsinfo/Jamfile
	src/tools/translation/bmpinfo/Jamfile
	src/tools/translation/tgainfo/Jamfile
2013-09-27 01:55:45 +02:00
Ingo Weinhold
dc3be29614 Enable -Werror in src/bin/multiuser 2013-09-18 16:33:18 +02:00
Ingo Weinhold
106d4015f2 rule ArchitectureSetup: Remove superfluous arch macro definition
The macro for the architecture is already defined by the compiler.
2013-08-28 00:46:12 +02:00
Ingo Weinhold
3db97b7688 Enable -Werror for package_repo and pkgman 2013-08-28 00:36:28 +02:00
Oliver Tappe
1af14947fd Add missing case for x86_64 as host CPU architecture. 2013-08-27 23:30:23 +02:00
Oliver Tappe
d20975d920 Fix negated predicate relating to input_server.
* without a secondary arch, jam would complain about not knowing how
  to build <x86_gcc>input_server
2013-08-05 21:44:12 +02:00
Ingo Weinhold
b2b6052e40 ArchitectureSetup: fix library name map
It's too early to use the MultiArch* rules yet, since the TARGET_*
variables haven't been initialized yet.
2013-08-05 18:52:33 +02:00
Ingo Weinhold
f7d5e4c647 ArchitectureSetup: fix library map for secondary arch
The libraries where resolved to the library targets for the primary
architecture.
2013-08-05 06:39:10 +02:00
Ingo Weinhold
de799f73c0 MultiArch* rule: support optional architecture parameter 2013-08-05 06:37:56 +02:00
Ingo Weinhold
b0944c78b0 More work towards hybrid support
* All packaging architecture dependent variables do now have a
  respective suffix and are set up for each configured packaging
  architecture, save for the kernel and boot loader variables, which
  are still only set up for the primary architecture.
  For convenience TARGET_PACKAGING_ARCH, TARGET_ARCH, TARGET_LIBSUPC++,
  and TARGET_LIBSTDC++ are set to the respective values for the primary
  packaging architecture by default.
* Introduce a set of MultiArch* rules to help with building targets for
  multiple packaging architectures. Generally the respective targets are
  (additionally) gristed with the packaging architecture. For libraries
  the additional grist is usually omitted for the primary architecture
  (e.g. libroot.so and <x86>libroot.so for x86_gcc2/x86 hybrid), so that
  Jamfiles for targets built only for the primary architecture don't
  need to be changed.
* Add multi-arch build support for all targets needed for the stage 1
  cross devel package as well as for libbe (untested).
2013-08-01 08:54:06 +02:00