Skip to content
Snippets Groups Projects
Commit 94f0d02d authored by Jeremy Soller's avatar Jeremy Soller
Browse files

Merge branch 'perl5_fix' into 'master'

Make perl5 recipe to build perl 5.40.

See merge request redox-os/cookbook!389
parents eaa76f41 89135c71
No related branches found
No related tags found
1 merge request!389Make perl5 recipe to build perl 5.40.
# Toolchain detection
tryprog() {
log "trying $1=$2"
if command -v $2 1>/dev/null 2>/dev/null; then
define "$1" "$2"
result "$2"
return 0
else
return 1
fi
}
tryfromenv() {
if [ "$mode" = "buildmini" ]; then
getenv ev "HOST$2"
else
getenv ev "$2"
fi
if [ -n "$ev" ]; then
tryprog $1 "$ev" && return 0
die "Supplied $ev is not usable"
fi
unset ev
return 1
}
# This is only a function for easy access to return-s
# try.out contains `$cc --version` output.
#
# Figuring out gcc is necessary to make sure -fwrapv fix gets applied.
detect_cc_version() {
_v=`sed -ne '/^gcc version \([0-9][0-9.]*\).*/s//\1/p' try.out`
if [ -n "$_v" ]; then
define cctype 'gcc'
define ccversion "$_v"
define gccversion "$_v"
result "gcc $_v"
return
fi
_v=`sed -ne '/^clang version \([0-9][0-9.]*\).*/s//\1/p' try.out`
if [ -n "$_v" ]; then
define cctype 'clang'
define ccversion "$_v"
define gccversion "0.0"
result "clang $_v"
return
fi
define cctype 'cc'
define ccversion ''
define gccversion '0.0'
result 'unknown'
}
# whichprog symbol VAR prog1 prog2
whichprog() {
mstart "Checking for $1"
hinted "$1" && return 0
# Maybe we've got $CC or $HOSTCC?
tryfromenv "$1" "$2" && return 0
# For anything that sounds like a native compilation,
# try no-prefix tools *first*. This is to avoid using
# long names is case the host happens to have them.
if [ "$mode" = 'native' -o "$mode" = 'buildmini' ]; then
tryprog $1 "$3" && return 0
fi
# Finally, try $target-gcc
test -n "$toolsprefix" && tryprog $1 "$toolsprefix$3" && return 0
test -n "$target" && tryprog $1 "$target-$3" && return 0
test -n "$targetarch" && tryprog $1 "$targetarch-$3" && return 0
result "none found"
return 1
}
whichprog cc CC gcc || whichprog cc CC cc || die "No C compiler found"
#whichprog ld LD ld # while correct, this breaks MM library test
whichprog ar AR ar || die "Cannot find ar"
whichprog nm NM nm
whichprog ranlib RANLIB ranlib
whichprog readelf READELF readelf || die "Cannot find readelf"
whichprog objdump OBJDUMP objdump || die "Cannot find objdump"
# XXX: this looks wrong, but the usemmldlt code depends on $ld being able
# to compile try.c. What kind of moron could have written that. Oh wait.
#
# But, there was probably a reason to assume this, likely becase mainline
# Configure did and still does the same. So, ugh, leaving it as is for now.
# Speak of backward bug compatibility.
define ld "$cc"
log
mstart "Trying $cc"
if not hinted 'cctype'; then
run $cc -v >try.out 2>&1
try_dump_out
detect_cc_version
fi
mstart "Checking whether $cc is a C++ compiler"
if not hinted 'd_cplusplus'; then
try_start
try_cat <<END
#if defined(__cplusplus)
YES
#endif
END
try_dump
if not run $cc $ccflags -E try.c > try.out 2>>$cfglog; then
define d_cplusplus 'undef'
result "probably no"
else
_r=`grep -v '^#' try.out | grep . | head -1 | grep '^YES'`
if [ -n "$_r" ]; then
define d_cplusplus 'define'
result "yes"
else
define d_cplusplus 'undef'
result 'no'
fi
fi
fi
mstart "Deciding how to declare external symbols"
if not hinted "extern_C"; then
case "$d_cplusplus" in
define)
define "extern_C" 'extern "C"'
result "$extern_C"
;;
*)
define "extern_C" 'extern'
result "$extern_C"
;;
esac
fi
# File name extensions, must be set before running any compile/link tests
define _o '.o'
define _a '.a'
define so 'so'
define _exe ''
# Used only for modules
define cccdlflags '-fPIC -Wno-unused-function'
define ccdlflags '-Wl,-E'
# Misc flags setup
predef lddlflags "-shared" # modules
predef ccflags '' # perl and modules
predef ldflags '' # perl only?
predef cppflags '' # unused?
# setfromvar what SHELLVAR
setfromenv() {
getenv v "$2"
test -n "$v" && append "$1" "$v"
}
if [ "$mode" = 'target' -o "$mode" = 'native' ]; then
setfromenv ccflags CFLAGS
setfromenv ldflags LDFLAGS
if [ -n "$sysroot" ]; then
msg "Adding --sysroot to {cc,ld}flags"
prepend ccflags "--sysroot=$sysroot"
prepend ldflags "--sysroot=$sysroot"
# While cccdlflags are used together with ccflags,
# ld is always called with lddlflags *instead*of* ldflags
prepend lddlflags "--sysroot=$sysroot"
# Same for cpp
prepend cppflags "--sysroot=$sysroot"
fi
elif [ "$mode" = 'buildmini' ]; then
setfromenv ccflags HOSTCFLAGS
setfromenv ldflags HOSTLDFLAGS
fi
# Use $ldflags as default value for $lddlflags, together with whatever
# hints provided, but avoid re-setting anyting specified in the command line
if [ -n "$ldflags" -a "$x_lddlflags" != "user" ]; then
append lddlflags "$ldflags"
fi
# enddef ccflags # done later in _hdrs because of LARGEFILE_SOURCE
enddef ldflags
enddef lddlflags
enddef cppflags
mstart "Checking whether ld supports scripts"
if not hinted 'ld_can_script'; then
cat > try.c <<EOM
void foo() {}
void bar() {}
EOM
cat > try.h <<EOM
LIBTEST_42 {
global:
foo;
local: *;
};
EOM
log "try.c"
try_dump
log "try.h"
try_dump_h
rm -f a.out 2>/dev/null
if run $cc $cccdlflags $ccdlflags $ccflags $lddlflags -o a.out try.c \
-Wl,--version-script=try.h >/dev/null 2>&1 \
&& test -s a.out
then
define ld_can_script 'define'
result "yes"
else
define ld_can_script 'undef'
result "no"
fi
fi
# Guessing OS is better done with the toolchain available.
# CC output is crucial here -- Android toolchains come with
# generic armeabi prefix and "android" is one of the few osname
# values that make difference later.
mstart "Trying to guess target OS"
if not hinted 'osname'; then
run $cc -v > try.out 2>&1
try_dump_out
_ct=`sed -ne '/^Target: /s///p' try.out`
test -z "$_ct" && _ct="$targetarch"
case "$_ct" in
*-mingw32)
define osname "MSWin32"
result "MSWin32"
;;
*-android|*-androideabi)
define osname "android"
result "Android"
;;
*-linux*)
define osname "linux"
result "Linux"
;;
*-netbsd*)
define osname "netbsd"
result "NetBSD"
;;
*-bsd*)
define osname "bsd"
result "BSD"
;;
*-gnu*)
define osname "gnu"
result "GNU"
;;
*-midipix*)
define osname "midipix"
result "Midipix"
;;
*-redox*)
define osname "redox"
result "Redox"
;;
*)
result "no"
;;
esac
fi
# Check whether debugging should be enabled
# Allow -DEBUGGING as well (sets EBUGGING=define)
case "$DEBUGGING:$EBUGGING" in
:*)
DEBUGGING=$EBUGGING
;;
esac
mstart "Checking whether to enable -g"
predef optimize ''
case "$DEBUGGING" in
both|define)
append optimize "-g"
result "yes" ;;
*)
result "no" ;;
esac
mstart "Checking whether to use -DDEBUGGING"
case "$DEBUGGING" in
both|define)
append optimize '-DDEBUGGING'
result "yes" ;;
*)
result "no" ;;
esac
# gcc 4.9 and above does some optimizations that break perl.
# see perl ticket 121505.
if [ "$cctype" = 'gcc' ]; then
case "$ccversion" in
1.*|2.*|3.*) ;;
4.9*) append 'optimize' '-fwrapv -fno-strict-aliasing' ;;
4.*) ;;
*) append 'optimize' '-fwrapv -fno-strict-aliasing' ;;
esac
fi
enddef optimize
# These are kind-of part of toolchain, but we do not test them
# For newer gcc-s, -E alone is *not* enough! Perl expects cpp not to break
# lines, but gcc injects #line directives in-between tokens, subtly breaking
# try_preproc and Errno.pm
define cpp "$cc -E -P"
define cpprun "$cpp"
define cppstdin "$cpp"
define cpplast -
define cppminus -
define cppsymbols
define nm_opt
define nm_so_opt
# cperl wants to know this for some reason
mstart "Checking whether address sanitizer is enabled"
if not hinted sanitize_address 'yes' 'no'; then
case "$ccflags" in
*-fsanitize=address*|*-faddress-sanitizer*)
define sanitize_address 'define'
result 'yes'
;;
*)
define sanitize_address 'undef'
result 'no'
;;
esac
fi
diff -ru source/ext/POSIX/POSIX.xs source-new/ext/POSIX/POSIX.xs
--- source/ext/POSIX/POSIX.xs 2017-06-30 14:03:22.000000000 -0700
+++ source-new/ext/POSIX/POSIX.xs 2017-08-17 19:21:59.498359355 -0700
@@ -1302,6 +1302,7 @@
#endif
#include <fcntl.h>
+#if 0
#ifdef HAS_TZNAME
# if !defined(WIN32) && !defined(__CYGWIN__) && !defined(NETWARE) && !defined(__UWIN__)
extern char *tzname[];
@@ -1311,6 +1312,7 @@
char *tzname[] = { "" , "" };
#endif
#endif
+#endif
#if defined(__VMS) && !defined(__POSIX_SOURCE)
@@ -1327,10 +1329,11 @@
#if defined (__CYGWIN__)
# define tzname _tzname
#endif
-#if defined (WIN32) || defined (NETWARE)
+#if 1
# undef mkfifo
# define mkfifo(a,b) not_here("mkfifo")
# define ttyname(a) (char*)not_here("ttyname")
+# define pause() not_here("pause")
# define sigset_t long
# define pid_t long
# ifdef _MSC_VER
@@ -1397,7 +1400,7 @@
typedef HV* POSIX__SigAction;
typedef int POSIX__SigNo;
typedef int POSIX__Fd;
-#ifdef I_TERMIOS
+#if 0
typedef struct termios* POSIX__Termios;
#else /* Define termios types to int, and call not_here for the functions.*/
#define POSIX__Termios int
@@ -1829,7 +1832,7 @@
const char * packname
CODE:
{
-#ifdef I_TERMIOS
+#if 0
void *const p = allocate_struct(aTHX_ (ST(0) = sv_newmortal()),
sizeof(struct termios), packname);
/* The previous implementation stored a pointer to an uninitialised
@@ -1896,7 +1899,7 @@
getcflag = 2
getlflag = 3
CODE:
-#ifdef I_TERMIOS /* References a termios structure member so ifdef it out. */
+#if 0 /* References a termios structure member so ifdef it out. */
switch(ix) {
case 0:
RETVAL = termios_ref->c_iflag;
@@ -1925,7 +1928,7 @@
POSIX::Termios termios_ref
unsigned int ccix
CODE:
-#ifdef I_TERMIOS /* References a termios structure member so ifdef it out. */
+#if 0 /* References a termios structure member so ifdef it out. */
if (ccix >= NCCS)
croak("Bad getcc subscript");
RETVAL = termios_ref->c_cc[ccix];
@@ -1957,7 +1960,7 @@
setcflag = 2
setlflag = 3
CODE:
-#ifdef I_TERMIOS /* References a termios structure member so ifdef it out. */
+#if 0 /* References a termios structure member so ifdef it out. */
switch(ix) {
case 0:
termios_ref->c_iflag = flag;
@@ -1982,7 +1985,7 @@
unsigned int ccix
cc_t cc
CODE:
-#ifdef I_TERMIOS /* References a termios structure member so ifdef it out. */
+#if 0 /* References a termios structure member so ifdef it out. */
if (ccix >= NCCS)
croak("Bad setcc subscript");
termios_ref->c_cc[ccix] = cc;
@@ -3540,15 +3543,15 @@
void
times()
PPCODE:
- struct tms tms;
- clock_t realtime;
- realtime = times( &tms );
+ //struct tms tms;
+ //clock_t realtime;
+ //realtime = times( &tms );
EXTEND(SP,5);
- PUSHs( sv_2mortal( newSViv( (IV) realtime ) ) );
- PUSHs( sv_2mortal( newSViv( (IV) tms.tms_utime ) ) );
- PUSHs( sv_2mortal( newSViv( (IV) tms.tms_stime ) ) );
- PUSHs( sv_2mortal( newSViv( (IV) tms.tms_cutime ) ) );
- PUSHs( sv_2mortal( newSViv( (IV) tms.tms_cstime ) ) );
+ PUSHs( sv_2mortal( newSViv( (IV) 0 ) ) );
+ PUSHs( sv_2mortal( newSViv( (IV) 0 ) ) );
+ PUSHs( sv_2mortal( newSViv( (IV) 0 ) ) );
+ PUSHs( sv_2mortal( newSViv( (IV) 0 ) ) );
+ PUSHs( sv_2mortal( newSViv( (IV) 0 ) ) );
double
difftime(time1, time2)
diff -ru source/mg.c source-new/mg.c
--- source/mg.c 2017-06-30 14:03:22.000000000 -0700
+++ source-new/mg.c 2017-08-17 14:40:37.669507085 -0700
@@ -3034,16 +3034,16 @@
#ifdef HAS_SETRESUID
PERL_UNUSED_RESULT(setresuid(new_uid, (Uid_t)-1, (Uid_t)-1));
#else
- if (new_uid == PerlProc_geteuid()) { /* special case $< = $> */
+// if (new_uid == PerlProc_geteuid()) { /* special case $< = $> */
#ifdef PERL_DARWIN
/* workaround for Darwin's setuid peculiarity, cf [perl #24122] */
if (new_uid != 0 && PerlProc_getuid() == 0)
PERL_UNUSED_RESULT(PerlProc_setuid(0));
#endif
- PERL_UNUSED_RESULT(PerlProc_setuid(new_uid));
- } else {
+// PERL_UNUSED_RESULT(PerlProc_setuid(new_uid));
+// } else {
Perl_croak(aTHX_ "setruid() not implemented");
- }
+// }
#endif
#endif
#endif
@@ -3067,11 +3067,11 @@
#ifdef HAS_SETRESUID
PERL_UNUSED_RESULT(setresuid((Uid_t)-1, new_euid, (Uid_t)-1));
#else
- if (new_euid == PerlProc_getuid()) /* special case $> = $< */
- PERL_UNUSED_RESULT(PerlProc_setuid(new_euid));
- else {
+// if (new_euid == PerlProc_getuid()) /* special case $> = $< */
+// PERL_UNUSED_RESULT(PerlProc_setuid(new_euid));
+// else {
Perl_croak(aTHX_ "seteuid() not implemented");
- }
+// }
#endif
#endif
#endif
@@ -3095,11 +3095,11 @@
#ifdef HAS_SETRESGID
PERL_UNUSED_RESULT(setresgid(new_gid, (Gid_t)-1, (Gid_t) -1));
#else
- if (new_gid == PerlProc_getegid()) /* special case $( = $) */
- PERL_UNUSED_RESULT(PerlProc_setgid(new_gid));
- else {
+// if (new_gid == PerlProc_getegid()) /* special case $( = $) */
+// PERL_UNUSED_RESULT(PerlProc_setgid(new_gid));
+// else {
Perl_croak(aTHX_ "setrgid() not implemented");
- }
+// }
#endif
#endif
#endif
@@ -3178,11 +3178,11 @@
#ifdef HAS_SETRESGID
PERL_UNUSED_RESULT(setresgid((Gid_t)-1, new_egid, (Gid_t)-1));
#else
- if (new_egid == PerlProc_getgid()) /* special case $) = $( */
- PERL_UNUSED_RESULT(PerlProc_setgid(new_egid));
- else {
+// if (new_egid == PerlProc_getgid()) /* special case $) = $( */
+// PERL_UNUSED_RESULT(PerlProc_setgid(new_egid));
+// else {
Perl_croak(aTHX_ "setegid() not implemented");
- }
+// }
#endif
#endif
#endif
diff -ru source/perl.h source-new/perl.h
--- source/perl.h 2017-06-30 14:03:22.000000000 -0700
+++ source-new/perl.h 2017-08-17 13:14:01.806883580 -0700
@@ -1061,7 +1061,6 @@
#ifndef PERL_MICRO
#ifndef memchr
# ifndef HAS_MEMCHR
-# define memchr(s,c,n) ninstr((char*)(s), ((char*)(s)) + n, &(c), &(c) + 1)
# endif
#endif
#endif
diff -ru source/pp_hot.c source-new/pp_hot.c
--- source/pp_hot.c 2017-06-30 14:03:22.000000000 -0700
+++ source-new/pp_hot.c 2017-08-17 13:16:20.234635700 -0700
@@ -1583,11 +1583,13 @@
PL_delaymagic &= ~DM_EUID;
}
# endif /* HAS_SETEUID */
+#if 0
if (PL_delaymagic & DM_UID) {
if (PL_delaymagic_uid != PL_delaymagic_euid)
DIE(aTHX_ "No setreuid available");
PERL_UNUSED_RESULT(PerlProc_setuid(PL_delaymagic_uid));
}
+#endif
# endif /* HAS_SETREUID */
#endif /* HAS_SETRESUID */
@@ -1619,11 +1621,13 @@
PL_delaymagic &= ~DM_EGID;
}
# endif /* HAS_SETEGID */
+#if 0
if (PL_delaymagic & DM_GID) {
if (PL_delaymagic_gid != PL_delaymagic_egid)
DIE(aTHX_ "No setregid available");
PERL_UNUSED_RESULT(PerlProc_setgid(PL_delaymagic_gid));
}
+#endif
# endif /* HAS_SETREGID */
#endif /* HAS_SETRESGID */
diff -ru source/pp_sys.c source-new/pp_sys.c
--- source/pp_sys.c 2017-06-30 14:03:22.000000000 -0700
+++ source-new/pp_sys.c 2017-08-17 14:57:00.983541027 -0700
@@ -2413,7 +2413,7 @@
TAINT_PROPER(PL_op_desc[optype]);
if (optype == OP_IOCTL)
-#ifdef HAS_IOCTL
+#if 0
retval = PerlLIO_ioctl(PerlIO_fileno(IoIFP(io)), func, s);
#else
DIE(aTHX_ "ioctl is not implemented");
@@ -2705,7 +2705,7 @@
if (!IoIFP(io))
goto nuts;
- PUSHi( PerlSock_shutdown(PerlIO_fileno(IoIFP(io)), how) >= 0 );
+ PUSHi( 0 );
RETURN;
nuts:
@@ -2980,7 +2980,7 @@
sv_setuid(PUSHmortal, PL_statcache.st_uid);
sv_setgid(PUSHmortal, PL_statcache.st_gid);
-#ifdef USE_STAT_RDEV
+#if 0
mPUSHi(PL_statcache.st_rdev);
#else
PUSHs(newSVpvs_flags("", SVs_TEMP));
@@ -4186,7 +4186,7 @@
PP(pp_fork)
{
-#ifdef HAS_FORK
+#if 1
dSP; dTARGET;
Pid_t childpid;
#ifdef HAS_SIGPROCMASK
@@ -4332,7 +4332,7 @@
TAINT_PROPER("system");
}
PERL_FLUSHALL_FOR_CHILD;
-#if (defined(HAS_FORK) || defined(__amigaos4__)) && !defined(VMS) && !defined(OS2) || defined(PERL_MICRO)
+#if 1
{
#ifdef __amigaos4__
struct UserData userdata;
@@ -5582,7 +5582,7 @@
PP(pp_ggrent)
{
-#ifdef HAS_GROUP
+#if 0
dSP;
const I32 which = PL_op->op_type;
const struct group *grent;
diff -ru source/util.c source-new/util.c
--- source/util.c 2017-06-30 14:03:22.000000000 -0700
+++ source-new/util.c 2017-08-17 15:42:05.328932377 -0700
@@ -2456,7 +2456,7 @@
PerlIO *
Perl_my_popen_list(pTHX_ const char *mode, int n, SV **args)
{
-#if (!defined(DOSISH) || defined(HAS_FORK)) && !defined(OS2) && !defined(VMS) && !defined(NETWARE) && !defined(__LIBCATAMOUNT__) && !defined(__amigaos4__)
+#if 1
int p[2];
I32 This, that;
Pid_t pid;
@@ -2821,7 +2821,7 @@
Pid_t
Perl_my_fork(void)
{
-#if defined(HAS_FORK)
+#if 1
Pid_t pid;
#if defined(USE_ITHREADS) && !defined(HAS_PTHREAD_ATFORK)
atfork_lock();
@@ -2842,7 +2842,7 @@
#endif /* HAS_FORK */
}
-#ifndef HAS_DUP2
+#if 0
int
dup2(int oldfd, int newfd)
{
@@ -3196,7 +3196,7 @@
#if defined(OS2)
int pclose();
-#ifdef HAS_FORK
+#if 1
int /* Cannot prototype with I32
in os2ish.h. */
my_syspclose(PerlIO *ptr)
#TODO incomplete script
#TODO does the patch is still needed?
#TODO update the patch to match the current version
#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"
patches = [
"perl.patch",
]
[build]
template = "custom"
script = """
curl -L -O --time-cond perl-cross-1.5.3.tar.gz https://github.com/arsv/perl-cross/releases/download/1.5.3/perl-cross-1.5.3.tar.gz
tar --strip-components=1 -xvf perl-cross-1.5.3.tar.gz
wget -O cnf/config.sub "https://gitlab.redox-os.org/redox-os/gnu-config/-/raw/master/config.sub?inline=false"
sysroot="$($HOST-gcc -print-sysroot)" # does it is still needed?
sed -i "s/^#define Netdb_name_t.*/#define Netdb_name_t const char*/" config.h # XXX
sed -i 's/#define Strerror(e).*$/#define Strerror(e) strerror(e)/' config.h #
echo "#define HAS_VPRINTF" >> config.h
COOKBOOK_CONFIGURE_FLAGS+=(
rsync -av --delete "${COOKBOOK_SOURCE}/" ./ #move it to the top of the script after debugging - BP
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
wget -O ./cnf/config.sub "https://gitlab.redox-os.org/redox-os/gnu-config/-/raw/master/config.sub?inline=false"
#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
COOKBOOK_CONFIGURE=${COOKBOOK_BUILD}/configure
#Note: non-standard configure, familiar flags can have different meaning!
COOKBOOK_CONFIGURE_FLAGS=(
--host-cc=gcc
--host-cpp=g++
--target=x86_64-unknown-redox
--prefix=
--sysroot=${COOKBOOK_SYSROOT}
--disable-mod=Sys-Syslog,Time-HiRes
--with-libs='m'
#--with-libs='m'
)
cookbook_configure
cp ${COOKBOOK_RECIPE}/configure_tool.sh ${COOKBOOK_BUILD}/cnf/configure_tool.sh
cp ${COOKBOOK_RECIPE}/redox ${COOKBOOK_BUILD}/cnf/hints/redox
mkdir ${COOKBOOK_SYSROOT}/usr
cp -r /mnt/c/commd/redox/redox/prefix/x86_64-unknown-redox/relibc-install/x86_64-unknown-redox/include ${COOKBOOK_SYSROOT}/usr
./configure --host-cc=gcc --host-cpp=g++ --target=x86_64-unknown-redox --sysroot=${COOKBOOK_SYSROOT} --disable-mod=Sys-Syslog
sed -i "s/^#define Netdb_name_t.*/#define Netdb_name_t const char*/" config.h
#OSNAME sed -i 's/^#define OSNAME.*/#define OSNAME "redox"/' 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
#sed -i 's/#define Strerror(e).*$/#define Strerror(e) strerror(e)/' config.h
#echo "#define HAS_VPRINTF" >> 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
"""
# NetBSD syscalls
d_nanosleep='define'
# libraries to test
libswanted='m dl'
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment