public inbox for glibc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug libc/29621] New: librtld.os: in function `__register_frame': libgcc/unwind-dw2-fde.c:136: undefined reference to `malloc'
@ 2022-09-27 19:44 james.hilliard1 at gmail dot com
  2022-09-27 19:44 ` [Bug libc/29621] " james.hilliard1 at gmail dot com
                   ` (21 more replies)
  0 siblings, 22 replies; 23+ messages in thread
From: james.hilliard1 at gmail dot com @ 2022-09-27 19:44 UTC (permalink / raw)
  To: glibc-bugs

https://sourceware.org/bugzilla/show_bug.cgi?id=29621

            Bug ID: 29621
           Summary: librtld.os: in function `__register_frame':
                    libgcc/unwind-dw2-fde.c:136: undefined reference to
                    `malloc'
           Product: glibc
           Version: 2.36
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: libc
          Assignee: unassigned at sourceware dot org
          Reporter: james.hilliard1 at gmail dot com
                CC: drepper.fsp at gmail dot com
  Target Milestone: ---

I'm seeing this failure pop up in our autobuilders for a few architectures(ie
mips, or1k) on commit 2628500f5dff1dd99c49a09b418b3b1ea3a6b5d3:
http://autobuild.buildroot.net/?reason=glibc-2.36-44-g2628500f5dff1dd99c49a09b418b3b1ea3a6b5d3

Error:
/home/buildroot/buildroot/output/per-package/glibc/host/bin/../lib/gcc/mipsel-buildroot-linux-gnu/11.3.0/../../../../mipsel-buildroot-linux-gnu/bin/ld:
/home/buildroot/buildroot/output/build/glibc-2.36-44-g2628500f5dff1dd99c49a09b418b3b1ea3a6b5d3/build/elf/librtld.os:
in function `__register_frame':
/home/buildroot/buildroot/output/build/host-gcc-initial-11.3.0/build/mipsel-buildroot-linux-gnu/libgcc/../../../libgcc/unwind-dw2-fde.c:136:
undefined reference to `malloc'
/home/buildroot/buildroot/output/per-package/glibc/host/bin/../lib/gcc/mipsel-buildroot-linux-gnu/11.3.0/../../../../mipsel-buildroot-linux-gnu/bin/ld:
/home/buildroot/buildroot/output/build/host-gcc-initial-11.3.0/build/mipsel-buildroot-linux-gnu/libgcc/../../../libgcc/unwind-dw2-fde.c:136:
undefined reference to `malloc'
/home/buildroot/buildroot/output/per-package/glibc/host/bin/../lib/gcc/mipsel-buildroot-linux-gnu/11.3.0/../../../../mipsel-buildroot-linux-gnu/bin/ld:
/home/buildroot/buildroot/output/build/glibc-2.36-44-g2628500f5dff1dd99c49a09b418b3b1ea3a6b5d3/build/elf/librtld.os:
in function `__register_frame_table':
/home/buildroot/buildroot/output/build/host-gcc-initial-11.3.0/build/mipsel-buildroot-linux-gnu/libgcc/../../../libgcc/unwind-dw2-fde.c:184:
undefined reference to `malloc'
/home/buildroot/buildroot/output/per-package/glibc/host/bin/../lib/gcc/mipsel-buildroot-linux-gnu/11.3.0/../../../../mipsel-buildroot-linux-gnu/bin/ld:
/home/buildroot/buildroot/output/build/host-gcc-initial-11.3.0/build/mipsel-buildroot-linux-gnu/libgcc/../../../libgcc/unwind-dw2-fde.c:184:
undefined reference to `malloc'
/home/buildroot/buildroot/output/per-package/glibc/host/bin/../lib/gcc/mipsel-buildroot-linux-gnu/11.3.0/../../../../mipsel-buildroot-linux-gnu/bin/ld:
/home/buildroot/buildroot/output/build/glibc-2.36-44-g2628500f5dff1dd99c49a09b418b3b1ea3a6b5d3/build/elf/librtld.os:
in function `__deregister_frame_info_bases':
/home/buildroot/buildroot/output/build/host-gcc-initial-11.3.0/build/mipsel-buildroot-linux-gnu/libgcc/../../../libgcc/unwind-dw2-fde.c:228:
undefined reference to `free'
/home/buildroot/buildroot/output/per-package/glibc/host/bin/../lib/gcc/mipsel-buildroot-linux-gnu/11.3.0/../../../../mipsel-buildroot-linux-gnu/bin/ld:
/home/buildroot/buildroot/output/build/host-gcc-initial-11.3.0/build/mipsel-buildroot-linux-gnu/libgcc/../../../libgcc/unwind-dw2-fde.c:228:
undefined reference to `free'
/home/buildroot/buildroot/output/per-package/glibc/host/bin/../lib/gcc/mipsel-buildroot-linux-gnu/11.3.0/../../../../mipsel-buildroot-linux-gnu/bin/ld:
/home/buildroot/buildroot/output/build/glibc-2.36-44-g2628500f5dff1dd99c49a09b418b3b1ea3a6b5d3/build/elf/librtld.os:
in function `__deregister_frame':
/home/buildroot/buildroot/output/build/host-gcc-initial-11.3.0/build/mipsel-buildroot-linux-gnu/libgcc/../../../libgcc/unwind-dw2-fde.c:259:
undefined reference to `free'
/home/buildroot/buildroot/output/per-package/glibc/host/bin/../lib/gcc/mipsel-buildroot-linux-gnu/11.3.0/../../../../mipsel-buildroot-linux-gnu/bin/ld:
/home/buildroot/buildroot/output/build/host-gcc-initial-11.3.0/build/mipsel-buildroot-linux-gnu/libgcc/../../../libgcc/unwind-dw2-fde.c:259:
undefined reference to `free'
/home/buildroot/buildroot/output/per-package/glibc/host/bin/../lib/gcc/mipsel-buildroot-linux-gnu/11.3.0/../../../../mipsel-buildroot-linux-gnu/bin/ld:
/home/buildroot/buildroot/output/build/glibc-2.36-44-g2628500f5dff1dd99c49a09b418b3b1ea3a6b5d3/build/elf/librtld.os:
in function `start_fde_sort':
/home/buildroot/buildroot/output/build/host-gcc-initial-11.3.0/build/mipsel-buildroot-linux-gnu/libgcc/../../../libgcc/unwind-dw2-fde.c:440:
undefined reference to `malloc'
/home/buildroot/buildroot/output/per-package/glibc/host/bin/../lib/gcc/mipsel-buildroot-linux-gnu/11.3.0/../../../../mipsel-buildroot-linux-gnu/bin/ld:
/home/buildroot/buildroot/output/build/host-gcc-initial-11.3.0/build/mipsel-buildroot-linux-gnu/libgcc/../../../libgcc/unwind-dw2-fde.c:440:
undefined reference to `malloc'
/home/buildroot/buildroot/output/per-package/glibc/host/bin/../lib/gcc/mipsel-buildroot-linux-gnu/11.3.0/../../../../mipsel-buildroot-linux-gnu/bin/ld:
/home/buildroot/buildroot/output/build/host-gcc-initial-11.3.0/build/mipsel-buildroot-linux-gnu/libgcc/../../../libgcc/unwind-dw2-fde.c:443:
undefined reference to `malloc'
/home/buildroot/buildroot/output/per-package/glibc/host/bin/../lib/gcc/mipsel-buildroot-linux-gnu/11.3.0/../../../../mipsel-buildroot-linux-gnu/bin/ld:
/home/buildroot/buildroot/output/build/host-gcc-initial-11.3.0/build/mipsel-buildroot-linux-gnu/libgcc/../../../libgcc/unwind-dw2-fde.c:443:
undefined reference to `malloc'
/home/buildroot/buildroot/output/per-package/glibc/host/bin/../lib/gcc/mipsel-buildroot-linux-gnu/11.3.0/../../../../mipsel-buildroot-linux-gnu/bin/ld:
/home/buildroot/buildroot/output/build/glibc-2.36-44-g2628500f5dff1dd99c49a09b418b3b1ea3a6b5d3/build/elf/librtld.os:
in function `end_fde_sort':
/home/buildroot/buildroot/output/build/host-gcc-initial-11.3.0/build/mipsel-buildroot-linux-gnu/libgcc/../../../libgcc/unwind-dw2-fde.c:621:
undefined reference to `free'
/home/buildroot/buildroot/output/per-package/glibc/host/bin/../lib/gcc/mipsel-buildroot-linux-gnu/11.3.0/../../../../mipsel-buildroot-linux-gnu/bin/ld:
/home/buildroot/buildroot/output/build/host-gcc-initial-11.3.0/build/mipsel-buildroot-linux-gnu/libgcc/../../../libgcc/unwind-dw2-fde.c:621:
undefined reference to `free'
/home/buildroot/buildroot/output/per-package/glibc/host/bin/../lib/gcc/mipsel-buildroot-linux-gnu/11.3.0/../../../../mipsel-buildroot-linux-gnu/bin/ld:
/home/buildroot/buildroot/output/build/glibc-2.36-44-g2628500f5dff1dd99c49a09b418b3b1ea3a6b5d3/build/elf/librtld.os:
in function `abort':
(.text+0x315b4): undefined reference to `__pthread_mutex_lock'
/home/buildroot/buildroot/output/per-package/glibc/host/bin/../lib/gcc/mipsel-buildroot-linux-gnu/11.3.0/../../../../mipsel-buildroot-linux-gnu/bin/ld:
(.text+0x315b8): undefined reference to `__pthread_mutex_lock'
/home/buildroot/buildroot/output/per-package/glibc/host/bin/../lib/gcc/mipsel-buildroot-linux-gnu/11.3.0/../../../../mipsel-buildroot-linux-gnu/bin/ld:
(.text+0x31630): undefined reference to `__pthread_mutex_unlock'
/home/buildroot/buildroot/output/per-package/glibc/host/bin/../lib/gcc/mipsel-buildroot-linux-gnu/11.3.0/../../../../mipsel-buildroot-linux-gnu/bin/ld:
(.text+0x31658): undefined reference to `__pthread_mutex_lock'
/home/buildroot/buildroot/output/per-package/glibc/host/bin/../lib/gcc/mipsel-buildroot-linux-gnu/11.3.0/../../../../mipsel-buildroot-linux-gnu/bin/ld:
(.text+0x3162c): undefined reference to `__pthread_mutex_unlock'
/home/buildroot/buildroot/output/per-package/glibc/host/bin/../lib/gcc/mipsel-buildroot-linux-gnu/11.3.0/../../../../mipsel-buildroot-linux-gnu/bin/ld:
(.text+0x31654): undefined reference to `__pthread_mutex_lock'

-- 
You are receiving this mail because:
You are on the CC list for the bug.

^ permalink raw reply	[flat|nested] 23+ messages in thread

* [Bug libc/29621] librtld.os: in function `__register_frame': libgcc/unwind-dw2-fde.c:136: undefined reference to `malloc'
  2022-09-27 19:44 [Bug libc/29621] New: librtld.os: in function `__register_frame': libgcc/unwind-dw2-fde.c:136: undefined reference to `malloc' james.hilliard1 at gmail dot com
