Compiling HaikuPorts packages for different architecture

I compiled and converted operational haikuports.cross packages. What I should do next to compile missing packages required for @nightly-raw? Stage after haikuports.cross just creates packages with source code, it don’t compile anything.

1 Like

I just pushed a newer gcc 8.3 that is in sync with buildtools. So I recommend changing to gcc_bootstrap-8.3.0_2021_02_27-1 in build/jam/repositories/HaikuPortsCross/riscv64

Let me know if it works better.

2 Likes

Recent python update breaks build:

building 'cmath' extension
riscv64-unknown-haiku-gcc -fPIC -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I. -IInclude -I./Include -I/home/user/Packages/haiku/generated.riscv64-bootstrap/cross-tools-riscv64/sysroot/boot/system/develop/headers -I/home/user/Packages/haiku/generated.riscv64-bootstrap/cross-tools-riscv64/sysroot/boot/system/develop/headers/posix -I/home/user/Packages/haiku/generated.riscv64-bootstrap/cross-tools-riscv64/sysroot/boot/system/develop/headers/gnu -I/home/user/Packages/haiku/generated.riscv64-bootstrap/cross-tools-riscv64/sysroot/boot/system/develop/headers/glibc -I/home/user/Packages/haiku/generated.riscv64-bootstrap/cross-tools-riscv64/sysroot/boot/system/develop/headers/bsd -I/home/user/Packages/haiku/generated.riscv64-bootstrap/cross-tools-riscv64/sysroot/boot/system/develop/headers/os/be_apps/Tracker -I/home/user/Packages/haiku/generated.riscv64-bootstrap/cross-tools-riscv64/sysroot/boot/system/develop/headers/os/be_apps/NetPositive -I/home/user/Packages/haiku/generated.riscv64-bootstrap/cross-tools-riscv64/sysroot/boot/system/develop/headers/os/add-ons/tracker -I/home/user/Packages/haiku/generated.riscv64-bootstrap/cross-tools-riscv64/sysroot/boot/system/develop/headers/os/add-ons/screen_saver -I/home/user/Packages/haiku/generated.riscv64-bootstrap/cross-tools-riscv64/sysroot/boot/system/develop/headers/os/add-ons/registrar -I/home/user/Packages/haiku/generated.riscv64-bootstrap/cross-tools-riscv64/sysroot/boot/system/develop/headers/os/add-ons/mail_daemon -I/home/user/Packages/haiku/generated.riscv64-bootstrap/cross-tools-riscv64/sysroot/boot/system/develop/headers/os/add-ons/input_server -I/home/user/Packages/haiku/generated.riscv64-bootstrap/cross-tools-riscv64/sysroot/boot/system/develop/headers/os/add-ons/graphics -I/home/user/Packages/haiku/generated.riscv64-bootstrap/cross-tools-riscv64/sysroot/boot/system/develop/headers/os/translation -I/home/user/Packages/haiku/generated.riscv64-bootstrap/cross-tools-riscv64/sysroot/boot/system/develop/headers/os/support -I/home/user/Packages/haiku/generated.riscv64-bootstrap/cross-tools-riscv64/sysroot/boot/system/develop/headers/os/storage -I/home/user/Packages/haiku/generated.riscv64-bootstrap/cross-tools-riscv64/sysroot/boot/system/develop/headers/os/net -I/home/user/Packages/haiku/generated.riscv64-bootstrap/cross-tools-riscv64/sysroot/boot/system/develop/headers/os/midi2 -I/home/user/Packages/haiku/generated.riscv64-bootstrap/cross-tools-riscv64/sysroot/boot/system/develop/headers/os/midi -I/home/user/Packages/haiku/generated.riscv64-bootstrap/cross-tools-riscv64/sysroot/boot/system/develop/headers/os/media -I/home/user/Packages/haiku/generated.riscv64-bootstrap/cross-tools-riscv64/sysroot/boot/system/develop/headers/os/mail -I/home/user/Packages/haiku/generated.riscv64-bootstrap/cross-tools-riscv64/sysroot/boot/system/develop/headers/os/locale -I/home/user/Packages/haiku/generated.riscv64-bootstrap/cross-tools-riscv64/sysroot/boot/system/develop/headers/os/kernel -I/home/user/Packages/haiku/generated.riscv64-bootstrap/cross-tools-riscv64/sysroot/boot/system/develop/headers/os/interface -I/home/user/Packages/haiku/generated.riscv64-bootstrap/cross-tools-riscv64/sysroot/boot/system/develop/headers/os/game -I/home/user/Packages/haiku/generated.riscv64-bootstrap/cross-tools-riscv64/sysroot/boot/system/develop/headers/os/drivers -I/home/user/Packages/haiku/generated.riscv64-bootstrap/cross-tools-riscv64/sysroot/boot/system/develop/headers/os/device -I/home/user/Packages/haiku/generated.riscv64-bootstrap/cross-tools-riscv64/sysroot/boot/system/develop/headers/os/app -I/home/user/Packages/haiku/generated.riscv64-bootstrap/cross-tools-riscv64/sysroot/boot/system/develop/headers/os -I/usr/bin/Include -I/usr/bin -c /home/user/Packages/haiku/generated.riscv64-bootstrap/objects/haiku/riscv64/packaging/repositories/HaikuPortsCross-build/dev-lang/python_bootstrap/work-2.7.17/sources/Python-2.7.17/Modules/cmathmodule.c -o build/temp.haiku-riscv64-2.7/home/user/Packages/haiku/generated.riscv64-bootstrap/objects/haiku/riscv64/packaging/repositories/HaikuPortsCross-build/dev-lang/python_bootstrap/work-2.7.17/sources/Python-2.7.17/Modules/cmathmodule.o
riscv64-unknown-haiku-gcc -shared -L/home/user/Packages/haiku/generated.riscv64-bootstrap/objects/haiku/riscv64/packaging/repositories/HaikuPortsCross-build/dev-lang/python_bootstrap/work-2.7.17/sources/Python-2.7.17 build/temp.haiku-riscv64-2.7/home/user/Packages/haiku/generated.riscv64-bootstrap/objects/haiku/riscv64/packaging/repositories/HaikuPortsCross-build/dev-lang/python_bootstrap/work-2.7.17/sources/Python-2.7.17/Modules/cmathmodule.o Modules/_math.o -L/home/user/Packages/haiku/generated.riscv64-bootstrap/objects/haiku/riscv64/packaging/repositories/HaikuPortsCross-build/dev-lang/python_bootstrap/work-2.7.17/sources/Python-2.7.17 -L. -lm -lpython2.7 -o build/lib.haiku-riscv64-2.7/cmath.so
/home/user/Packages/haiku/generated.riscv64-bootstrap/cross-tools-riscv64/lib64/gcc/riscv64-unknown-haiku/8.3.0/../../../../riscv64-unknown-haiku/bin/ld: cannot find -lm
collect2: error: ld returned 1 exit status

