This is the mail archive of the crossgcc@sourceware.org mailing list for the crossgcc project.
See the CrossGCC FAQ for lots more information.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
It looks like I can answer the question myself. Maybe that will be helpful for someone. The following is valid at least for crosstool-NG v.1.5.2: To make glibc using native floating point instructions one needs to add one extra flag to the configuration: C-library -> extra target CFLAGS -mfloat-abi=softfp That is it. Adel AdelMamin wrote: > > Hi All, > > First I would like to say big thanks to Yann for the great tool he made! > It really saves a lot of time! > > Now my questions: > I managed to create a toolchain for ARM with hard floating point support. > But when I disassembled the libm.so.6 I saw that it uses <__aeabi_ddiv> > <__aeabi_dmul> etc calls instead of native floating point instructions. > The code for these <__aeabi_...> is in libc.so.6 and it does not use hard > floating point instructions, but it rather looks like a software > emulation. > > Am I missing something from the configuration, which is listed below? > > Isn't CT_ARCH_FLOAT_HW=y and CT_ARCH_FPU="vfp" enough to create libm.so > and libc.so, which would use native floating point insructions? > > Thanks in advance. > > Adel > > My .config is as follows: > > # > # Automatically generated make config: don't edit > # crosstool-NG version: 1.5.2 > # Tue Jan 5 15:31:46 2010 > # > > # > # Paths and misc options > # > > # > # crosstool-NG behavior > # > # CT_OBSOLETE is not set > # CT_EXPERIMENTAL is not set > # CT_DEBUG_CT is not set > > # > # Paths > # > CT_LOCAL_TARBALLS_DIR="${HOME}/src" > CT_SAVE_TARBALLS=y > CT_WORK_DIR="${CT_TOP_DIR}/targets" > CT_PREFIX_DIR="${HOME}/x-tools/${CT_TARGET}" > CT_INSTALL_DIR="${CT_PREFIX_DIR}" > CT_REMOVE_DOCS=y > CT_INSTALL_DIR_RO=y > > # > # Downloading > # > # CT_FORBID_DOWNLOAD is not set > # CT_FORCE_DOWNLOAD is not set > # CT_USE_MIRROR is not set > CT_CONNECT_TIMEOUT=100 > # CT_ONLY_DOWNLOAD is not set > > # > # Extracting > # > # CT_FORCE_EXTRACT is not set > CT_OVERIDE_CONFIG_GUESS_SUB=y > # CT_ONLY_EXTRACT is not set > CT_PATCH_BUNDLED=y > # CT_PATCH_LOCAL is not set > # CT_PATCH_BUNDLED_LOCAL is not set > # CT_PATCH_LOCAL_BUNDLED is not set > # CT_PATCH_BUNDLED_FALLBACK_LOCAL is not set > # CT_PATCH_LOCAL_FALLBACK_BUNDLED is not set > CT_PATCH_ORDER="bundled" > # CT_PATCH_SINGLE is not set > # CT_PATCH_USE_LOCAL is not set > > # > # Build behavior > # > CT_PARALLEL_JOBS=1 > CT_LOAD=0 > CT_NICE=0 > CT_USE_PIPES=y > # CT_CONFIG_SHELL_SH is not set > # CT_CONFIG_SHELL_ASH is not set > CT_CONFIG_SHELL_BASH=y > # CT_CONFIG_SHELL_CUSTOM is not set > CT_CONFIG_SHELL="bash" > > # > # Logging > # > # CT_LOG_ERROR is not set > # CT_LOG_WARN is not set > # CT_LOG_INFO is not set > # CT_LOG_EXTRA is not set > # CT_LOG_DEBUG is not set > CT_LOG_ALL=y > CT_LOG_LEVEL_MAX="ALL" > # CT_LOG_SEE_TOOLS_WARN is not set > CT_LOG_TO_FILE=y > CT_LOG_FILE_COMPRESS=y > > # > # Target options > # > CT_ARCH="arm" > # CT_ARCH_64 is not set > # CT_ARCH_SUPPORTS_BOTH_MMU is not set > CT_ARCH_SUPPORTS_BOTH_ENDIAN=y > CT_ARCH_SUPPORT_ARCH=y > # CT_ARCH_SUPPORT_ABI is not set > CT_ARCH_SUPPORT_CPU=y > CT_ARCH_SUPPORT_TUNE=y > CT_ARCH_SUPPORT_FPU=y > # CT_ARCH_DEFAULT_HAS_MMU is not set > # CT_ARCH_DEFAULT_BE is not set > CT_ARCH_DEFAULT_LE=y > CT_ARCH_ARCH="" > CT_ARCH_CPU="arm1176jzf-s" > CT_ARCH_TUNE="" > CT_ARCH_FPU="vfp" > # CT_ARCH_BE is not set > CT_ARCH_LE=y > CT_ARCH_FLOAT_HW=y > # CT_ARCH_FLOAT_SW is not set > CT_TARGET_CFLAGS="" > CT_TARGET_LDFLAGS="" > > # > # General target options > # > # CT_ARCH_alpha is not set > CT_ARCH_arm=y > # CT_ARCH_avr32 is not set > # CT_ARCH_ia64 is not set > # CT_ARCH_mips is not set > # CT_ARCH_powerpc64 is not set > # CT_ARCH_powerpc is not set > # CT_ARCH_sh is not set > # CT_ARCH_x86_64 is not set > # CT_ARCH_x86 is not set > CT_ARCH_ARM_EABI=y > CT_ARCH_USE_MMU=y > > # > # Target optimisations > # > > # > # Toolchain options > # > > # > # General toolchain options > # > CT_USE_SYSROOT=y > CT_SYSROOT_DIR_PREFIX="" > > # > # Tuple completion and aliasing > # > CT_TARGET_VENDOR="unknown" > CT_TARGET_ALIAS_SED_EXPR="" > CT_TARGET_ALIAS="" > > # > # Toolchain type > # > # CT_NATIVE is not set > CT_CROSS=y > # CT_CROSS_NATIVE is not set > # CT_CANADIAN is not set > CT_TOOLCHAIN_TYPE="cross" > > # > # Build system > # > CT_BUILD="" > CT_BUILD_PREFIX="" > CT_BUILD_SUFFIX="" > > # > # Operating System > # > # CT_BARE_METAL is not set > CT_KERNEL_SUPPORTS_SHARED_LIBS=y > CT_KERNEL="linux" > CT_KERNEL_VERSION="2.6.28.10" > # CT_KERNEL_bare_metal is not set > CT_KERNEL_linux=y > CT_KERNEL_LINUX_INSTALL=y > CT_KERNEL_LINUX_INSTALL_CHECK=y > # CT_KERNEL_V_2_6_31_1 is not set > # CT_KERNEL_V_2_6_31 is not set > # CT_KERNEL_V_3_6_30_8 is not set > # CT_KERNEL_V_3_6_30_7 is not set > # CT_KERNEL_V_2_6_30_6 is not set > # CT_KERNEL_V_2_6_30_5 is not set > # CT_KERNEL_V_2_6_30_4 is not set > # CT_KERNEL_V_2_6_30_3 is not set > # CT_KERNEL_V_2_6_30_2 is not set > # CT_KERNEL_V_2_6_30_1 is not set > # CT_KERNEL_V_2_6_30 is not set > # CT_KERNEL_V_2_6_29_6 is not set > CT_KERNEL_V_2_6_28_10=y > # CT_KERNEL_V_2_6_27_35 is not set > # CT_KERNEL_V_2_6_26_8 is not set > # CT_KERNEL_V_2_6_25_20 is not set > # CT_KERNEL_V_2_6_24_7 is not set > # CT_KERNEL_V_2_6_23_17 is not set > # CT_KERNEL_V_2_6_22_19 is not set > # CT_KERNEL_V_2_6_21_7 is not set > # CT_KERNEL_V_2_6_20_21 is not set > # CT_KERNEL_V_2_6_19_7 is not set > # CT_KERNEL_V_2_6_18_8 is not set > # CT_KERNEL_V_select is not set > CT_KERNEL_LINUX_VERBOSITY_0=y > # CT_KERNEL_LINUX_VERBOSITY_1 is not set > # CT_KERNEL_LINUX_VERBOSITY_2 is not set > CT_KERNEL_LINUX_VERBOSE_LEVEL=0 > # CT_KERNEL_LINUX_USE_CUSTOM_HEADERS is not set > > # > # Common kernel options > # > CT_SHARED_LIBS=y > > # > # Binary utilities > # > CT_ARCH_BINFMT_ELF=y > # CT_ARCH_BINFMT_FLAT is not set > > # > # GNU binutils > # > CT_BINUTILS_VERSION="2.19.1" > # CT_BINUTILS_V_2_19_51_0_2 is not set > # CT_BINUTILS_V_2_19_51_0_1 is not set > # CT_BINUTILS_V_2_19_50_0_1 is not set > CT_BINUTILS_V_2_19_1=y > # CT_BINUTILS_V_2_19 is not set > # CT_BINUTILS_V_2_18_93 is not set > # CT_BINUTILS_V_2_18_92 is not set > # CT_BINUTILS_V_2_18_91 is not set > # CT_BINUTILS_V_2_18_90 is not set > # CT_BINUTILS_V_2_18_50_0_9 is not set > # CT_BINUTILS_V_2_18_50_0_8 is not set > # CT_BINUTILS_V_2_18_50_0_7 is not set > # CT_BINUTILS_V_2_18_50_0_6 is not set > # CT_BINUTILS_V_2_18_50_0_4 is not set > # CT_BINUTILS_V_2_18 is not set > # CT_BINUTILS_V_2_17 is not set > # CT_BINUTILS_V_2_16_1 is not set > # CT_BINUTILS_V_2_15 is not set > # CT_BINUTILS_V_2_14 is not set > CT_BINUTILS_EXTRA_CONFIG="" > CT_BINUTILS_FOR_TARGET=y > CT_BINUTILS_FOR_TARGET_IBERTY=y > CT_BINUTILS_FOR_TARGET_BFD=y > > # > # C compiler > # > CT_CC="gcc" > CT_CC_VERSION="4.3.2" > CT_CC_gcc=y > # CT_CC_V_4_4_1 is not set > # CT_CC_V_4_4_0 is not set > # CT_CC_V_4_3_4 is not set > # CT_CC_V_4_3_3 is not set > CT_CC_V_4_3_2=y > # CT_CC_V_4_3_1 is not set > # CT_CC_V_4_3_0 is not set > # CT_CC_V_4_2_4 is not set > # CT_CC_V_4_2_3 is not set > # CT_CC_V_4_2_2 is not set > # CT_CC_V_4_2_1 is not set > # CT_CC_V_4_2_0 is not set > # CT_CC_V_4_1_2 is not set > # CT_CC_V_4_1_1 is not set > # CT_CC_V_4_1_0 is not set > # CT_CC_V_4_0_4 is not set > # CT_CC_V_4_0_3 is not set > # CT_CC_V_4_0_2 is not set > # CT_CC_V_4_0_1 is not set > # CT_CC_V_4_0_0 is not set > # CT_CC_V_3_4_6 is not set > # CT_CC_V_3_3_6 is not set > # CT_CC_V_3_2_3 is not set > CT_CC_GCC_4_3_or_later=y > # CT_CC_GCC_4_4_or_later is not set > CT_CC_CXA_ATEXIT=y > CT_CC_SJLJ_EXCEPTIONS_CONFIGURE=y > # CT_CC_SJLJ_EXCEPTIONS_USE is not set > # CT_CC_SJLJ_EXCEPTIONS_DONT_USE is not set > CT_CC_ENABLE_CXX_FLAGS="" > CT_CC_CORE_EXTRA_CONFIG="" > CT_CC_EXTRA_CONFIG="" > CT_CC_PKGVERSION="crosstool-NG-${CT_VERSION}" > CT_CC_BUGURL="" > CT_CC_SUPPORT_CXX=y > CT_CC_SUPPORT_FORTRAN=y > CT_CC_SUPPORT_JAVA=y > CT_CC_SUPPORT_ADA=y > CT_CC_SUPPORT_OBJC=y > CT_CC_SUPPORT_OBJCXX=y > > # > # Additional supported languages: > # > CT_CC_LANG_CXX=y > # CT_CC_LANG_FORTRAN is not set > # CT_CC_LANG_JAVA is not set > CT_LIBC="glibc" > > # > # C-library > # > CT_LIBC_VERSION="2.6.1" > # CT_LIBC_eglibc is not set > CT_LIBC_glibc=y > # CT_LIBC_newlib is not set > # CT_LIBC_uClibc is not set > # CT_LIBC_V_2_9 is not set > # CT_LIBC_V_2_8 is not set > # CT_LIBC_V_2_7 is not set > CT_LIBC_V_2_6_1=y > # CT_LIBC_V_2_6 is not set > # CT_LIBC_V_2_5_1 is not set > # CT_LIBC_V_2_5 is not set > # CT_LIBC_V_2_3_6 is not set > # CT_LIBC_GLIBC_2_8_or_later is not set > CT_LIBC_GLIBC_TARBALL=y > # CT_LIBC_GLIBC_CVS is not set > > # > # glibc/eglibc common options > # > CT_LIBC_GLIBC_EXTRA_CONFIG="" > CT_LIBC_GLIBC_CONFIGPARMS="" > CT_LIBC_GLIBC_EXTRA_CFLAGS="" > CT_LIBC_EXTRA_CC_ARGS="" > CT_LIBC_GLIBC_USE_PORTS=y > CT_LIBC_ADDONS_LIST="" > # CT_LIBC_GLIBC_KERNEL_VERSION_NONE is not set > CT_LIBC_GLIBC_KERNEL_VERSION_AS_HEADERS=y > # CT_LIBC_GLIBC_KERNEL_VERSION_CHOSEN is not set > CT_LIBC_GLIBC_MIN_KERNEL="2.6.28.10" > > # > # Common C library options > # > CT_LIBC_SUPPORT_NPTL=y > CT_LIBC_SUPPORT_LINUXTHREADS=y > CT_THREADS="nptl" > CT_THREADS_NPTL=y > # CT_THREADS_LINUXTHREADS is not set > # CT_THREADS_NONE is not set > > # > # Debug facilities > # > # CT_DEBUG_dmalloc is not set > # CT_DEBUG_duma is not set > CT_DEBUG_gdb=y > CT_GDB_CROSS=y > # CT_GDB_CROSS_STATIC is not set > # CT_GDB_NATIVE is not set > CT_GDB_GDBSERVER=y > CT_GDB_GDBSERVER_STATIC=y > CT_GDB_V_6_8=y > # CT_GDB_V_6_7_1 is not set > # CT_GDB_V_6_7 is not set > # CT_GDB_V_6_6 is not set > # CT_GDB_V_6_5 is not set > # CT_GDB_V_6_4 is not set > # CT_GDB_V_snapshot is not set > CT_GDB_VERSION="6.8" > # CT_DEBUG_ltrace is not set > # CT_DEBUG_strace is not set > > # > # Tools facilities > # > # CT_TOOL_libelf is not set > # CT_TOOL_sstrip is not set > > # > # Companion libraries > # > CT_WRAPPER_NEEDED=y > CT_GMP_MPFR=y > CT_GMP_V_4_3_1=y > # CT_GMP_V_4_3_0 is not set > # CT_GMP_V_4_2_4 is not set > # CT_GMP_V_4_2_2 is not set > CT_GMP_VERSION="4.3.1" > CT_MPFR_V_2_4_1=y > # CT_MPFR_V_2_4_0 is not set > # CT_MPFR_V_2_3_2 is not set > # CT_MPFR_V_2_3_1 is not set > CT_MPFR_VERSION="2.4.1" > # CT_PPL_CLOOG_MPC is not set > > # > # Companion libraries common options > # > # CT_COMP_LIBS_CHECK is not set > # CT_COMP_LIBS_TARGET is not set > CT_TOOLS_WRAPPER_SCRIPT=y > # CT_TOOLS_WRAPPER_EXEC is not set > CT_TOOLS_WRAPPER="script" > -- View this message in context: http://old.nabble.com/glibc-for-ARM-with-VFP-hard-float-tp27056583p27060248.html Sent from the Sourceware - crossgcc list mailing list archive at Nabble.com. -- For unsubscribe information see http://sourceware.org/lists.html#faq
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |