Port-vax archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

pbulk bootstrap: `awk` running into FP overflow during bison build (Grater picture: How to bootstrap pkgsrc / pbulk?)



Hi!

Seems this is getting more of a general set of questions. Running a
"current" VAX installation, I can build a lot of packages with
`CFLAGS+=-O0` in my /etc/mk.conf .

  I already had a number of packages built:

# pkg_info
cwrappers-20220403  pkgsrc compiler wrappers
mktools-20220614    Collection of pkgsrc mk infrastructure tools
digest-20220214     Message digest wrapper utility
perl-5.38.0         Practical Extraction and Report Language
osabi-NetBSD-10.99.5 Operating System version dummy-package
lsof-4.91nb7        Lists information about open files
pstree-2.39         Display processes in a tree
m4-1.4.19nb1        GNU version of UNIX m4 macro language processor
libtool-base-2.4.7nb1 Generic shared library support script (the script itself)
gettext-lib-0.22nb1 Internationalized Message Handling Library (libintl)
gettext-tools-0.22  Tools for providing messages in different languages
bison-3.8.2nb1      GNU yacc(1) replacement
bash-5.2.15         The GNU Bourne Again Shell
gmake-4.4.1         GNU version of 'make' utility
pkgconf-1.9.5       API-driven pkg-config replacement
lz4-1.9.4           Extremely Fast Compression algorithm
zstd-1.5.5          Fast real-time compression algorithm
popt-1.19           Command line option parsing library
xxhash-0.8.1        Extremely fast non-cryptographic hash algorithm
rsync-3.2.7nb1      Network file distribution/synchronisation utility
pbulk-base-0.57     Core components of the modular bulk build framework
pbulk-0.71          Modular bulk build framework
readline-8.2nb2     GNU library that can recall and edit previous input
libffi-3.4.4        Foreign function interface
libuuid-2.32.1nb1   Generate unique identifiers for objects
p5-gettext-1.07nb8  Perl5 module interface to C I18N functions
help2man-1.49.3     Generate simple manual pages from program output
autoconf-2.71nb2    Generates automatic source code configuration scripts
automake-1.16.5nb3  GNU Standards-compliant Makefile generator
screen-4.9.0        Multi-screen window manager
bash-completion-2.11 Programmable completion specifications for bash
watch-3.2.6nb4      Watch a program with update intervals
mksandbox-1.10      Tool for creating sandboxes
distcc-3.4          Tool for distributed C/C++ compiling
libevent-2.1.12     Asynchronous event notification library
tmux-3.3a           BSD-licensed terminal multiplexer (GNU Screen alternative)

...and with that, I am following
http://wiki.netbsd.org/tutorials/pkgsrc/pbulk/ to do the bootstrap,
ie. run `sh /usr/pkgsrc/mk/pbulk/pbulk.sh -n -c mk.conf.frag` in a
freshly created sandbox.

  This mk.conf.frag contains `CFLAGS+=-O0` and I also tried to
export `CFLAGS=-O0`. However, building / bootstrapping the `digest`
package breaks due to missing `-O0`. Fixed by forcing it into its
Makefile.in .  With a number of tools built within the sandbox, build
returns to `bison` (needed for `bash`, which is needed by `rsync`,
which is required by `pbulk`):

===> Extracting for bison-3.8.2nb1
===> Patching for bison-3.8.2nb1
=> Applying pkgsrc patches for bison-3.8.2nb1
=> Verifying /usr/pkgsrc/devel/bison/patches/patch-lib_isnan.c
=> Applying pkgsrc patch /usr/pkgsrc/devel/bison/patches/patch-lib_isnan.c
Hmm...  Looks like a unified diff to me...
The text leading up to this was:
--------------------------
|$NetBSD: patch-lib_isnan.c,v 1.4 2015/01/22 04:57:57 mef Exp $
|
|Fix definition of NaN on VAX.
|
|--- lib/isnan.c.orig   2012-03-30 07:18:32.000000000 +0000
|+++ lib/isnan.c
--------------------------
Patching file lib/isnan.c using Plan A...
Hunk #1 succeeded at 130 (offset 11 lines).
done
===> Creating toolchain wrappers for bison-3.8.2nb1
===> Configuring for bison-3.8.2nb1
=> Modifying GNU configure scripts to avoid --recheck
=> Replacing config-guess with pkgsrc versions
=> Replacing config-sub with pkgsrc versions
=> Replacing install-sh with pkgsrc version
=> Replacing Perl interpreter in examples/extexi.
=> Replacing sh interpreter in examples/test examples/*/*.test.
=> Fixing locale directory references.
=> Checking for portability problems in extracted files
awk: floating point exception: Floating point overflow
 input record number 500347, file
 source line number 37
*** Error code 1

Stop.
bmake[4]: stopped in /usr/pkgsrc/devel/bison
*** Error code 1


Why is bootstrapping the pkgsrc tree / stuff for pbulk so much
different than just building it "natively" on the NetBSD system
itself? `digest` breaks here due to missing `-O0` and this `awk` issue
wasn't there when just doing a `make install package` in the pbulk
direktory as well: It did build just fine.  So during this
bootstrapping, things work a bit differently?!

  I wonder if I, by chance, should instead try to just build the tools
in that sandbox (instead of letting /usr/pkgsrc/mk/pbulk/pbulk.sh do
some "bootstrap") or copy my already built packages into the sandbox
and install it there? So just build and/or install `pbulk` there and
just let it run?  I noticed that it seems to create a "bootstrapkit"
with some binaries---however, I didn't yet figure out what it is
really expected to contain. Maybe just create a tarball of the already
running system?

  In the end, my goal it to be able to easily recreate such a bulk
build host. The initial part (start with NetBSD sources, auto-install
with either SIMH or a real VAX with PiSCSI) works quite well, but I'm
now struggling a bit with the pbulk or pkgsrc bootstrap. (Also keeping
in mind that it seems to be able to build on worker nodes, that would
of course be quite favourable!)

MfG, JBG

-- 

Attachment: signature.asc
Description: PGP signature



Home | Main Index | Thread Index | Old Index