[m-dev.] test server
Zoltan Somogyi
zoltan.somogyi at runbox.com
Wed Apr 2 17:24:32 AEDT 2025
On Mon, 31 Mar 2025 14:15:26 +1100, Peter Wang <novalazy at gmail.com> wrote:
> On Mon, 31 Mar 2025 12:42:29 +1100 "Zoltan Somogyi" <zoltan.somogyi at runbox.com> wrote:
> >
> >
> > On Mon, 31 Mar 2025 12:21:54 +1100, Peter Wang <novalazy at gmail.com> wrote:
> >
> > > Hi, we have set up a new test server at:
> > >
> > > http://172.236.33.24
> > >
> > > Configuration: 2 virtual cores, 4 GB RAM, running Ubuntu Linux 24.04.
> > >
> > > vendor_id : AuthenticAMD
> > > cpu family : 25
> > > model : 1
> > > model name : AMD EPYC 7713 64-Core Processor
> > > stepping : 1
> >
> > Thank you very much. Can you, or Julien, please point
> > testing.mercurylang.org at it?
> >
> > I note that there seems to be an issue with a warning from
> > compiling Boehm gc. Does anyone know the root cause for that is?
>
> The full warning message is:
>
> /usr/bin/ld: warning: atomic_ops_sysdeps.o: missing .note.GNU-stack section implies executable stack
> /usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker
>
> It seems that old versions of GNU ld defaulted to an executable stack,
> while newer versions of GNU ld warn about depending on that default.
> To suppress the warning, we would pass -z noexecstack to the linker at
> the correct places, but I haven't tried it yet.
The file boehm_gc/libatomic_ops/src/atomic_ops_sysdeps.S, which in my workspace
is the only possible source for the .o file the linker is complaining about, is effectively
an empty file on non-SPARC systems, i.e. on all the systems that we use, AFAIK.
Instead of telling ld to use an executable stack, we could
- add the missing .note.GNU-stack section to atomic_ops_sysdeps.S,
provided Boehm does not actually need executable stacks on SPARCs
(which I think is likely),
- if Boehm does need executable stacks on SPARCs, we could add a
dummy definition to a new else arm of the #ifdef in that file,
which should fix the issue on non-SPARC systems if the only reason
for the warning is that ld is complaining about the *empty* .o file
missing that section, or
- we could modify the makefile to include atomic_ops_sysdeps.S among
the list of source modules only if the condition of the #ifdef is true.
There is already a flag for that, NEED_ASM, but I don't see why its value
calls for the inclusion of atomic_ops_sysdeps.S; configure.ac should set it
only on Solaris hosts. But then, I have never used automake, so my reading
of Makefile.am is superficial.
In general, we should ask ld to provide an executable stack only if Boehm
actually needs one.
Zoltan.
More information about the developers
mailing list