R_*_NONE relocation types do not modify the location but can be used to indicate a dependency between two sections. For example, ARM EHABI uses R_ARM_NONE from an exception handling table section to the required personality routine. In assembly, we have to spell the relocation type name. So to support multiple architectures, we have to dispatch on architecture macros, e.g. #if defined(__x86_64__) asm(".reloc ., R_X86_64_NONE, target"); #elif defined(__aarch64__) asm(".reloc ., R_AARCH64_NONE, target"); #elif defined(__ppc64__) asm(".reloc ., R_PPC64_NONE, target"); #endif Note that R_*_NONE is always 0 (if an arch does not do this, it is probably finding itself trouble), so if gas support `.reloc ., 0, target`, such dispatching will be unnecessary.
OK, I see that https://sourceware.org/git/?p=binutils-gdb.git;a=blobdiff;f=gas/read.c;h=2224c0ed241845eb2e73f59b807dedd617f2a0e0;hp=b2d50272d7fde8ba2af87a29c905c8dd245e08ae;hb=740bdc67c057ee8012327420848eb134e1db4211;hpb=0ba38529f27a815a576bc07c85ceb65f6498ef5a added support for .reloc ., BFD_RELOC_NONE, something ...
Closing since a solution is available.