Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 16 Aug 2018 11:25:39 -0700
From:      Xin LI <delphij@gmail.com>
To:        Brad Davis <brd@freebsd.org>
Cc:        current@freebsd.org
Subject:   Re: /usr/bin/ld: error: undefined symbol: main [r337834 -> r337903]
Message-ID:  <CAGMYy3smc-yptUjsgV1vOvwn5k2jqdu%2BY3Ja%2B8Uu4q7pzXEQGA@mail.gmail.com>
In-Reply-To: <1534436769.312158.1476422048.77F4DB62@webmail.messagingengine.com>
References:  <20180816111532.GY1190@albert.catwhisker.org> <CAGMYy3tJk7iKM89K8j-57YbRAUu7UqOysPGXNP92-uT5XroM3A@mail.gmail.com> <1534436769.312158.1476422048.77F4DB62@webmail.messagingengine.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, Aug 16, 2018 at 9:26 AM Brad Davis <brd@freebsd.org> wrote:
>
> On Thu, Aug 16, 2018, at 10:13 AM, Xin LI wrote:
> > This was caused by r337852, but I didn't investigated further.
> >
> > The problem is that we have a source file called 'moduli.c' in
> > crypto/openssh/ while the build target was moduli, and bmake seen
> > 'moduli' in source tree as older than moduli.c, and decided to rebuild
> > it from source, while the two files are unrelated.
>
> Hi Xin,
>
> I don't see how that could be the case as I didn't move the file around, =
I just moved how it gets installed.
>
> I have done many many builds with this change in and haven't seen this pr=
oblem..

Yeah, let me rephrase: this might have been exposed by r337852; I
don't think your change itself really caused or should have caused
problem, but my theory based on what we have observed was that it
might have exposed a bug where either bmake itself, or some .mk files
might have generated e.g. automatic rule for ${foo}: ${foo}.c rules
(haven't traced that part down yet).

The most scaring part is that the build system seems to trying
building crypto/openssh/moduli because moduli.c was newer, and the
file was deleted as part of the rebuild; should moduli.c compile by
its own, we would end up with a binary moduli file.

I'll take another look tonight if I had some time.

>
>
> Regards,
> Brad Davis
>
> > On Thu, Aug 16, 2018 at 4:19 AM David Wolfskill <david@catwhisker.org> =
wrote:
> > >
> > > Running:
> > >
> > > FreeBSD g1-215.catwhisker.org 12.0-ALPHA1 FreeBSD 12.0-ALPHA1 #80  r3=
37834M/337834:1200077: Wed Aug 15 04:34:45 PDT 2018     root@g1-215.catwhis=
ker.org:/common/S4/obj/usr/src/amd64.amd64/sys/CANARY  amd64
> > >
> > > after updating working copy to r337903, I'm seeing:
> > >
> > > ...
> > > >>> stage 4.3: building everything
> > > ...
> > > --- ifconfig_make ---
> > > Building /common/S4/obj/usr/src/amd64.amd64/rescue/rescue/usr/src/sbi=
n/ifconfig/af_inet6.o
> > > --- all_subdir_secure ---
> > > --- moduli ---
> > > /usr/bin/ld: error: undefined symbol: main
> > > >>> referenced by crt1.c
> > > >>>               /common/S4/obj/usr/src/amd64.amd64/tmp/usr/lib/crt1=
.o:(_start)
> > > /usr/bin/ld: error: undefined symbol: Fssh_error
> > > ....
> > > make[5]: stopped in /usr/src/secure/usr.sbin/sshd
> > > .ERROR_TARGET=3D'moduli'
> > > .ERROR_META_FILE=3D'/common/S4/obj/usr/src/amd64.amd64/secure/usr.sbi=
n/sshd/moduli.meta'
> > > .MAKE.LEVEL=3D'5'
> > > MAKEFILE=3D''
> > > .MAKE.MODE=3D'meta missing-filemon=3Dyes missing-meta=3Dyes silent=3D=
yes verbose'
> > > _ERROR_CMD=3D'cc -target x86_64-unknown-freebsd12.0 --sysroot=3D/comm=
on/S4/obj/usr/src/amd64.amd64/tmp -B/common/S4/obj/usr/src/amd64.amd64/tmp/=
usr/bin -O2 -pipe   -I/usr/src/crypto/openssh -include ssh_namespace.h -DHA=
VE_LDNS=3D1 -DUSE_BSM_AUDIT=3D1 -DHAVE_GETAUDIT_ADDR=3D1 -DUSE_BLACKLIST=3D=
1 -I/usr/src/contrib/blacklist/include -include krb5_config.h -DLIBWRAP=3D1=
 -std=3Dgnu99 -fstack-protector-strong -Wno-pointer-sign -Wno-empty-body -W=
no-string-plus-int -Wno-unused-const-variable -Wno-tautological-compare -Wn=
o-unused-value -Wno-parentheses-equality -Wno-unused-function -Wno-enum-con=
version -Wno-unused-local-typedef -Wno-address-of-packed-member -Wno-switch=
 -Wno-switch-enum -Wno-knr-promoted-parameter -Wno-parentheses  -Qunused-ar=
guments   -L/common/S4/obj/usr/src/amd64.amd64/lib/libblacklist  /usr/src/c=
rypto/openssh/moduli.c  -o moduli; ;'
> > > .CURDIR=3D'/usr/src/secure/usr.sbin/sshd'
> > > .MAKE=3D'make'
> > > .OBJDIR=3D'/common/S4/obj/usr/src/amd64.amd64/secure/usr.sbin/sshd'
> > > .TARGETS=3D'all'
> > > DESTDIR=3D'/common/S4/obj/usr/src/amd64.amd64/tmp'
> > > ....
> > >
> > > (on both the laptop and the build machine).
> > >
> > > I have copied the .ERROR_META_FILE to
> > > <http://www.catwhisker.org/~david/FreeBSD/head/r337903/moduli.meta an=
d
> > > a typescript of the attempted build to
> > > <http://www.catwhisker.org/~david/FreeBSD/head/r337903/typescript>.
> > >
> > > Additional information (previous day's verbose dmesg.bot, etc.) may
> > > be found at <http://www.catwhisker.org/~david/FreeBSD/history/>.
> > >
> > > Peace,
> > > david
> > > --
> > > David H. Wolfskill                              david@catwhisker.org
> > > Trump is gaslighting us: https://www.bbc.com/news/world-us-canada-449=
59300
> > >
> > > See http://www.catwhisker.org/~david/publickey.gpg for my public key.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAGMYy3smc-yptUjsgV1vOvwn5k2jqdu%2BY3Ja%2B8Uu4q7pzXEQGA>