On Mon, 2022-11-14 at 18:01:26 +0800, 张丹丹 wrote:
>   > I think the part that was missing, which was asked on the list, and a
>   > rather important part of this! :) Is the ABI this conforms to.
>   > 
>   > I'm attaching a patch that updates the test suite so that it passes,
>   > and adds what I think (but I don't know as I didn't check deeper) might
>   > change the ABI for built objects, which ties into the ABI this
>   > architecture is intended to conform to.
>   > 
>   > I guess the main question is whether objects with these different
>   > EF_LOONGARCH_* flags can be mixed when linking or they are ABI
>   > incompatible, as the code in the patch now assume.
> 
>   1、The value of ELF_FLAGS_LOONGARCH_* flags (you provided) conform to the 
> loongarch ABI standard.
>   2、After confirmation, the following three ELF_FLAG_LOONGARCH_* can not be 
> mixed when linking,Because of different ABIs do not allow linking, otherwise 
> an 
>   error will occur. As follows,
>    ELF_FLAG_LOONGARCH_SOFT_FLOAT   => 0x00000001,   // soft float
>    ELF_FLAG_LOONGARCH_SINGLE_FLOAT => 0x00000002,   // single float
>    ELF_FLAG_LOONGARCH_DOUBLE_FLOAT => 0x00000003,   // double float

I assume anything not matching exactly values within OBJABI_MASK
would not be linkable either. If I'm reading the binutils source
correctly it seems to confirm this, although the comment there reads
to be negated:

    /* Disallow linking different ABIs.  */
    /* Only check relocation version.
       The obj_v0 is compatible with obj_v1.  */

So shouldn't the latter be s/compatible/incompatible/?

Also is the port going to be ABI v1?

Thanks,
Guillem

Reply via email to