Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Builds fail on Minix since v5.31.6 #17908

Closed
bingos opened this issue Jun 28, 2020 · 9 comments · Fixed by #17915
Closed

Builds fail on Minix since v5.31.6 #17908

bingos opened this issue Jun 28, 2020 · 9 comments · Fixed by #17915

Comments

@bingos
Copy link
Contributor

bingos commented Jun 28, 2020

Description

I came to build v5.32.0 on Minix (Minix monty 3.4.0 Minix 3.4.0 (GENERIC) i386) and after Configure it failed to build opmini with the following error:

monty# make
echo @`sh  cflags "optimize='-O'" opmini.o`  -DPERL_IS_MINIPERL -DPERL_EXTERNAL_GLOB opmini.c
@cc -c -DPERL_CORE -fno-strict-aliasing -pipe -fstack-protector-strong -D_FORTIFY_SOURCE=2 -O -Wall -DPERL_IS_MINIPERL -DPERL_EXTERNAL_GLOB opmini.c
In file included from op.c:163:
./perl.h:2809:13: error: expected ';' at end of declaration list
        int si_signo;
            ^
/usr/include/sys/siginfo.h:139:23: note: expanded from macro 'si_signo'
#define si_signo        _info._signo
                             ^
1 error generated.
*** Error code 1

Stop.
make: stopped in /usr/opt/build/perl5

v5.30.3 built fine

I have bisected the build failure to the commit e712489

Steps to Reproduce

I have been using the following Configure arguments:

./Configure -des -Uinstallusrbinperl -Uuseithreads -Uusemymalloc -Dldflags='-Wl,-rpath,/usr/pkg/lib -fstack-protector-strong -L/usr/pkg/lib' -Dlibpth='/usr/pkg/lib /usr/include/clang-3.6 /usr/lib /lib' -Dusedevel

Expected behavior

I expected perl to build successfully.

Perl configuration
This is the output from the v5.30.3 that I successfully built and installed, as I couldn't get v5.32.0 to build.

monty# /opt/perl-5.30.3/bin/perl -V
Summary of my perl5 (revision 5 version 30 subversion 3) configuration:
   
  Platform:
    osname=minix
    osvers=3.4.0
    archname=i386-minix
    uname='minix monty 3.4.0 minix 3.4.0 (generic) i386 '
    config_args='-e -Uuseithreads -Uusemymalloc -Dprefix=/opt/perl-5.30.3'
    hint=recommended
    useposix=true
    d_sigaction=define
    useithreads=undef
    usemultiplicity=undef
    use64bitint=undef
    use64bitall=undef
    uselongdouble=undef
    usemymalloc=n
    default_inc_excludes_dot=define
    bincompat5005=undef
  Compiler:
    cc='cc'
    ccflags ='-fno-strict-aliasing -pipe -fstack-protector-strong -D_FORTIFY_SOURCE=2'
    optimize='-O'
    cppflags='-fno-strict-aliasing -pipe -fstack-protector-strong'
    ccversion=''
    gccversion='4.2.1 Compatible Clang 3.6 (branches/release_36 237755)'
    gccosandvers=''
    intsize=4
    longsize=4
    ptrsize=4
    doublesize=8
    byteorder=1234
    doublekind=3
    d_longlong=define
    longlongsize=8
    d_longdbl=define
    longdblsize=12
    longdblkind=3
    ivtype='long'
    ivsize=4
    nvtype='double'
    nvsize=8
    Off_t='off_t'
    lseeksize=8
    alignbytes=4
    prototype=define
  Linker and Libraries:
    ld='cc'
    ldflags ='-Wl,-rpath,/usr/pkg/lib -fstack-protector-strong -L/usr/pkg/lib'
    libpth=/usr/pkg/lib /usr/include/clang-3.6 /usr/lib /lib
    libs=-lgdbm -lm -lcrypt -lutil -lc
    perllibs=-lm -lcrypt -lutil -lc
    libc=/usr/lib/libc.so
    so=so
    useshrplib=false
    libperl=libperl.a
    gnulibc_version=''
  Dynamic Linking:
    dlsrc=dl_dlopen.xs
    dlext=so
    d_dlsymun=undef
    ccdlflags='-Wl,-E '
    cccdlflags='-DPIC -fPIC '
    lddlflags='-shared  -L/usr/pkg/lib -fstack-protector-strong'


