Just FYI: powerpc64 10.1-RELEASE WITH_DEBUG_FILES= vs. building clang during buildworld: unknown relocation type <NUMBER> for symbol *UND*

Mark Millard markmi at dsl-only.net
Mon Nov 24 21:20:25 UTC 2014


Just FYI: The powerpc64 10.1-RELEASE status of attempting to build clang during buildworld when WITH_DEBUG_FILES is defined is as follows:

/usr/obj/usr/home/markmi/src_10_1_stable/tmp/usr/bin/ld: /usr/obj/usr/home/markmi/src_10_1_stable/usr.bin/clang/clang/../../../lib/clang/libclangstaticanalyzercheckers/libclangstaticanalyzercheckers.a(MallocOverflowSecurityChecker.o): unknown relocation type 206831616 for symbol *UND*
/usr/obj/usr/home/markmi/src_10_1_stable/tmp/usr/bin/ld: /usr/obj/usr/home/markmi/src_10_1_stable/usr.bin/clang/clang/../../../lib/clang/libclangstaticanalyzercheckers/libclangstaticanalyzercheckers.a(MallocOverflowSecurityChecker.o): unknown relocation type 203948032 for symbol *UND*
/usr/obj/usr/home/markmi/src_10_1_stable/tmp/usr/bin/ld: /usr/obj/usr/home/markmi/src_10_1_stable/usr.bin/clang/clang/../../../lib/clang/libclangstaticanalyzercheckers/libclangstaticanalyzercheckers.a(MallocOverflowSecurityChecker.o): unknown relocation type 204210176 for symbol *UND*
...

Context:

I produced the above via the following from booting a 10.1-RELEASE variant that had WITHOUT_CLANG and WITH_DEBUG_FILES. First I'll list the failing build's information then later then 10.1-RELEASE information.

Failing build's information...

root at FBSDG5M1:~markmi/src_10_1_stable # make buildworld kernel KERNCONF=GENERIC64vtsc INSTKERNNAME=kernel10.1S

(-j 8 failed but hid the above messages so I re-ran as above.) I used building 10.1-STABLE as a basis for the experiment:

root at FBSDG5M1:~markmi/src_10_1_stable # svnlite info
Path: .
Working Copy Root Path: /usr/home/markmi/src_10_1_stable
URL: https://svn0.us-west.freebsd.org/base/stable/10
Relative URL: ^/stable/10
Repository Root: https://svn0.us-west.freebsd.org/base
Repository UUID: ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
Revision: 274942
Node Kind: directory
Schedule: normal
Last Changed Author: grehan
Last Changed Rev: 274942
Last Changed Date: 2014-11-23 17:25:19 -0800 (Sun, 23 Nov 2014)

src.conf was not my normal one but was an experiment for seeing if I could omit WITHOUT_CLANG despite using WITH_DEBUG_FILES:

root at FBSDG5M1:~markmi/src_10_1_stable # more /etc/src.conf
WITH_DEBUG_FILES=

root at FBSDG5M1:~markmi/src_10_1_stable # more /etc/make.conf
WRKDIRPREFIX=/usr/obj/portswork
WITH_DEBUG=

root at FBSDG5M1:~markmi/src_10_1_stable # more sys/powerpc/conf/GENERIC64vtsc
include GENERIC64
ident   GENERIC64vtsc

nooptions       PS3                     #Sony Playstation 3               HACK!!! to allow sc

options         DDB                     # HACK!!! to dump early crash info
options         GDB                     # HACK!!! ...
#options        KTR
#options        KTR_MASK=KTR_TRAP
#options        KTR_CPUMASK=0xF
#options        KTR_VERBOSE

# HACK!!! to allow sc for 2560x1440 display on Radeon X1950 that vt historically mishandled during booting
device          sc
#device          kbdmux         # HACK: already listed by vt
options         SC_OFWFB        # OFW frame buffer
options         SC_DFLT_FONT    # compile font in
makeoptions     SC_DFLT_FONT=cp437

root at FBSDG5M1:~markmi/src_10_1_stable # svnlite status
M       sys/ddb/db_main.c
M       sys/ddb/db_script.c
M       sys/powerpc/ofw/ofw_machdep.c
M       sys/powerpc/ofw/ofwcall64.S

This was attempted from a previously built 10.1-RELEASE context documented below...

(Note that freebsd-version reports on /boot/kernel even if I use "boot KERNELNAME" at the open firmware prompt to pick an alternate kernel, such as "boot kernel10.1S" for /boot/kernel10.1S . But in this case I did not and /boot/kernel -k is accurate. One seems to need to careful with reporting freebsd-version output only when it is appropriate/accurate.)

root at FBSDG5M1:/usr/src # freebsd-version -ku
10.1-RELEASE
10.1-RELEASE

root at FBSDG5M1:/usr/src # svnlite info
Path: .
Working Copy Root Path: /usr/src
URL: https://svn0.us-west.freebsd.org/base/releng/10.1
Relative URL: ^/releng/10.1
Repository Root: https://svn0.us-west.freebsd.org/base
Repository UUID: ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
Revision: 274401
Node Kind: directory
Schedule: normal
Last Changed Author: gjb
Last Changed Rev: 274401
Last Changed Date: 2014-11-11 11:52:24 -0800 (Tue, 11 Nov 2014)

I was originally not specific about 274401 when I svnlite switch'd to releng/10.1 and the "Revision" showed a later number but Last Changed Rev showed 274401. I "fixed" that to produce the above with:

root at FBSDG5M1:/usr/src # svnlite switch ^/releng/10.1 -r 274401
At revision 274401.

and then the Revision in svnlite info also started to show 274401. The original (too large) Revision also seems to have shown up in the uname -a output when teh kernel was built with such a mis-matched status instead of uname -a showing the Last Changed Rev figure. (I would have expected Last Changed Rev given the overall behavior of things.) I omit uname -a but show svnlite status for /usr/src and my GENERIC64 variant (GENERIC64vtsc) instead.

root at FBSDG5M1:/usr/src # svnlite status
?       .snap
?       restoresymtable
M       sys/ddb/db_main.c
M       sys/ddb/db_script.c
M       sys/powerpc/ofw/ofw_machdep.c
M       sys/powerpc/ofw/ofwcall64.S

root at FBSDG5M1:/usr/src # more sys/powerpc/conf/GENERIC64vtsc
include GENERIC64
ident   GENERIC64vtsc

nooptions       PS3                     #Sony Playstation 3               HACK!!! to allow sc

options         DDB                     # HACK!!! to dump early crash info
options         GDB                     # HACK!!! ...
#options        KTR
#options        KTR_MASK=KTR_TRAP
#options        KTR_CPUMASK=0xF
#options        KTR_VERBOSE

# HACK!!! to allow sc for 2560x1440 display on Radeon X1950 that vt historically mishandled during booting
device          sc
#device          kbdmux         # HACK: already listed by vt
options         SC_OFWFB        # OFW frame buffer
options         SC_DFLT_FONT    # compile font in
makeoptions     SC_DFLT_FONT=cp437

Here are src.conf and make.conf copies of as they were when I built 10.1-RELEASE (before the 10.1-STABLE experiment from/with ~markmi/src_10_1_stable):

root at FBSDG5M1:~/fbsd_init_materials # more etc_src.conf_debug_gcc
WITH_DEBUG_FILES=
WITHOUT_CLANG=

root at FBSDG5M1:~/fbsd_init_materials # more etc_make.conf_debug_gcc
WRKDIRPREFIX=/usr/obj/portswork
WITH_DEBUG=

The 10.1-RELEASE build was done with the sequence:

root at FBSDG5M1:/usr/src # make -j 8 buildworld kernel KERNCONF=GENERIC64vtsc; make installworld

Note added later: I have since rebuilt my 10.1-RELEASE /boot/kernel so that uname -a reports the accurate 274401M status based on svnlite info's Revision now being accurate:

$ uname -a
FreeBSD FBSDG5M1 10.1-RELEASE FreeBSD 10.1-RELEASE #1 r274401M: Mon Nov 24 12:24:29 PST 2014     markmi at FBSDG5M1:/usr/obj/usr/src/sys/GENERIC64vtsc  powerpc

To do that build I put /etc/src.conf back to listing WITHOUT_CLANG= and used:

root at FBSDG5M1:/usr/src # make -j 8 kernel KERNCONF=GENERIC64vtsc

to do the build.

===
Mark Millard
markmi at dsl-only.net



More information about the freebsd-ppc mailing list