* 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.
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.
* The main build rules now cause their targets to depend on the
platform such that global per-platform intializations can be
set up by making the platform pseudo target depend on the
target returned by the initialization rule.
* This file contains jam rules for getting the different versions
of libgcc, libsupc++ and libstdc++ used throughout Haiku's
build system.
* Additionally, there are rules for accessing the c++ headers
and the gcc headers.
* These rules are included by Jamrules, but not yet used anywhere.
* gcc_syslibs contains the shared libraries that are being built
as part of gcc, i.e. libgcc_s.so, libsupc++.so and libstdc++.so
* gcc_syslibs_devel contains the static versions of the respective
libraries plus additionally kernel versions of libgcc.a and
libsupc++.a (which do not provide support for pthreads or TLS
and thus do not have any external dependencies). Additionally,
this build feature contains the c++ and gcc headers from the
non-legacy compiler.
* When adjusting the package name for the secondary architecture,
it is unclear where exactly in the package name the architecture
specifier is. To remedy, we try all possible positions until
we find the package (or there are no other possibilities).
Tested against wget, curl, and git, which all were still able
to verify certificates and download from HTTPS sites.
Signed-off-by: Oliver Tappe <zooey@hirschkaefer.de>
* 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.
* 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.
* Now that system updates seem to work properly, put the haiku
repository config and cache file onto the image automatically.
* Adjust URL of haiku repository (it is currently redirected
to some other URL at download.haiku-os.org, but that will be
changed later).
- acr (needed by mpd)
- dos2unix
- getconf (used by valgrind)
(also used by autoconf to determine ARG_MAX faster than try-and-error)
- getopt (needed by acr)
- html_parser (used by netsurf for its git manifest)
- readline_x86
- srm
It seems curl doesn't like the new ca_root_certificates package.
This breaks git clone and probably other things.
Maybe it has to do with the version string.
Since I can't seem to build a replacement curl, I'm reverting to the previous
ca_root_certificates so at least next nightly still works.