Characteristics of this binary (from libperl): 
  Compile-time options:
    HAS_TIMES
    PERLIO_LAYERS
    PERL_COPY_ON_WRITE
    PERL_DONT_CREATE_GVSV
    PERL_MALLOC_WRAP
    PERL_OP_PARENT
    PERL_PRESERVE_IVUV
    USE_LARGE_FILES
    USE_LOCALE
    USE_LOCALE_COLLATE
    USE_LOCALE_CTYPE
    USE_LOCALE_NUMERIC
    USE_LOCALE_TIME
    USE_PERLIO
    USE_PERL_ATOF
  Built under minix
  Compiled at Jun 28 2020 11:42:34
  @INC:
    /opt/perl-5.30.3/lib/site_perl/5.30.3/i386-minix
    /opt/perl-5.30.3/lib/site_perl/5.30.3
    /opt/perl-5.30.3/lib/5.30.3/i386-minix
    /opt/perl-5.30.3/lib/5.30.3
@jkeenan
Copy link
Contributor

jkeenan commented Jun 28, 2020

@bingos, in order for us to support perl on Minix going forward, we would need smoke-testing reports. It appears that in the past decade we have received exactly 1 smoke-test report from Minix. Assuming we can debug this problem, would you be in a position to supply smoke-test reports going forward?

Thank you very much.
Jim Keenan

@jkeenan
Copy link
Contributor

jkeenan commented Jun 28, 2020

@iabyn can you take a look at this in relation to e712489 ?

Thank you very much.
Jim Keenan

@Leont
Copy link
Contributor

Leont commented Jun 28, 2020

This isn't making sense. Why would minix have a si_signo but not have sigaction/siginfo?

My guess is that SA_SIGINFO isn't a define on minix but an enum, and therefor the #ifdef doesn't detect it

@bingos
Copy link
Contributor Author

bingos commented Jun 29, 2020

This is /usr/include/sys/signal.h

/*      $NetBSD: signal.h,v 1.67 2011/01/10 13:56:44 christos Exp $     */

/*
 * Copyright (c) 1982, 1986, 1989, 1991, 1993
 *      The Regents of the University of California.  All rights reserved.
 * (c) UNIX System Laboratories, Inc.
 * All or some portions of this file are derived from material licensed
 * to the University of California by American Telephone and Telegraph
 * Co. or Unix System Laboratories, Inc. and are reproduced herein with
 * the permission of UNIX System Laboratories, Inc.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 * 3. Neither the name of the University nor the names of its contributors
 *    may be used to endorse or promote products derived from this software
 *    without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 * SUCH DAMAGE.
 *
 *      @(#)signal.h    8.4 (Berkeley) 5/4/95
 */

#ifndef _SYS_SIGNAL_H_
#define _SYS_SIGNAL_H_

#include <sys/featuretest.h>
#include <sys/sigtypes.h>

#define _NSIG           64

#if defined(_NETBSD_SOURCE)
#define NSIG _NSIG

#endif /* _NETBSD_SOURCE */

#define SIGHUP          1       /* hangup */
#define SIGINT          2       /* interrupt */
#define SIGQUIT         3       /* quit */
#define SIGILL          4       /* illegal instruction (not reset when caught) */
#define SIGTRAP         5       /* trace trap (not reset when caught) */
#define SIGABRT         6       /* abort() */
#define SIGIOT          SIGABRT /* compatibility */
#define SIGEMT          7       /* EMT instruction */
#define SIGFPE          8       /* floating point exception */
#define SIGKILL         9       /* kill (cannot be caught or ignored) */
#define SIGBUS          10      /* bus error */
#define SIGSEGV         11      /* segmentation violation */
#define SIGSYS          12      /* bad argument to system call */
#define SIGPIPE         13      /* write on a pipe with no one to read it */
#define SIGALRM         14      /* alarm clock */
#define SIGTERM         15      /* software termination signal from kill */
#define SIGURG          16      /* urgent condition on IO channel */
#define SIGSTOP         17      /* sendable stop signal not from tty */
#define SIGTSTP         18      /* stop signal from tty */
#define SIGCONT         19      /* continue a stopped process */
#define SIGCHLD         20      /* to parent on child stop or exit */
#define SIGTTIN         21      /* to readers pgrp upon background tty read */
#define SIGTTOU         22      /* like TTIN for output if (tp->t_local&LTOSTOP) */
#define SIGIO           23      /* input/output possible signal */
#define SIGXCPU         24      /* exceeded CPU time limit */
#define SIGXFSZ         25      /* exceeded file size limit */
#define SIGVTALRM       26      /* virtual time alarm */
#define SIGPROF         27      /* profiling time alarm */
#define SIGWINCH        28      /* window size changes */
#define SIGINFO         29      /* information request */
#define SIGUSR1         30      /* user defined signal 1 */
#define SIGUSR2         31      /* user defined signal 2 */
#define SIGPWR          32      /* power fail/restart (not reset when caught) */

