From 9c996ebf728c9fcce5e4236e05d656188fc7115a Mon Sep 17 00:00:00 2001 From: Nicolas Boulenguez Date: Wed, 17 Jul 2019 20:28:18 +0200 Subject: [PATCH] Fix and simplify build of static libraries. gprconfig was generating no Archive_Builder attribute for mips-linux-gnu, powerpc64le-linux-gnu and many other architectures, because the regular expressions defining specific architectures and the fallback were not covering all cases. Ensure that all cases are covered by the fallback stanza. Replace many handwritten copies with variable substitutions. Merge i686-pc-mingw32 and x86_64-pc-mingw32 as already done for other architectures with aliases. Merge native x86 into the default stanza. --- share/gprconfig/linker.xml | 474 ++++++------------------------------- 1 file changed, 69 insertions(+), 405 deletions(-) diff --git a/share/gprconfig/linker.xml b/share/gprconfig/linker.xml index 781231c2..822a0772 100644 --- a/share/gprconfig/linker.xml +++ b/share/gprconfig/linker.xml @@ -267,78 +267,8 @@ - - - - - - for Archive_Builder use ("x86_64-elf-ar", "cr"); - for Archive_Builder_Append_Option use ("q"); - for Archive_Indexer use ("x86_64-elf-ranlib"); - for Archive_Suffix use ".a"; - - - - - - - - - for Archive_Builder use ("visium-elf-ar", "cr"); - for Archive_Builder_Append_Option use ("q"); - for Archive_Indexer use ("visium-elf-ranlib"); - for Archive_Suffix use ".a"; - - - - - - - - - for Archive_Builder use ("riscv64-elf-ar", "cr"); - for Archive_Builder_Append_Option use ("q"); - for Archive_Indexer use ("riscv64-elf-ranlib"); - for Archive_Suffix use ".a"; - - - - - - - - - for Archive_Builder use ("riscv32-elf-ar", "cr"); - for Archive_Builder_Append_Option use ("q"); - for Archive_Indexer use ("riscv32-elf-ranlib"); - for Archive_Suffix use ".a"; - - - - - - - - - for Archive_Builder use ("m68020-elf-ar", "cr"); - for Archive_Builder_Append_Option use ("q"); - for Archive_Indexer use ("m68020-elf-ranlib"); - for Archive_Suffix use ".a"; - - - - - - - - - for Archive_Builder use ("powerpc-elf-ar", "cr"); - for Archive_Builder_Append_Option use ("q"); - for Archive_Indexer use ("powerpc-elf-ranlib"); - for Archive_Suffix use ".a"; - - + @@ -350,82 +280,30 @@ - - - - - - for Archive_Builder use ("powerpc-xcoff-lynxos178-ar", "cr"); - for Archive_Builder_Append_Option use ("q"); - for Archive_Indexer use ("powerpc-xcoff-lynxos178-ranlib"); - for Archive_Suffix use ".a"; - - - - - - - - - for Archive_Builder use ("powerpc-eabispe-ar", "cr"); - for Archive_Builder_Append_Option use ("q"); - for Archive_Indexer use ("powerpc-eabispe-ranlib"); - for Archive_Suffix use ".a"; - - - - - - - - - - - - - for Archive_Builder use ("i686-pc-mingw32-ar", "cr"); - for Archive_Builder_Append_Option use ("q"); - for Archive_Indexer use ("i686-pc-mingw32-ranlib"); - for Archive_Suffix use ".a"; - - - - - - - - - - for Archive_Builder use ("ar", "cr"); - for Archive_Builder_Append_Option use ("q"); - for Archive_Indexer use ("ranlib"); - for Archive_Suffix use ".a"; - - - - - + - for Archive_Builder use ("x86_64-pc-mingw32-ar", "cr"); + for Archive_Builder use ("$TARGET-ar", "cr"); for Archive_Builder_Append_Option use ("q"); - for Archive_Indexer use ("x86_64-pc-mingw32-ranlib"); + for Archive_Indexer use ("$TARGET-ranlib"); for Archive_Suffix use ".a"; + + @@ -442,14 +320,15 @@ + - for Archive_Builder use ("powerpc-generic-linux-gnu-ar", "cr"); + for Archive_Builder use ("$TARGET-ar", "cr"); for Archive_Builder_Append_Option use ("q"); - for Archive_Indexer use ("powerpc-generic-linux-gnu-ranlib"); + for Archive_Indexer use ("$TARGET-ranlib"); for Archive_Suffix use ".a"; @@ -470,222 +349,6 @@ - - - - - - for Archive_Builder use ("powerpc64-generic-linux-gnu-ar", "cr"); - for Archive_Builder_Append_Option use ("q"); - for Archive_Indexer use ("powerpc64-generic-linux-gnu-ranlib"); - for Archive_Suffix use ".a"; - - - - - - - - - for Archive_Builder use ("arm-linux-androideabi-ar", "cr"); - for Archive_Builder_Append_Option use ("q"); - for Archive_Indexer use ("arm-linux-androideabi-ranlib"); - for Archive_Suffix use ".a"; - - - - - - - - - for Archive_Builder use ("arm-linux-gnueabi-ar", "cr"); - for Archive_Builder_Append_Option use ("q"); - for Archive_Indexer use ("arm-linux-gnueabi-ranlib"); - for Archive_Suffix use ".a"; - - - - - - - - - for Archive_Builder use ("arm-linux-gnueabihf-ar", "cr"); - for Archive_Builder_Append_Option use ("q"); - for Archive_Indexer use ("arm-linux-gnueabihf-ranlib"); - for Archive_Suffix use ".a"; - - - - - - - - - for Archive_Builder use ("aarch64-linux-gnu-ar", "cr"); - for Archive_Builder_Append_Option use ("q"); - for Archive_Indexer use ("aarch64-linux-gnu-ranlib"); - for Archive_Suffix use ".a"; - - - - - - - - - for Archive_Builder use ("aarch64-nto-qnx-ar", "cr"); - for Archive_Builder_Append_Option use ("q"); - for Archive_Indexer use ("aarch64-nto-qnx-ranlib"); - for Archive_Suffix use ".a"; - - - - - - - - - for Archive_Builder use ("e500v2-gnu-linux-ar", "cr"); - for Archive_Builder_Append_Option use ("q"); - for Archive_Indexer use ("e500v2-gnu-linux-ranlib"); - for Archive_Suffix use ".a"; - - - - - - - - - for Archive_Builder use ("erc32-elf-ar", "cr"); - for Archive_Builder_Append_Option use ("q"); - for Archive_Indexer use ("erc32-elf-ranlib"); - for Archive_Suffix use ".a"; - - - - - - - - - for Archive_Builder use ("leon-elf-ar", "cr"); - for Archive_Builder_Append_Option use ("q"); - for Archive_Indexer use ("leon-elf-ranlib"); - for Archive_Suffix use ".a"; - - - - - - - - - for Archive_Builder use ("leon3-elf-ar", "cr"); - for Archive_Builder_Append_Option use ("q"); - for Archive_Indexer use ("leon3-elf-ranlib"); - for Archive_Suffix use ".a"; - - - - - - - - - for Archive_Builder use ("arm-eabi-ar", "cr"); - for Archive_Builder_Append_Option use ("q"); - for Archive_Indexer use ("arm-eabi-ranlib"); - for Archive_Suffix use ".a"; - - - - - - - - - for Archive_Builder use ("aarch64-elf-ar", "cr"); - for Archive_Builder_Append_Option use ("q"); - for Archive_Indexer use ("aarch64-elf-ranlib"); - for Archive_Suffix use ".a"; - - - - - - - - - for Archive_Builder use ("avr-ar", "cr"); - for Archive_Builder_Append_Option use ("q"); - for Archive_Indexer use ("avr-ranlib"); - for Archive_Suffix use ".a"; - - - - - - - - - for Archive_Builder use ("arm-sysgo-pikeos-ar", "cr"); - for Archive_Builder_Append_Option use ("q"); - for Archive_Indexer use ("arm-sysgo-pikeos-ranlib"); - for Archive_Suffix use ".a"; - - - - - - - - - for Archive_Builder use ("arm-sysgo-pikeos4-ar", "cr"); - for Archive_Builder_Append_Option use ("q"); - for Archive_Indexer use ("arm-sysgo-pikeos4-ranlib"); - for Archive_Suffix use ".a"; - - - - - - - - - for Archive_Builder use ("arm-sysgo-pikeos5-ar", "cr"); - for Archive_Builder_Append_Option use ("q"); - for Archive_Indexer use ("arm-sysgo-pikeos5-ranlib"); - for Archive_Suffix use ".a"; - - - - - - - - - for Archive_Builder use ("i586-sysgo-pikeos-ar", "cr"); - for Archive_Builder_Append_Option use ("q"); - for Archive_Indexer use ("i586-sysgo-pikeos-ranlib"); - for Archive_Suffix use ".a"; - - - - - - - - - for Archive_Builder use ("powerpc-sysgo-pikeos-ar", "cr"); - for Archive_Builder_Append_Option use ("q"); - for Archive_Indexer use ("powerpc-sysgo-pikeos-ranlib"); - for Archive_Suffix use ".a"; - - - @@ -727,56 +390,44 @@ + - - - - - - - - - - + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - for Archive_Builder use ("ar", "cr"); - for Archive_Builder_Append_Option use ("q"); - for Archive_Indexer use ("ranlib"); - for Archive_Suffix use ".a"; - - - - - - - - - + + + + + + + + + + + + + - - - - for Archive_Builder use ("ar", "cr"); for Archive_Builder_Append_Option use ("q"); @@ -785,28 +436,41 @@ - - - - - - - for Archive_Builder use ("powerpc-elf-lynxos178e-ar", "cr"); - for Archive_Builder_Append_Option use ("q"); - for Archive_Indexer use ("powerpc-elf-lynxos178e-ranlib"); - for Archive_Suffix use ".a"; - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + - for Archive_Builder use ("i586-elf-lynxos178e-ar", "cr"); + for Archive_Builder use ("$TARGET-ar", "cr"); for Archive_Builder_Append_Option use ("q"); - for Archive_Indexer use ("i586-elf-lynxos178e-ranlib"); + for Archive_Indexer use ("$TARGET-ranlib"); for Archive_Suffix use ".a";