...

configure: error: "libffi has not been ported to riscv64-unknown-haiku."
Failed to configure _ctypes module

Python build finished, but the necessary bits to build these modules were not found:
_bsddb             _curses            _curses_panel   
_sqlite3           _ssl               _tkinter        
bsddb185           bz2                dbm             
dl                 gdbm               imageop         
linuxaudiodev      nis                ossaudiodev     
readline           sunaudiodev        zlib            
To find the necessary bits, look in setup.py in detect_modules() for the module's name.


Failed to build these modules:
_socket            cmath              datetime        
math               time                               


1 Like

I upgraded Python to 2.7.17 to fix the same problem for ARM64. 2.7.18 is the last 2.7 release and lacks changes for that lib I think. A recipe for 3.X python is probably needed. At the moment I don’t have time to look into it.

Before that change Python package was produced, but it don’t work correctly:

~> python
Could not find platform independent libraries <prefix>
Could not find platform dependent libraries <exec_prefix>
Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]
ImportError: No module named site

Looks like it should be possible to use a libffi package instead of pythons own copy. They also removed the internal libffi in some 3.X version, so it would be good to have anyway.

Added initial recipe: https://github.com/haikuports/haikuports.cross/blob/master/dev-libs/libffi_bootstrap/libffi_bootstrap-3.3.recipe

Never used haikuports.cross, but the current recipes for python have been cleaned for the (obsolete python2.7) cmd:python dependency