Monday, January 01, 2024

Re: as cannot do endbr64 instructions (too old)

On Mon, Jan 01, 2024 at 10:04:07AM +0100, Otto Moerbeek wrote:
> On Mon, Jan 01, 2024 at 10:00:34AM +0100, Lorenz (xha) wrote:
>
> > On Sun, Dec 31, 2023 at 03:39:14PM +0100, Otto Moerbeek wrote:
> > > On Sun, Dec 31, 2023 at 04:51:14AM +0100, Lorenz (xha) wrote:
> > >
> > > > hi misc@,
> > > >
> > > > like the subject says, `as` in the base system cannot do endbr64
> > > > instructions. should it be updated?
> > > >
> > > > background: i am maintaining hare for openbsd and we always have
> > > > to install "gas" from the "binutils" package because the normal one
> > > > is too old. i'd be nice if we don't depend on any packages from
> > > > ports and don't have some specific workarounds in hare just for
> > > > openbsd because "as" is too old.
> > > >
> > > > if updating "as" is not an option, is there a way to invoke the
> > > > llvm assembler directly in the base system?
> > > >
> > > > thanks.
> > > >
> > > > - lorenz
> > > >
> > >
> > > cc will assesmbly a .s or .S file.
> > >
> >
> > it looks like cc cannot combine multiple assembly files into one. this
> > is a simplified version of the command line:
> >
> > $(AS) -o example.o example_a.s example_b.s
> >
> > it works when defining "AS = gas", but not when doing "AS = cc -c":
> >
> > "cc: error: cannot specify -o when generating multiple output files"
> >
> > is there a way to do this with llvm?
>
> Assemble the files individually and link them? Concat and assemble?

both should work but would require big changes in the way hare is built
and are not really an option, considering that it works on all other
platforms without these changes. i'd like to not have openbsd-specific
workarounds.

just out of couriosity, why is "as" in the base system if it is outdated
and is updating it an option?

No comments:

Post a Comment