Commit Graph

34 Commits

Author SHA1 Message Date
Isaac Freund 020e1aa54b build-styles: add zig-build
We call this "zig-build" instead of just "zig" as this build-style
relies on usage of the zig build system. In the future, other build
systems such as meson may support zig code. Furthermore, the zig
build system may be used to build C/C++ code as well, not just zig.
2021-11-13 11:46:21 -03:00
Jürgen Buchmüller 38076242e5 common/build-profile/i686-musl: fix triplet 2021-02-02 01:25:46 +01:00
q66 5922df60c7 xbps-src: make sure to apply FFLAGS properly like CFLAGS 2021-01-03 14:11:02 +01:00
q66 b1d4c6ebe8 common: add build/cross profiles for ppcle(-musl)
for now, these profiles set -mcpu to power8 and -mtune to power9
to match our ppc64le profiles, since there isn't really any native
harwdare to run these on (at least yet), and any packages will be
experimental for now anyway
2020-12-15 23:01:30 +01:00
q66 29255b0244 build-profiles: drop unnecessary cflags for ppc
we don't need to specify -mcpu where compiler default is used,
preserve mtune though; do not -mno-altivec on ppc since altivec
is not default in the first place and doing this will just
break random things that explicitly enable altivec for runtime
checked code; do not use -maltivec on either ppc64le or ppc64
since it's implied by their -mcpu's (power8 for ppc64le which
is implicit, and 970 for ppc64 which is explicit)

also remove -mlong-double-64 for musl targets as that's compiler
default and it's not necessary to pass it; also remove -mabi=elfv2
for both ppc64le and ppc64 since it's implied default
2020-12-06 05:51:31 +01:00
Jürgen Buchmüller f1a7dfbfef
common: fix XBPS_{,TARGET_}{ENDIAN,LIBC,WORDSIZE}
My first attempt was not working at all.

Signed-off-by: Jürgen Buchmüller <pullmoll@t-online.de>
2019-08-03 23:09:49 +02:00
Jürgen Buchmüller 6a1b977e0c Revert "profiles: introduce XBPS_{,TARGET_}{ENDIAN,LIBC}"
This reverts commit 9b3203401d.

It doesn't actually work. Use the method suggested by @q66 instead.
2019-08-03 23:09:36 +02:00
Jürgen Buchmüller 9b3203401d
profiles: introduce XBPS_{,TARGET_}{ENDIAN,LIBC}
Provide new environment variables for simplifaction of template checks:
...ENDIAN defines the (target) machine's endianness: "le" or "be".
...LIBC defines the (target) machine's C library: "glibc" or "musl".

Closes: #13356
Signed-off-by: Jürgen Buchmüller <pullmoll@t-online.de>
2019-08-02 17:34:05 +02:00
Jürgen Buchmüller ed4cdadcfd common/profiles: introduce XBPS_{,TARGET_}WORDSIZE
The host and target word size can be used to determine whether
cross compiling certain packages is possible.
2019-07-26 15:18:11 +02:00
Jürgen Buchmüller 2f206ef38c build-profiles: add ppc64.sh (glibc ELFv2) 2019-04-27 16:10:35 +02:00
q66 3c47efa808 common: expose build profile in cross env
[ci skip]
2019-04-09 19:26:59 -03:00
stenstorp 86ca0398b3 common: explicitly disable altivec on ppc 2019-02-08 13:06:57 -02:00
Thomas Batten 47f5b52023 common: Add rust target to ppc build/cross profiles 2019-01-22 22:54:16 -02:00
maxice8 918f50cd20
build-profiles/README: mention XBPS_RUST_TARGET 2019-01-19 07:59:52 -02:00
Thomas Batten 8f52911ac9 common: Add build/cross profiles for ppc/ppc-musl 2019-01-19 10:15:01 +01:00
q66 151f876627 common: add ppc64 build profiles and other ppc64 bits
This adds the build profiles for ppc64 targets as well as
modifications in other parts of the infra.

These targets are supported:

- ppc64le (glibc little endian elfv2)
- ppc64le-musl (musl little endian)
- ppc64-musl (musl big endian)

ELFv1 targets are explicitly not supported at this point.