#if !defined(__minix)
#ifdef _KERNEL
#define SIGRTMIN        33      /* Kernel only; not exposed to userland yet */
#define SIGRTMAX        63      /* Kernel only; not exposed to userland yet */
#endif
#endif /* !defined(__minix) */

#ifndef _KERNEL
#include <sys/cdefs.h>
#endif

#define SIG_DFL         ((void (*)(int))  0)
#define SIG_IGN         ((void (*)(int))  1)
#define SIG_ERR         ((void (*)(int)) -1)
#define SIG_HOLD        ((void (*)(int))  3)

#if defined(_POSIX_C_SOURCE) || defined(_XOPEN_SOURCE) || \
    defined(_NETBSD_SOURCE)

#ifdef _KERNEL
#define sigaddset(s, n)         __sigaddset(s, n)
#define sigdelset(s, n)         __sigdelset(s, n)
#define sigismember(s, n)       __sigismember(s, n)
#define sigemptyset(s)          __sigemptyset(s)
#define sigfillset(s)           __sigfillset(s)
#define sigplusset(s, t)        __sigplusset(s, t)
#define sigminusset(s, t)       __sigminusset(s, t)
#endif /* _KERNEL */

#if (_POSIX_C_SOURCE - 0) >= 199309L || (_XOPEN_SOURCE - 0) >= 500 || \
    defined(_NETBSD_SOURCE)
#include <sys/siginfo.h>
#endif

#if (defined(_XOPEN_SOURCE) && defined(_XOPEN_SOURCE_EXTENDED)) || \
    (_XOPEN_SOURCE - 0) >= 500 || defined(_NETBSD_SOURCE)
#include <sys/ucontext.h>
#endif /* _XOPEN_SOURCE_EXTENDED || _XOPEN_SOURCE >= 500 || _NETBSD_SOURCE */

/*
 * Signal vector "template" used in sigaction call.
 */
struct  sigaction {
        union {
                void (*_sa_handler)(int);
#if (_POSIX_C_SOURCE - 0) >= 199309L || (_XOPEN_SOURCE - 0) >= 500 || \
    defined(_NETBSD_SOURCE)
                void (*_sa_sigaction)(int, siginfo_t *, void *);
#endif
        } _sa_u;        /* signal handler */
        sigset_t sa_mask;               /* signal mask to apply */
        int     sa_flags;               /* see signal options below */
};

#define sa_handler _sa_u._sa_handler
#if (_POSIX_C_SOURCE - 0) >= 199309L || (_XOPEN_SOURCE - 0) >= 500 || \
    defined(_NETBSD_SOURCE)
#define sa_sigaction _sa_u._sa_sigaction
#endif

#include <machine/signal.h>     /* sigcontext; codes for SIGILL, SIGFPE */

#if (defined(_XOPEN_SOURCE) && defined(_XOPEN_SOURCE_EXTENDED)) || \
    (_XOPEN_SOURCE - 0) >= 500 || defined(_NETBSD_SOURCE)
#define SA_ONSTACK      0x0001  /* take signal on signal stack */
#define SA_RESTART      0x0002  /* restart system call on signal return */
#define SA_RESETHAND    0x0004  /* reset to SIG_DFL when taking signal */
#define SA_NODEFER      0x0010  /* don't mask the signal we're delivering */
#endif /* _XOPEN_SOURCE_EXTENDED || XOPEN_SOURCE >= 500 || _NETBSD_SOURCE */
/* Only valid for SIGCHLD. */
#define SA_NOCLDSTOP    0x0008  /* do not generate SIGCHLD on child stop */
#define SA_NOCLDWAIT    0x0020  /* do not generate zombies on unwaited child */
#if (_POSIX_C_SOURCE - 0) >= 199309L || (_XOPEN_SOURCE - 0) >= 500 || \
    defined(_NETBSD_SOURCE)
