Re: powerpc and powerpc64 builds broken

From: Konstantin Belousov <kostikbel_at_gmail.com>
Date: Mon, 29 Jun 2015 08:32:48 +0300
On Sun, Jun 28, 2015 at 10:32:45PM +0200, Andreas Tobler wrote:
> On 28.06.15 21:32, Konstantin Belousov wrote:
> > On Sun, Jun 28, 2015 at 12:09:25PM -0700, Justin Hibbits wrote:
> >> On Sun, Jun 28, 2015 at 11:36 AM, Garrett Cooper <yaneurabeya_at_gmail.com> wrote:
> >>>
> >>>> On Jun 28, 2015, at 10:48, Justin Hibbits <jhibbits_at_freebsd.org> wrote:
> >>>>
> >>>> Both powerpc and powerpc64 builds are broken in the same way, in
> >>>> usr.bin/mkesdb.  It was working correctly as of just before BSDCan, I
> >>>> successfully built world and kernel on June 6.
> >>>>
> >>>> The error seen at this point is:
> >>>>
> >>>> cc  -O2 -pipe   -I/home/chmeee/freebsd/head/usr.bin/mkesdb
> >>>> -I/home/chmeee/freebsd/head/usr.bin/mkesdb/../mkesdb
> >>>> -I/home/chmeee/freebsd/head/usr.bin/mkesdb/../../lib/libc/iconv
> >>>> -std=gnu99 -fstack-protector -Wsystem-headers -Werror -Wall
> >>>> -Wno-format-y2k -W -Wno-unused-parameter -Wstrict-prototypes
> >>>> -Wmissing-prototypes -Wpointer-arith -Wreturn-type -Wcast-qual
> >>>> -Wwrite-strings -Wswitch -Wshadow -Wunused-parameter -Wcast-align
> >>>> -Wchar-subscripts -Winline -Wnested-externs -Wredundant-decls
> >>>> -Wold-style-definition -Wno-pointer-sign
> >>>> -L/home/chmeee/world/zhabar/home/chmeee/freebsd/head/usr.bin/mkesdb/../../lib/libc
> >>>> -o mkesdb lex.o yacc.o
> >>>> /home/chmeee/world/zhabar/home/chmeee/freebsd/head/tmp/usr/bin/ld:
> >>>> undefined reference to symbol `_end' (try adding -lc)
> >>>> /home/chmeee/world/zhabar/home/chmeee/freebsd/head/tmp/lib/libc.so.7:
> >>>> could not read symbols: Bad value
> >>>>
> >>>> I've seen this both locally on my G5, and on the Power8 in the FreeBSD cluster.
> >>>
> >>> - What does file say when you run it on libc.so.7?
> >>
> >> /usr/obj/usr/src/lib/libc/libc.so.7: ELF 64-bit MSB shared object,
> >> 64-bit PowerPC or cisco 7500, version 1 (FreeBSD), dynamically linked,
> >> not stripped
> > I think a libc linker could try for that command line lives in
> > /home/chmeee/world/zhabar/home/chmeee/freebsd/head/lib/libc/libc.so
> > or in
> > /home/chmeee/world/zhabar/home/chmeee/freebsd/head/tmp/lib/libc.so
> >
> > But, the reason for your troubles seems to come from the
> > usr.bin/mkesdb/Makefile.  Why does it explicitely adds LDFLAGS to point
> > to objdir/.../libc, I have no idea.
> 
> 
> Neither me.
> 
> Here with this mods it compiles:
> 
> Either:
> 
> --- Makefile	(revision 284911)
> +++ Makefile	(working copy)
> _at__at_ -3,7 +3,7 _at__at_
>   .PATH: ${.CURDIR}/../../lib/libc/iconv
> 
>   PROG=	mkesdb
> -LDFLAGS+= -L${.OBJDIR}/../../lib/libc
> +LDFLAGS+= -L${.OBJDIR}/../../lib/libc/libc
> 
>   NO_WMISSING_VARIABLE_DECLARATIONS=
> 
> 
> Or:
> 
> Index: Makefile
> ===================================================================
> --- Makefile	(revision 284911)
> +++ Makefile	(working copy)
> _at__at_ -3,7 +3,7 _at__at_
>   .PATH: ${.CURDIR}/../../lib/libc/iconv
> 
>   PROG=	mkesdb
> -LDFLAGS+= -L${.OBJDIR}/../../lib/libc
> +LDFLAGS+= -L${.CURDIR}/../../lib/libc
> 
>   NO_WMISSING_VARIABLE_DECLARATIONS=

No, I mean that LDFLAGS explicitely listing supposed location for libc
is wrong, too much wrong.  If mkesd is special, it might need to become
a bootstrap tool.  But the hackery above is too fragile and it is surprising
that it went unnoticed for such long time (after the citrus enablement).
Received on Mon Jun 29 2015 - 03:33:17 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:58 UTC