Skip to content
Snippets Groups Projects
  • Yang Yujie's avatar
    227b18f5
    LoongArch: Reimplement multilib build option handling. · 227b18f5
    Yang Yujie authored
    Library build options from --with-multilib-list used to be processed with
    *self_spec, which missed the driver's initial canonicalization.  This
    caused limitations on CFLAGS override and the use of driver-only options
    like -m[no]-lsx.
    
    The problem is solved by promoting the injection rules of --with-multilib-list
    options to the first element of DRIVER_SELF_SPECS, to make them execute before
    the canonialization.  The library-build options are also hard-coded in
    the driver and can be used conveniently by the builders of other non-gcc
    libraries via the use of -fmultiflags.
    
    Bootstrapped and tested on loongarch64-linux-gnu.
    
    ChangeLog:
    
    	* config-ml.in: Remove unneeded loongarch clause.
    	* configure.ac: Register custom makefile fragments mt-loongarch-*
    	for loongarch targets.
    	* configure: Regenerate.
    
    config/ChangeLog:
    
    	* mt-loongarch-mlib: New file.  Pass -fmultiflags when building
    	target libraries (FLAGS_FOR_TARGET).
    	* mt-loongarch-elf: New file.
    	* mt-loongarch-gnu: New file.
    
    gcc/ChangeLog:
    
    	* config.gcc: Pass the default ABI via TM_MULTILIB_CONFIG.
    	* config/loongarch/loongarch-driver.h: Invoke MLIB_SELF_SPECS
    	before the driver canonicalization routines.
    	* config/loongarch/loongarch.h: Move definitions of CC1_SPEC etc.
    	to loongarch-driver.h
    	* config/loongarch/t-linux: Move multilib-related definitions to
    	t-multilib.
    	* config/loongarch/t-multilib: New file.  Inject library build
    	options obtained from --with-multilib-list.
    	* config/loongarch/t-loongarch: Same.
    227b18f5
    History
    LoongArch: Reimplement multilib build option handling.
    Yang Yujie authored
    Library build options from --with-multilib-list used to be processed with
    *self_spec, which missed the driver's initial canonicalization.  This
    caused limitations on CFLAGS override and the use of driver-only options
    like -m[no]-lsx.
    
    The problem is solved by promoting the injection rules of --with-multilib-list
    options to the first element of DRIVER_SELF_SPECS, to make them execute before
    the canonialization.  The library-build options are also hard-coded in
    the driver and can be used conveniently by the builders of other non-gcc
    libraries via the use of -fmultiflags.
    
    Bootstrapped and tested on loongarch64-linux-gnu.
    
    ChangeLog:
    
    	* config-ml.in: Remove unneeded loongarch clause.
    	* configure.ac: Register custom makefile fragments mt-loongarch-*
    	for loongarch targets.
    	* configure: Regenerate.
    
    config/ChangeLog:
    
    	* mt-loongarch-mlib: New file.  Pass -fmultiflags when building
    	target libraries (FLAGS_FOR_TARGET).
    	* mt-loongarch-elf: New file.
    	* mt-loongarch-gnu: New file.
    
    gcc/ChangeLog:
    
    	* config.gcc: Pass the default ABI via TM_MULTILIB_CONFIG.
    	* config/loongarch/loongarch-driver.h: Invoke MLIB_SELF_SPECS
    	before the driver canonicalization routines.
    	* config/loongarch/loongarch.h: Move definitions of CC1_SPEC etc.
    	to loongarch-driver.h
    	* config/loongarch/t-linux: Move multilib-related definitions to
    	t-multilib.
    	* config/loongarch/t-multilib: New file.  Inject library build
    	options obtained from --with-multilib-list.
    	* config/loongarch/t-loongarch: Same.