https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118142

            Bug ID: 118142
           Summary: libatomic fails to build for AARCH64:ILP32
           Product: gcc
           Version: 14.2.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c
          Assignee: unassigned at gcc dot gnu.org
          Reporter: zhangtianhao6 at huawei dot com
  Target Milestone: ---

An error occurred while building libatomic for AARCH64:ILP32.

The detailed error information is as follows:
In file included from
/home/zth/gcc_update/SDK_CPU_HCC/build/hcc_arm64le/../../open_source/hcc_arm64le_build_src/wireless/gcc/libatomic/config/aarch64/host-config.h:46,
                 from
/home/zth/gcc_update/SDK_CPU_HCC/build/hcc_arm64le/../../open_source/hcc_arm64le_build_src/wireless/gcc/libatomic/libatomic_i.h:232,
                 from
/home/zth/gcc_update/SDK_CPU_HCC/build/hcc_arm64le/../../open_source/hcc_arm64le_build_src/wireless/gcc/libatomic/fenv.c:24:
/home/zth/gcc_update/SDK_CPU_HCC/build/hcc_arm64le/../../open_source/hcc_arm64le_build_src/wireless/gcc/libatomic/config/linux/aarch64/host-config.h:
In function 'has_lse128':
/home/zth/gcc_update/SDK_CPU_HCC/build/hcc_arm64le/../../open_source/hcc_arm64le_build_src/wireless/gcc/libatomic/config/linux/aarch64/host-config.h:37:30:
error: left shift count >= width of type [-Werror=shift-count-overflow]
   37 | # define HWCAP2_LSE128  (1UL << 47)
      |                              ^~
/home/zth/gcc_update/SDK_CPU_HCC/build/hcc_arm64le/../../open_source/hcc_arm64le_build_src/wireless/gcc/libatomic/config/linux/aarch64/host-config.h:95:30:
note: in expansion of macro 'HWCAP2_LSE128'
   95 |       && features->_hwcap2 & HWCAP2_LSE128)
      |                              ^~~~~~~~~~~~~
cc1: all warnings being treated as errors



The detailed compilation commands are as follows:
> /home/zth/gcc_update/SDK_CPU_HCC/build/hcc_arm64le/arm64le_build_dir/obj/build-gcc-final/./gcc/xgcc
>  
> -B/home/zth/gcc_update/SDK_CPU_HCC/build/hcc_arm64le/arm64le_build_dir/obj/build-gcc-final/./gcc/
>  -B/usr/local/aarch64-target-linux-gnu/bin/ 
> -B/usr/local/aarch64-target-linux-gnu/lib/ -isystem 
> /usr/local/aarch64-target-linux-gnu/include -isystem 
> /usr/local/aarch64-target-linux-gnu/sys-include 
> --sysroot=/home/zth/gcc_update/SDK_CPU_HCC/build/hcc_arm64le/arm64le_build_dir/hcc_arm64le/sysroot
>  -DHAVE_CONFIG_H 
> -I/home/zth/gcc_update/SDK_CPU_HCC/build/hcc_arm64le/../../open_source/hcc_arm64le_build_src/wireless/gcc/libatomic/config/aarch64
>  
> -I/home/zth/gcc_update/SDK_CPU_HCC/build/hcc_arm64le/../../open_source/hcc_arm64le_build_src/wireless/gcc/libatomic/config/linux/aarch64
>  
> -I/home/zth/gcc_update/SDK_CPU_HCC/build/hcc_arm64le/../../open_source/hcc_arm64le_build_src/wireless/gcc/libatomic/config/posix
>  
> -I/home/zth/gcc_update/SDK_CPU_HCC/build/hcc_arm64le/../../open_source/hcc_arm64le_build_src/wireless/gcc/libatomic
>  -I. 
> --sysroot=/home/zth/gcc_update/SDK_CPU_HCC/build/hcc_arm64le/arm64le_build_dir/hcc_arm64le/sysroot
>  -mno-outline-atomics -Wall -Werror -pthread -g -O2 -mabi=ilp32 -MT fenv.lo 
> -MD -MP -MF .deps/fenv.Tpo -c 
> /home/zth/gcc_update/SDK_CPU_HCC/build/hcc_arm64le/../../open_source/hcc_arm64le_build_src/wireless/gcc/libatomic/fenv.c
>   -fPIC -DPIC -o .libs/fenv.o


Does HWCAP2_LSE128 marco in libatomic/config/linux/aarch64/host-config.h adapt
to aarch64 ilp32?

How about change # define HWCAP2_LSE128  (1UL << 47) to # define HWCAP2_LSE128 
(1ULL << 47). 

After the modification I recompile and it's ok.


GCC VERSION:14.2.0

System type:
Linux cpu 4.15.0-156-generic #163-Ubuntu SMP Thu Aug 19 23:31:58 UTC 2021
x86_64 x86_64 x86_64 GNU/Linux

GCC configure:
/home/zth/gcc_update/SDK_CPU_HCC/build/hcc_arm64le/../../open_source/hcc_arm64le_build_src/wireless/gcc/configure
--build=x86_64-pc-linux-gnu --host=x86_64-pc-linux-gnu
--target=aarch64-target-linux-gnu --with-arch=armv8-a
--with-multilib-list=lp64,ilp32 --enable-__cxa_atexit --with-gnu-as
--with-gnu-ld --disable-libmudflap --enable-libgomp --enable-threads
--enable-plugin --enable-c99 --enable-long-long --disable-nls --enable-shared
--enable-poison-system-directories --enable-symvers=gnu
--enable-languages=c,c++
--with-sysroot=/home/zth/gcc_update/SDK_CPU_HCC/build/hcc_arm64le/arm64le_build_dir/hcc_arm64le/sysroot
--with-build-sysroot=/home/zth/gcc_update/SDK_CPU_HCC/build/hcc_arm64le/arm64le_build_dir/hcc_arm64le/sysroot
--with-gmp=/home/zth/gcc_update/SDK_CPU_HCC/build/hcc_arm64le/arm64le_build_dir/hcc_arm64le
--with-mpfr=/home/zth/gcc_update/SDK_CPU_HCC/build/hcc_arm64le/arm64le_build_dir/hcc_arm64le
--with-mpc=/home/zth/gcc_update/SDK_CPU_HCC/build/hcc_arm64le/arm64le_build_dir/hcc_arm64le
--with-isl=/home/zth/gcc_update/SDK_CPU_HCC/build/hcc_arm64le/arm64le_build_dir/hcc_arm64le
--with-build-time-tools=/home/zth/gcc_update/SDK_CPU_HCC/build/hcc_arm64le/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/bin
--libdir=/home/zth/gcc_update/SDK_CPU_HCC/build/hcc_arm64le/arm64le_build_dir/hcc_arm64le/lib64
--disable-bootstrap --disable-libcilkrts --disable-libstdcxx-dual-abi
--with-system-zlib

Reply via email to