Python 2.7.x has *much* better cross-compiling support so that it's now
actually possible to properly cross-compile Python during the bootstrap.
Before, it would just depend a lot on luck and the build host used, now
it even cross-compiles on OS X.
This means it's now possible to build a working bootstrap image on OS X!
:)
Interestingly, it only complained about some of them. Changing them all
to %define though, as equ means it should try to evaluate it once, which
of course it can't really if those are ebp+CONSTANT.
Didn't catch those since I wasn't building gcc2h.
Thanks to jessicah for reporting and testing the fix!
This reverts commit 4a4e2dae77.
It broke the build with:
Resolving package dependencies ...
Encountered problems:
problem 1: nothing provides cmd:as>=2.23.2_2013_04_09 needed by
gcc-4.8.2_2014_01_28-2
solution 1:
- allow deinstallation of gcc-4.8.2_2014_01_28-2
Instead, the fixed binutils package should be used. Reverting this now
as otherwise it's not even possible to build a system to build a fixed
package.
This fixes building openssh on the bootstrap image.
The real problem is that it picks up this file instead of the histedit.h
from libedit, though. But since this include was missing anyway, it
makes sense to fix this file, too.
The new version breaks git, but only once it's in the repository.
Installing it manually alongside the old one works. Rebuilding git and
uploading a new package does not work, as for the package management,
the new version is exactly equal to the old, as the port revision isn't
newer. We need to come up with a proper way to handle this.
Also removes zsh, as that requires the new libpcre.
This is required on OS X and other systems which do not have the glibc
extensions for regular expressions (FreeBSD is not one of them as it
already includes gnuregex in /usr). With this there are no hardcoded
non-standard paths for OS X anymore.
regex.c and regex.h are from the official gnuregex 0.12 distribution,
the only modification is that I added __BEGIN_DECLS and __END_DECLS to
regex.h.
The correct way is to set precomposeunicode = true in .git/config so
that git handles NFC vs. NFD. Not sure what a good place to document
that would be, though.
The symbol is needed for global objects. Usually, GCC also requires
this, but for some reason, the linking error only occurs when using
Clang.
Signed-off-by: Jérôme Duval <[email protected]>
Interestingly, [0] should be as invalid in C++ as [] in this case, yet
Clang refuses [], but accepts [0].
Signed-off-by: Jérôme Duval <[email protected]>
This way, it is a compile time constant and Clang does no longer
complain about dynamic arrays of non-POD types.
Signed-off-by: Jérôme Duval <[email protected]>
This dummy was intended for boot code, however, atomic_add seems to be
already properly defined in boot code.
Signed-off-by: Jérôme Duval <[email protected]>
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
Nested functions are a (again, broken) GNU extension which is not
supported by Clang. It has been replaced by a bunch of gotos and a
variable that works as a return address.
Variable length arrays of non-PODs are not part of the C++ standard, but
a GNU extension that never worked correctly. Instead, BStackOrHeap array
is used now, which makes sure that it's not too big for the stack, calls
all constructors and is valid C++.
As weak aliases are not supported on OS X, this caused problems when
building Haiku on OS X, as this file is also used for the host tools.
Signed-off-by: Axel Dörfler <[email protected]>
This states that our default license is the MIT license and includes all
the licenses from data/system/data/licenses.
The LICENSE file is scraped by various bots and also used by the GitHub
license API.
This depends on quite a nasty hack to generate those, namely using
inline assembly to generate a file with things that are not actually
assembly, which Clang therefore filters out.