#if !defined(__minix)
#define SA_SIGINFO      0x0040  /* take sa_sigaction handler */
#endif /* !defined(__minix) */
#endif /* (_POSIX_C_SOURCE - 0) >= 199309L || ... */
#if defined(_NETBSD_SOURCE)
#define SA_NOKERNINFO   0x0080  /* siginfo does not print kernel info on tty */
#endif /*_NETBSD_SOURCE */
#ifdef _KERNEL
#define SA_ALLBITS      0x00ff
#endif

/*
 * Flags for sigprocmask():
 */
#define SIG_BLOCK       1       /* block specified signal set */
#define SIG_UNBLOCK     2       /* unblock specified signal set */
#define SIG_SETMASK     3       /* set specified signal set */

#if defined(__minix)
#define SIG_INQUIRE    10       /* for internal use only */
#endif /* defined(__minix) */

#if defined(_NETBSD_SOURCE)
typedef void (*sig_t)(int);     /* type of signal function */
#endif

#if (defined(_XOPEN_SOURCE) && defined(_XOPEN_SOURCE_EXTENDED)) || \
    (_XOPEN_SOURCE - 0) >= 500 || defined(_NETBSD_SOURCE)
/*
 * Flags used with stack_t/struct sigaltstack.
 */
#define SS_ONSTACK      0x0001  /* take signals on alternate stack */
#define SS_DISABLE      0x0004  /* disable taking signals on alternate stack */
#ifdef _KERNEL
#define SS_ALLBITS      0x0005
#endif
#define MINSIGSTKSZ     8192                    /* minimum allowable stack */
#define SIGSTKSZ        (MINSIGSTKSZ + 32768)   /* recommended stack size */
#endif /* _XOPEN_SOURCE_EXTENDED || _XOPEN_SOURCE >= 500 || _NETBSD_SOURCE */

#if (defined(_XOPEN_SOURCE) && defined(_XOPEN_SOURCE_EXTENDED)) || \
    (_XOPEN_SOURCE - 0) >= 500 || defined(_NETBSD_SOURCE)
/*
 * Structure used in sigstack call.
 */
struct  sigstack {
        void    *ss_sp;                 /* signal stack pointer */
        int     ss_onstack;             /* current status */
};
#endif /* _XOPEN_SOURCE_EXTENDED || _XOPEN_SOURCE >= 500 || _NETBSD_SOURCE */

#if defined(_NETBSD_SOURCE) && !defined(_KERNEL)
/*
 * Macro for converting signal number to a mask suitable for
 * sigblock().
 */
#define sigmask(n)      __sigmask(n)

#define BADSIG          SIG_ERR
#endif /* _NETBSD_SOURCE */

#if (_POSIX_C_SOURCE - 0) >= 199309L || (_XOPEN_SOURCE - 0) >= 500 || \
    defined(_NETBSD_SOURCE)
struct  sigevent {
        int     sigev_notify;
        int     sigev_signo;
        union sigval    sigev_value;
        void    (*sigev_notify_function)(union sigval);
        void /* pthread_attr_t */       *sigev_notify_attributes;
};

#define SIGEV_NONE      0
#define SIGEV_SIGNAL    1
#define SIGEV_THREAD    2
#if defined(_NETBSD_SOURCE)
#define SIGEV_SA        3
#endif
#endif /* (_POSIX_C_SOURCE - 0) >= 199309L || ... */

#endif  /* _POSIX_C_SOURCE || _XOPEN_SOURCE || _NETBSD_SOURCE */

/*
 * For historical reasons; programs expect signal's return value to be
 * defined by <sys/signal.h>.
 */
__BEGIN_DECLS
void    (*signal(int, void (*)(int)))(int);
#if (_POSIX_C_SOURCE - 0) >= 200112L || defined(_NETBSD_SOURCE)
int     sigqueue(pid_t, int, const union sigval);
#endif
#if defined(_NETBSD_SOURCE)
int     sigqueueinfo(pid_t, const siginfo_t *);
#endif
__END_DECLS

#if defined(__minix) && defined(_NETBSD_SOURCE)

/* MINIX specific signals. These signals are not used by user proceses,
 * but meant to inform system processes, like the PM, about system events.
 * The order here determines the order signals are processed by system
 * processes in user-space. Higher-priority signals should be first.
 */
/* Signals delivered by a signal manager. */

#define SIGSNDELAY      70    /* end of delay for signal delivery */

