Current-Users archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: Building PCC for "tools" is broken (missing symbol __USE)- PCC bug or NetBSD source tree error?
PCC is getting there...
I have applied the diff to the PCC source tree inside the NetBSD source.
Although the source tree has been updated since Iain first imported
pcc-20140706, the patch applied cleanly, minus one hunk that I for some
reason don't think is a big deal :P:
cgram.y.rej
--- cgram.y:1.376 Wed Jul 2 17:31:41 2014
+++ cgram.y Fri Jul 25 11:30:39 2014
@@ -1,4 +1,4 @@
-/* $Id: cgram.y,v 1.376 2014/07/02 15:31:41 ragge Exp $ */
+/* $Id: cgram.y,v 1.377 2014/07/25 09:30:39 ragge Exp $ */
/*
* Copyright (c) 2003 Anders Magnusson (ragge%ludd.luth.se@localhost).
vs cgram.y, lines 1 and 2:
/* Id: cgram.y,v 1.376 2014/07/02 15:31:41 ragge Exp */
/* $NetBSD: cgram.y,v 1.1.1.7 2014/07/24 19:23:21 plunky Exp $ */
It would be rather odd if a comments patch caused compilation to fail XD.
As of applying this patch, regex.c in libiberty now compiles correctly (see
7/24/2014 at 10:15 PM EDT for the error re: register):
dependall ===> lib/../external/gpl3/binutils/lib/libbfd
dependall ===> lib/../external/gpl3/binutils/lib/libiberty
# compile libiberty/regex.o
/mnt/lfs/NetBSD-CVS/src/../tools/bin/i486--netbsdelf-pcc -O2 -std=gnu99
-Werror -Os -Wno-error=uninitialized -Wno-error=maybe-uninitialized --sysroot=/mnt/lfs/NetBSD-CVS/src/../destdir/i386-pb
-DHAVE_CONFIG_H -I/mnt/lfs/NetBSD-CVS/src/external/gpl3/binutils/lib/libiberty/arch/i386
-I/mnt/lfs/NetBSD-CVS/src/external/gpl3/binutils/dist/include -c -Wno-stack-protector
/mnt/lfs/NetBSD-CVS/src/external/gpl3/binutils/dist/libiberty/regex.c -o
regex.o
/mnt/lfs/NetBSD-CVS/src/../tools/bin/i486--netbsdelf-objcopy -x regex.o
# build libiberty/libiberty.a
rm -f libiberty.a
/mnt/lfs/NetBSD-CVS/src/../tools/bin/i486--netbsdelf-ar crsD libiberty.a
`NM=/mnt/lfs/NetBSD-CVS/src/../tools/bin/i486--netbsdelf-nm
NM=/mnt/lfs/NetBSD-CVS/src/../tools/bin/i486--netbsdelf-nm
MKTEMP=/mnt/lfs/NetBSD-CVS/src/../tools/bin/nbmktemp
/mnt/lfs/NetBSD-CVS/src/../tools/bin/nblorder regex.o cplus-dem.o
cp-demangle.o md5.o sha1.o alloca.o argv.o choose-temp.o concat.o
cp-demint.o crc32.o dwarfnames.o dyn-string.o fdmatch.o fibheap.o
filename_cmp.o floatformat.o fnmatch.o fopen_unlocked.o getopt.o getopt1.o
getpwd.o getruntime.o hashtab.o hex.o lbasename.o lrealpath.o
make-relative-prefix.o make-temp-file.o objalloc.o obstack.o partition.o
pexecute.o physmem.o pex-common.o pex-one.o pex-unix.o safe-ctype.o
simple-object.o simple-object-coff.o simple-object-elf.o
simple-object-mach-o.o sort.o spaces.o splay-tree.o stack-limit.o strerror.o
strsignal.o timeval-utils.o unlink-if-ordinary.o xatexit.o xexit.o xmalloc.o
xmemdup.o xstrdup.o xstrerror.o xstrndup.o mempcpy.o mkstemps.o strverscmp.o
| /mnt/lfs/NetBSD-CVS/src/../tools/bin/nbtsort -q`
dependall ===> lib/../crypto/external/bsd/netpgp/libmj
install-../crypto/external/bsd/netpgp/libmj ===> lib (with:
install-../crypto/external/bsd/netpgp/lib/verify
install-../external/bsd/elftoolchain/lib/libdwarf
install-../external/mit/lua/lib install-libcurses install-libdm
install-libedit install-libexecinfo install-libppath install-libperfuse
install-libquota install-librefuse install-libisns install-librumpuser
install-librumphijack install-libnpf
install-../crypto/external/bsd/openssl/lib install-../external/bsd/file/lib
install-../external/bsd/iscsi/lib install-../external/bsd/libarchive/lib
install-../external/gpl2/lvm2/lib install-../external/gpl3/binutils/lib)
install ===> lib/../crypto/external/bsd/netpgp/lib/verify
Unfortunately there are now two errors- one compiling the kernel, and the
other compiling userland...
The error in the kernel happens at assym.d (Ignore the kernel name- it's a
slightly modified GENERIC_TINY). I'm not sure what happened here, but it
appears the preprocessor doesn't like being invoked with the following
command line. The only single-period I see is "-I.", and that works when the
preprocessor by calling it directly:
# create PB_KERNEL/assym.d
cat /mnt/lfs/NetBSD-CVS/src/sys/arch/i386/i386/genassym.cf |
/mnt/lfs/NetBSD-CVS/src/../tools/bin/nbgenassym --
CC=/mnt/lfs/NetBSD-CVS/src/../tools/bin/i486--netbsdelf-pcc
/mnt/lfs/NetBSD-CVS/src/../tools/bin/nbmkdep -f
assym.dep -- -msoft-float -mno-mmx -mno-sse -mno-avx -ffreestanding -fno-zero-initialized-in-bss
-Os -Wno-error=uninitialized -Wno-error=maybe-uninitialized -fno-strict-aliasing
-fno-common -std=gnu99 -Werror -Wall -Wno-main -Wno-format-zero-length -Wpointer-arith
-Wmissing-prototypes -Wstrict-prototypes -Wold-style-definition -Wswitch -Wshadow
-Wcast-qual -Wwrite-strings -Wno-unreachable-code -Wno-pointer-sign -Wno-attributes
-Wextra -Wno-unused-parameter -Wold-style-definition -Wno-sign-compare --sysroot=/mnt/lfs/NetBSD-CVS/src/../destdir/i386-pb
-Di386 -I. -I/mnt/lfs/NetBSD-CVS/src/sys/../common/include -I/mnt/lfs/NetBSD-CVS/src/sys/arch
-I/mnt/lfs/NetBSD-CVS/src/sys -nostdinc -DMAXUSERS=8 -D_KERNEL -D_KERNEL_OPT
-std=gnu99 -I/mnt/lfs/NetBSD-CVS/src/sys/lib/libkern/../../../common/lib/libc/quad
-I/mnt/lfs/NetBSD-CVS/src/sys/lib/libkern/../../../common/lib/libc/string -I/mnt/lfs/NetBSD-CVS/src/sys/lib/libkern/../../../common/lib/libc/arch/i386/string
-I/mnt/lfs/NetBSD-CVS/src/sys/external/bsd/ipf
/mnt/lfs/NetBSD-CVS/src/../tools/libexec/i486--netbsdelf-cpp: invalid
option -- '.'
Usage: cpp [-Cdt] [-Dvar=val] [-Uvar] [-Ipath] [-Spath]
error: /mnt/lfs/NetBSD-CVS/src/../tools/libexec/i486--netbsdelf-cpp
terminated
with status 1
nbmkdep: compile failed.
*** Failed target: assym.d
*** Failed command: cat
/mnt/lfs/NetBSD-CVS/src/sys/arch/i386/i386/genassym.cf |
/mnt/lfs/NetBSD-CVS/src/../tools/bin/nbgenassym --
CC=/mnt/lfs/NetBSD-CVS/src/../tools/bin/i486--netbsdelf-pcc
/mnt/lfs/NetBSD-CVS/src/../tools/bin/nbmkdep-f
assym.dep -- -msoft-float -mno-mmx -mno-sse -mno-avx -ffreestanding -fno-zero-initialized-in-bss
-Os -Wno-error=uninitialized -Wno-error=maybe-uninitialized -fno-strict-aliasing
-fno-common -std=gnu99 -Werror -Wall -Wno-main -Wno-format-zero-length -Wpointer-arith
-Wmissing-prototypes -Wstrict-prototypes -Wold-style-definition -Wswitch -Wshadow
-Wcast-qual -Wwrite-strings -Wno-unreachable-code -Wno-pointer-sign -Wno-attributes
-Wextra -Wno-unused-parameter -Wold-style-definition -Wno-sign-compare --sysroot=/mnt/lfs/NetBSD-CVS/src/../destdir/i386-pb
-Di386 -I. -I/mnt/lfs/NetBSD-CVS/src/sys/../common/include -I/mnt/lfs/NetBSD-CVS/src/sys/arch
-I/mnt/lfs/NetBSD-CVS/src/sys -nostdinc -DMAXUSERS=8 -D_KERNEL -D_KERNEL_OPT
-std=gnu99 -I/mnt/lfs/NetBSD-CVS/src/sys/lib/libkern/../../../common/lib/libc/quad
-I/mnt/lfs/NetBSD-CVS/src/sys/lib/libkern/../../../common/lib/libc/string -I/mnt/lfs/NetBSD-CVS/src/sys/lib/libkern/../../../common/lib/libc/arch/i386/string
-I/mnt/lfs/NetBSD-CVS/src/sys/external/bsd/ipf
*** Error code 1
Stop.
nbmake: stopped in
/mnt/lfs/NetBSD-CVS/objdir/i386-pb/sys/arch/i386/compile/PB_KERNEL
ERROR: Failed to make depend in
"/mnt/lfs/NetBSD-CVS/src/../objdir/i386-pb/sys/arch/i386/compile/PB_KERNEL"
*** BUILD ABORTED ***
william@xubuntu-ltrain:~/Projects/NetBSD-CVS/src$
The error in userland happens at libatf-c++, complaining about a missing C++
compiler. It seems that groff is no longer the only C++ code in the source
tree. Iain mentioned that UNSUPPORTED_COMPILER.pcc= can be set to skip tools
that the compiler cannot build. Since pcc does not have complete C++
support, this is what I'll probably do (I have not tested this yet- I'm
stopping at errors as I find them to notify the mailing list).
# create libatf-c++/application.d
CC=/mnt/lfs/NetBSD-CVS/src/../tools/bin/i486--netbsdelf-p++
/mnt/lfs/NetBSD-CVS/src/../tools/bin/nbmkdep -f
ation.d.tmp -- --sysroot=/mnt/lfs/NetBSD-CVS/src/../destdir/i386-pb -DHAVE_CONFIG_H
-DATF_ARCH=\"i386\" -DATF_BUILD_CC=\"/usr/bin/cc\" -DATF_BUILD_CFLAGS=\"\"
-DATF_BUILD_CPP=\"/usr/bin/cpp\" -DATF_BUILD_CPPFLAGS=\"\" -DATF_BUILD_CXX=\"/usr/bin/c++\"
-DATF_BUILD_CXXFLAGS=\"\" -DATF_CONFDIR=\"/etc/atf\" -DATF_INCLUDEDIR=\"/usr/include\"
-DATF_LIBDIR=\"/usr/lib\" -DATF_LIBEXECDIR=\"/usr/libexec\" -DATF_MACHINE=\"i386\"
-DATF_M4=\"/usr/bin/m4\" -DATF_PKGDATADIR=\"/usr/share/atf\" -DATF_SHELL=\"/bin/sh\"
-DATF_WORKDIR=\"/tmp\" -I/mnt/lfs/NetBSD-CVS/src/external/bsd/atf -I/mnt/lfs/NetBSD-CVS/src/external/bsd/atf/lib/libatf-c
-I/mnt/lfs/NetBSD-CVS/src/external/bsd/atf/dist
/mnt/lfs/NetBSD-CVS/src/external/bsd/atf/dist/atf-c++/detail/application.cpp
&& mv application.d.tmp application.d
nbmkdep: /mnt/lfs/NetBSD-CVS/src/../tools/bin/i486--netbsdelf-p++: not
found: No such file or directory
*** Failed target: application.d
*** Failed command:
CC=/mnt/lfs/NetBSD-CVS/src/../tools/bin/i486--netbsdelf-p++
/mnt/lfs/NetBSD-CVS/src/../tools/bin/nbmkdep -f
application.d.tmp -- --sysroot=/mnt/lfs/NetBSD-CVS/src/../destdir/i386-pb -DHAVE_CONFIG_H
-DATF_ARCH=\"i386\" -DATF_BUILD_CC=\"/usr/bin/cc\" -DATF_BUILD_CFLAGS=\"\"
-DATF_BUILD_CPP=\"/usr/bin/cpp\" -DATF_BUILD_CPPFLAGS=\"\" -DATF_BUILD_CXX=\"/usr/bin/c++\"
-DATF_BUILD_CXXFLAGS=\"\" -DATF_CONFDIR=\"/etc/atf\" -DATF_INCLUDEDIR=\"/usr/include\"
-DATF_LIBDIR=\"/usr/lib\" -DATF_LIBEXECDIR=\"/usr/libexec\" -DATF_MACHINE=\"i386\"
-DATF_M4=\"/usr/bin/m4\" -DATF_PKGDATADIR=\"/usr/share/atf\" -DATF_SHELL=\"/bin/sh\"
-DATF_WORKDIR=\"/tmp\" -I/mnt/lfs/NetBSD-CVS/src/external/bsd/atf -I/mnt/lfs/NetBSD-CVS/src/external/bsd/atf/lib/libatf-c
-I/mnt/lfs/NetBSD-CVS/src/external/bsd/atf/dist
/mnt/lfs/NetBSD-CVS/src/external/bsd/atf/dist/atf-c++/detail/application.cpp
&& mv application.d.tmp application.d
*** Error code 1
Stop.
nbmake[7]: stopped in
/mnt/lfs/NetBSD-CVS/src/external/bsd/atf/lib/libatf-c++
*** Failed target: dependall-libatf-c++
*** Failed command: _makedirtarget() { dir="$1"; shift; target="$1"; shift;
case "${dir}" in /*) this="${dir}/"; real="${dir}" ;; .)
this="lib/../external/bsd/atf/lib/";
real="/mnt/lfs/NetBSD-CVS/src/external/bsd/atf/lib" ;; *)
this="lib/../external/bsd/atf/lib/${dir}/";
real="/mnt/lfs/NetBSD-CVS/src/external/bsd/atf/lib/${dir}" ;; esac;
show=${this:-.}; echo "${target} ===> ${show%/}${1:+ (with: $@)}"; cd
"${real}" && /mnt/lfs/NetBSD-CVS/src/../tools/bin/nbmake _THISDIR_="${this}"
"$@" ${target}; }; _makedirtarget libatf-c++ dependall
*** Error code 1
Stop.
nbmake[6]: stopped in /mnt/lfs/NetBSD-CVS/src/external/bsd/atf/lib
*** Failed target: dependall-../external/bsd/atf/lib
*** Failed command: _makedirtarget() { dir="$1"; shift; target="$1"; shift;
case "${dir}" in /*) this="${dir}/"; real="${dir}" ;; .) this="lib/";
real="/mnt/lfs/NetBSD-CVS/src/lib" ;; *) this="lib/${dir}/";
real="/mnt/lfs/NetBSD-CVS/src/lib/${dir}" ;; esac; show=${this:-.}; echo
"${target} ===> ${show%/}${1:+ (with: $@)}"; cd "${real}" &&
/mnt/lfs/NetBSD-CVS/src/../tools/bin/nbmake _THISDIR_="${this}" "$@"
${target}; }; _makedirtarget ../external/bsd/atf/lib dependall
*** Error code 1
Stop.
nbmake[5]: stopped in /mnt/lfs/NetBSD-CVS/src/lib
*** Failed target: build_install
*** Failed command: _makedirtarget() { dir="$1"; shift; target="$1"; shift;
case "${dir}" in /*) this="${dir}/"; real="${dir}" ;; .) this="lib/";
real="/mnt/lfs/NetBSD-CVS/src/lib" ;; *) this="lib/${dir}/";
real="/mnt/lfs/NetBSD-CVS/src/lib/${dir}" ;; esac; show=${this:-.}; echo
"${target} ===> ${show%/}${1:+ (with: $@)}"; cd "${real}" &&
/mnt/lfs/NetBSD-CVS/src/../tools/bin/nbmake _THISDIR_="${this}" "$@"
${target}; }; _makedirtarget . dependall-npf
dependall-../external/bsd/atf/lib dependall-libform dependall-libmenu
dependall-libradius dependall-librump
dependall-../crypto/external/bsd/heimdal/lib
dependall-../crypto/external/bsd/openssh/lib
dependall-../crypto/external/bsd/netpgp/lib
dependall-../external/bsd/libevent/lib dependall-../external/bsd/fetch/lib
dependall-../external/bsd/openldap/lib
*** Error code 1
Stop.
nbmake[4]: stopped in /mnt/lfs/NetBSD-CVS/src/lib
*** Failed target: do-lib
*** Failed command: _makedirtarget() { dir="$1"; shift; target="$1"; shift;
case "${dir}" in /*) this="${dir}/"; real="${dir}" ;; .) this="";
real="/mnt/lfs/NetBSD-CVS/src" ;; *) this="${dir}/";
real="/mnt/lfs/NetBSD-CVS/src/${dir}" ;; esac; show=${this:-.}; echo
"${target} ===> ${show%/}${1:+ (with: $@)}"; cd "${real}" &&
/mnt/lfs/NetBSD-CVS/src/../tools/bin/nbmake _THISDIR_="${this}" "$@"
${target}; }; _makedirtarget lib build_install
*** Error code 1
Stop.
nbmake[3]: stopped in /mnt/lfs/NetBSD-CVS/src
*** Failed target: build
*** Failed command: _makedirtarget() { dir="$1"; shift; target="$1"; shift;
case "${dir}" in /*) this="${dir}/"; real="${dir}" ;; .) this="";
real="/mnt/lfs/NetBSD-CVS/src" ;; *) this="${dir}/";
real="/mnt/lfs/NetBSD-CVS/src/${dir}" ;; esac; show=${this:-.}; echo
"${target} ===> ${show%/}${1:+ (with: $@)}"; cd "${real}" &&
/mnt/lfs/NetBSD-CVS/src/../tools/bin/nbmake _THISDIR_="${this}" "$@"
${target}; }; _makedirtarget . do-lib
*** Error code 1
Stop.
nbmake[2]: stopped in /mnt/lfs/NetBSD-CVS/src
*** Failed target: distribution
*** Failed command: _makedirtarget() { dir="$1"; shift; target="$1"; shift;
case "${dir}" in /*) this="${dir}/"; real="${dir}" ;; .) this="";
real="/mnt/lfs/NetBSD-CVS/src" ;; *) this="${dir}/";
real="/mnt/lfs/NetBSD-CVS/src/${dir}" ;; esac; show=${this:-.}; echo
"${target} ===> ${show%/}${1:+ (with: $@)}"; cd "${real}" &&
/mnt/lfs/NetBSD-CVS/src/../tools/bin/nbmake _THISDIR_="${this}" "$@"
${target}; }; _makedirtarget . build NOPOSTINSTALL=1
*** Error code 1
Stop.
nbmake[1]: stopped in /mnt/lfs/NetBSD-CVS/src
*** Failed target: release
*** Failed command: _makedirtarget() { dir="$1"; shift; target="$1"; shift;
case "${dir}" in /*) this="${dir}/"; real="${dir}" ;; .) this="";
real="/mnt/lfs/NetBSD-CVS/src" ;; *) this="${dir}/";
real="/mnt/lfs/NetBSD-CVS/src/${dir}" ;; esac; show=${this:-.}; echo
"${target} ===> ${show%/}${1:+ (with: $@)}"; cd "${real}" &&
/mnt/lfs/NetBSD-CVS/src/../tools/bin/nbmake _THISDIR_="${this}" "$@"
${target}; }; _makedirtarget . distribution
*** Error code 1
Stop.
nbmake: stopped in /mnt/lfs/NetBSD-CVS/src
ERROR: Failed to make release
*** BUILD ABORTED ***
william@xubuntu-ltrain:~/Projects/NetBSD-CVS/src$
In any case, it seems that pcc is getting closer to being able to compile
the NetBSD source tree. Perhaps it'll be ready in time for 7 release at this
rate (I'll file a problem report with the relevant patches if I can get a
GENERIC i386 kernel to build). I'll be on standby ready to apply patches
from the main PCC source tree if need be, and be I'll sure to send a diff of
my PCC tree (which has patches from the main source tree applied) vs the one
currently in NetBSD.
-----Original Message-----
From: Anders Magnusson
Sent: Saturday, July 26, 2014 3:43 AM
To: William D. Jones
Cc: current-users%NetBSD.org@localhost
Subject: Re: Building PCC for "tools" is broken (missing symbol __USE)- PCC
bug or NetBSD source tree error?
The commit messages are saved at marc.info, see
http://marc.info/?l=pcc-commit-list&m=140628065609751&w=2
To get a diff you can use cvs -d
:pserver:anonymous%pcc.ludd.ltu.se@localhost:/cvsroot rdiff -u -r1.376 -r1.377
pcc/cc/ccom/cgram.y
Should be directly applyable.
-- Ragge
Sincerely,
--
William D. Jones
Rowan University | ECE | 2012
Member IEEE
Member Tau Beta Pi
thor0505%comcast.net@localhost
Message sent using 'Windows Live Mail' client.
Home |
Main Index |
Thread Index |
Old Index