@ 2022-09-27 19:44 ` james.hilliard1 at gmail dot com
  2022-09-29 17:45 ` adhemerval.zanella at linaro dot org
                   ` (20 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: james.hilliard1 at gmail dot com @ 2022-09-27 19:44 UTC (permalink / raw)
  To: glibc-bugs

https://sourceware.org/bugzilla/show_bug.cgi?id=29621

James Hilliard <james.hilliard1 at gmail dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |james.hilliard1 at gmail dot com

-- 
You are receiving this mail because:
You are on the CC list for the bug.

^ permalink raw reply	[flat|nested] 23+ messages in thread

* [Bug libc/29621] librtld.os: in function `__register_frame': libgcc/unwind-dw2-fde.c:136: undefined reference to `malloc'
  2022-09-27 19:44 [Bug libc/29621] New: librtld.os: in function `__register_frame': libgcc/unwind-dw2-fde.c:136: undefined reference to `malloc' james.hilliard1 at gmail dot com
  2022-09-27 19:44 ` [Bug libc/29621] " james.hilliard1 at gmail dot com
@ 2022-09-29 17:45 ` adhemerval.zanella at linaro dot org
  2022-09-29 19:51 ` james.hilliard1 at gmail dot com
                   ` (19 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: adhemerval.zanella at linaro dot org @ 2022-09-29 17:45 UTC (permalink / raw)
  To: glibc-bugs

https://sourceware.org/bugzilla/show_bug.cgi?id=29621

Adhemerval Zanella <adhemerval.zanella at linaro dot org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |adhemerval.zanella at linaro dot o
                   |                            |rg

--- Comment #1 from Adhemerval Zanella <adhemerval.zanella at linaro dot org> ---
Are you sure it is not related on how you build your toolchain? I am asking
because Joseph has a build service that constantly check glibc build against
multiple architectures and we have not seen this issue [1].

I have rebuild toolchain for or1k and mips64el using gcc-10/gcc-11 along with
binutils 2.39 and glibc-2.36 branches and I have seen only an ICE in the
compiler when using --enable-profile with GCC (by removing the configure switch
I could complete the build).

[1] https://sourceware.org/pipermail/libc-testresults/2022q3/009900.html

-- 
You are receiving this mail because:
You are on the CC list for the bug.

^ permalink raw reply	[flat|nested] 23+ messages in thread

* [Bug libc/29621] librtld.os: in function `__register_frame': libgcc/unwind-dw2-fde.c:136: undefined reference to `malloc'
  2022-09-27 19:44 [Bug libc/29621] New: librtld.os: in function `__register_frame': libgcc/unwind-dw2-fde.c:136: undefined reference to `malloc' james.hilliard1 at gmail dot com
  2022-09-27 19:44 ` [Bug libc/29621] " james.hilliard1 at gmail dot com
  2022-09-29 17:45 ` adhemerval.zanella at linaro dot org
@ 2022-09-29 19:51 ` james.hilliard1 at gmail dot com
  2022-10-17 12:42 ` adhemerval.zanella at linaro dot org
                   ` (18 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: james.hilliard1 at gmail dot com @ 2022-09-29 19:51 UTC (permalink / raw)
  To: glibc-bugs

https://sourceware.org/bugzilla/show_bug.cgi?id=29621

--- Comment #2 from James Hilliard <james.hilliard1 at gmail dot com> ---
(In reply to Adhemerval Zanella from comment #1)
> Are you sure it is not related on how you build your toolchain? I am asking
> because Joseph has a build service that constantly check glibc build against
> multiple architectures and we have not seen this issue [1].

It's a possibility but it's unclear what could be causing this.

> 
> I have rebuild toolchain for or1k and mips64el using gcc-10/gcc-11 along
> with binutils 2.39 and glibc-2.36 branches and I have seen only an ICE in
> the compiler when using --enable-profile with GCC (by removing the configure
> switch I could complete the build).

I'm seeing these builds failing with errors when --disable-profile is passed:
http://autobuild.buildroot.net/results/883/883b171a856a63540908976592683527fdb21cd2/glibc-2.36-44-g2628500f5dff1dd99c49a09b418b3b1ea3a6b5d3/build/config.log
http://autobuild.buildroot.net/results/883/883b171a856a63540908976592683527fdb21cd2/build-end.log

Configured like this looks like(note that autobuilder host is aarch64 based,
however I'm seeing similar errors on our x86_64 build hosts):
/home/autobuild/autobuild/instance-4/output-1/build/glibc-2.36-44-g2628500f5dff1dd99c49a09b418b3b1ea3a6b5d3/configure
--target=mipsel-buildroot-linux-gnu --host=mipsel-buildroot-linux-gnu
--build=aarch64-unknown-linux-gnu --prefix=/usr --enable-shared
--with-pkgversion=Buildroot --disable-profile --disable-werror --without-gd
--with-headers=/home/autobuild/autobuild/instance-4/output-1/host/mipsel-buildroot-linux-gnu/sysroot/usr/include
--enable-kernel=5.16

Easiest way to reproduce buildroot autobuilder errors is like this(using config
for above failure as an example):
git clone https://github.com/buildroot/buildroot.git
cd buildroot
wget
http://autobuild.buildroot.net/results/883/883b171a856a63540908976592683527fdb21cd2/config
mv config .config
make glibc

To make the same build using your normal local glibc git tree for testing glibc
changes:
Simply create a local.mk file inside the buildroot tree:
echo "GLIBC_OVERRIDE_SRCDIR = /home/buildroot/glibc" > local.mk

Then to rebuild/resync testing changes from your local glibc checkout:
make glibc-rebuild

Reference manual for local.mk overrides:
https://buildroot.org/downloads/manual/manual.html#_using_buildroot_during_development

> 
> [1] https://sourceware.org/pipermail/libc-testresults/2022q3/009900.html

-- 
You are receiving this mail because:
You are on the CC list for the bug.

^ permalink raw reply	[flat|nested] 23+ messages in thread

* [Bug libc/29621] librtld.os: in function `__register_frame': libgcc/unwind-dw2-fde.c:136: undefined reference to `malloc'
  2022-09-27 19:44 [Bug libc/29621] New: librtld.os: in function `__register_frame': libgcc/unwind-dw2-fde.c:136: undefined reference to `malloc' james.hilliard1 at gmail dot com
                   ` (2 preceding siblings ...)
  2022-09-29 19:51 ` james.hilliard1 at gmail dot com
@ 2022-10-17 12:42 ` adhemerval.zanella at linaro dot org
  2022-10-26 18:54 ` james.hilliard1 at gmail dot com
                   ` (17 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: adhemerval.zanella at linaro dot org @ 2022-10-17 12:42 UTC (permalink / raw)
  To: glibc-bugs

https://sourceware.org/bugzilla/show_bug.cgi?id=29621

--- Comment #3 from Adhemerval Zanella <adhemerval.zanella at linaro dot org> ---
Is there an easy way to reproduce it without resorting to build/use buildroot?
I am trying to use the command you posted but it fails after downloading the
kernel and I do not want to dig into builroot to debug this.

Also, could you verify what buildroot is doing differently than glibc own
toolchain build script [1] so we can narrow down issue?

[1]
https://sourceware.org/git/?p=glibc.git;a=blob;f=scripts/build-many-glibcs.py;h=5af6f369ae04027911b3407c64716dd1571eae6a;hb=HEAD

-- 
You are receiving this mail because:
You are on the CC list for the bug.

^ permalink raw reply	[flat|nested] 23+ messages in thread

* [Bug libc/29621] librtld.os: in function `__register_frame': libgcc/unwind-dw2-fde.c:136: undefined reference to `malloc'
  2022-09-27 19:44 [Bug libc/29621] New: librtld.os: in function `__register_frame': libgcc/unwind-dw2-fde.c:136: undefined reference to `malloc' james.hilliard1 at gmail dot com
                   ` (3 preceding siblings ...)
  2022-10-17 12:42 ` adhemerval.zanella at linaro dot org
@ 2022-10-26 18:54 ` james.hilliard1 at gmail dot com
  2022-10-26 19:10 ` adhemerval.zanella at linaro dot org
                   ` (16 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: james.hilliard1 at gmail dot com @ 2022-10-26 18:54 UTC (permalink / raw)
  To: glibc-bugs

https://sourceware.org/bugzilla/show_bug.cgi?id=29621

--- Comment #4 from James Hilliard <james.hilliard1 at gmail dot com> ---
(In reply to Adhemerval Zanella from comment #3)
> Is there an easy way to reproduce it without resorting to build/use
> buildroot? I am trying to use the command you posted but it fails after
> downloading the kernel and I do not want to dig into builroot to debug this.
> 
> Also, could you verify what buildroot is doing differently than glibc own
> toolchain build script [1] so we can narrow down issue?
> 
> [1]
> https://sourceware.org/git/?p=glibc.git;a=blob;f=scripts/build-many-glibcs.
> py;h=5af6f369ae04027911b3407c64716dd1571eae6a;hb=HEAD

Hmm, what's the error message buildroot gives?

I'm not really sure how to reproduce outside of buildroot. Kind of hard to
narrow down what difference is triggering the issue with the toolchain build
script.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

^ permalink raw reply	[flat|nested] 23+ messages in thread

* [Bug libc/29621] librtld.os: in function `__register_frame': libgcc/unwind-dw2-fde.c:136: undefined reference to `malloc'
  2022-09-27 19:44 [Bug libc/29621] New: librtld.os: in function `__register_frame': libgcc/unwind-dw2-fde.c:136: undefined reference to `malloc' james.hilliard1 at gmail dot com
                   ` (4 preceding siblings ...)
  2022-10-26 18:54 ` james.hilliard1 at gmail dot com
@ 2022-10-26 19:10 ` adhemerval.zanella at linaro dot org
  2022-10-26 19:33 ` james.hilliard1 at gmail dot com
                   ` (15 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: adhemerval.zanella at linaro dot org @ 2022-10-26 19:10 UTC (permalink / raw)
  To: glibc-bugs

https://sourceware.org/bugzilla/show_bug.cgi?id=29621

--- Comment #5 from Adhemerval Zanella <adhemerval.zanella at linaro dot org> ---
(In reply to James Hilliard from comment #4)
> (In reply to Adhemerval Zanella from comment #3)
> > Is there an easy way to reproduce it without resorting to build/use
> > buildroot? I am trying to use the command you posted but it fails after
> > downloading the kernel and I do not want to dig into builroot to debug this.
> > 
> > Also, could you verify what buildroot is doing differently than glibc own
> > toolchain build script [1] so we can narrow down issue?
> > 
> > [1]
> > https://sourceware.org/git/?p=glibc.git;a=blob;f=scripts/build-many-glibcs.
> > py;h=5af6f369ae04027911b3407c64716dd1571eae6a;hb=HEAD
> 
> Hmm, what's the error message buildroot gives?
> 
> I'm not really sure how to reproduce outside of buildroot. Kind of hard to
> narrow down what difference is triggering the issue with the toolchain build
> script.

I just copy/paste your instructions:

---
git clone https://github.com/buildroot/buildroot.git
cd buildroot
wget
http://autobuild.buildroot.net/results/883/883b171a856a63540908976592683527fdb21cd2/config
mv config .config
make glibc
---

And after it build first stage of GCC, it tries to download the kernel and
dumps an error:

---
wget --passive-ftp -nd -t 3 -O
'/tmp/buildroot/buildroot/output/build/.linux-5.17.15.tar.xz.MfDZZc/output'
'https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.17.15.tar.xz'
--2022-10-26 16:09:00-- 
https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.17.15.tar.xz
Resolving cdn.kernel.org (cdn.kernel.org)... 2a04:4e42:5c::432, 199.232.113.176
Connecting to cdn.kernel.org (cdn.kernel.org)|2a04:4e42:5c::432|:443...
connected.
HTTP request sent, awaiting response... 200 OK
Length: 128442092 (122M) [application/x-xz]
Saving to:
‘/tmp/buildroot/buildroot/output/build/.linux-5.17.15.tar.xz.MfDZZc/output’

/tmp/buildroot/buildroot/output/build/.linux-5.17.15.tar.xz.MfDZZc/output     
100%[====================================================================================================================================================================================================>]
122,49M  36,0MB/s    in 3,3s

2022-10-26 16:09:08 (37,4 MB/s) -
‘/tmp/buildroot/buildroot/output/build/.linux-5.17.15.tar.xz.MfDZZc/output’
saved [128442092/128442092]

ERROR: No hash found for linux-5.17.15.tar.xz
---

-- 
You are receiving this mail because:
You are on the CC list for the bug.

^ permalink raw reply	[flat|nested] 23+ messages in thread

* [Bug libc/29621] librtld.os: in function `__register_frame': libgcc/unwind-dw2-fde.c:136: undefined reference to `malloc'
  2022-09-27 19:44 [Bug libc/29621] New: librtld.os: in function `__register_frame': libgcc/unwind-dw2-fde.c:136: undefined reference to `malloc' james.hilliard1 at gmail dot com
                   ` (5 preceding siblings ...)
  2022-10-26 19:10 ` adhemerval.zanella at linaro dot org
@ 2022-10-26 19:33 ` james.hilliard1 at gmail dot com
  2022-10-27 14:04 ` adhemerval.zanella at linaro dot org
                   ` (14 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: james.hilliard1 at gmail dot com @ 2022-10-26 19:33 UTC (permalink / raw)
  To: glibc-bugs

https://sourceware.org/bugzilla/show_bug.cgi?id=29621

--- Comment #6 from James Hilliard <james.hilliard1 at gmail dot com> ---
(In reply to Adhemerval Zanella from comment #5)
> (In reply to James Hilliard from comment #4)
> > (In reply to Adhemerval Zanella from comment #3)
> > > Is there an easy way to reproduce it without resorting to build/use
> > > buildroot? I am trying to use the command you posted but it fails after
> > > downloading the kernel and I do not want to dig into builroot to debug this.
> > > 
> > > Also, could you verify what buildroot is doing differently than glibc own
> > > toolchain build script [1] so we can narrow down issue?
> > > 
> > > [1]
> > > https://sourceware.org/git/?p=glibc.git;a=blob;f=scripts/build-many-glibcs.
> > > py;h=5af6f369ae04027911b3407c64716dd1571eae6a;hb=HEAD
> > 
> > Hmm, what's the error message buildroot gives?
> > 
> > I'm not really sure how to reproduce outside of buildroot. Kind of hard to
> > narrow down what difference is triggering the issue with the toolchain build
> > script.
> 
> I just copy/paste your instructions:
> 
> ---
> git clone https://github.com/buildroot/buildroot.git
> cd buildroot
> wget
> http://autobuild.buildroot.net/results/883/
> 883b171a856a63540908976592683527fdb21cd2/config
> mv config .config
> make glibc
> ---
> 
> And after it build first stage of GCC, it tries to download the kernel and
> dumps an error:
> 
> ---
> wget --passive-ftp -nd -t 3 -O
> '/tmp/buildroot/buildroot/output/build/.linux-5.17.15.tar.xz.MfDZZc/output'
> 'https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.17.15.tar.xz'
> --2022-10-26 16:09:00-- 
> https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.17.15.tar.xz
> Resolving cdn.kernel.org (cdn.kernel.org)... 2a04:4e42:5c::432,
> 199.232.113.176
> Connecting to cdn.kernel.org (cdn.kernel.org)|2a04:4e42:5c::432|:443...
> connected.
> HTTP request sent, awaiting response... 200 OK
> Length: 128442092 (122M) [application/x-xz]
> Saving to:
> ‘/tmp/buildroot/buildroot/output/build/.linux-5.17.15.tar.xz.MfDZZc/output’
> 
> /tmp/buildroot/buildroot/output/build/.linux-5.17.15.tar.xz.MfDZZc/output   
> 100%[========================================================================
> =============================================================================
> ===============================================>] 122,49M  36,0MB/s    in
> 3,3s
> 
> 2022-10-26 16:09:08 (37,4 MB/s) -
> ‘/tmp/buildroot/buildroot/output/build/.linux-5.17.15.tar.xz.MfDZZc/output’
> saved [128442092/128442092]
> 
> ERROR: No hash found for linux-5.17.15.tar.xz
> ---

Oh, build config is out of sync with master(sometime changes in master break
previous configs), should work if you checkout the same buildroot commit that
the failure was triggered on:
git checkout e4ecf82f99f53e55d51e6f74ae5021473aa2bb1d

Full commands:
git clone https://github.com/buildroot/buildroot.git
cd buildroot
git checkout e4ecf82f99f53e55d51e6f74ae5021473aa2bb1d
wget
http://autobuild.buildroot.net/results/883/883b171a856a63540908976592683527fdb21cd2/config
mv config .config
make glibc

-- 
You are receiving this mail because:
You are on the CC list for the bug.

^ permalink raw reply	[flat|nested] 23+ messages in thread

* [Bug libc/29621] librtld.os: in function `__register_frame': libgcc/unwind-dw2-fde.c:136: undefined reference to `malloc'
  2022-09-27 19:44 [Bug libc/29621] New: librtld.os: in function `__register_frame': libgcc/unwind-dw2-fde.c:136: undefined reference to `malloc' james.hilliard1 at gmail dot com
                   ` (6 preceding siblings ...)
  2022-10-26 19:33 ` james.hilliard1 at gmail dot com
@ 2022-10-27 14:04 ` adhemerval.zanella at linaro dot org
  2022-10-27 19:57 ` james.hilliard1 at gmail dot com
                   ` (13 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: adhemerval.zanella at linaro dot org @ 2022-10-27 14:04 UTC (permalink / raw)
  To: glibc-bugs

https://sourceware.org/bugzilla/show_bug.cgi?id=29621

--- Comment #7 from Adhemerval Zanella <adhemerval.zanella at linaro dot org> ---
(In reply to James Hilliard from comment #6)
> 
> Full commands:
> git clone https://github.com/buildroot/buildroot.git
> cd buildroot
> git checkout e4ecf82f99f53e55d51e6f74ae5021473aa2bb1d
> wget
> http://autobuild.buildroot.net/results/883/
> 883b171a856a63540908976592683527fdb21cd2/config
> mv config .config
> make glibc

Ok, with this one I can see the buildroot failure. It seems that it is
misconfiguring the stage1 gcc, where the libgcc.a generated is relying on the
libc for unwinding (thus why ld.so link is failing).

I mimic what build-many-glibcs.py [1] does (which is canonical way to build
complete toolchain for glibc) and build a stage1 on buildroot system with:

---
./configure \
  --prefix=/tmp/buildroot/output/host \
  --build=x86_64-pc-linux-gnu \
  --host=x86_64-pc-linux-gnu \
  --target=mips64el-glibc-linux-gnu \
  --sysconfdir=/tmp/buildroot/output/host/etc \
  --localstatedir=/tmp/buildroot/output/host/var \
  --target=mipsel-buildroot-linux-gnu \
  --with-sysroot=/tmp/buildroot/output/host/mipsel-buildroot-linux-gnu/sysroot
\
  --with-gmp=/tmp/buildroot/output/host \
  --with-mpc=/tmp/buildroot/output/host \
  --with-mpfr=/tmp/buildroot/output/host \
  --with-pkgversion="Buildroot 2022.08-383-ge4ecf82f99-dirty" \
  --with-bugurl=http://bugs.buildroot.net/ \
  --enable-initfini-array \
  --disable-libssp \
  --disable-shared \
  --disable-threads \
  --disable-libatomic \
  --disable-decimal-float \
  --disable-libffi \
  --disable-libgomp \
  --disable-libitm \
  --disable-libmpx \
  --disable-libquadmath \
  --disable-libsanitizer \
  --without-headers\
  --with-newlib \
  --enable-languages=c, \
  --with-arch=mips32r3 --with-abi=32 --with-nan=legacy --with-fp-32=xx
---

And with this stage1 gcc I could finish the glibc build. I am afraid you will
need to sort this out on buildroot stage1 configuration flags used on gcc.

[1]
https://sourceware.org/git/?p=glibc.git;a=blob;f=scripts/build-many-glibcs.py;h=5af6f369ae04027911b3407c64716dd1571eae6a;hb=HEAD

-- 
You are receiving this mail because:
You are on the CC list for the bug.

^ permalink raw reply	[flat|nested] 23+ messages in thread

* [Bug libc/29621] librtld.os: in function `__register_frame': libgcc/unwind-dw2-fde.c:136: undefined reference to `malloc'
  2022-09-27 19:44 [Bug libc/29621] New: librtld.os: in function `__register_frame': libgcc/unwind-dw2-fde.c:136: undefined reference to `malloc' james.hilliard1 at gmail dot com
                   ` (7 preceding siblings ...)
  2022-10-27 14:04 ` adhemerval.zanella at linaro dot org
@ 2022-10-27 19:57 ` james.hilliard1 at gmail dot com
  2022-10-27 21:05 ` adhemerval.zanella at linaro dot org
                   ` (12 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: james.hilliard1 at gmail dot com @ 2022-10-27 19:57 UTC (permalink / raw)
  To: glibc-bugs

https://sourceware.org/bugzilla/show_bug.cgi?id=29621

--- Comment #8 from James Hilliard <james.hilliard1 at gmail dot com> ---
(In reply to Adhemerval Zanella from comment #7)
> (In reply to James Hilliard from comment #6)
> > 
> > Full commands:
> > git clone https://github.com/buildroot/buildroot.git
> > cd buildroot
> > git checkout e4ecf82f99f53e55d51e6f74ae5021473aa2bb1d
> > wget
> > http://autobuild.buildroot.net/results/883/
> > 883b171a856a63540908976592683527fdb21cd2/config
> > mv config .config
> > make glibc
> 
> Ok, with this one I can see the buildroot failure. It seems that it is
> misconfiguring the stage1 gcc, where the libgcc.a generated is relying on
> the libc for unwinding (thus why ld.so link is failing).
> 
> I mimic what build-many-glibcs.py [1] does (which is canonical way to build
> complete toolchain for glibc) and build a stage1 on buildroot system with:
> 
> ---
> ./configure \
>   --prefix=/tmp/buildroot/output/host \
>   --build=x86_64-pc-linux-gnu \
>   --host=x86_64-pc-linux-gnu \
>   --target=mips64el-glibc-linux-gnu \

This looks wrong, we aren't building for mips64el(which our autobuilders also
indicate does not have this particular build failure).

>   --sysconfdir=/tmp/buildroot/output/host/etc \
>   --localstatedir=/tmp/buildroot/output/host/var \
>   --target=mipsel-buildroot-linux-gnu \

Setting target a second time?

>  
> --with-sysroot=/tmp/buildroot/output/host/mipsel-buildroot-linux-gnu/sysroot
> \
>   --with-gmp=/tmp/buildroot/output/host \
>   --with-mpc=/tmp/buildroot/output/host \
>   --with-mpfr=/tmp/buildroot/output/host \
>   --with-pkgversion="Buildroot 2022.08-383-ge4ecf82f99-dirty" \
>   --with-bugurl=http://bugs.buildroot.net/ \
>   --enable-initfini-array \
>   --disable-libssp \
>   --disable-shared \
>   --disable-threads \
>   --disable-libatomic \
>   --disable-decimal-float \
>   --disable-libffi \
>   --disable-libgomp \
>   --disable-libitm \
>   --disable-libmpx \
>   --disable-libquadmath \
>   --disable-libsanitizer \
>   --without-headers\
>   --with-newlib \
>   --enable-languages=c, \
>   --with-arch=mips32r3 --with-abi=32 --with-nan=legacy --with-fp-32=xx
> ---

I've attempted to make a build using this configuration but have not been able
to get a working build.

> 
> And with this stage1 gcc I could finish the glibc build. I am afraid you
> will need to sort this out on buildroot stage1 configuration flags used on
> gcc.

I've tested by patching our gcc stage1
configure(package/gcc/gcc-initial/gcc-initial.mk).

Replacing HOST_GCC_INITIAL_CONF_OPTS with this for testing:
HOST_GCC_INITIAL_CONF_OPTS = \
        --build=x86_64-pc-linux-gnu \
        --host=x86_64-pc-linux-gnu \
        --target=$(GNU_TARGET_NAME) \
        --with-sysroot=$(STAGING_DIR) \
        --with-gmp=$(HOST_DIR) \
        --with-mpc=$(HOST_DIR) \
        --with-mpfr=$(HOST_DIR) \
        --with-pkgversion="Buildroot $(BR2_VERSION_FULL)" \
        --with-bugurl=http://bugs.buildroot.net/ \
        --enable-initfini-array \
        --disable-libssp \
        --disable-shared \
        --disable-threads \
        --disable-libatomic \
        --disable-decimal-float \
        --disable-libffi \
        --disable-libgomp \
        --disable-libitm \
        --disable-libmpx \
        --disable-libquadmath \
        --disable-libsanitizer \
        --without-headers \
        --with-newlib \
        --enable-languages=c, \
        --with-arch=mips32r3 --with-abi=32 --with-nan=legacy --with-fp-32=xx

With this I get the same failure as before. Does this successfully build for
you?

After patching gcc-initial.mk to test I do:
make clean
make glibc

> 
> [1]
> https://sourceware.org/git/?p=glibc.git;a=blob;f=scripts/build-many-glibcs.
> py;h=5af6f369ae04027911b3407c64716dd1571eae6a;hb=HEAD

-- 
You are receiving this mail because:
You are on the CC list for the bug.

^ permalink raw reply	[flat|nested] 23+ messages in thread

* [Bug libc/29621] librtld.os: in function `__register_frame': libgcc/unwind-dw2-fde.c:136: undefined reference to `malloc'
  2022-09-27 19:44 [Bug libc/29621] New: librtld.os: in function `__register_frame': libgcc/unwind-dw2-fde.c:136: undefined reference to `malloc' james.hilliard1 at gmail dot com
                   ` (8 preceding siblings ...)
  2022-10-27 19:57 ` james.hilliard1 at gmail dot com
@ 2022-10-27 21:05 ` adhemerval.zanella at linaro dot org
  2022-10-27 21:35 ` james.hilliard1 at gmail dot com
                   ` (11 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: adhemerval.zanella at linaro dot org @ 2022-10-27 21:05 UTC (permalink / raw)
  To: glibc-bugs

https://sourceware.org/bugzilla/show_bug.cgi?id=29621

--- Comment #9 from Adhemerval Zanella <adhemerval.zanella at linaro dot org> ---
(In reply to James Hilliard from comment #8)
> (In reply to Adhemerval Zanella from comment #7)
> > (In reply to James Hilliard from comment #6)
> > > 
> > > Full commands:
> > > git clone https://github.com/buildroot/buildroot.git
> > > cd buildroot
> > > git checkout e4ecf82f99f53e55d51e6f74ae5021473aa2bb1d
> > > wget
> > > http://autobuild.buildroot.net/results/883/
> > > 883b171a856a63540908976592683527fdb21cd2/config
> > > mv config .config
> > > make glibc
> > 
> > Ok, with this one I can see the buildroot failure. It seems that it is
> > misconfiguring the stage1 gcc, where the libgcc.a generated is relying on
> > the libc for unwinding (thus why ld.so link is failing).
> > 
> > I mimic what build-many-glibcs.py [1] does (which is canonical way to build
> > complete toolchain for glibc) and build a stage1 on buildroot system with:
> > 
> > ---
> > ./configure \
> >   --prefix=/tmp/buildroot/output/host \
> >   --build=x86_64-pc-linux-gnu \
> >   --host=x86_64-pc-linux-gnu \
> >   --target=mips64el-glibc-linux-gnu \
> 
> This looks wrong, we aren't building for mips64el(which our autobuilders
> also indicate does not have this particular build failure).

Our script builds only one toolchain with multilib enabled (which I think it is
not the case for buildroot).  In any case, for stage1 either
mips64el-glibc-linux-gnu or mipsel-glibc-linux-gnu works (since for mips64el
gcc still can generates -mabi=32 code).

> 
> >   --sysconfdir=/tmp/buildroot/output/host/etc \
> >   --localstatedir=/tmp/buildroot/output/host/var \
> >   --target=mipsel-buildroot-linux-gnu \
> 
> Setting target a second time?

I copy/paste from the stage1 config we use in your script and forget to remove
the mips64el one, using only mipsel-buildroot-linux-gnu should be suffice.

> 
> >  
> > --with-sysroot=/tmp/buildroot/output/host/mipsel-buildroot-linux-gnu/sysroot
> > \
> >   --with-gmp=/tmp/buildroot/output/host \
> >   --with-mpc=/tmp/buildroot/output/host \
> >   --with-mpfr=/tmp/buildroot/output/host \
> >   --with-pkgversion="Buildroot 2022.08-383-ge4ecf82f99-dirty" \
> >   --with-bugurl=http://bugs.buildroot.net/ \
> >   --enable-initfini-array \
> >   --disable-libssp \
> >   --disable-shared \
> >   --disable-threads \
> >   --disable-libatomic \
> >   --disable-decimal-float \
> >   --disable-libffi \
> >   --disable-libgomp \
> >   --disable-libitm \
> >   --disable-libmpx \
> >   --disable-libquadmath \
> >   --disable-libsanitizer \
> >   --without-headers\
> >   --with-newlib \
> >   --enable-languages=c, \
> >   --with-arch=mips32r3 --with-abi=32 --with-nan=legacy --with-fp-32=xx
> > ---
> 
> I've attempted to make a build using this configuration but have not been
> able to get a working build.
> 
> > 
> > And with this stage1 gcc I could finish the glibc build. I am afraid you
> > will need to sort this out on buildroot stage1 configuration flags used on
> > gcc.
> 
> I've tested by patching our gcc stage1
> configure(package/gcc/gcc-initial/gcc-initial.mk).
> 
> Replacing HOST_GCC_INITIAL_CONF_OPTS with this for testing:
> HOST_GCC_INITIAL_CONF_OPTS = \
> 	--build=x86_64-pc-linux-gnu \
> 	--host=x86_64-pc-linux-gnu \
> 	--target=$(GNU_TARGET_NAME) \
> 	--with-sysroot=$(STAGING_DIR) \
> 	--with-gmp=$(HOST_DIR) \
> 	--with-mpc=$(HOST_DIR) \
> 	--with-mpfr=$(HOST_DIR) \
> 	--with-pkgversion="Buildroot $(BR2_VERSION_FULL)" \
> 	--with-bugurl=http://bugs.buildroot.net/ \
> 	--enable-initfini-array \
> 	--disable-libssp \
> 	--disable-shared \
> 	--disable-threads \
> 	--disable-libatomic \
> 	--disable-decimal-float \
> 	--disable-libffi \
> 	--disable-libgomp \
> 	--disable-libitm \
> 	--disable-libmpx \
> 	--disable-libquadmath \
> 	--disable-libsanitizer \
> 	--without-headers \
> 	--with-newlib \
> 	--enable-languages=c, \
> 	--with-arch=mips32r3 --with-abi=32 --with-nan=legacy --with-fp-32=xx
> 
> With this I get the same failure as before. Does this successfully build for
> you?
> 

I did not actually patches the buildroot build system, but rather rebuild the
stage1 gcc at output/build/host-gcc-initial-11.3.0/build with the
configuration, issued make install and rebuild the glibc
(output/build/glibc-2.36-44-g2628500f5dff1dd99c49a09b418b3b1ea3a6b5d3/build).

It does show to work:

$ file elf/ld.so
elf/ld.so: ELF 32-bit LSB shared object, MIPS, MIPS32 rel2 version 1 (SYSV),
dynamically linked, with debug_info, not stripped
$ ./elf/ld.so --version
ld.so (Buildroot) stable release version 2.36.
Copyright (C) 2022 Free Software Foundation, Inc.
[...]
$ ./elf/ld.so ./libc.so
GNU C Library (Buildroot) stable release version 2.36.
[...]

At least qemu mips usermode can actually run the resulting loader.

> After patching gcc-initial.mk to test I do:
> make clean
> make glibc
> 
> > 
> > [1]
> > https://sourceware.org/git/?p=glibc.git;a=blob;f=scripts/build-many-glibcs.
> > py;h=5af6f369ae04027911b3407c64716dd1571eae6a;hb=HEAD

I tried to hack the builroot system without much success, I also tried to mimic
what build-many-glibcs.py does, but I keep seeing the build failure.

However, if I rebuild the gcc with my hacked config:

./configure --prefix=/tmp/buildroot/output/host
--sysconfdir=/tmp/buildroot/output/host/etc
--localstatedir=/tmp/buildroot/output/host/var --disable-gtk-doc
--disable-gtk-doc-html --disable-doc --disable-docs --disable-documentation
--disable-debug --with-xmlto=no --with-fop=no --disable-nls
--disable-dependency-tracking --target=mipsel-buildroot-linux-gnu
--with-sysroot=/tmp/buildroot/output/host/mipsel-buildroot-linux-gnu/sysroot
--with-gnu-ld --disable-libssp --disable-multilib --disable-decimal-float
--with-gmp=/tmp/buildroot/output/host --with-mpc=/tmp/buildroot/output/host
--with-mpfr=/tmp/buildroot/output/host --with-pkgversion="Buildroot
2022.08-383-ge4ecf82f99-dirty" --with-bugurl=http://bugs.buildroot.net/
--without-zstd --disable-libquadmath --disable-libquadmath-support
--without-isl --without-cloog --with-arch=mips32r3 --with-abi=32
--with-nan=legacy --with-fp-32=xx --enable-languages=c --enable-initfini-array
--disable-libssp --disable-shared --without-headers --disable-threads
--disable-libatomic --disable-decimal-float --disable-libffi --disable-libgomp
--disable-libitm --disable-libmpx --disable-libquadmath --disable-libsanitizer
--with-newlib

on the buildroot directory, reinstall it, and the glibc does finish. That's why
I think there is something bogues on buildroot that I can't figure out.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

^ permalink raw reply	[flat|nested] 23+ messages in thread

* [Bug libc/29621] librtld.os: in function `__register_frame': libgcc/unwind-dw2-fde.c:136: undefined reference to `malloc'
  2022-09-27 19:44 [Bug libc/29621] New: librtld.os: in function `__register_frame': libgcc/unwind-dw2-fde.c:136: undefined reference to `malloc' james.hilliard1 at gmail dot com
                   ` (9 preceding siblings ...)
  2022-10-27 21:05 ` adhemerval.zanella at linaro dot org
@ 2022-10-27 21:35 ` james.hilliard1 at gmail dot com
  2022-10-28  5:28 ` fweimer at redhat dot com
                   ` (10 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: james.hilliard1 at gmail dot com @ 2022-10-27 21:35 UTC (permalink / raw)
  To: glibc-bugs

https://sourceware.org/bugzilla/show_bug.cgi?id=29621

--- Comment #10 from James Hilliard <james.hilliard1 at gmail dot com> ---
(In reply to Adhemerval Zanella from comment #9)
> (In reply to James Hilliard from comment #8)
> > (In reply to Adhemerval Zanella from comment #7)
> > > (In reply to James Hilliard from comment #6)
> > > > 
> > > > Full commands:
> > > > git clone https://github.com/buildroot/buildroot.git
> > > > cd buildroot
> > > > git checkout e4ecf82f99f53e55d51e6f74ae5021473aa2bb1d
> > > > wget
> > > > http://autobuild.buildroot.net/results/883/
> > > > 883b171a856a63540908976592683527fdb21cd2/config
> > > > mv config .config
> > > > make glibc
> > > 
> > > Ok, with this one I can see the buildroot failure. It seems that it is
> > > misconfiguring the stage1 gcc, where the libgcc.a generated is relying on
> > > the libc for unwinding (thus why ld.so link is failing).
> > > 
> > > I mimic what build-many-glibcs.py [1] does (which is canonical way to build
> > > complete toolchain for glibc) and build a stage1 on buildroot system with:
> > > 
> > > ---
> > > ./configure \
> > >   --prefix=/tmp/buildroot/output/host \
> > >   --build=x86_64-pc-linux-gnu \
> > >   --host=x86_64-pc-linux-gnu \
> > >   --target=mips64el-glibc-linux-gnu \
> > 
> > This looks wrong, we aren't building for mips64el(which our autobuilders
> > also indicate does not have this particular build failure).
> 
> Our script builds only one toolchain with multilib enabled (which I think it
> is not the case for buildroot).  In any case, for stage1 either
> mips64el-glibc-linux-gnu or mipsel-glibc-linux-gnu works (since for mips64el
> gcc still can generates -mabi=32 code).

We're building with multilib disabled I think in buildroot here.

Maybe there's something in glibc broken for non-multilib builds?

> 
> > 
> > >   --sysconfdir=/tmp/buildroot/output/host/etc \
> > >   --localstatedir=/tmp/buildroot/output/host/var \
> > >   --target=mipsel-buildroot-linux-gnu \
> > 
> > Setting target a second time?
> 
> I copy/paste from the stage1 config we use in your script and forget to
> remove the mips64el one, using only mipsel-buildroot-linux-gnu should be
> suffice.
> 
> > 
> > >  
> > > --with-sysroot=/tmp/buildroot/output/host/mipsel-buildroot-linux-gnu/sysroot
> > > \
> > >   --with-gmp=/tmp/buildroot/output/host \
> > >   --with-mpc=/tmp/buildroot/output/host \
> > >   --with-mpfr=/tmp/buildroot/output/host \
> > >   --with-pkgversion="Buildroot 2022.08-383-ge4ecf82f99-dirty" \
> > >   --with-bugurl=http://bugs.buildroot.net/ \
> > >   --enable-initfini-array \
> > >   --disable-libssp \
> > >   --disable-shared \
> > >   --disable-threads \
> > >   --disable-libatomic \
> > >   --disable-decimal-float \
> > >   --disable-libffi \
> > >   --disable-libgomp \
> > >   --disable-libitm \
> > >   --disable-libmpx \
> > >   --disable-libquadmath \
> > >   --disable-libsanitizer \
> > >   --without-headers\
> > >   --with-newlib \
> > >   --enable-languages=c, \
> > >   --with-arch=mips32r3 --with-abi=32 --with-nan=legacy --with-fp-32=xx
> > > ---
> > 
> > I've attempted to make a build using this configuration but have not been
> > able to get a working build.
> > 
> > > 
> > > And with this stage1 gcc I could finish the glibc build. I am afraid you
> > > will need to sort this out on buildroot stage1 configuration flags used on
> > > gcc.
> > 
> > I've tested by patching our gcc stage1
> > configure(package/gcc/gcc-initial/gcc-initial.mk).
> > 
> > Replacing HOST_GCC_INITIAL_CONF_OPTS with this for testing:
> > HOST_GCC_INITIAL_CONF_OPTS = \
> > 	--build=x86_64-pc-linux-gnu \
> > 	--host=x86_64-pc-linux-gnu \
> > 	--target=$(GNU_TARGET_NAME) \
> > 	--with-sysroot=$(STAGING_DIR) \
> > 	--with-gmp=$(HOST_DIR) \
> > 	--with-mpc=$(HOST_DIR) \
> > 	--with-mpfr=$(HOST_DIR) \
> > 	--with-pkgversion="Buildroot $(BR2_VERSION_FULL)" \
> > 	--with-bugurl=http://bugs.buildroot.net/ \
> > 	--enable-initfini-array \
> > 	--disable-libssp \
> > 	--disable-shared \
> > 	--disable-threads \
> > 	--disable-libatomic \
> > 	--disable-decimal-float \
> > 	--disable-libffi \
> > 	--disable-libgomp \
> > 	--disable-libitm \
> > 	--disable-libmpx \
> > 	--disable-libquadmath \
> > 	--disable-libsanitizer \
> > 	--without-headers \
> > 	--with-newlib \
> > 	--enable-languages=c, \
> > 	--with-arch=mips32r3 --with-abi=32 --with-nan=legacy --with-fp-32=xx
> > 
> > With this I get the same failure as before. Does this successfully build for
> > you?
> > 
> 
> I did not actually patches the buildroot build system, but rather rebuild
> the stage1 gcc at output/build/host-gcc-initial-11.3.0/build with the
> configuration, issued make install and rebuild the glibc
> (output/build/glibc-2.36-44-g2628500f5dff1dd99c49a09b418b3b1ea3a6b5d3/build).
> 
> It does show to work:
> 
> $ file elf/ld.so
> elf/ld.so: ELF 32-bit LSB shared object, MIPS, MIPS32 rel2 version 1 (SYSV),
> dynamically linked, with debug_info, not stripped
> $ ./elf/ld.so --version
> ld.so (Buildroot) stable release version 2.36.
> Copyright (C) 2022 Free Software Foundation, Inc.
> [...]
> $ ./elf/ld.so ./libc.so
> GNU C Library (Buildroot) stable release version 2.36.
> [...]
> 
> At least qemu mips usermode can actually run the resulting loader.
> 
> > After patching gcc-initial.mk to test I do:
> > make clean
> > make glibc
> > 
> > > 
> > > [1]
> > > https://sourceware.org/git/?p=glibc.git;a=blob;f=scripts/build-many-glibcs.
> > > py;h=5af6f369ae04027911b3407c64716dd1571eae6a;hb=HEAD
> 
> I tried to hack the builroot system without much success, I also tried to
> mimic what build-many-glibcs.py does, but I keep seeing the build failure.
> 
> However, if I rebuild the gcc with my hacked config:
> 
> ./configure --prefix=/tmp/buildroot/output/host
> --sysconfdir=/tmp/buildroot/output/host/etc
> --localstatedir=/tmp/buildroot/output/host/var --disable-gtk-doc
> --disable-gtk-doc-html --disable-doc --disable-docs --disable-documentation
> --disable-debug --with-xmlto=no --with-fop=no --disable-nls
> --disable-dependency-tracking --target=mipsel-buildroot-linux-gnu
> --with-sysroot=/tmp/buildroot/output/host/mipsel-buildroot-linux-gnu/sysroot
> --with-gnu-ld --disable-libssp --disable-multilib --disable-decimal-float
> --with-gmp=/tmp/buildroot/output/host --with-mpc=/tmp/buildroot/output/host
> --with-mpfr=/tmp/buildroot/output/host --with-pkgversion="Buildroot
> 2022.08-383-ge4ecf82f99-dirty" --with-bugurl=http://bugs.buildroot.net/
> --without-zstd --disable-libquadmath --disable-libquadmath-support
> --without-isl --without-cloog --with-arch=mips32r3 --with-abi=32
> --with-nan=legacy --with-fp-32=xx --enable-languages=c
> --enable-initfini-array --disable-libssp --disable-shared --without-headers
> --disable-threads --disable-libatomic --disable-decimal-float
> --disable-libffi --disable-libgomp --disable-libitm --disable-libmpx
> --disable-libquadmath --disable-libsanitizer --with-newlib
> 
> on the buildroot directory, reinstall it, and the glibc does finish. That's
> why I think there is something bogues on buildroot that I can't figure out.

Yeah, so building manually like that tends to bypass a lot of our build
environment and often ends up with built in host os utilities/dependencies
getting pulled in instead of the intended buildroot toolchain versions.

So a build succeeding outside of our env like that may not really mean a whole
lot in terms of it being a buildroot side bug as building manually may be using
a totally different environment that bypasses/sidesteps a bug.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

^ permalink raw reply	[flat|nested] 23+ messages in thread

* [Bug libc/29621] librtld.os: in function `__register_frame': libgcc/unwind-dw2-fde.c:136: undefined reference to `malloc'
  2022-09-27 19:44 [Bug libc/29621] New: librtld.os: in function `__register_frame': libgcc/unwind-dw2-fde.c:136: undefined reference to `malloc' james.hilliard1 at gmail dot com
                   ` (10 preceding siblings ...)
  2022-10-27 21:35 ` james.hilliard1 at gmail dot com
@ 2022-10-28  5:28 ` fweimer at redhat dot com
  2022-10-28 13:19 ` adhemerval.zanella at linaro dot org
                   ` (9 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: fweimer at redhat dot com @ 2022-10-28  5:28 UTC (permalink / raw)
  To: glibc-bugs

https://sourceware.org/bugzilla/show_bug.cgi?id=29621

Florian Weimer <fweimer at redhat dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |fweimer at redhat dot com

--- Comment #11 from Florian Weimer <fweimer at redhat dot com> ---
(In reply to Adhemerval Zanella from comment #7)
> Ok, with this one I can see the buildroot failure. It seems that it is
> misconfiguring the stage1 gcc, where the libgcc.a generated is relying on
> the libc for unwinding (thus why ld.so link is failing).

No, this is expected. The libgcc unwinder has depended on glibc symbols for
many, many years. The unwinder cannot be linked into ld.so.

Someone needs to use ld tracing to figure out why __register_frame is pulled
into the ld.so link.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

^ permalink raw reply	[flat|nested] 23+ messages in thread

* [Bug libc/29621] librtld.os: in function `__register_frame': libgcc/unwind-dw2-fde.c:136: undefined reference to `malloc'
  2022-09-27 19:44 [Bug libc/29621] New: librtld.os: in function `__register_frame': libgcc/unwind-dw2-fde.c:136: undefined reference to `malloc' james.hilliard1 at gmail dot com
                   ` (11 preceding siblings ...)
  2022-10-28  5:28 ` fweimer at redhat dot com
@ 2022-10-28 13:19 ` adhemerval.zanella at linaro dot org
  2022-10-28 13:36 ` adhemerval.zanella at linaro dot org
                   ` (8 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: adhemerval.zanella at linaro dot org @ 2022-10-28 13:19 UTC (permalink / raw)
  To: glibc-bugs

https://sourceware.org/bugzilla/show_bug.cgi?id=29621

--- Comment #12 from Adhemerval Zanella <adhemerval.zanella at linaro dot org> ---
(In reply to Florian Weimer from comment #11)
> (In reply to Adhemerval Zanella from comment #7)
> > Ok, with this one I can see the buildroot failure. It seems that it is
> > misconfiguring the stage1 gcc, where the libgcc.a generated is relying on
> > the libc for unwinding (thus why ld.so link is failing).
> 
> No, this is expected. The libgcc unwinder has depended on glibc symbols for
> many, many years. The unwinder cannot be linked into ld.so.
> 
> Someone needs to use ld tracing to figure out why __register_frame is pulled
> into the ld.so link.

What I am trying to say is buildroot generated stage1 compiler with libgcc.a
for mipsle that is not what glibc expects.  The buildroot symbol trace for
librtld.so shows:

$ /tmp/buildroot/output/host/mipsel-buildroot-linux-gnu/bin/ld [...]
--trace-symbol=__register_frame
/tmp/buildroot/output/host/mipsel-buildroot-linux-gnu/bin/ld:
/tmp/buildroot/output/host/lib/gcc/mipsel-buildroot-linux-gnu/11.3.0/libgcc.a(unwind-dw2-fde-dip.o):
definition of __register_frame

However even the stage2 gcc11 from the build-many-glibc does not links against
the unwinder:

$ mips64el-glibc-linux-gnu-ld -plugin [...] --trace-symbol=__register_frame
$ 

It does not container any unwinder routines:

$ ./bin/mips64el-glibc-linux-gnu-objdump -t
./lib/gcc/mips64el-glibc-linux-gnu/11.3.1/libgcc.a | grep unwind
$ 

It is in fact on libgcc_eh.a:

$ ./bin/mips64el-glibc-linux-gnu-objdump -t
./lib/gcc/mips64el-glibc-linux-gnu/11.3.1/libgcc_eh.a | grep unwind
unwind-dw2.o:     file format elf32-ntradlittlemips
00000000 l    df *ABS*  00000000
/home/azanella/toolchain/src/gcc/libgcc/unwind-dw2.c
unwind-dw2-fde-dip.o:     file format elf32-ntradlittlemips
00000000 l    df *ABS*  00000000
/home/azanella/toolchain/src/gcc/libgcc/unwind-dw2-fde.c
unwind-sjlj.o:     file format elf32-ntradlittlemips
unwind-c.o:     file format elf32-ntradlittlemips
00000000 l    df *ABS*  00000000
/home/azanella/toolchain/src/gcc/libgcc/unwind-pe.h

$ ./bin/mips64el-glibc-linux-gnu-objdump -t
./lib/gcc/mips64el-glibc-linux-gnu/11.3.1/libgcc_eh.a | grep __register_frame
00002090 g     F .text  000000d8 .hidden __register_frame_info_bases
00002168 g     F .text  000000d8 .hidden __register_frame_info
00002240 g     F .text  0000006c .hidden __register_frame
000022b0 g     F .text  000000b0 .hidden __register_frame_info_table_bases
00002360 g     F .text  000000b0 .hidden __register_frame_info_table
00002410 g     F .text  000000d0 .hidden __register_frame_table

I am not sure if this is a multilib issue.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

^ permalink raw reply	[flat|nested] 23+ messages in thread

* [Bug libc/29621] librtld.os: in function `__register_frame': libgcc/unwind-dw2-fde.c:136: undefined reference to `malloc'
  2022-09-27 19:44 [Bug libc/29621] New: librtld.os: in function `__register_frame': libgcc/unwind-dw2-fde.c:136: undefined reference to `malloc' james.hilliard1 at gmail dot com
                   ` (12 preceding siblings ...)
  2022-10-28 13:19 ` adhemerval.zanella at linaro dot org
@ 2022-10-28 13:36 ` adhemerval.zanella at linaro dot org
  2022-10-28 16:18 ` james.hilliard1 at gmail dot com
                   ` (7 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: adhemerval.zanella at linaro dot org @ 2022-10-28 13:36 UTC (permalink / raw)
  To: glibc-bugs

https://sourceware.org/bugzilla/show_bug.cgi?id=29621

--- Comment #13 from Adhemerval Zanella <adhemerval.zanella at linaro dot org> ---
And I just hacked build-many-glibcs.py to generate a mipsel-linux-gnu toolchain
to mimic buildroot configuration:

diff --git a/scripts/build-many-glibcs.py b/scripts/build-many-glibcs.py
index da9b905900..ae55183568 100755
--- a/scripts/build-many-glibcs.py
+++ b/scripts/build-many-glibcs.py
@@ -283,12 +283,14 @@ class Context(object):
                                  'ccopts': '-mabi=32'},
                                 {'variant': 'n64-nan2008-soft',
                                  'ccopts': '-mabi=64'}])
+        self.add_config(arch='mipsel',
+                        os_name='linux-gnu',
+                        gcc_cfg=['--with-mips-plt', '--with-arch=mips32r3',
'--with-abi=32',
+                                 '--with-nan=legacy', '--with-fp-32=xx',
'--disable-multilib'])
         self.add_config(arch='mips64el',
                         os_name='linux-gnu',
                         gcc_cfg=['--with-mips-plt'],
                         glibcs=[{'variant': 'n32'},
-                                {'arch': 'mipsel',
-                                 'ccopts': '-mabi=32'},
                                 {'variant': 'n64',
                                  'ccopts': '-mabi=64'}])
         self.add_config(arch='mips64el',

And the bootstrap finished without any issue using gcc11 release branch,
binutils 2.39, and glibc 2.36.  Checking the generated stage1 gcc, the libgcc.a
does not have any __register_frame:

$ build/compilers/mipsel-linux-gnu$ ./binutils/binutils/objdump -t
./gcc/mipsel-glibc-linux-gnu/libgcc/libgcc.a | grep __register_frame
$
$ ./binutils/binutils/objdump -t
./gcc/mipsel-glibc-linux-gnu/libgcc/libgcc_eh.a | grep __register_frame
00001f9c g     F .text  000000e0 .hidden __register_frame_info_bases
0000207c g     F .text  000000e0 .hidden __register_frame_info
0000215c g     F .text  00000068 .hidden __register_frame
000021c4 g     F .text  000000c0 .hidden __register_frame_info_table_bases
00002284 g     F .text  000000c0 .hidden __register_frame_info_table
00002344 g     F .text  000000e0 .hidden __register_frame_table

So now I even more confident it is something on buildroot environment that is
generating a wrong stage1 gcc build.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

^ permalink raw reply	[flat|nested] 23+ messages in thread

* [Bug libc/29621] librtld.os: in function `__register_frame': libgcc/unwind-dw2-fde.c:136: undefined reference to `malloc'
  2022-09-27 19:44 [Bug libc/29621] New: librtld.os: in function `__register_frame': libgcc/unwind-dw2-fde.c:136: undefined reference to `malloc' james.hilliard1 at gmail dot com
                   ` (13 preceding siblings ...)
  2022-10-28 13:36 ` adhemerval.zanella at linaro dot org
@ 2022-10-28 16:18 ` james.hilliard1 at gmail dot com
  2022-10-28 16:32 ` adhemerval.zanella at linaro dot org
                   ` (6 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: james.hilliard1 at gmail dot com @ 2022-10-28 16:18 UTC (permalink / raw)
  To: glibc-bugs

https://sourceware.org/bugzilla/show_bug.cgi?id=29621

--- Comment #14 from James Hilliard <james.hilliard1 at gmail dot com> ---
> So now I even more confident it is something on buildroot environment that
> is generating a wrong stage1 gcc build.

You can see the exact env being set during buildroot's configure stage and copy
that for testing:

>>> host-gcc-initial 11.3.0 Configuring
mkdir -p /tmp/buildroot/output/build/host-gcc-initial-11.3.0/build
ln -sf ../configure
/tmp/buildroot/output/build/host-gcc-initial-11.3.0/build/configure
(cd /tmp/buildroot/output/build/host-gcc-initial-11.3.0/build && rm -rf
config.cache;
PATH="/tmp/buildroot/output/host/bin:/tmp/buildroot/output/host/sbin:/home/buildroot/bin:/home/buildroot/.local/bin:/home/buildroot/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin"
PKG_CONFIG="/tmp/buildroot/output/host/bin/pkg-config"
PKG_CONFIG_SYSROOT_DIR="/" PKG_CONFIG_ALLOW_SYSTEM_CFLAGS=1
PKG_CONFIG_ALLOW_SYSTEM_LIBS=1
PKG_CONFIG_LIBDIR="/tmp/buildroot/output/host/lib/pkgconfig:/tmp/buildroot/output/host/share/pkgconfig"
AR="/usr/bin/ar" AS="/usr/bin/as" LD="/usr/bin/ld" NM="/usr/bin/nm"
CC="/usr/bin/gcc" GCC="/usr/bin/gcc" CXX="/usr/bin/g++" CPP="/usr/bin/cpp"
OBJCOPY="/usr/bin/objcopy" RANLIB="/usr/bin/ranlib"
CPPFLAGS="-I/tmp/buildroot/output/host/include" CFLAGS="-O2
-I/tmp/buildroot/output/host/include" CXXFLAGS="-O2
-I/tmp/buildroot/output/host/include" LDFLAGS="-L/tmp/buildroot/output/host/lib
-Wl,-rpath,/tmp/buildroot/output/host/lib" INTLTOOL_PERL=/usr/bin/perl
CFLAGS="-O2 -I/tmp/buildroot/output/host/include"
LDFLAGS="-L/tmp/buildroot/output/host/lib
-Wl,-rpath,/tmp/buildroot/output/host/lib" MAKEINFO=missing
CFLAGS_FOR_TARGET="-D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE
-D_FILE_OFFSET_BITS=64  -O0 -g0 " CXXFLAGS_FOR_TARGET="-D_LARGEFILE_SOURCE
-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64  -O0 -g0 " AR_FOR_TARGET=gcc-ar
NM_FOR_TARGET=gcc-nm RANLIB_FOR_TARGET=gcc-ranlib CONFIG_SITE=/dev/null
./configure --prefix="/tmp/buildroot/output/host"
--sysconfdir="/tmp/buildroot/output/host/etc"
--localstatedir="/tmp/buildroot/output/host/var" --enable-shared
--disable-static --disable-gtk-doc --disable-gtk-doc-html --disable-doc
--disable-docs --disable-documentation --disable-debug --with-xmlto=no
--with-fop=no --disable-nls --disable-dependency-tracking 
--target=mipsel-buildroot-linux-gnu
--with-sysroot=/tmp/buildroot/output/host/mipsel-buildroot-linux-gnu/sysroot
--enable-__cxa_atexit --with-gnu-ld --disable-libssp --disable-multilib
--disable-decimal-float --enable-plugins --enable-lto
--with-gmp=/tmp/buildroot/output/host --with-mpc=/tmp/buildroot/output/host
--with-mpfr=/tmp/buildroot/output/host --with-pkgversion="Buildroot
2022.08-383-ge4ecf82f99" --with-bugurl="http://bugs.buildroot.net/"
--without-zstd --disable-libquadmath --disable-libquadmath-support --enable-tls
--enable-threads --without-isl --without-cloog --with-arch="mips32r3"
--with-abi="32" --with-nan="legacy" --with-fp-32="xx" --enable-languages=c
--disable-shared --without-headers --disable-threads --with-newlib
--disable-largefile  )

Something different with the buildroot compilation environmental variables
seems to be why your build is working. If you set them manually when running
./configure one gets the same failure as when building using buildroot.

This fails for example:
PATH="/tmp/buildroot/output/host/bin:/tmp/buildroot/output/host/sbin:/home/buildroot/bin:/home/buildroot/.local/bin:/home/buildroot/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin"
PKG_CONFIG="/tmp/buildroot/output/host/bin/pkg-config"
PKG_CONFIG_SYSROOT_DIR="/" PKG_CONFIG_ALLOW_SYSTEM_CFLAGS=1
PKG_CONFIG_ALLOW_SYSTEM_LIBS=1
PKG_CONFIG_LIBDIR="/tmp/buildroot/output/host/lib/pkgconfig:/tmp/buildroot/output/host/share/pkgconfig"
AR="/usr/bin/ar" AS="/usr/bin/as" LD="/usr/bin/ld" NM="/usr/bin/nm"
CC="/usr/bin/gcc" GCC="/usr/bin/gcc" CXX="/usr/bin/g++" CPP="/usr/bin/cpp"
OBJCOPY="/usr/bin/objcopy" RANLIB="/usr/bin/ranlib"
CPPFLAGS="-I/tmp/buildroot/output/host/include" CFLAGS="-O2
-I/tmp/buildroot/output/host/include" CXXFLAGS="-O2
-I/tmp/buildroot/output/host/include" LDFLAGS="-L/tmp/buildroot/output/host/lib
-Wl,-rpath,/tmp/buildroot/output/host/lib" INTLTOOL_PERL=/usr/bin/perl
CFLAGS="-O2 -I/tmp/buildroot/output/host/include"
LDFLAGS="-L/tmp/buildroot/output/host/lib
-Wl,-rpath,/tmp/buildroot/output/host/lib" MAKEINFO=missing
CFLAGS_FOR_TARGET="-D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE
-D_FILE_OFFSET_BITS=64  -O0 -g0 " CXXFLAGS_FOR_TARGET="-D_LARGEFILE_SOURCE
-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64  -O0 -g0 " AR_FOR_TARGET=gcc-ar
NM_FOR_TARGET=gcc-nm RANLIB_FOR_TARGET=gcc-ranlib CONFIG_SITE=/dev/null
./configure --prefix=/tmp/buildroot/output/host
--sysconfdir=/tmp/buildroot/output/host/etc
--localstatedir=/tmp/buildroot/output/host/var --disable-gtk-doc
--disable-gtk-doc-html --disable-doc --disable-docs --disable-documentation
--disable-debug --with-xmlto=no --with-fop=no --disable-nls
--disable-dependency-tracking --target=mipsel-buildroot-linux-gnu
--with-sysroot=/tmp/buildroot/output/host/mipsel-buildroot-linux-gnu/sysroot
--with-gnu-ld --disable-libssp --disable-multilib --disable-decimal-float
--with-gmp=/tmp/buildroot/output/host --with-mpc=/tmp/buildroot/output/host
--with-mpfr=/tmp/buildroot/output/host --with-pkgversion="Buildroot
2022.08-383-ge4ecf82f99-dirty" --with-bugurl=http://bugs.buildroot.net/
--without-zstd --disable-libquadmath --disable-libquadmath-support
--without-isl --without-cloog --with-arch=mips32r3 --with-abi=32
--with-nan=legacy --with-fp-32=xx --enable-languages=c --enable-initfini-array
--disable-libssp --disable-shared --without-headers --disable-threads
--disable-libatomic --disable-decimal-float --disable-libffi --disable-libgomp
--disable-libitm --disable-libmpx --disable-libquadmath --disable-libsanitizer
--with-newlib

-- 
You are receiving this mail because:
You are on the CC list for the bug.

^ permalink raw reply	[flat|nested] 23+ messages in thread

* [Bug libc/29621] librtld.os: in function `__register_frame': libgcc/unwind-dw2-fde.c:136: undefined reference to `malloc'
  2022-09-27 19:44 [Bug libc/29621] New: librtld.os: in function `__register_frame': libgcc/unwind-dw2-fde.c:136: undefined reference to `malloc' james.hilliard1 at gmail dot com
                   ` (14 preceding siblings ...)
  2022-10-28 16:18 ` james.hilliard1 at gmail dot com
@ 2022-10-28 16:32 ` adhemerval.zanella at linaro dot org
  2022-10-28 21:23 ` james.hilliard1 at gmail dot com
                   ` (5 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: adhemerval.zanella at linaro dot org @ 2022-10-28 16:32 UTC (permalink / raw)
  To: glibc-bugs

https://sourceware.org/bugzilla/show_bug.cgi?id=29621

--- Comment #15 from Adhemerval Zanella <adhemerval.zanella at linaro dot org> ---
(In reply to James Hilliard from comment #14)
> > So now I even more confident it is something on buildroot environment that
> > is generating a wrong stage1 gcc build.
> 
> 
> Something different with the buildroot compilation environmental variables
> seems to be why your build is working. If you set them manually when running
> ./configure one gets the same failure as when building using buildroot.
> 

I am sorry but you will need to figure out yourself what buildroot is doing
that is not expected here, since:

  1. glibc bootscript (build-many-glibcs.py) can bootstrap both
mipsel-linux-gnu
     and mips64el-linux-gnu toolchain.

  2. Building manually on buildroot does not show the issue. 

If can use the build-many-glibcs.py to check the canonical way to bootstrap
glibc.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

^ permalink raw reply	[flat|nested] 23+ messages in thread

* [Bug libc/29621] librtld.os: in function `__register_frame': libgcc/unwind-dw2-fde.c:136: undefined reference to `malloc'
  2022-09-27 19:44 [Bug libc/29621] New: librtld.os: in function `__register_frame': libgcc/unwind-dw2-fde.c:136: undefined reference to `malloc' james.hilliard1 at gmail dot com
                   ` (15 preceding siblings ...)
  2022-10-28 16:32 ` adhemerval.zanella at linaro dot org
@ 2022-10-28 21:23 ` james.hilliard1 at gmail dot com
  2022-11-24 17:01 ` arnout at mind dot be
                   ` (4 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: james.hilliard1 at gmail dot com @ 2022-10-28 21:23 UTC (permalink / raw)
  To: glibc-bugs

https://sourceware.org/bugzilla/show_bug.cgi?id=29621

--- Comment #16 from James Hilliard <james.hilliard1 at gmail dot com> ---
(In reply to Adhemerval Zanella from comment #15)
> I am sorry but you will need to figure out yourself what buildroot is doing
> that is not expected here, since:
> 
>   1. glibc bootscript (build-many-glibcs.py) can bootstrap both
> mipsel-linux-gnu
>      and mips64el-linux-gnu toolchain.
> 
>   2. Building manually on buildroot does not show the issue. 
> 
> If can use the build-many-glibcs.py to check the canonical way to bootstrap
> glibc.

I think I've isolated the issue, the build fails when gcc target
libs(CFLAGS_FOR_TARGET and CXXFLAGS_FOR_TARGET) are built with -O0, this also
explains why it only reproduces when built in the buildroot env since we pass
global optimization flags to all packages(and override as needed for packages
with special requirements).

Overriding those to at least -O1 in gcc(similar to how we always override to at
least -O1 in glibc) appears to fix the glibc build failure.

This seems strange, is it expected behavior to require gcc target libs to be
built optimized?

Why would this only be an issue on a small subset of target architectures?

This also doesn't appear to be an issue that happens with uclibc or musl libc
from what I can tell.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

^ permalink raw reply	[flat|nested] 23+ messages in thread

* [Bug libc/29621] librtld.os: in function `__register_frame': libgcc/unwind-dw2-fde.c:136: undefined reference to `malloc'
  2022-09-27 19:44 [Bug libc/29621] New: librtld.os: in function `__register_frame': libgcc/unwind-dw2-fde.c:136: undefined reference to `malloc' james.hilliard1 at gmail dot com
                   ` (16 preceding siblings ...)
  2022-10-28 21:23 ` james.hilliard1 at gmail dot com
@ 2022-11-24 17:01 ` arnout at mind dot be
  2022-11-24 17:21 ` arnout at mind dot be
                   ` (3 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: arnout at mind dot be @ 2022-11-24 17:01 UTC (permalink / raw)
  To: glibc-bugs

https://sourceware.org/bugzilla/show_bug.cgi?id=29621

Arnout Vandecappelle <arnout at mind dot be> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |arnout at mind dot be

--- Comment #17 from Arnout Vandecappelle <arnout at mind dot be> ---
I can reproduce the issue with:

CFLAGS_FOR_TARGET='-O0' scripts/build-many-glibcs.py /var/tmp/glibc-tests
compilers nios2-linux-gnu

It fails at compilers-nios2-linux-gnu glibc nios2-linux-gnu build with

/.../nios2-glibc-linux-gnu/bin/ld:
/.../nios2-linux-gnu/glibc/nios2-linux-gnu/elf/librtld.os: in function
`__register_frame':
/.../libgcc/unwind-dw2-fde.c:136: undefined reference to `malloc'


I don't know if we can conclude if the problem is in GCC or in glibc. There is
a GCC bug as well: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107728 but they
answer with:

> This is not a GCC issue as __register_frame_table is declared as extern.
> This is almost definitely a glibc issue really.
> But I doubt glibc can be compiled at -O0 because of these issues.
> [Moreover], the functions are not optimized out at -O2 but rather they
> don't get pulled in glibc building because another function is referenced.
> 
> Either libgcc should be built with -fdata-sections -ffunction-sections or 
> glibc builds needs to be fixed such that it does not reference the function
> in the unwinder at -O0.  You need to look at the linker map to figure why
> the object file is being pulled into glibc at -O0 and not at -O2.
> But it is still a bug in glibc's ld.so really.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

^ permalink raw reply	[flat|nested] 23+ messages in thread

* [Bug libc/29621] librtld.os: in function `__register_frame': libgcc/unwind-dw2-fde.c:136: undefined reference to `malloc'
  2022-09-27 19:44 [Bug libc/29621] New: librtld.os: in function `__register_frame': libgcc/unwind-dw2-fde.c:136: undefined reference to `malloc' james.hilliard1 at gmail dot com
                   ` (17 preceding siblings ...)
  2022-11-24 17:01 ` arnout at mind dot be
@ 2022-11-24 17:21 ` arnout at mind dot be
  2022-11-24 17:27 ` fweimer at redhat dot com
                   ` (2 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: arnout at mind dot be @ 2022-11-24 17:21 UTC (permalink / raw)
  To: glibc-bugs

https://sourceware.org/bugzilla/show_bug.cgi?id=29621

--- Comment #18 from Arnout Vandecappelle <arnout at mind dot be> ---
trace-symbol points to the same libgcc object that pulls in __register_frame:
libgcc.a(unwind-dw2-fde-dip.o)

The question however is why unwind-dw2-fde-dip.o gets pulled in. The map file
tells us that:

/.../libgcc.a(unwind-dw2.o)
                              /.../libgcc.a(_umoddi3.o) (_Unwind_Resume)
/.../libgcc.a(unwind-dw2-fde-dip.o)
                              /.../libgcc.a(unwind-dw2.o) (_Unwind_Find_FDE)

So my guess is that the problem really is in libgcc?

-- 
You are receiving this mail because:
You are on the CC list for the bug.

^ permalink raw reply	[flat|nested] 23+ messages in thread

* [Bug libc/29621] librtld.os: in function `__register_frame': libgcc/unwind-dw2-fde.c:136: undefined reference to `malloc'
  2022-09-27 19:44 [Bug libc/29621] New: librtld.os: in function `__register_frame': libgcc/unwind-dw2-fde.c:136: undefined reference to `malloc' james.hilliard1 at gmail dot com
                   ` (18 preceding siblings ...)
  2022-11-24 17:21 ` arnout at mind dot be
@ 2022-11-24 17:27 ` fweimer at redhat dot com
  2023-08-07  9:37 ` sam at gentoo dot org
  2024-01-11  9:41 ` fweimer at redhat dot com
  21 siblings, 0 replies; 23+ messages in thread
From: fweimer at redhat dot com @ 2022-11-24 17:27 UTC (permalink / raw)
  To: glibc-bugs

https://sourceware.org/bugzilla/show_bug.cgi?id=29621

--- Comment #19 from Florian Weimer <fweimer at redhat dot com> ---
(In reply to Arnout Vandecappelle from comment #18)
> trace-symbol points to the same libgcc object that pulls in
> __register_frame: libgcc.a(unwind-dw2-fde-dip.o)
> 
> The question however is why unwind-dw2-fde-dip.o gets pulled in. The map
> file tells us that:
> 
> /.../libgcc.a(unwind-dw2.o)
>                               /.../libgcc.a(_umoddi3.o) (_Unwind_Resume)
> /.../libgcc.a(unwind-dw2-fde-dip.o)
>                               /.../libgcc.a(unwind-dw2.o) (_Unwind_Find_FDE)
> 
> So my guess is that the problem really is in libgcc?

It suggests that libgcc was built with -fexceptions, but without optimizations.
We can't support that on the glibc side at present. The libgcc functions we use
must not have a dependency on the unwinder.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

^ permalink raw reply	[flat|nested] 23+ messages in thread

* [Bug libc/29621] librtld.os: in function `__register_frame': libgcc/unwind-dw2-fde.c:136: undefined reference to `malloc'
  2022-09-27 19:44 [Bug libc/29621] New: librtld.os: in function `__register_frame': libgcc/unwind-dw2-fde.c:136: undefined reference to `malloc' james.hilliard1 at gmail dot com
                   ` (19 preceding siblings ...)
  2022-11-24 17:27 ` fweimer at redhat dot com
@ 2023-08-07  9:37 ` sam at gentoo dot org
  2024-01-11  9:41 ` fweimer at redhat dot com
  21 siblings, 0 replies; 23+ messages in thread
From: sam at gentoo dot org @ 2023-08-07  9:37 UTC (permalink / raw)
  To: glibc-bugs

https://sourceware.org/bugzilla/show_bug.cgi?id=29621

Sam James <sam at gentoo dot org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |sam at gentoo dot org

-- 
You are receiving this mail because:
You are on the CC list for the bug.

^ permalink raw reply	[flat|nested] 23+ messages in thread

* [Bug libc/29621] librtld.os: in function `__register_frame': libgcc/unwind-dw2-fde.c:136: undefined reference to `malloc'
  2022-09-27 19:44 [Bug libc/29621] New: librtld.os: in function `__register_frame': libgcc/unwind-dw2-fde.c:136: undefined reference to `malloc' james.hilliard1 at gmail dot com
                   ` (20 preceding siblings ...)
  2023-08-07  9:37 ` sam at gentoo dot org
@ 2024-01-11  9:41 ` fweimer at redhat dot com
  21 siblings, 0 replies; 23+ messages in thread
From: fweimer at redhat dot com @ 2024-01-11  9:41 UTC (permalink / raw)
  To: glibc-bugs

https://sourceware.org/bugzilla/show_bug.cgi?id=29621

Florian Weimer <fweimer at redhat dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         Resolution|---                         |INVALID
             Status|UNCONFIRMED                 |RESOLVED

--- Comment #20 from Florian Weimer <fweimer at redhat dot com> ---
Closing based on comment 19.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

^ permalink raw reply	[flat|nested] 23+ messages in thread

end of thread, other threads:[~2024-01-11  9:42 UTC | newest]

Thread overview: 23+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-09-27 19:44 [Bug libc/29621] New: librtld.os: in function `__register_frame': libgcc/unwind-dw2-fde.c:136: undefined reference to `malloc' james.hilliard1 at gmail dot com
2022-09-27 19:44 ` [Bug libc/29621] " james.hilliard1 at gmail dot com
2022-09-29 17:45 ` adhemerval.zanella at linaro dot org
2022-09-29 19:51 ` james.hilliard1 at gmail dot com
2022-10-17 12:42 ` adhemerval.zanella at linaro dot org
2022-10-26 18:54 ` james.hilliard1 at gmail dot com
2022-10-26 19:10 ` adhemerval.zanella at linaro dot org
2022-10-26 19:33 ` james.hilliard1 at gmail dot com
2022-10-27 14:04 ` adhemerval.zanella at linaro dot org
2022-10-27 19:57 ` james.hilliard1 at gmail dot com
2022-10-27 21:05 ` adhemerval.zanella at linaro dot org
2022-10-27 21:35 ` james.hilliard1 at gmail dot com
2022-10-28  5:28 ` fweimer at redhat dot com
2022-10-28 13:19 ` adhemerval.zanella at linaro dot org
2022-10-28 13:36 ` adhemerval.zanella at linaro dot org
2022-10-28 16:18 ` james.hilliard1 at gmail dot com
2022-10-28 16:32 ` adhemerval.zanella at linaro dot org
2022-10-28 21:23 ` james.hilliard1 at gmail dot com
2022-11-24 17:01 ` arnout at mind dot be
2022-11-24 17:21 ` arnout at mind dot be
2022-11-24 17:27 ` fweimer at redhat dot com
2023-08-07  9:37 ` sam at gentoo dot org
2024-01-11  9:41 ` fweimer at redhat dot com

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).