Big endian musl supports ppc 970 or newer, while little endian
targets are set to a generic powerpc64le which effectively means
POWER8 and newer. Tuning is always set for POWER9, which is the
most likely target hardware. We also make sure AltiVec is always
on, because it is supported on all hardware we target.

[ci skip]
2019-01-05 23:38:00 +01:00
Rasmus Thomsen 45030a9b15 build-profiles: set XBPS_RUST_TARGET 2018-10-15 08:20:10 +02:00
Jürgen Buchmüller 272114cd05 xbps-src: trying to fix FFLAGS construction
This still isn't perfect. When the common/xbps-src/shutils/chroot.sh
function chroot_init() is called, the value for $XBPS_FFLAGS, which is
defined in common/build-profiles/bootstrap.sh, is empty.

Put the immediate value into the generated /etc/xbps/xbps-src.conf
file until someone finds out where passing the value of $XBPS_FFLAGS
throughout the scripts is missing.
2017-03-08 17:36:22 +01:00
Jürgen Buchmüller 60603dd0a5 common: rename FCC to FC and introduce FFLAGS 2017-03-08 16:04:42 +01:00
Juan RP 60f4ec0649 build-profiles/aarch64-musl: set XBPS_TARGET_CXXFLAGS correctly. 2015-06-05 07:16:53 +02:00
Juan RP 14e40a77e3 build-profiles/aarch64: set XBPS_TARGET_CXXFLAGS correctly. 2015-06-04 15:55:56 +02:00
Juan RP b13f6e6fc5 cross-arm-linux-musleabi -> cross-arm-linux-musleabihf (for ARMv6 HF). 2015-05-17 08:15:41 +02:00
Juan RP 33a2ce7cb0 New package: cross-armv7l-linux-musleabihf for armv7hf-musl. 2015-05-17 08:01:04 +02:00
Juan RP c25f4da501 common/build-profiles/i686-musl.sh: XBPS_HOST_TRIPLET -> XBPS_TRIPLET. 2015-04-22 10:40:49 +02:00
Christian Neukirchen 71fe1e30ff common/*-profiles/aarch64-musl.sh: add AArch64/ARMv8 musl profiles. 2015-03-30 18:33:43 +02:00
Christian Neukirchen 25bb572dbe common/*-profiles/aarch64.sh: add AArch64/ARMv8 glibc cross profile. 2015-03-30 18:33:43 +02:00
Juan RP 50a116d27a xbps-src: set default compiler/preprocessor/linker flags via etc/conf.
Rather than setting them in the build profile, just set them in
etc/defaults.conf (overridable via etc/conf) to simplify the code.

- Also enable _FORTIFY_SOURCE=2 in CPPFLAGS.
- Also enable -z,relro in LDFLAGS.

As suggested by @chneukirchen.
2015-03-04 15:18:46 +01:00
Juan RP 724426f8e7 common/build-profiles: added a minimal README. 2015-02-21 12:07:23 +01:00
Juan RP 2f9f85e3f5 build-profiles: *-musl: enable -fstack-protector-strong. 2015-02-07 11:37:44 +01:00
Juan RP 897b504d6b xbps-src: use bootstrap build-profile for the bootstrap target.
... otherwise the proper compiler flags are being used in the chroot case.
2014-12-24 09:55:29 +01:00
Juan RP 03d56c4b9c build-profiles: force -mtune=generic on native x86_64. 2014-11-22 19:17:45 +01:00
Juan RP 17ea528f46 common/build-profiles/armv7l-musl.sh: gnueabihf -> musleabi. 2014-11-11 22:27:35 +01:00
Juan RP 9a168e4463 xbps-src: introduce XBPS_TRIPLET and set it in the build-profiles.
This is for cases where host does not match build environment (x86_64 building for x86).
So we just force build/host triplet in native builds.
2014-11-11 22:24:40 +01:00
Juan RP c2bd01c8d3 xbps-src: introduce build profiles and use it by default.
common/build-profiles contains the compilation flags used in native
builds, and are defined per architecture:

	- x86_64 (glibc)
	- x86_64-musl (musl)

If XBPS_CFLAGS or XBPS_CXXFLAGS are set in `etc/conf`, the settings
from the build profile will be overrided.
2014-11-10 11:17:34 +01:00