15 Commits

Author SHA1 Message Date
Tee KOBAYASHI
6938b7c4b4 scripts: Add variable TERMUX_PKG_ENABLE_CLANG16_PORTING
to control errors enabled by default with Clang/LLVM 16.
2023-03-28 16:27:35 +09:00
Aditya Alok
33b1397f36 haskell-packaging: End support for library packages
- Now we use cabal (comparable to rust's cargo) to build binary packages.

Reason:
- Haskell's cabal packaging system is like rust's cargo. Every packages
  depends upon some specific version of other library. Hence, it is
  hard to maintain each and every version.
- Patching packages so that they use latest of dependencies breaks
  compatibility.

Benefits:
- Enables building very large packages like `pandoc`.
- Reduces disk space used.
- Lesser packages to maintain.

Signed-off-by: Aditya Alok <alok@termux.dev>
2023-02-21 10:08:12 +05:30
Henrik Grimler
9063e5919f scripts: move libutil.so creation to termux_step_start_build
Instead of in termux_setup_toolchain_XX.  This helper lib does really
not have anything to do with our toolchain so it does not belong in
termux_setup_toolchain.

It is also good to only modify $TERMUX_PREFIX (for other things than
make install) before termux_step_create_timestamp_file has been run,
and termux_step_start_build fits that criteria.
2023-02-10 13:52:28 +01:00
Henrik Grimler
6c5c752173 scripts: toolchain: define CXXFILT var as well
Some packages require it during build (for example openjdk), so let's
make sure the correct one is found.
2023-02-10 13:52:25 +01:00
Tee KOBAYASHI
9c2e9d9ca5 scripts: Bump NDK to r25c 2023-02-02 16:38:20 +05:30
Chongyun Lee
2d6635f0b2 scripts(toolchain): don't include EGL headers 2022-12-21 11:02:18 +00:00
Jia Yuan Lo
b88e09873d scripts: remove termux_setup_gnu_as_23c
Replaced by termux_setup_no_integrated_as
2022-12-10 16:15:00 +08:00
kawanakaiku
d8bfd748b5 scripts: dont include GLES vulkan headers 2022-11-01 21:14:40 +01:00
Chongyun Lee
268452c314 scripts: update to ndk r25b 2022-09-15 00:37:34 +08:00
Jia Yuan Lo
035c918418 scripts: add termux_setup_gnu_as_23c for NDK r25 (#11615)
NDK r25 has removed GNU Assembler (GAS). Removal of GAS introduced a number of build issues.
The most prominent is:
/usr/bin/as: unrecognized option '-EL'

Some options to solve this:
1. Disable building custom assembly and suffer performance penalty
2. Hand rewrite the custom assembly to be LLVM compatible
3. Wait for upstream to write LLVM compatible assembly (openssl, openssl-1.1)
4. Bring back GAS from NDK r23c

In this commit, GAS is brought back as a separate toolchain instead of following NDK r23c file hierarchy.
We pass "--gcc-toolchain=GAS_TOOLCHAIN_DIR" to NDK r25 clang to detect.
Packages only have to add "termux_step_gnu_as_23c" to build.sh to enable GAS.
In the future, we expect packages should follow option 3 more than option 4 as that is a last resort.

This commit also bumps revision for packages that rely (or previously rely) on "-fno-integrated-as":
hors, libffi, libgcrypt, libpixman, openssl, openssl-1.1

Co-authored-by: Henrik Grimler <grimler@termux.dev>
Co-authored-by: Chongyun Lee <45286352+licy183@users.noreply.github.com>
2022-08-24 23:17:08 +08:00
Chongyun Lee
d32ad10f1f scripts/toolchains: set api-level for elf cleaner 2022-08-18 22:38:53 +08:00
Jia Yuan Lo
c2f84f4118 scripts(toolchain): dont include NDK vulkan headers 2022-08-13 12:21:55 +02:00
Henrik Grimler
d6ad4c50b5 scripts(toolchain): add possibility to install android NDK 25
Same ndk-patches and termux_step_setup_toolchain can be used as for
NDK 23c it seems.
2022-08-13 12:20:04 +02:00
Henrik Grimler
ef7cb78563 scripts(toolchain): remove termux_setup_standalone_toolchain func
Run everything in termux_setup_toolchain_23c instead.  There is no
need to have two functions.
2022-08-13 12:20:02 +02:00
Henrik Grimler
e7f4ad8b6d scripts: rename termux_step_setup_toolchain to indicate NDK version
And keep ndk-patches in 23c/ subdirectory.  Run
termux_step_setup_toolchain_23c only if TERMUX_NDK_VERSION equals 23c.

This is a step towards having the possibility to use different NDK
versions.  Using a different NDK version than the one termux
officially supports should *really* not be done except for
testing/debug/development reasons, or if it is strictly necessary to
be able to compile a program (for example for packages that need a
fortran compiler, which at the moment is only supported with old
gcc-using NDKs).
2022-08-13 12:19:59 +02:00