On Sun, May 17, 2020 at 09:49:54AM -0700, Andrew Hewus Fresh wrote:
> I think this patch is now cleaned up enough to look for OKs.

OK bluhm@

> The patch to numeric.c works around an issue with clang and
> -Wdeclaration-after-statement that was fixed more correctly upstream,
> but pulling in the full fix in seemed like overkill for now.
>
> https://github.com/Perl/perl5/issues/17725
> https://github.com/Perl/perl5/pull/17750
>
> This patch does miss `rm gnu/usr.bin/perl/DynaLoader.sed` that we no
> longer need, not sure which cvs diff flag I missed on that.
>
> Other than that, as described in my original email:
>
>
> On Fri, Apr 10, 2020 at 06:17:33PM -0700, Andrew Hewus Fresh wrote:
> > Recently it was pointed out that we don't link /usr/lib/libperl.so.* to
> > libm the way is expected for code that also links to libperl.  That led
> > me to go digging again into the customization we have around the perl
> > build and getting terribly confused.  That did somewhat clear up after
> > reading more about bsd.*.mk, but still feel like some of this mess was
> > to make the vax work, but I couldn't actually figure it out from the cvs
> > logs why it exists.
> >
> > In any case, this patch does a few things, some of which I can split up
> > and put in separately if it comes to that.
> >
> > * Puts back some of the upstream Makefile.SH that we removed
> >   * and a little Dynaloader too
> >
> > * Changes Configure flags to -de instead of -dsE
> >   * So Configure does the work previously handled by depend.done
> >
> > * Adjusts the installperl script to put libperl where we want it
> >
> > * Moves some build flag discovery into hint/openbsd.sh
> >   (Which I can then push upstream)
> >   * Figuring out the correct PICFLAG, which means perl will now use the
> >     same one, not -fpic for things built by Makefile.bsdwapper on archs
> >     that want it and -fPIC for everything else.
> >   * Using no-tree-ter on alpha, due to a compiler bug.
> >
> > * Lets the perl infrastructure build libperl again
> >   * Notably, this stops creating libperl.a, but I have a patch
> >     around that puts it back, just not sure if we need it.
> >   * Which means "we" don't actually build anything anymore, we leave all
> >     that to the perl upstream Makefile so all the "stuff" to do with
> >     that can go away.
> >   * Which means ldd now mentions libm as it should
> >
> > * Some tidying of the rest of Makefile.bsd-wrapper*
> >
> > It seems to build fine on my
> >   alpha, amd64, arm64, armv7, i386, macppc, octeon, and sparc64.
> >
> >
> > The individual changes are committed, in a clean-up-build branch, to the
> > GitHub repo where I keep track of them, along with build logs from my
> > test machines both with and without this patch:
> > https://github.com/afresh1/OpenBSD-perl/tree/clean-up-build
>
>
> Index: gnu/usr.bin/perl/numeric.c
> ===================================================================
> RCS file: /cvs/src/gnu/usr.bin/perl/numeric.c,v
> retrieving revision 1.6
> diff -u -p -r1.6 numeric.c
> --- gnu/usr.bin/perl/numeric.c        9 Apr 2020 01:32:11 -0000       1.6
> +++ gnu/usr.bin/perl/numeric.c        17 May 2020 16:44:29 -0000
> @@ -34,8 +34,8 @@ values, including such things as replace
>  PERL_STATIC_INLINE NV
>  S_strtod(pTHX_ const char * const s, char ** e)
>  {
> -    DECLARATION_FOR_LC_NUMERIC_MANIPULATION;
>      NV result;
> +    DECLARATION_FOR_LC_NUMERIC_MANIPULATION;
>
>      STORE_LC_NUMERIC_SET_TO_NEEDED();
>
> Index: distrib/sets/lists/comp/mi
> ===================================================================
> RCS file: /cvs/src/distrib/sets/lists/comp/mi,v
> retrieving revision 1.1498
> diff -u -p -r1.1498 mi
> --- distrib/sets/lists/comp/mi        22 Apr 2020 02:04:00 -0000      1.1498
> +++ distrib/sets/lists/comp/mi        17 May 2020 16:44:21 -0000
> @@ -1536,7 +1536,6 @@
>  ./usr/lib/libpanelw_p.a
>  ./usr/lib/libpcap.a
>  ./usr/lib/libpcap_p.a
> -./usr/lib/libperl.a
>  ./usr/lib/libpthread.a
>  ./usr/lib/libpthread_p.a
>  ./usr/lib/libradius.a
> Index: gnu/usr.bin/perl/DynaLoader.sed
> ===================================================================
> RCS file: gnu/usr.bin/perl/DynaLoader.sed
> diff -N gnu/usr.bin/perl/DynaLoader.sed
> --- gnu/usr.bin/perl/DynaLoader.sed   17 Nov 2014 21:00:55 -0000      1.4
> +++ /dev/null 1 Jan 1970 00:00:00 -0000
> @@ -1,6 +0,0 @@
> -s@"dlutils.c"@"ext/DynaLoader/dlutils.c"@
> -/^#ifndef RTLD_LAZY/{N;N;c\
> -#define VERSION "1.20"\
> -#define XS_VERSION "1.20"\
> -#define DLOPEN_WONT_DO_RELATIVE_PATHS
> -}
> Index: gnu/usr.bin/perl/Makefile.SH
> ===================================================================
> RCS file: /cvs/src/gnu/usr.bin/perl/Makefile.SH,v
> retrieving revision 1.51
> diff -u -p -r1.51 Makefile.SH
> --- gnu/usr.bin/perl/Makefile.SH      25 Apr 2020 21:15:23 -0000      1.51
> +++ gnu/usr.bin/perl/Makefile.SH      17 May 2020 16:44:23 -0000
> @@ -822,11 +822,11 @@ CCDLFLAGS               = `echo $ccdlflags|sed -e 's@
>  LIBPERL_NONSHR               = libperl_nonshr$(LIB_EXT)
>  MINIPERL_NONSHR              = miniperl_nonshr$(EXE_EXT)
>
> -#$(LIBPERL_NONSHR): $(perllib_objs)
> -#    $(RMS) $(LIBPERL_NONSHR)
> -#    $(AR) rc $(LIBPERL_NONSHR) $(perllib_objs)
> +$(LIBPERL_NONSHR): $(perllib_objs)
> +     $(RMS) $(LIBPERL_NONSHR)
> +     $(AR) rc $(LIBPERL_NONSHR) $(perllib_objs)
>
> -$(MINIPERL_NONSHR): miniperlmain$(OBJ_EXT) opmini$(OBJ_EXT)  
> perlmini$(OBJ_EXT)
> +$(MINIPERL_NONSHR): $(LIBPERL_NONSHR) miniperlmain$(OBJ_EXT) 
> opmini$(OBJ_EXT)  perlmini$(OBJ_EXT)
>       $(CC) $(LDFLAGS) -o $(MINIPERL_NONSHR) miniperlmain$(OBJ_EXT) \
>           opmini$(OBJ_EXT) perlmini$(OBJ_EXT) $(LIBPERL_NONSHR) $(LIBS)
>
> @@ -925,33 +925,33 @@ $(DTRACE_MAIN_O): perldtrace.d perlmain$
>  !NO!SUBS!
>               ;;
>      esac
> -#    $spitshell >>$Makefile <<'!NO!SUBS!'
> -#$(LIBPERL): $& $(perllib_dep) $(DYNALOADER) $(LIBPERLEXPORT)
> -#!NO!SUBS!
> -#    case "$useshrplib" in
> -#    true)
> -#            $spitshell >>$Makefile <<'!NO!SUBS!'
> -#    rm -f $@
> -#    $(LD) -o $@ $(SHRPLDFLAGS) $(perllib_objs) $(DYNALOADER) $(libs)
> -#!NO!SUBS!
> -#            case "$osname" in
> -#            aix)
> -#                    $spitshell >>$Makefile <<'!NO!SUBS!'
> -#    rm -f libperl$(OBJ_EXT)
> -#    mv $@ libperl$(OBJ_EXT)
> -#    $(AR) qv $(LIBPERL) libperl$(OBJ_EXT)
> -#!NO!SUBS!
> -#                    ;;
> -#            esac
> -#            ;;
> -#    *)
> -#            $spitshell >>$Makefile <<'!NO!SUBS!'
> -#    rm -f $(LIBPERL)
> -#    $(AR) rc $(LIBPERL) $(perllib_objs) $(DYNALOADER)
> -#    @$(ranlib) $(LIBPERL)
> -#!NO!SUBS!
> -#            ;;
> -#    esac
> +     $spitshell >>$Makefile <<'!NO!SUBS!'
> +$(LIBPERL): $& $(perllib_dep) $(DYNALOADER) $(LIBPERLEXPORT)
> +!NO!SUBS!
> +     case "$useshrplib" in
> +     true)
> +             $spitshell >>$Makefile <<'!NO!SUBS!'
> +     rm -f $@
> +     $(LD) -o $@ $(SHRPLDFLAGS) $(perllib_objs) $(DYNALOADER) $(libs)
> +!NO!SUBS!
> +             case "$osname" in
> +             aix)
> +                     $spitshell >>$Makefile <<'!NO!SUBS!'
> +     rm -f libperl$(OBJ_EXT)
> +     mv $@ libperl$(OBJ_EXT)
> +     $(AR) qv $(LIBPERL) libperl$(OBJ_EXT)
> +!NO!SUBS!
> +                     ;;
> +             esac
> +             ;;
> +     *)
> +             $spitshell >>$Makefile <<'!NO!SUBS!'
> +     rm -f $(LIBPERL)
> +     $(AR) rc $(LIBPERL) $(perllib_objs) $(DYNALOADER)
> +     @$(ranlib) $(LIBPERL)
> +!NO!SUBS!
> +             ;;
> +     esac
>       $spitshell >>$Makefile <<'!NO!SUBS!'
>
>  # How to build executables.
> @@ -1017,6 +1017,10 @@ NAMESPACEFLAGS = -force_flat_namespace
>               esac
>               $spitshell >>$Makefile <<'!NO!SUBS!'
>  lib/buildcustomize.pl: $& $(miniperl_objs) write_buildcustomize.pl
> +     -@rm -f miniperl.xok
> +     $(CC) $(CLDFLAGS) $(NAMESPACEFLAGS) -o $(MINIPERL_EXE) \
> +         $(miniperl_objs) $(libs)
> +     $(LDLIBPTH) ./miniperl$(HOST_EXE_EXT) -w -Ilib -Idist/Exporter/lib 
> -MExporter -e '<?>' || sh -c 'echo >&2 Failed to build miniperl.  Please run 
> make minitest; exit 1'
>       $(MINIPERL) -f write_buildcustomize.pl
>  !NO!SUBS!
>               ;;
> Index: gnu/usr.bin/perl/Makefile.bsd-wrapper
> ===================================================================
> RCS file: /cvs/src/gnu/usr.bin/perl/Makefile.bsd-wrapper,v
> retrieving revision 1.109
> diff -u -p -r1.109 Makefile.bsd-wrapper
> --- gnu/usr.bin/perl/Makefile.bsd-wrapper     4 Jul 2017 13:10:13 -0000       
> 1.109
> +++ gnu/usr.bin/perl/Makefile.bsd-wrapper     17 May 2020 16:44:23 -0000
> @@ -3,8 +3,7 @@
>  # Build wrapper for Perl
>  #
>
> -
> -CONFIGURE_ARGS= -dsE -Dopenbsd_distribution=defined 
> -Dccflags='-DNO_LOCALE_NUMERIC -DNO_LOCALE_COLLATE'
> +CONFIGURE_ARGS=      -de -Dopenbsd_distribution=defined
>
>  .if !exists(${.OBJDIR}/config.over)
>  CONFIGURE_ARGS+= -Dmksymlinks
> @@ -12,51 +11,21 @@ CONFIGURE_ARGS+= -Dmksymlinks
>
>  .MAIN: all
>
> -# Arguments passed to Configure...
> -
> -CPPFLAGS+= -DPERL_CORE -DNO_LOCALE_NUMERIC -DNO_LOCALE_COLLATE -DBIG_TIME -I.
> -
> -GEN_AFTER=   bitcount.h config.h mg_data.h uudmap.h cflags makedepend \
> -             myconfig Makefile Policy.sh pod/Makefile
> -
> -GENERATED=   config.sh ${GEN_AFTER}
> +CLEANFILES=  config.sh
>
> -${GEN_AFTER}: config.sh
> -
> -CLEANFILES=  config.sh Policy.sh DynaLoader.c
> +config.sh:   ${.CURDIR}/config.over ${.CURDIR}/hints/openbsd.sh
> +     cd ${.OBJDIR} && PATH="/bin:/usr/bin:/sbin:/usr/sbin" \
> +         exec /bin/sh ${.CURDIR}/Configure ${CONFIGURE_ARGS}
>
>  # nothing!
>  depend:
>       @:
>
> -depend.done: ${GENERATED}
> -     cd ${.OBJDIR} && exec ${MAKE} depend
> -     touch $@
> -
> -config.sh:   ${.CURDIR}/config.over
> -     cd ${.OBJDIR} && PATH="/bin:/usr/bin:/sbin:/usr/sbin" \
> -         exec /bin/sh ${.CURDIR}/Configure ${CONFIGURE_ARGS}
> -
> -Makefile cflags makedepend makedir myconfig Policy.sh config.h:
> -     cd ${.OBJDIR} && exec /bin/sh ${@:S/./_/}.SH
> -
> -pod/Makefile:
> -     cd ${.OBJDIR}/pod && exec /bin/sh Makefile.SH
> -
> -uudmap.h: bitcount.h
> -mg_data.h: bitcount.h
> -
> -bitcount.h: generate_uudmap
> -     ./generate_uudmap uudmap.h bitcount.h mg_data.h
> -
> -generate_uudmap: generate_uudmap.o
> -     ${CC} ${CPPFLAGS} ${CFLAGS} -o generate_uudmap generate_uudmap.o
> -
>  test:
> -     -@if [ -e Makefile ]; then ${MAKE} test; fi
> +     -@test -e Makefile && ${MAKE} test
>
>  clean:
> -     -@if [ -e Makefile ]; then ${MAKE} realclean; fi
> +     -@test -e Makefile && ${MAKE} realclean
>
>  cleandir:
>       -@if [ ${.CURDIR} != ${.OBJDIR} ]; then \
> @@ -65,10 +34,10 @@ cleandir:
>           test -e Makefile && ${MAKE} distclean; \
>           rm -f ${CLEANFILES}; \
>       fi
> -     @cd ${.CURDIR} && ${MAKE} -f Makefile.bsd-wrapper1 cleandir
> +     cd ${.CURDIR} && ${MAKE} -f Makefile.bsd-wrapper1 cleandir
>
> -all: depend.done
> -     cd ${.CURDIR} && exec ${MAKE} -f Makefile.bsd-wrapper1 perl.build 
> CPPFLAGS="${CPPFLAGS}" GENERATED="${GENERATED}"
> +all: config.sh
> +     cd ${.CURDIR} && exec ${MAKE} -f Makefile.bsd-wrapper1 perl.build
>       cd ${.CURDIR} && exec ${MAKE} -f Makefile.bsd-wrapper1 mansrc.build
>
>  install:
> Index: gnu/usr.bin/perl/Makefile.bsd-wrapper1
> ===================================================================
> RCS file: /cvs/src/gnu/usr.bin/perl/Makefile.bsd-wrapper1,v
> retrieving revision 1.39
> diff -u -p -r1.39 Makefile.bsd-wrapper1
> --- gnu/usr.bin/perl/Makefile.bsd-wrapper1    9 Apr 2020 02:54:54 -0000       
> 1.39
> +++ gnu/usr.bin/perl/Makefile.bsd-wrapper1    17 May 2020 16:44:23 -0000
> @@ -1,43 +1,9 @@
>  .include <bsd.own.mk>
>
> -# There is no point in building a profiled libperl that is never used.
> -NOPROFILE=
> -
> -# Perl builds with -fno-strict-aliasing, we want libperl to do the same
> -CFLAGS+= -fno-strict-aliasing
> -
> -H2PH=                /usr/bin/h2ph
> -
> -LIB= perl
> -
> -SRCS1=       gv.c toke.c perly.c pad.c regcomp.c dump.c util.c mg.c reentr.c 
> \
> -     mro_core.c keywords.c hv.c av.c run.c pp_hot.c sv.c pp.c scope.c 
> pp_ctl.c \
> -     pp_sys.c doop.c doio.c dquote.c regexec.c utf8.c taint.c deb.c 
> universal.c \
> -     globals.c perlio.c perlapi.c numeric.c mathoms.c locale.c time64.c \
> -     pp_pack.c pp_sort.c caretx.c
> -SRCS=        ${SRCS1} op.c perl.c
> -
> -# We must not try to mkdep DynaLoader.c as it requires miniperl
> -OBJS+= DynaLoader.o
> -
> -# For generating DynaLoader.c
> -.if defined(NOPIC)
> -DYNALOADER=ext/DynaLoader/dl_none.xs
> -.else
> -DYNALOADER=ext/DynaLoader/dl_dlopen.xs
> -.endif
> -
>  .if defined (INSTALL_STRIP) && ${INSTALL_STRIP} == "-s"
>  STRIPFLAGS='-s'
>  .endif
>
> -perl.build:  perl.lib DynaLoader.c
> -     cd ${.OBJDIR} && exec ${MAKE}
> -
> -# Never try to regenerate perly.c or perly.h
> -perly.c perly.h: perly.y
> -     -@true
> -
>  # If we are cross-compiling, we use the native pod2man.
>  # Otherwise, we use the pod2man (and libperl) we just
>  # built since we don't know what's in the tree.
> @@ -844,76 +810,22 @@ stamp-mansrc.build:
>
>  .PHONY: mansrc.build
>
> +perl.build:
> +     cd ${.OBJDIR} && exec ${MAKE}
> +
>  cleandir:
>       rm -f ${MAN} stamp-mansrc.build
>
> -.include <bsd.lib.mk>
> -# These have to come after the inclusion of <bsd.lib.mk>
> -
> -# Need -fPIC, not -fpic on sparc
> -.if ($(TARGET_MACHINE_ARCH) == sparc)
> -PICFLAG=-fPIC
> -.endif
> -
> -# Unaligned access on alpha with -ftree-ter
> -# http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59679
> -# More details
> -# https://rt.perl.org/Public/Bug/Display.html?id=120888
> -.if ($(TARGET_MACHINE_ARCH) == alpha)
> -CFLAGS+= -fno-tree-ter
> -.endif
> -
> -# The DynaLoader extension is now compiled statically into libperl
> -miniperl: ${GENERATED} ${SRCS1:S/.c/.o/g} opmini.o perlmini.o miniperlmain.o
> -     ${CC} ${CPPFLAGS} ${CFLAGS} -o $@ ${SRCS1:S/.c/.o/g} opmini.o 
> perlmini.o miniperlmain.o ${LDFLAGS} -lm -lutil
> -
> -opmini.c: op.c
> -     rm -f opmini.c
> -     cp op.c opmini.c
> -
> -opmini.o: opmini.c
> -     ${CC} ${CPPFLAGS} ${CFLAGS} -DPERL_EXTERNAL_GLOB -c  $> -o $@
> -
> -perlmini.o: perlmini.c
> -     ${CC} ${CPPFLAGS} ${CFLAGS} -DPERL_EXTERNAL_GLOB -DPERL_IS_MINIPERL -c 
> $> -o $@
> -
> -lib/Config.pm: miniperl config.sh
> -     cd ${.OBJDIR} && exec ${MAKE} preplibrary
> -
> -DynaLoader.c: miniperl ${DYNALOADER} lib/Config.pm
> -     ./miniperl -Ilib -Idist/Cwd -Idist/Cwd/lib -Idist/ExtUtils-ParseXS/lib \
> -         -Icpan/Getopt-Long/lib -Idist/constant/lib -Iext/re \
> -         -mExtUtils::Typemaps dist/ExtUtils-ParseXS/lib/ExtUtils/xsubpp \
> -         -noprototypes -typemap ../../lib/ExtUtils/typemap ${DYNALOADER} | \
> -         sed -f ${.CURDIR}/DynaLoader.sed > $@; test -s $@ || rm -f $@
> -
> -perl.lib:    ${GENERATED} ${_LIBS}
> -
> -install: install.lib install.perl maninstall
> +install: install.perl maninstall
>       -chmod -R a+rX ${DESTDIR}/usr/libdata/perl5
>
>  install.perl:
>       cd ${.OBJDIR}; INSTALL=${INSTALL} INSTALL_COPY=${INSTALL_COPY} \
> -      STRIPFLAGS=${STRIPFLAGS} INSTALLFLAGS=-o NOLIBINSTALL=1 \
> -      LD_LIBRARY_PATH=${.OBJDIR} exec ./perl installperl --user=${LIBOWN} 
> --group=${LIBGRP} --destdir=${DESTDIR} -o ${STRIPFLAGS}
> +      STRIPFLAGS=${STRIPFLAGS} INSTALLFLAGS=-o \
> +      LD_LIBRARY_PATH=${.OBJDIR} exec ./perl installperl \
> +       --user=${LIBOWN} --group=${LIBGRP} \
> +       --destdir=${DESTDIR} -o ${STRIPFLAGS}
>
> -install.lib:
> -     ${INSTALL} ${INSTALL_COPY} -o ${LIBOWN} -g ${LIBGRP} -m 600 lib${LIB}.a 
> \
> -         ${DESTDIR}${LIBDIR}
> -.if (${INSTALL_COPY} != "-p")
> -     ${RANLIB} -t ${DESTDIR}${LIBDIR}/lib${LIB}.a
> -.endif
> -     chmod ${LIBMODE} ${DESTDIR}${LIBDIR}/lib${LIB}.a
> -.if !defined(NOPROFILE)
> -     ${INSTALL} ${INSTALL_COPY} -o ${LIBOWN} -g ${LIBGRP} -m 600 \
> -         lib${LIB}_p.a ${DESTDIR}${LIBDIR}
> -.if (${INSTALL_COPY} != "-p")
> -     ${RANLIB} -t ${DESTDIR}${LIBDIR}/lib${LIB}_p.a
> -.endif
> -     chmod ${LIBMODE} ${DESTDIR}${LIBDIR}/lib${LIB}_p.a
> -.endif
> -.if !defined(NOPIC) && defined(major) && defined(minor)
> -     ${INSTALL} ${INSTALL_COPY} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \
> -         lib${LIB}.so.${major}.${minor} ${DESTDIR}${LIBDIR}
> -.endif
> -.PHONY: perl.lib install.lib perl.build install.perl man.build
> +.PHONY: perl.build install.perl man.build
> +
> +.include <bsd.man.mk>
> Index: gnu/usr.bin/perl/installperl
> ===================================================================
> RCS file: /cvs/src/gnu/usr.bin/perl/installperl,v
> retrieving revision 1.49
> diff -u -p -r1.49 installperl
> --- gnu/usr.bin/perl/installperl      30 Dec 2019 02:15:16 -0000      1.49
> +++ gnu/usr.bin/perl/installperl      17 May 2020 16:44:29 -0000
> @@ -383,7 +383,7 @@ elsif ($Is_Cygwin) { # On Cygwin symlink
>      # [als] hard-coded 'libperl' name... not good!
>      #@corefiles = <*.h libperl*.* perl*$Config{lib_ext}>;
>      @corefiles = <*.h *.inc perl*$Config{lib_ext}>;
> -    push(@corefiles,<libperl*.*>) unless defined($ENV{"NOLIBINSTALL"});
> +    install($libperl, "$opts{destdir}$Config{glibpth}/$libperl", "0444");
>
>      # AIX needs perl.exp installed as well.
>      push(@corefiles,'perl.exp') if $^O eq 'aix';
> Index: gnu/usr.bin/perl/ext/DynaLoader/Makefile.PL
> ===================================================================
> RCS file: /cvs/src/gnu/usr.bin/perl/ext/DynaLoader/Makefile.PL,v
> retrieving revision 1.23
> diff -u -p -r1.23 Makefile.PL
> --- gnu/usr.bin/perl/ext/DynaLoader/Makefile.PL       30 Dec 2019 02:15:18 
> -0000      1.23
> +++ gnu/usr.bin/perl/ext/DynaLoader/Makefile.PL       17 May 2020 16:44:52 
> -0000
> @@ -65,8 +65,8 @@ sub MY::static {
>
>      return "
>  $object : \$(FIRST_MAKEFILE) \$(OBJECT)
> -     #\$(RM_RF) $object
> -     #\$(CP) \$(OBJECT) $object
> +     \$(RM_RF) $object
> +     \$(CP) \$(OBJECT) $object
>
>  static :: $object
>  ";
> Index: gnu/usr.bin/perl/hints/openbsd.sh
> ===================================================================
> RCS file: /cvs/src/gnu/usr.bin/perl/hints/openbsd.sh,v
> retrieving revision 1.71
> diff -u -p -r1.71 openbsd.sh
> --- gnu/usr.bin/perl/hints/openbsd.sh 30 Dec 2019 02:15:18 -0000      1.71
> +++ gnu/usr.bin/perl/hints/openbsd.sh 17 May 2020 16:44:54 -0000
> @@ -31,6 +31,14 @@ case "$osvers" in
>       d_setruid=$undef
>  esac
>
> +# OpenBSD 5.5 on has 64 bit time_t
> +case "$osvers" in
> +[0-4].*|5.[0-4]) ;;
> +*)
> +     cppflags="$cppflags -DBIG_TIME"
> +     ;;
> +esac
> +
>  #
>  # Not all platforms support dynamic loading...
>  # For the case of "$openbsd_distribution", the hints file
> @@ -47,7 +55,11 @@ alpha-2.[0-8]|mips-2.[0-8]|powerpc-2.[0-
>       test -z "$usedl" && usedl=$define
>       # We use -fPIC here because -fpic is *NOT* enough for some of the
>       # extensions like Tk on some OpenBSD platforms (ie: sparc)
> -     cccdlflags="-DPIC -fPIC $cccdlflags"
> +     PICFLAG=-fPIC
> +     if [ -e /usr/share/mk/bsd.own.mk ]; then
> +             PICFLAG=`make -f /usr/share/mk/bsd.own.mk -V PICFLAG`
> +     fi
> +     cccdlflags="-DPIC ${PICFLAG} $cccdlflags"
>       case "$osvers" in
>       [01].*|2.[0-7]|2.[0-7].*)
>               lddlflags="-Bshareable $lddlflags"
> @@ -58,7 +70,7 @@ alpha-2.[0-8]|mips-2.[0-8]|powerpc-2.[0-
>               ;;
>       *) # from 3.1 onwards
>               ld=${cc:-cc}
> -             lddlflags="-shared -fPIC $lddlflags"
> +             lddlflags="-shared ${PICFLAG} $lddlflags"
>               libswanted=`echo $libswanted | sed 's/ dl / /'`
>               ;;
>       esac
> @@ -84,6 +96,7 @@ esac
>  # around for old NetBSD binaries.
>  libswanted=`echo $libswanted | sed 's/ crypt / /'`
>
> +# OpenBSD hasn't ever needed linking to libutil
>  libswanted=`echo $libswanted | sed 's/ util / /'`
>
>  # Configure can't figure this out non-interactively
> @@ -103,6 +116,18 @@ m88k-3.4)
>     ;;
>  esac
>
> +#
> +# Unaligned access on alpha with -ftree-ter
> +# http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59679
> +# More details
> +# https://rt.perl.org/Public/Bug/Display.html?id=120888
> +#
> +case "${ARCH}-${osvers}" in
> +    alpha-*)
> +    ccflags="-fno-tree-ter $ccflags"
> +    ;;
> +esac
> +
>  # Special per-arch specific ccflags
>  case "${ARCH}-${osvers}" in
>      vax-*)
> @@ -166,5 +191,8 @@ esac
>  # https://marc.info/?l=openbsd-bugs&m=155364568608759&w=2
>  # which is being fixed.  In the meantime, forbid POSIX 2008 locales
>  d_newlocale="$undef"
> +
> +# OpenBSD's locale support is not that complete yet
> +ccflags="-DNO_LOCALE_NUMERIC -DNO_LOCALE_COLLATE $ccflags"
>
>  # end
> Index: gnu/usr.bin/perl/git_version.h
> ===================================================================
> RCS file: /cvs/src/gnu/usr.bin/perl/git_version.h,v
> retrieving revision 1.7
> diff -u -p -r1.7 git_version.h
> --- gnu/usr.bin/perl/git_version.h    17 Nov 2014 21:00:55 -0000      1.7
> +++ gnu/usr.bin/perl/git_version.h    17 May 2020 16:44:28 -0000
> @@ -1,6 +1,5 @@
>  /**************************************************************************
> -* WARNING: 'git_version.h' is automatically generated by make_patchnum.pl
> -*          DO NOT EDIT DIRECTLY - edit make_patchnum.pl instead
> +* WARNING: 'git_version.h' is statically defined on OpenBSD
>  ***************************************************************************/
>
>  #define PERL_GIT_UNPUSHED_COMMITS            \
> Index: gnu/usr.bin/perl/lib/Config_git.pl
> ===================================================================
> RCS file: /cvs/src/gnu/usr.bin/perl/lib/Config_git.pl,v
> retrieving revision 1.1
> diff -u -p -r1.1 Config_git.pl
> --- gnu/usr.bin/perl/lib/Config_git.pl        20 May 2010 19:26:32 -0000      
> 1.1
> +++ gnu/usr.bin/perl/lib/Config_git.pl        17 May 2020 16:44:54 -0000
> @@ -1,6 +1,5 @@
>  ######################################################################
> -# WARNING: 'lib/Config_git.pl' is generated by make_patchnum.pl
> -#          DO NOT EDIT DIRECTLY - edit make_patchnum.pl instead
> +# WARNING: 'lib/Config_git.pl' is statically defined on OpenBSD
>  ######################################################################
>  $Config::Git_Data=<<'ENDOFGIT';
>  git_commit_id=''

Reply via email to