Re: lib/libgcc_s fails on make all after make world succeeds

From: Julian H. Stacey <jhs_at_berklix.com>
Date: Mon, 20 May 2019 01:53:00 +0200
> On 19 May 2019, at 23:29, Julian H. Stacey <jhs_at_berklix.com> wrote:
> > 
> > Hi current_at_freebsd.org
> > On current src/ on 2 boxes, I have seen the same break for a week or 2,
> > lib/libgcc_s fails on make all after make world succeeds,
> > Anyone else seen it or got ideas please ? Notes below the sample.
> > 
> > ===> lib/libgcc_s (all)
> > building shared library libgcc_s.so.1
> > cc  -nodefaultlibs -Wl,--version-script=/usr/src/lib/libgcc_s/Version.map
> > -shared -Wl,-x -Wl,--fatal-warnings -Wl,--warn-shared-textrel  -o \
> > libgcc_s.so.1.full -Wl,-soname,libgcc_s.so.1
> ...
> > -L/usr/obj/usr/src/amd64.amd64/lib/libc -lc \
> > ld: error: can't create dynamic relocation R_X86_64_32S \
> > against symbol: __je_sz_size2index_tab in readonly segment; \
> > recompile object files with -fPIC or pass '-Wl,-z,notext' \
> > to allow text relocations in the output
> >>>> defined in /usr/obj/usr/src/amd64.amd64/lib/libc/libc.a(jemalloc_sz.o)
> 
> It looks like for some reason, it chooses to link with libc.a instead of
> libc.so here.  Maybe your libc.so is not getting built at all, because
> of your environment?

I've removed my environment variables & src.conf & make.conf,
& new test running.


> Or maybe you are hitting some build race where libc.a is done, but
> libc.so is still being built, while at the same time, libgcc_s.so.1 is
> being linked?
> 
> There are some difficult-to-reproduce races with libgcc_s, which are
> sometimes also hit by CI (I think Li-Wen mentioned them multiple times
> now).  But usually I would expect this to be "solved" by simply
> re-running buildworld, as the race window is very small, and you have
> to be quite lucky (or unlucky, depending on your point of view :) to hit
> it.
> 
> -Dimitry

Thanks Dimitry, 
I'll re-read & consider but re. Race conditions, I hadnt thought
of that.  I never use make [-j max_jobs] and ls -l ~jhs/.MAKE.JOBS
~root/.MAKE.JOBS  # shows nothing

cd /usr/share/mk ; grep '\-j' *
bsd.cpu.mk:_CPUCFLAGS = -march=i686 -falign-functions=0 -falign-jumps=0 -falign-loops=0
bsd.info.mk:.if !empty(.MAKEFLAGS:M-j)
bsd.suffixes.mk:# XXX not -j safe
bsd.suffixes.mk:# XXX not -j safe
bsd.suffixes.mk:# XXX not -j safe
gendirdeps.mk:  echo '# local dependencies - needed for -jN in clean tree'; \
meta.stage.mk:# for non-jobs mode the order here matters

cd /usr/src; grep '\-j' *
Makefile:#      make universe -DMAKE_JUST_KERNELS JFLAG=-j${_jflag}
Makefile.inc1:    echo "ncpu: $$(sysctl -n hw.ncpu)${.MAKE.JOBS:S/^/, make -j/}"
Makefile.inc1:.if ${.MAKEFLAGS:M-j}
Makefile.inc1:.error The buildenv target is incompatible with -j
Makefile.inc1:    echo "ncpu: $$(sysctl -n hw.ncpu)${.MAKE.JOBS:S/^/, make -j/}"
Makefile.inc1:          ${MAKE} -f Makefile.inc1 create-world-packages-jobs \
Makefile.inc1:.if make(create-world-packages-jobs)
Makefile.inc1:create-world-packages-jobs: .PHONY
Makefile.inc1:create-world-packages-jobs: create-world-package-${pkgname}
UPDATING:       Avoid using make -j when upgrading.  While generally safe, there are
UPDATING:       sometimes problems using -j to upgrade.  If your upgrade fails with
UPDATING:       -j, please try again without -j.  From time to time in the past there
UPDATING:       have been problems using -j with buildworld and/or installworld.  This


My 2 current hosts are old, a lot slower than I guess most developers use:
-------
FreeBSD 13.0-CURRENT #14033: Sat May 11 18:48:02 CEST 2019
    jhs_at_blak.js.berklix.net:/usr/src/sys/amd64/compile/BLAK.small amd64
FreeBSD clang version 8.0.0 (tags/RELEASE_800/final 356365) (based on LLVM 8.0.0)
VT(vga): resolution 640x480
CPU: Intel(R) Core(TM)2 Duo CPU     E6850  _at_ 3.00GHz (3000.00-MHz K8-class CPU)
  Origin="GenuineIntel"  Id=0x6fb  Family=0x6  Model=0xf  Stepping=11
  Features=0xbfebfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,DTS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE>
  Features2=0xe3fd<SSE3,DTES64,MON,DS_CPL,VMX,SMX,EST,TM2,SSSE3,CX16,xTPR,PDCM>
  AMD Features=0x20100800<SYSCALL,NX,LM>
  AMD Features2=0x1<LAHF>
  VT-x: HLT,PAUSE
  TSC: P-state invariant, performance statistics
real memory  = 4294967296 (4096 MB)
avail memory = 4096159744 (3906 MB)
Event timer "LAPIC" quality 100
ACPI APIC Table: <GBT    GBTUACPI>
FreeBSD/SMP: Multiprocessor System Detected: 2 CPUs
FreeBSD/SMP: 1 package(s) x 2 core(s)
__stack_chk_init: WARNING: Initializing stack protection with non-random cookies!
__stack_chk_init: WARNING: This severely limits the benefit of -fstack-protector!
ioapic0: Changing APIC ID to 2
-------
FreeBSD is a registered trademark of The FreeBSD Foundation.
FreeBSD 13.0-CURRENT #14033: Sat May 11 18:56:03 CEST 2019
    jhs_at_lapr.js.berklix.net:/usr/src/sys/amd64/compile/LAPR.small amd64
FreeBSD clang version 8.0.0 (tags/RELEASE_800/final 356365) (based on LLVM 8.0.0)
VT(vga): resolution 640x480
module urndis already present!
module_register: cannot register pccard/wi from kernel; already loaded from if_wi.ko
Module pccard/wi failed to register: 17
module_register: cannot register pci/wi from kernel; already loaded from if_wi.ko
Module pci/wi failed to register: 17
CPU: Intel(R) Core(TM) i3 CPU       M 330  _at_ 2.13GHz (2128.42-MHz K8-class CPU)
  Origin="GenuineIntel"  Id=0x20652  Family=0x6  Model=0x25  Stepping=2
  Features=0xbfebfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,DTS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE>
  Features2=0x98e3bd<SSE3,DTES64,MON,DS_CPL,VMX,EST,TM2,SSSE3,CX16,xTPR,PDCM,SSE4.1,SSE4.2,POPCNT>
  AMD Features=0x28100800<SYSCALL,NX,RDTSCP,LM>
  AMD Features2=0x1<LAHF>
  VT-x: PAT,HLT,MTF,PAUSE,EPT,UG,VPID
  TSC: P-state invariant, performance statistics
real memory  = 3221225472 (3072 MB)
avail memory = 2775531520 (2646 MB)
Event timer "LAPIC" quality 600
ACPI APIC Table: <ACRSYS ACRPRDCT>
FreeBSD/SMP: Multiprocessor System Detected: 4 CPUs
FreeBSD/SMP: 1 package(s) x 2 core(s) x 2 hardware threads
__stack_chk_init: WARNING: Initializing stack protection with non-random cookies!
__stack_chk_init: WARNING: This severely limits the benefit of -fstack-protector!
ioapic0: Changing APIC ID to 2

-------




Cheers,
Julian
-- 
Julian Stacey, Consultant Systems Engineer, BSD Linux Unix, Munich Aachen Kent
 http://stolenvotes.uk  Brexit ref. stole votes from 700,000 Brits in EU.
 Lies bought; Groups fined; 1.9 M young had no vote, 1.3 M old leavers died.
Received on Sun May 19 2019 - 21:53:24 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:41:20 UTC