#define SIGS_FIRST       SIGHUP      /* first system signal */
#define SIGS_LAST        SIGSNDELAY   /* last system signal */
#define IS_SIGS(signo)    (signo>=SIGS_FIRST && signo<=SIGS_LAST)

/* Signals delivered by the kernel. */
#define SIGKMEM          71    /* kernel memory request pending */
#define SIGKMESS         72    /* new kernel message */
#define SIGKSIGSM        73    /* kernel signal pending for signal manager */
#define SIGKSIG          74    /* kernel signal pending */

#define SIGK_FIRST       SIGKMEM /* first kernel signal */
#define SIGK_LAST        SIGKSIG /* last kernel signal; _NSIG must cover it! */
#define IS_SIGK(signo)    (signo>=SIGK_FIRST && signo<=SIGK_LAST)

/* Termination signals for Minix system processes. */
#define SIGS_IS_LETHAL(sig) \
    (sig == SIGILL || sig == SIGBUS || sig == SIGFPE || sig == SIGSEGV \
    || sig == SIGEMT || sig == SIGABRT)
#define SIGS_IS_TERMINATION(sig) (SIGS_IS_LETHAL(sig) \
    || (sig == SIGKILL || sig == SIGPIPE))
#define SIGS_IS_STACKTRACE(sig) (SIGS_IS_LETHAL(sig) && sig != SIGABRT)

#endif /* defined(__minix) && defined(_NETBSD_SOURCE) */

#endif  /* !_SYS_SIGNAL_H_ */

@Leont
Copy link
Contributor

Leont commented Jun 29, 2020

So it seems it's borrowing a bunch of code from NetBSD and than accidentally includes an si_signo even though minux doesn't really support siginfo.

I think the solution is to undefine si_signo in the fallback code.

@jkeenan
Copy link
Contributor

jkeenan commented Jun 29, 2020

So it seems it's borrowing a bunch of code from NetBSD and than accidentally includes an si_signo even though minux doesn't really support siginfo.

I think the solution is to undefine si_signo in the fallback code.

FWIW, here is a diff between /usr/include/sys/signal.h as found in NetBDS-8.0 (which is not the most recent version) and the Minix signal.h presented above.

$ diff -w  netbsd.signal.h 17908.minix.signal.h
1c1
< /*	$NetBSD: signal.h,v 1.72 2017/04/21 15:10:35 christos Exp $	*/
---
> /*      $NetBSD: signal.h,v 1.67 2011/01/10 13:56:44 christos Exp $     */
85,86c85,91
< #define	SIGRTMIN	33
< #define	SIGRTMAX	63
---
> 
> #if !defined(__minix)
> #ifdef _KERNEL
> #define SIGRTMIN        33      /* Kernel only; not exposed to userland yet */
> #define SIGRTMAX        63      /* Kernel only; not exposed to userland yet */
> #endif
> #endif /* !defined(__minix) */
154a160
> #if !defined(__minix)
155a162
> #endif /* !defined(__minix) */
170a178,181
> #if defined(__minix)
> #define SIG_INQUIRE    10       /* for internal use only */
> #endif /* defined(__minix) */
> 
173,176d183
< 
< #define SS_INIT 		/* Initializer for stack_t */ \
<     ((stack_t) { .ss_sp = NULL, .ss_flags = SS_DISABLE,  .ss_size = 0 })
< 
240d246
< void	(*bsd_signal(int, void (*)(int)))(int);
247a254,289
> 
> #if defined(__minix) && defined(_NETBSD_SOURCE)
> 
> /* MINIX specific signals. These signals are not used by user proceses,
>  * but meant to inform system processes, like the PM, about system events.
>  * The order here determines the order signals are processed by system
>  * processes in user-space. Higher-priority signals should be first.
>  */
> /* Signals delivered by a signal manager. */
> 
> #define SIGSNDELAY      70    /* end of delay for signal delivery */
> 
> #define SIGS_FIRST       SIGHUP      /* first system signal */
> #define SIGS_LAST        SIGSNDELAY   /* last system signal */
> #define IS_SIGS(signo)    (signo>=SIGS_FIRST && signo<=SIGS_LAST)
> 
> /* Signals delivered by the kernel. */
> #define SIGKMEM          71    /* kernel memory request pending */
> #define SIGKMESS         72    /* new kernel message */
> #define SIGKSIGSM        73    /* kernel signal pending for signal manager */
> #define SIGKSIG          74    /* kernel signal pending */
> 
> #define SIGK_FIRST       SIGKMEM /* first kernel signal */
> #define SIGK_LAST        SIGKSIG /* last kernel signal; _NSIG must cover it! */
> #define IS_SIGK(signo)    (signo>=SIGK_FIRST && signo<=SIGK_LAST)
> 
> /* Termination signals for Minix system processes. */
> #define SIGS_IS_LETHAL(sig) \
>     (sig == SIGILL || sig == SIGBUS || sig == SIGFPE || sig == SIGSEGV \
>     || sig == SIGEMT || sig == SIGABRT)
> #define SIGS_IS_TERMINATION(sig) (SIGS_IS_LETHAL(sig) \
>     || (sig == SIGKILL || sig == SIGPIPE))
> #define SIGS_IS_STACKTRACE(sig) (SIGS_IS_LETHAL(sig) && sig != SIGABRT)
> 
> #endif /* defined(__minix) && defined(_NETBSD_SOURCE) */
> 
248a291
> 

