summaryrefslogtreecommitdiff
path: root/xcomp
Commit message (Collapse)AuthorAgeFilesLines
* Switch to deterministic builds for AndroidJérôme de Bretagne2022-08-193-3/+3
|
* Use the static version of libc++ on AndroidJérôme de Bretagne2022-08-192-2/+6
| | | | | | | Remove the runtime dependency on libc++_shared.so for the JIT flavor of beam.smp. This simplifies Erlang deployment on Android as libc++ is not provided as a system library. See https://developer.android.com/ndk/guides/cpp-support
* Update Android cross compilationJérôme de Bretagne2022-08-193-16/+40
|
* Update copyright yearErlang/OTP2022-02-151-1/+1
|
* Merge branch 'maint'Rickard Green2022-01-251-0/+282
|\ | | | | | | | | | | * maint: Correction of info in erl-xcomp-aarch64-darwin.conf xcomp: Add aarch64-darwin
| * Merge branch 'wojtekmach/wm-xcomp-darwin' into maintRickard Green2022-01-251-0/+282
| |\ | | | | | | | | | | | | | | | * wojtekmach/wm-xcomp-darwin: Correction of info in erl-xcomp-aarch64-darwin.conf xcomp: Add aarch64-darwin
| | * Correction of info in erl-xcomp-aarch64-darwin.confRickard Green2022-01-251-2/+1
| | |
| | * xcomp: Add aarch64-darwinWojtek Mach2021-11-291-0/+283
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Below [1] is a script to cross-compile OpenSSL & OTP for aarch64-darwin. A couple of notes however: 1. Wx cannot be cross-compiled yet: > ``` > ********************************************************************* > ********************************************************************* > ********************** APPLICATIONS INFORMATION ******************* > ********************************************************************* > > wx : Cross compilation of the wx driver is not supported yet, wx will NOT be usable > ``` 2. Erlang shell successfully starts: $ uname -sm Darwin arm64 $ ./bin/erl Erlang/OTP 24 [erts-12.1.5] [source-df1294f108] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1] Eshell V12.1.5 (abort with ^G) 1> 3. But crypto is not working yet: ./bin/erl Erlang/OTP 24 [erts-12.1.5] [source-df1294f108] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1] Eshell V12.1.5 (abort with ^G) 1> crypto:start(). =ERROR REPORT==== 29-Nov-2021::14:50:14.218776 === Unable to load crypto library. Failed with error: "load_failed, Failed to load NIF library: 'dlopen(/Users/wojtek/Downloads/otp-24.1.7-aarch64-darwin/lib/crypto-5.0.4/priv/lib/crypto.so, 2): no suitable image found. Did find: /Users/wojtek/Downloads/otp-24.1.7-aarch64-darwin/lib/crypto-5.0.4/priv/lib/crypto.so: mach-o, but wrong filetype /Users/wojtek/Downloads/otp-24.1.7-aarch64-darwin/lib/crypto-5.0.4/priv/lib/crypto.so: stat() failed with errno=35'" OpenSSL might not be installed on this system. =WARNING REPORT==== 29-Nov-2021::14:50:14.222040 === The on_load function for module crypto returned: {error,{load_failed,"Failed to load NIF library: 'dlopen(/Users/wojtek/Downloads/otp-24.1.7-aarch64-darwin/lib/crypto-5.0.4/priv/lib/crypto.so, 2): no suitable image found. Did find:\n\t/Users/wojtek/Downloads/otp-24.1.7-aarch64-darwin/lib/crypto-5.0.4/priv/lib/crypto.so: mach-o, but wrong filetype\n\t/Users/wojtek/Downloads/otp-24.1.7-aarch64-darwin/lib/crypto-5.0.4/priv/lib/crypto.so: stat() failed with errno=35'"}} ** exception error: undefined function crypto:start/0 [1] the script: ``` set -e main() { export MAKEFLAGS=-j$(getconf _NPROCESSORS_ONLN) openssl_vsn=1.1.1l otp_vsn=$(cat OTP_VERSION) target=aarch64-darwin openssl_dir="$PWD/tmp/openssl-$openssl_vsn-$target" otp_dir="$PWD/tmp/otp-$otp_vsn-$target" mkdir -p tmp if [ ! -d "$openssl_dir" ]; then build_openssl $openssl_dir $openssl_vsn $target fi export PATH=$openssl_dir/bin:$PATH echo "openssl" file `which openssl` echo if [ ! -d $otp_dir ]; then build_otp $otp_dir $otp_vsn $target $openssl_dir fi (cd $otp_dir && ./Install -sasl $PWD) export PATH=$otp_dir/bin:$PATH echo "otp" file `which erlc` file $otp_dir/lib/crypto-*/priv/lib/crypto.so # erl +V # erl -noshell -eval 'ok = crypto:start(), io:format("crypto ok~n"), halt().' echo } build_openssl() { dir=$1 vsn=$2 target=$3 if [ "$target" = "x86_64-darwin" ]; then openssl_target=darwin64-x86_64-cc fi if [ "$target" = "aarch64-darwin" ]; then openssl_target=darwin64-arm64-cc fi cd tmp if [ ! -d openssl-$vsn-src ]; then url=https://www.openssl.org/source/openssl-$vsn.tar.gz echo "downloading $url" curl --fail -LO $url tar -xf openssl-$vsn.tar.gz mv openssl-$vsn openssl-$vsn-src fi cd openssl-$vsn-src ./Configure \ $openssl_target \ --prefix=$dir make make install_sw cd ../.. } build_otp() { dir=$1 vsn=$2 target=$3 openssl_dir=$4 cwd=$PWD # path to OTP git checkout. Comment-out if you want to download it. otp_src_dir=$HOME/src/otp if [ ! -d "$otp_src_dir" ]; then cd tmp url="https://github.com/erlang/otp/releases/download/OTP-${vsn}/otp_src_${vsn}.tar.gz" echo "downloading $url" curl --fail -LO $url tar -xf otp_src_${vsn}.tar.gz cd otp_src_${vsn} fi export ERL_TOP=`pwd` ./otp_build configure \ --disable-dynamic-ssl-lib \ --with-ssl=$openssl_dir \ --xcomp-conf=xcomp/erl-xcomp-$target.conf ./otp_build boot -a ./otp_build release -a $dir cd $cwd } main ```
* | | Update copyright yearRickard Green2021-12-166-6/+6
| | |
* | | Merge branch 'maint'Rickard Green2021-12-1511-11/+11
|\ \ \ | |/ / | | | | | | | | | * maint: Update copyright year
| * | Update copyright yearRickard Green2021-12-1511-11/+11
| |/
* | Compiling static beam lib for iOSDominic Letz2021-10-225-0/+1343
| |
* | Move autoconf helpers from erts to make/autoconfRickard Green2021-06-1512-36/+36
|/
* Simplify configuration of cross-compiling to Android x86_64Paulo F. Oliveira2021-01-111-0/+280
|
* otp: Remove HiPE and HiPE-related accessoriesJohn Högberg2020-11-094-4/+4
|
* Remove remaining VxWorks supportRickard Green2020-02-201-268/+0
|
* erts: Allow 32-bit Android cross compilation to target Android 4.1 Jelly BeanJérôme de Bretagne2019-11-061-1/+1
| | | | | | | sys/timerfd.h was added in Android 4.4 KitKat so guard its usage when targeting earlier Android versions with the Android NDK Unified Headers. Update the 32-bit Android documentation accordingly.
* erts: Allow Android cross compilation to target Android 5.0 LollipopJérôme de Bretagne2019-11-062-2/+2
| | | | | | | if_nameindex and if_freenameindex were added in Android 7.0 Nougat so guard their usages when targeting earlier Android versions. Update the Android documentation accordingly.
* Fix Android compilation to support newer Android NDK versionsJérôme de Bretagne2019-10-302-12/+323
| | | | | | | | | | | | | | | | | | | | Switch to use the Unified Headers introduced in Android NDK r14 optionnally and made mandatory since Android NDK r16 with the remove of the older headers. Switch to Clang for Android compilation, with GCC being deprecated in Android NDK r16 and then fully removed in Android NDK r18b. Add the default -g -O2 options to CFLAGS for Android as a -O option is required since commit cc21219185d7ff90b5d3d09cae896082d7627ea9. Fix ERL-1081: Move to dynamic linking, to avoid missing symbol errors due to an incompatibility between Autoconf (AC_CHECK_FUNCS) and the Android NDK. Add a new Android cross-compile configuration for 64-bit ARMv8-A. Update the documentation about how to cross compile for Android.
* erts: Allow code_model_small to be set in xcomp settingLukas Larsson2018-12-032-1/+6
| | | | OTP-15473
* Add conf file for cross compilation to Raspberry Pi 3Péter Dimitrov2018-05-021-0/+276
|
* ose: Remove all code related to the OSE portLukas Larsson2015-07-103-664/+1
| | | | | | The OSE port is no longer supported and this commit removed it and any changes related to it. The things that were general improvements have been left in the code.
* Change license text to APLv2Bruce Yinhe2015-06-1813-118/+131
|
* Modify the xcomp file for ARM and enable more flagsPeter Andersson2015-03-131-8/+9
|
* update ppc xcomp fileZandra Hird2015-02-231-14/+14
|
* Merge branch 'lukas/ose/master-17.0/OTP-11334'Lukas Larsson2014-03-272-3/+9
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lukas/ose/master-17.0/OTP-11334: ose: Fix erts assert failed printouts ose: fix for packet_bytes in fd/spawn driver. ose: Prepare slave for running on OSE ose: Fix bug when hunting for signal proxy ose: Implement tcp inet driver for OSE ose: Add ifdefs for HAVE_UDP ose: Yielding has to be done differently for background processes. ose: Print faults in aio sys driver calls ose: Prinout errno when to_erl read fails ose: erlang display goes to ramlog printf ose: Initiate stdin/stdout/stderr ose: Break lmconf into one per load module ose: Reset busy port when pdq empty ose: Restore the owner of the signal
| * ose: Break lmconf into one per load moduleLukas Larsson2014-03-262-3/+9
| |
* | Raspberry PI / Android a minimal cross-compile configurationDmitry Kolesnikov2014-03-211-0/+264
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Enable a cross compile Erlang/OTP platform to Android or Raspberry PI using Android NDK. Port emulator and core application to support target HW platform. Exclude any add-on services required for OTP platform deployment into target hardware due to device fragmentation and jail-break requirements. * fix erts/emulator/beam/sys.h Disable redefinition of __noreturn macro * port erts/emulator/sys/unix/erl_child_setup.c Use techniques proposed by https://code.google.com/p/erlang4android to access system properties * fix erts/emulator/sys/unix/erl_unix_sys_ddll.c The static linking of emulator cannot find dlerror(), dlopen() symbols * port erts/emulator/sys/unix/sys.c make path to shell configurable at build time * port erts/etc/common/Makefile.in disable librt for *-linux-androideabi * port erts/lib_src/pthread/ethread.c Use techniques proposed by https://code.google.com/p/erlang4android to disable emulator crash if kernel threads are on. Replace unreliable pthread_sigmask() by sigprocmask() * port lib/erl_interface/src/connect/ei_connect.c Disable call to undefined gethostid() * port lib/erl_interface/src/connect/ei_resolve.c Use gethostbyname_r() on Android platform
* Let xcomp/README.md refer to HOWTO/INSTALL-CROSS.mdRickard Green2014-02-261-573/+2
|
* ose: Use -O2 when buildingLukas Larsson2014-02-241-1/+1
|
* ose: Fix support for cryptoLukas Larsson2014-02-241-4/+20
| | | | | To enable it you have to modify the OSESSL variable in the ose xcomp file.
* ose: Disable non-ose relevant appsLukas Larsson2014-02-241-1/+3
|
* ose: Add xcomp env variables to OSE xcompRobert Paal2014-02-241-5/+26
| | | | | Use these to switch inbetween debug and non-debug emulators and 4.4.3 and 4.6.3 versions of gcc.
* ose: Fix various build environment issuesLukas Larsson2014-02-242-1/+8
|
* ose: Add link conf for gcc 4.4.3Lukas Larsson2014-02-241-2/+2
|
* ose: Use the swfp when compiling for OSELukas Larsson2014-02-241-4/+4
| | | | | | The hwfp has been tested as well and seem to work, but most processors that OSE will run on does not have a fpu.
* Added support for ENEA OSELukas Larsson2014-02-244-1/+629
| | | | | | | | This port has support for both non-smp and smp. It contains a new way to do io checking in which erts_poll_wait receives the payload of the polled entity. This has implications for all linked-in drivers.
* Cross-compilation fix for TileraMDE-3.0.1.125620Motiejus Jakštys2013-12-151-0/+1
| | | | | | | | -OPT:Olimit=0 -WOPT:lpre=off:spre=off:epre=off tile-gcc 4.4.3 does not accept these options: cc1: error: unrecognized command line option "-WOPT:lpre=off:spre=off:epre=off"
* Merge branch 'henrik/xcomp-arm' into maintHenrik Nord2013-11-121-0/+259
|\
| * add erl-xcom-arm-linux.confHenrik Nord2013-11-121-0/+259
| |
* | erts: Add max alignment posix_memalign configure checkLukas Larsson2013-11-012-1/+7
|/ | | | | | On some OSs posix_memalign exists, but it does not allow for alignment greater than the current page size. So we have to do a runtime check for alignment size and also add cross compile options.
* Add an xcomp file for Blue Gene/QKostis Sagonas2013-02-141-0/+272
|
* Update for new version of ppc compilation chainLukas Larsson2012-10-221-8/+8
| | | | | | New prefix for command line utils Disable morecore hook as it does not work with new cross chain
* Update copyright yearsBjörn-Egil Dahlberg2012-08-318-8/+8
|
* Merge branch 'msp/double_middle_endian/OTP-10209' into maintLukas Larsson2012-08-248-1/+59
|\ | | | | | | | | | | | | | | * msp/double_middle_endian/OTP-10209: Configure now assumed normal doubles Revise the autoconf tests for double middle endianness. Add test for floating-point output to float_SUITE. Unbreak floating point on middle-endian machines.
| * Configure now assumed normal doublesLukas Larsson2012-08-241-7/+3
| |
| * Unbreak floating point on middle-endian machines.Mike Sperber2012-03-238-1/+63
| | | | | | | | | | | | | | | | | | | | | | | | | | On some ARMs (and maybe other platforms), doubles are stored with the the two 32-bit words reversed with respect to more common architectures. The symptom is this: > io_lib:write(1.0). "0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005299808824" Detect that and account for it when decoding floats.
* | Add powerpc dso xcomp fileLukas Larsson2012-08-151-0/+258
| |
* | Update cross build system for tests to workLukas Larsson2012-05-021-0/+32
| | | | | | | | | | ts has been fixed to again work in a cross build environment. See ts:help() and xcomp/README.md for details about how it works.
* | Update copyright yearsBjörn-Egil Dahlberg2012-03-301-1/+1
|/