On Mon, 12 Feb 2018, Andreas Schwab wrote: > On Feb 06 2017, Palmer Dabbelt <pal...@dabbelt.com> wrote: > > > +/* Because RISC-V only has word-sized atomics, it requries libatomic where > > + others do not. So link libatomic by default, as needed. */ > > +#undef LIB_SPEC > > +#ifdef LD_AS_NEEDED_OPTION > > +#define LIB_SPEC GNU_USER_TARGET_LIB_SPEC \ > > + " %{pthread:" LD_AS_NEEDED_OPTION " -latomic " LD_NO_AS_NEEDED_OPTION "}" > > +#else > > +#define LIB_SPEC GNU_USER_TARGET_LIB_SPEC " -latomic " > > +#endif > > Why is -latomic added only with -pthread if --as-needed is supported, > but unconditionally if not? Wouldn't it make sense to add it > unconditionally in both cases?
Really -latomic should be used with --as-needed (provided -nostdlib isn't used, which gcc.c specs deal with) - generally, on all architectures (this is bug 81358). Using it without --as-needed is riskier (introducing spurious dependencies in binaries that don't actually use it). I don't think there should be any architecture dependency here. -- Joseph S. Myers jos...@codesourcery.com