So the Minix code is based on a somewhat older version of the NetBSD code. Some of the differences are merely internal whitespace. But there's what appears to be Minix-specific stuff at the end of the file. HTH.

@Leont
Copy link
Contributor

Leont commented Jun 29, 2020

I think #17915 will fix this, confirmation would be appreciated

@bingos
Copy link
Contributor Author

bingos commented Jun 29, 2020

Looks good:

monty# ./perl -Ilib -V
Summary of my perl5 (revision 5 version 33 subversion 0) configuration:
  Commit id: bdffd22c3169603b2023c4d44369016295710437
  Platform:
    osname=minix
    osvers=3.4.0
    archname=i386-minix
    uname='minix monty 3.4.0 minix 3.4.0 (generic) i386 '
    config_args='-des -Uinstallusrbinperl -Uuseithreads -Uusemymalloc -Dldflags=-Wl,-rpath,/usr/pkg/lib -fstack-protector-strong -L/usr/pkg/lib -Dlibpth=/usr/pkg/lib /usr/include/clang-3.6 /usr/lib /lib -Dusedevel'
    hint=previous
    useposix=true
    d_sigaction=define
    useithreads=undef
    usemultiplicity=undef
    use64bitint=undef
    use64bitall=undef
    uselongdouble=undef
    usemymalloc=n
    default_inc_excludes_dot=define
    bincompat5005=undef
  Compiler:
    cc='cc'
    ccflags ='-fno-strict-aliasing -pipe -fstack-protector-strong -D_FORTIFY_SOURCE=2'
    optimize='-O'
    cppflags='-fno-strict-aliasing -pipe -fstack-protector-strong'
    ccversion=''
    gccversion='4.2.1 Compatible Clang 3.6 (branches/release_36 237755)'
    gccosandvers=''
    intsize=4
    longsize=4
    ptrsize=4
    doublesize=8
    byteorder=1234
    doublekind=3
    d_longlong=define
    longlongsize=8
    d_longdbl=define
    longdblsize=12
    longdblkind=3
    ivtype='long'
    ivsize=4
    nvtype='double'
    nvsize=8
    Off_t='off_t'
    lseeksize=8
    alignbytes=4
    prototype=define
  Linker and Libraries:
    ld='cc'
    ldflags ='-Wl,-rpath,/usr/pkg/lib -fstack-protector-strong -L/usr/pkg/lib -L/lib'
    libpth=/usr/pkg/lib /usr/include/clang-3.6 /usr/lib /lib /usr/include/clang-3.6 /usr/lib
    libs=-lgdbm -lm -lcrypt -lutil -lc
    perllibs=-lm -lcrypt -lutil -lc
    libc=/usr/lib/libc.so
    so=so
    useshrplib=false
    libperl=libperl.a
    gnulibc_version=''
  Dynamic Linking:
    dlsrc=dl_dlopen.xs
    dlext=so
    d_dlsymun=undef
    ccdlflags='-Wl,-E '
    cccdlflags='-DPIC -fPIC '
    lddlflags='-shared  -L/usr/pkg/lib -L/lib -fstack-protector-strong'


