Message ID | 20171227060534.3998-20-palmer@dabbelt.com |
---|---|
State | New |
Headers | show |
Series | [v3,01/19] Avoid race conditions when rebuilding librt.so | expand |
On Tue, 26 Dec 2017, Palmer Dabbelt wrote: > + self.add_config(arch='riscv64', > + os_name='linux-gnu', > + glibcs=[{'variant': 'rv64imafdc-lp64d', > + 'ccopts': '-march=rv64imafdc -mabi=lp64d', > + 'cfg': ['--libdir=/usr/lib64/lp64d', > + 'libc_cv_slibdir=/lib64/lp64d', > + 'libc_cv_rtlddir=/lib']}, You shouldn't need any of those --libdir libc_cv_slibdir libc_cv_rtlddir settings in build-many-glibcs.py - they indicate something is missing in the port itself. Specifically, you should have a LIBC_SLIBDIR_RTLDDIR call in an appropriate sysdeps configure.ac file or files. Also, the use of lib<something>/<something> subdirectories will break the handling of --strip, which expects to be able to strip lib*/*.so and catch all the shared libraries that way. Probably that code should change to something like '%s $(find %s/lib* -name "*.so")' in place of the present '%s %s/lib*/*.so', supposing that does work. (Most RISC-V build-many-glibcs.py testing of course only needs to test building compilers and glibc for the configurations you're adding. But for the --strip fix you should test at least one other configuration as well to make sure --strip continues to work in existing configurations with e.g. lib and lib64 directories. There should be no need for any of your build-many-glibcs.py testing to use the full set of configurations for all architectures.)
diff --git a/scripts/build-many-glibcs.py b/scripts/build-many-glibcs.py index 5df42e634a17..73f4d47dba54 100755 --- a/scripts/build-many-glibcs.py +++ b/scripts/build-many-glibcs.py @@ -322,6 +322,25 @@ class Context(object): os_name='linux-gnuspe', variant='e500v1', gcc_cfg=['--disable-multilib', '--enable-secureplt']) + self.add_config(arch='riscv64', + os_name='linux-gnu', + glibcs=[{'variant': 'rv64imafdc-lp64d', + 'ccopts': '-march=rv64imafdc -mabi=lp64d', + 'cfg': ['--libdir=/usr/lib64/lp64d', + 'libc_cv_slibdir=/lib64/lp64d', + 'libc_cv_rtlddir=/lib']}, + {'variant': 'rv64imac-lp64', + 'ccopts': '-march=rv64imac -mabi=lp64', + 'cfg': ['--libdir=/usr/lib64/lp64', + 'libc_cv_slibdir=/lib64/lp64', + 'libc_cv_rtlddir=/lib']}, + {'variant': 'rv32imafdc-ilp32d', + 'ccopts': '-march=rv32imafdc -mabi=ilp32d', + 'cfg': ['--libdir=/usr/lib32/ilp32d', + 'libc_cv_slibdir=/lib32/ilp32d', + 'libc_cv_rtlddir=/lib']}, + {'variant': 'rv32imac-ilp32', + 'ccopts': '-march=rv32imac -mabi=ilp32'}]) self.add_config(arch='s390x', os_name='linux-gnu', glibcs=[{}, @@ -1207,6 +1226,8 @@ class Config(object): 'nios2': 'nios2', 'powerpc': 'powerpc', 's390': 's390', + 'riscv32': 'riscv', + 'riscv64': 'riscv', 'sh': 'sh', 'sparc': 'sparc', 'tile': 'tile',