fix multilib support and rework --with-extra-multilib-test#1395
fix multilib support and rework --with-extra-multilib-test#1395ewlu wants to merge 1 commit intoriscv-collab:masterfrom
Conversation
There was a problem hiding this comment.
This is cool - I like the unified syntax for --with-multilib-generator and --with-extra-multilib-test. Specifying the flags lets us run multilibs where all the multilibs have options specified (we don't need to test a dummy config if we're only interested in --param=riscv-autovec-preference=fixed-vlmax). Adding --with-test-flags also makes sense to me.
For my own understanding @kito-cheng is the only difference between --with-multilib-generator and --with-extra-multilib-test that --with-extra-multilib-test doesn't build a new glibc for each mutilib?
For linux toolchain, we only use -mabi for the multilib selection, so it's not really make too much sense to configure linux toolchain with |
This pull request allows the following functionality:
generate_target_board.pyand allow additional testing configurations without needing--with-extra-multilib-testflag--with-multilib-generatorCurrently
--with-multilib-generatorwith more than one target is not supported withgenerate_target_board.py. For example,will have an error
This is because
generate_target_boardexpectsrv32gcv-ilp32dto be passed in through--with-extra-multilib-test.We fix
generate_target_board.py's problem with multilib by changing the script arguments to accept a list of different configurations while maintaining the internal logicFor example, instead of running configure flags
--with-arch=rv64gc --with-abi=lp64d --with-extra-multilib-test="rv64gcv-lp64d:--param=riscv-autovec-lmul=dynamic:--param=riscv-autovec-preference=fixed-vlmax;rv64gcv_zba-lp64d"to generate
we can run
--with-multilib-generator="rv64gc-lp64d--;rv64gcv-lp64d--:--param=riscv-autovec-lmul=dynamic:--param=riscv-autovec-preference=fixed-vlmax;rv64gcv_zba-lp64d--to generate the same boards
Alternatively, if we just want to run one target, the new flag
--with-test-flagsenables single target flexibility so--with-arch=rv64gcv --with-abi=lp64d --with-test-flags="--param=riscv-autovec-lmul=dynamic:--param=riscv-autovec-preference=fixed-vlmax"will generate target board
--with-multilib-generator="<targets>"will fail withmake report-linuxbecause the desired targets will always be overwritten with the defaults (therefore testing incorrect targets). This supports the intended linux multilib builds and tests.