avoiding __uint128_t in libc when cross compiling for 32-bit targets
0
votes
0
answers
79
views
I'm attempting to build a 32-bit toolchain in a docker container with an aarch64 architecture. I have explicitly called --without-long-double-128 in my first pass of gcc but glibc is failing compile due to missing __uint128_t types. I've looked through libc configuration options and I don't see a way to explicitly avoid these types. Does anyone know a way around this?
**First Error**
1.504 /opt/usr/include/asm/sigcontext.h:81:9: error: unknown type name '__uint128_t'; did you mean '__uint32_t'?
1.504 81 | __uint128_t vregs;
1.504 | ^~~~~~~~~~~
1.504 | __uint32_t
1.514 In file included from ../sysdeps/unix/sysv/linux/powerpc/sys/user.h:24,
1.514 from ../sysdeps/unix/sysv/linux/sys/procfs.h:35,
1.514 from ../sysdeps/nptl/thread_db.h:28,
1.514 from ../nptl/descr.h:31:
**GCC first pass config**
RUN mkdir -p ${WORKROOT}/src/gcc/build
WORKDIR ${WORKROOT}/src/gcc/build
RUN ../configure --prefix=${WORKROOT}/tools \
--target=powerpc-linux-gnu \
--with-sysroot=${WORKROOT} \
--with-newlib \
--without-headers \
--enable-initfini-array \
--enable-default-pie \
--enable-default-ssp \
--disable-nls \
--disable-shared \
--disable-multilib \
--disable-decimal-float \
--disable-threads \
--disable-libatomic \
--disable-libgomp \
--disable-libquadmath \
--disable-libssp \
--disable-libvtv \
--disable-libstdcxx \
--disable-gcov \
--without-long-double-128 \
--enable-languages=c,c++
**glibc config**
RUN ../configure \
--prefix=/usr \
--host=powerpc-linux-gnu \
--build=$(../scripts/config.guess) \
--enable-kernel=4.14 \
--with-headers=${WORKROOT}/usr/include \
libc_cv_slibdir=/usr/lib
Asked by mreff555
(131 rep)
Nov 14, 2024, 12:43 AM