#TODO compiles, works in a basic way but needs figuring out why -ldl is ignored #TODO also until new signal implementation gets to be the default, remove siginfo struct from relibc's include/bits/signal.h # and modify relibc/src/header/signal/mod.rs sigtimedwait second parameter's type from siginfo_t to siginfo (cbindgen needs a reference) #TODO needs further testing [source] tar = "https://www.cpan.org/src/5.0/perl-5.40.0.tar.gz" blake3 = "8bfcbb999e0795a64ca90e1ba7308f49c30ab2619ffa25fa425527c4bfca5e0f" script = """ curl -L -O --time-cond perl-cross-1.6.tar.gz https://github.com/arsv/perl-cross/releases/download/1.6/perl-cross-1.6.tar.gz tar --strip-components=1 -xvf perl-cross-1.6.tar.gz GNU_CONFIG_GET ./cnf/config.sub """ [build] template = "custom" dev-dependencies = ["relibc"] script = """ DYNAMIC_INIT rsync -av --delete "${COOKBOOK_SOURCE}/" ./ #Note: since perl-cross can run only inside the source-tree (out-of-tree is bugged) it's easier to do everything in the build directory cp ${COOKBOOK_RECIPE}/configure_tool.sh ${COOKBOOK_BUILD}/cnf/configure_tool.sh cp ${COOKBOOK_RECIPE}/redox ${COOKBOOK_BUILD}/cnf/hints/redox #Note: non-standard configure, familiar flags can have different meaning! ./configure --host-cc="gcc" --host-cpp="g++" --target=${TARGET} --sysroot=${COOKBOOK_SYSROOT} sed -i "s/^#define Netdb_name_t.*/#define Netdb_name_t const char*/" config.h sed -i "s/^# HAS_NANOSLEEP.*/#define HAS_NANOSLEEP/" config.h sed -i "s|^/.#define I_GRP.*|#define I_GRP|" config.h echo "#define HAS_GROUP" >> config.h make -j4 make install DESTDIR="${COOKBOOK_STAGE}" pushd . cd "${COOKBOOK_STAGE}/usr/share/man/man3" for f in *; do case "$f" in *::*) mv "$f" "${f//::/__}"; ;; esac done popd """