Message ID | 20230711110619.56588-1-philmd@linaro.org |
---|---|
State | Accepted |
Commit | e3e477c3bca0beaf9326e0213d52ad4be804fb73 |
Headers | show |
Series | [hotfix,PATCH-for-8.1,v4] configure: Fix cross-building for RISCV host | expand |
On 7/11/23 12:06, Philippe Mathieu-Daudé wrote: > While when building on native Linux the host architecture > is reported as "riscv32" or "riscv64": > > Host machine cpu family: riscv64 > Host machine cpu: riscv64 > Found pkg-config: /usr/bin/pkg-config (0.29.2) > > Since commit ba0e733362 ("configure: Merge riscv32 and riscv64 > host architectures"), when cross-compiling it is detected as > "riscv". Meson handles the cross-detection but displays a warning: > > WARNING: Unknown CPU family riscv, please report this at https://github.com/mesonbuild/meson/issues/new > Host machine cpu family: riscv > Host machine cpu: riscv > Target machine cpu family: riscv > Target machine cpu: riscv > Found pkg-config: /usr/bin/riscv64-linux-gnu-pkg-config (1.8.1) > > Now since commit 278c1bcef5 ("target/riscv: Only unify 'riscv32/64' > -> 'riscv' for host cpu in meson") Meson expects the cpu to be in > [riscv32, riscv64]. So when cross-building (for example on our > cross-riscv64-system Gitlab-CI job) we get: > > WARNING: Unknown CPU family riscv, please report this at https://github.com/mesonbuild/meson/issues/new > Host machine cpu family: riscv > Host machine cpu: riscv > Target machine cpu family: riscv > Target machine cpu: riscv > ../meson.build:684:6: ERROR: Problem encountered: Unsupported CPU riscv, try --enable-tcg-interpreter > > Fix by partially revert commit ba0e733362 so when cross-building > the ./configure script passes the proper host architecture to meson. > > Fixes: ba0e733362 ("configure: Merge riscv32 and riscv64 host architectures") > Fixes: 278c1bcef5 ("target/riscv: Only unify 'riscv32/64' -> 'riscv' for host cpu in meson") > Reported-by: Richard Henderson <richard.henderson@linaro.org> > Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> > --- > v4: pass from configure Applied to master. r~ > --- > configure | 6 +++++- > 1 file changed, 5 insertions(+), 1 deletion(-) > > diff --git a/configure b/configure > index 2b41c49c0d..dffd44c059 100755 > --- a/configure > +++ b/configure > @@ -451,7 +451,11 @@ elif check_define __s390__ ; then > cpu="s390" > fi > elif check_define __riscv ; then > - cpu="riscv" > + if check_define _LP64 ; then > + cpu="riscv64" > + else > + cpu="riscv32" > + fi > elif check_define __arm__ ; then > cpu="arm" > elif check_define __aarch64__ ; then
diff --git a/configure b/configure index 2b41c49c0d..dffd44c059 100755 --- a/configure +++ b/configure @@ -451,7 +451,11 @@ elif check_define __s390__ ; then cpu="s390" fi elif check_define __riscv ; then - cpu="riscv" + if check_define _LP64 ; then + cpu="riscv64" + else + cpu="riscv32" + fi elif check_define __arm__ ; then cpu="arm" elif check_define __aarch64__ ; then
While when building on native Linux the host architecture is reported as "riscv32" or "riscv64": Host machine cpu family: riscv64 Host machine cpu: riscv64 Found pkg-config: /usr/bin/pkg-config (0.29.2) Since commit ba0e733362 ("configure: Merge riscv32 and riscv64 host architectures"), when cross-compiling it is detected as "riscv". Meson handles the cross-detection but displays a warning: WARNING: Unknown CPU family riscv, please report this at https://github.com/mesonbuild/meson/issues/new Host machine cpu family: riscv Host machine cpu: riscv Target machine cpu family: riscv Target machine cpu: riscv Found pkg-config: /usr/bin/riscv64-linux-gnu-pkg-config (1.8.1) Now since commit 278c1bcef5 ("target/riscv: Only unify 'riscv32/64' -> 'riscv' for host cpu in meson") Meson expects the cpu to be in [riscv32, riscv64]. So when cross-building (for example on our cross-riscv64-system Gitlab-CI job) we get: WARNING: Unknown CPU family riscv, please report this at https://github.com/mesonbuild/meson/issues/new Host machine cpu family: riscv Host machine cpu: riscv Target machine cpu family: riscv Target machine cpu: riscv ../meson.build:684:6: ERROR: Problem encountered: Unsupported CPU riscv, try --enable-tcg-interpreter Fix by partially revert commit ba0e733362 so when cross-building the ./configure script passes the proper host architecture to meson. Fixes: ba0e733362 ("configure: Merge riscv32 and riscv64 host architectures") Fixes: 278c1bcef5 ("target/riscv: Only unify 'riscv32/64' -> 'riscv' for host cpu in meson") Reported-by: Richard Henderson <richard.henderson@linaro.org> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> --- v4: pass from configure --- configure | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-)