Characteristics of this binary (from libperl): 
  Compile-time options:
    HAS_TIMES
    PERLIO_LAYERS
    PERL_COPY_ON_WRITE
    PERL_DONT_CREATE_GVSV
    PERL_MALLOC_WRAP
    PERL_OP_PARENT
    PERL_PRESERVE_IVUV
    PERL_USE_DEVEL
    USE_LARGE_FILES
    USE_LOCALE
    USE_LOCALE_COLLATE
    USE_LOCALE_CTYPE
    USE_LOCALE_NUMERIC
    USE_LOCALE_TIME
    USE_PERLIO
    USE_PERL_ATOF
  Built under minix
  Compiled at Jun 30 2020 00:23:37

@bingos
Copy link
Contributor Author

bingos commented Jun 30, 2020

And patched v5.32.0 builds fine too:

monty# ./perl -Ilib -V
Summary of my perl5 (revision 5 version 32 subversion 0) configuration:
  Derived from: 0cf01644e9e0460386db76c3546d69b15e0806df
  Platform:
    osname=minix
    osvers=3.4.0
    archname=i386-minix
    uname='minix monty 3.4.0 minix 3.4.0 (generic) i386 '
    config_args='-des -Uinstallusrbinperl -Uuseithreads -Uusemymalloc -Dldflags=-Wl,-rpath,/usr/pkg/lib -fstack-protector-strong -L/usr/pkg/lib -Dlibpth=/usr/pkg/lib /usr/include/clang-3.6 /usr/lib /lib -Dprefix=/opt/perl-5.32.0'
    hint=recommended
    useposix=true
    d_sigaction=define
    useithreads=undef
    usemultiplicity=undef
    use64bitint=undef
    use64bitall=undef
    uselongdouble=undef
    usemymalloc=n
    default_inc_excludes_dot=define
    bincompat5005=undef
  Compiler:
    cc='cc'
    ccflags ='-fno-strict-aliasing -pipe -fstack-protector-strong -D_FORTIFY_SOURCE=2'
    optimize='-O'
    cppflags='-fno-strict-aliasing -pipe -fstack-protector-strong'
    ccversion=''
    gccversion='4.2.1 Compatible Clang 3.6 (branches/release_36 237755)'
    gccosandvers=''
    intsize=4
    longsize=4
    ptrsize=4
    doublesize=8
    byteorder=1234
    doublekind=3
    d_longlong=define
    longlongsize=8
    d_longdbl=define
    longdblsize=12
    longdblkind=3
    ivtype='long'
    ivsize=4
    nvtype='double'
    nvsize=8
    Off_t='off_t'
    lseeksize=8
    alignbytes=4
    prototype=define
  Linker and Libraries:
    ld='cc'
    ldflags ='-Wl,-rpath,/usr/pkg/lib -fstack-protector-strong -L/usr/pkg/lib'
    libpth=/usr/pkg/lib /usr/include/clang-3.6 /usr/lib /lib /usr/include/clang-3.6 /usr/lib
    libs=-lgdbm -lm -lcrypt -lutil -lc
    perllibs=-lm -lcrypt -lutil -lc
    libc=/usr/lib/libc.so
    so=so
    useshrplib=false
    libperl=libperl.a
    gnulibc_version=''
  Dynamic Linking:
    dlsrc=dl_dlopen.xs
    dlext=so
    d_dlsymun=undef
    ccdlflags='-Wl,-E '
    cccdlflags='-DPIC -fPIC '
    lddlflags='-shared  -L/usr/pkg/lib -fstack-protector-strong'


Characteristics of this binary (from libperl): 
  Compile-time options:
    HAS_TIMES
    PERLIO_LAYERS
    PERL_COPY_ON_WRITE
    PERL_DONT_CREATE_GVSV
    PERL_MALLOC_WRAP
    PERL_OP_PARENT
    PERL_PRESERVE_IVUV
    USE_LARGE_FILES
    USE_LOCALE
    USE_LOCALE_COLLATE
    USE_LOCALE_CTYPE
    USE_LOCALE_NUMERIC
    USE_LOCALE_TIME
    USE_PERLIO
    USE_PERL_ATOF
  Locally applied patches:
    uncommitted-changes
  Built under minix
  Compiled at Jun 30 2020 00:51:50
  @INC:
    lib
    /opt/perl-5.32.0/lib/site_perl/5.32.0/i386-minix
    /opt/perl-5.32.0/lib/site_perl/5.32.0
    /opt/perl-5.32.0/lib/5.32.0/i386-minix
    /opt/perl-5.32.0/lib/5.32.0

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants