Quantcast
Channel: Active questions tagged gcc - Stack Overflow
Viewing all articles
Browse latest Browse all 22016

How to configure GCC such that `long double` = `double` = 64 bits

$
0
0

I'm cross-compiling GCC (6.4.0) on a X64_64 machine for i386, and trying to specify that long double should use 64 bits like double. The GCC documentation has configuration flags like --with-long-double-64 and --without-long-double-128. But although my compiled GCC shows that it was configured with both options [1], a simple sizeof test shows that long double has 96 bits [2]. Is there another way to force long double to actually be 64 bits?

[1]

root@dc567167bf33:/static-benchmarks# ./musl-cross-make-0.9.8/output/bin/i386-linux-musl-gcc -v       Using built-in specs.COLLECT_GCC=./musl-cross-make-0.9.8/output/bin/i386-linux-musl-gccCOLLECT_LTO_WRAPPER=/static-benchmarks/musl-cross-make-0.9.8/output/bin/../libexec/gcc/i386-linux-musl/6.4.0/lto-wrapperTarget: i386-linux-muslConfigured with: ../src_gcc/configure --enable-languages=c,c++ CFLAGS='-g0 -O2 -fno-align-functions -fno-align-jumps -fno-align-loops -fno-align-labels' CXXFLAGS='-g0 -O2 -fno-align-functions -fno-align-jumps -fno-align-loops -fno-align-labels' FFLAGS='-g0 -O2 -fno-align-functions -fno-align-jumps -fno-align-loops -fno-align-labels' LDFLAGS='-s -static --static' --disable-nls --enable-languages=c,c++ --disable-decimal-float --enable-softfloat --with-long-double-64 --without-long-double-128 --disable-werror --target=i386-linux-musl --prefix= --libdir=/lib --disable-multilib --with-sysroot=/i386-linux-musl --enable-tls --disable-libmudflap --disable-libsanitizer --disable-gnu-indirect-function --disable-libmpx --enable-libstdcxx-time --with-build-sysroot=/static-benchmarks/musl-cross-make-0.9.8/build/local/i386-linux-musl/obj_sysroot AR_FOR_TARGET=/static-benchmarks/musl-cross-make-0.9.8/build/local/i386-linux-musl/obj_binutils/binutils/ar AS_FOR_TARGET=/static-benchmarks/musl-cross-make-0.9.8/build/local/i386-linux-musl/obj_binutils/gas/as-new LD_FOR_TARGET=/static-benchmarks/musl-cross-make-0.9.8/build/local/i386-linux-musl/obj_binutils/ld/ld-new NM_FOR_TARGET=/static-benchmarks/musl-cross-make-0.9.8/build/local/i386-linux-musl/obj_binutils/binutils/nm-new OBJCOPY_FOR_TARGET=/static-benchmarks/musl-cross-make-0.9.8/build/local/i386-linux-musl/obj_binutils/binutils/objcopy OBJDUMP_FOR_TARGET=/static-benchmarks/musl-cross-make-0.9.8/build/local/i386-linux-musl/obj_binutils/binutils/objdump RANLIB_FOR_TARGET=/static-benchmarks/musl-cross-make-0.9.8/build/local/i386-linux-musl/obj_binutils/binutils/ranlib READELF_FOR_TARGET=/static-benchmarks/musl-cross-make-0.9.8/build/local/i386-linux-musl/obj_binutils/binutils/readelf STRIP_FOR_TARGET=/static-benchmarks/musl-cross-make-0.9.8/build/local/i386-linux-musl/obj_binutils/binutils/strip-newThread model: posixgcc version 6.4.0 (GCC) 

[2]

root@dc567167bf33:/static-benchmarks# ./musl-cross-make-0.9.8/output/bin/i386-linux-musl-gcc -static hello.c -o testelf; ./testelfHello float: 5.0 hello double: 3.0, hello long double: 2.0sizeof float: 4, sizeof double: 8, sizeof long double: 12

Viewing all articles
Browse latest Browse all 22016

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>