Dimitry Andric <dim_at_FreeBSD.org> wrote on
Date: Thu, 06 Nov 2025 15:56:54 UTC :

> On 5 Nov 2025, at 08:56, Herbert J. Skuhra <[email protected]> wrote:
> > 
> > On Fri, 31 Oct 2025 14:48:06 +0100, Jose Luis Duran wrote:
> >> 
> >> On Wed, Oct 29, 2025 at 3:50 PM Dimitry Andric <[email protected]> wrote:
> >>> 
> >>> The branch main has been updated by dim:
> >>> 
> >>> URL: 
> >>> https://cgit.FreeBSD.org/src/commit/?id=51e8e8b0f36933814b1be08913857727876aece5
> >>> 
> >>>
. . .
> >>> 
> >>> Merge commit e24f90190c77 from llvm git (by Brad Smith):
> >>> 
> >>> [Driver] Enable outline atomics for FreeBSD/aarch64 (#156089)
> >>> 
> >>> The compiler_rt helper functions have been built since 12.4, 13.1, 14
> >>> and anything newer.
> >>> 
> >>>
. . .
> >> I'm sure you're probably aware by now, but aarch64 builds are failing
> >> after this commit:
> >> 
> >> https://ci.freebsd.org/job/FreeBSD-main-aarch64-build/33100/
> > 
> > I am now getting this error on stable/15 (aarch64) after this change was
> > reverted in f6a81b18a467.
> > 
> > I have already tried:
> > 
> > % rm -rf /usr/obj/usr
> > % rm -rf ~/.cache/ccache
> > % make SRCCONF=/dev/null __MAKE_CONF=/dev/null buildworld
> > 
> > I am now trying to rebuild world with llvm19 from ports.
> 
> I have repeatedly tried to reproduce this problem, but I have been 
> unsuccessful.

I tried to set up a simple context to experiment with but ended up
blocked for what I intended. Nothing blocked making a .o for
which:

     6: 0000000000000000     4 FUNC    GLOBAL HIDDEN      2 
shared_static_routine

Nothing blocked making a .a for which:

     6: 0000000000000000     4 FUNC    GLOBAL HIDDEN      2 
shared_static_routine

But every one of my attempts to form a .so with such a GLOBAL HIDDEN status
based on the .a instead ended up with the likes of:

    30: 0000000000010538     4 FUNC    LOCAL  HIDDEN     12 
shared_static_routine

So I did not get to the stage of a program that uses a .so with GLOBAL HIDDEN
status involved.

I tried commands that used each of: /usr/bin/ld ,  /usr/bin/ld.lld ,
/usr/local/bin/ld.bfd , and /usr/local/bin/aarch64-unknown-freebsd16.0-ld .

I did similarly on amd64.

All of them converted the GLOBAL to be a LOCAL in the .so .

The context used is main 16.

It looks like the toolchain is deliberately avoiding generating the
GLOBAL HIDDEN combination in the .so .

> If anybody has a system where this reliably occurs, and can give me access to 
> it (no privileged user needed, as long as git is installed), that would be 
> nice.




===
Mark Millard
marklmi at yahoo.com


Reply via email to