RFR: 8284661: Reproducible assembly builds without relative linking [v3]

Andrew Leonard aleonard at openjdk.java.net
Mon Apr 11 21:58:41 UTC 2022


On Mon, 11 Apr 2022 15:41:20 GMT, Andrew Leonard <aleonard at openjdk.org> wrote:

>> This PR removes the need for relative object file linking introduced by JDK-8284437 for linux libraries, by specifying
>> .file <relative source path> directives in the linux .S source files. The source files specify a .file ASSEMBLY_SRC_FILE
>> where ASSEMBLY_SRC_FILE is defined by the NativeCompliation.gmk.
>> 
>> Signed-off-by: Andrew Leonard <anleonar at redhat.com>
>
> Andrew Leonard has updated the pull request incrementally with one additional commit since the last revision:
> 
>   8284661: Reproducible assembly builds without relative linking
>   
>   Signed-off-by: Andrew Leonard <anleonar at redhat.com>

> Looks like there is way too few .S files in this patch.
> 
> ```
> $ find . -name "*.S"
> ./jdk.incubator.vector/linux/native/libjsvml/jsvml_s_atan2_linux_x86.S
> ./jdk.incubator.vector/linux/native/libjsvml/jsvml_s_atan_linux_x86.S
> ./jdk.incubator.vector/linux/native/libjsvml/jsvml_s_tanh_linux_x86.S
> ./jdk.incubator.vector/windows/native/libjsvml/jsvml_d_log10_windows_x86.S
> ./jdk.incubator.vector/windows/native/libjsvml/jsvml_d_exp_windows_x86.S
> ./jdk.incubator.vector/windows/native/libjsvml/jsvml_d_atan2_windows_x86.S
> ./jdk.incubator.vector/windows/native/libjsvml/jsvml_s_expm1_windows_x86.S
> ./hotspot/os_cpu/linux_arm/linux_arm_32.S
> ./hotspot/os_cpu/linux_x86/linux_x86_32.S
> ./hotspot/os_cpu/linux_x86/linux_x86_64.S
> ./hotspot/os_cpu/linux_aarch64/atomic_linux_aarch64.S
> ./hotspot/os_cpu/linux_aarch64/copy_linux_aarch64.S
> ./hotspot/os_cpu/linux_aarch64/threadLS_linux_aarch64.S
> ./hotspot/os_cpu/bsd_x86/bsd_x86_32.S
> ./hotspot/os_cpu/bsd_x86/bsd_x86_64.S
> ./hotspot/os_cpu/bsd_aarch64/copy_bsd_aarch64.S
> ```
> 
> (You can leave out the windows files)

@magicus all those incubator ones already have there own ".file <filename.S>" in them, so is already relative as it were..
I think these are pre-canned Intel/RedHat assembler maths functions taken as-is, so I thought best to leave the existing .file as-is.

I did all the linux ones, and left Windows and Mac bsd ones.

-------------

PR: https://git.openjdk.java.net/jdk/pull/8177



More information about the build-dev mailing list