X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=sim%2Fmips%2Fconfigure;h=c31d65e652910ffde3e67ea4bee4a06fabdae352;hb=1ac72f0659d64d6a14da862242db0d841d2878d0;hp=792d77ca99f49016ad308f3754d7bbcd1c2fa1c9;hpb=49cd1634b2a59879329c5a285192ac581e64904c;p=deliverable%2Fbinutils-gdb.git diff --git a/sim/mips/configure b/sim/mips/configure index 792d77ca99..c31d65e652 100755 --- a/sim/mips/configure +++ b/sim/mips/configure @@ -609,6 +609,8 @@ sim_multi_src sim_multi_igen_configs sim_multi_flags sim_gen +sim_micromips16_flags +sim_micromips_flags sim_m16_flags sim_igen_flags SIM_SUBTARGET @@ -643,6 +645,8 @@ SED LIBTOOL PLUGINS_FALSE PLUGINS_TRUE +zlibinc +zlibdir CATOBJEXT GENCAT INSTOBJEXT @@ -753,7 +757,7 @@ SHELL' ac_subst_files='' ac_user_opts=' enable_option_checking -with_zlib +with_system_zlib enable_plugins enable_shared enable_static @@ -1424,36 +1428,49 @@ Optional Features: --disable-libtool-lock avoid locking (might break parallel builds) --enable-maintainer-mode enable make rules and dependencies not useful (and sometimes confusing) to the casual installer - --enable-sim-bswap Use Host specific BSWAP instruction. - --enable-sim-cflags=opts Extra CFLAGS for use in building simulator - --enable-sim-debug=opts Enable debugging flags - --enable-sim-stdio Specify whether to use stdio for console input/output. - --enable-sim-trace=opts Enable tracing flags - --enable-sim-profile=opts Enable profiling flags - --enable-sim-inline=inlines Specify which functions should be inlined. - --enable-sim-alignment=align Specify strict, nonstrict or forced alignment of memory accesses. - --enable-sim-hostendian=end Specify host byte endian orientation. + --enable-sim-bswap Use Host specific BSWAP instruction + --enable-sim-cflags=opts + Extra CFLAGS for use in building simulator + --enable-sim-debug=opts Enable debugging flags (for developers of the sim + itself) + --enable-sim-stdio Specify whether to use stdio for console + input/output + --enable-sim-trace=opts Enable tracing of simulated programs + --enable-sim-profile=opts + Enable profiling flags + --enable-sim-inline=inlines + Specify which functions should be inlined + --enable-sim-alignment=align + Specify strict, nonstrict or forced alignment of + memory accesses + --enable-sim-hostendian=end + Specify host byte endian orientation --enable-werror treat compile warnings as errors --enable-build-warnings enable build-time compiler warnings if gcc is used --enable-sim-build-warnings enable SIM specific build-time compiler warnings if gcc is used - --enable-sim-reserved-bits Specify whether to check reserved bits in instruction. - --enable-sim-endian=endian Specify target byte endian orientation. - --enable-sim-bitsize=N Specify target bitsize (32 or 64). - --enable-sim-float Specify that the target processor has floating point hardware. - --enable-sim-smp=n Specify number of processors to configure for (default ${default_sim_smp}). + --enable-sim-reserved-bits + Specify whether to check reserved bits in + instruction + --enable-sim-endian=endian + Specify target byte endian orientation + --enable-sim-bitsize=N Specify target bitsize (32 or 64) + --enable-sim-float Specify that the target processor has floating point + hardware + --enable-sim-smp=n Specify number of processors to configure for + (default ${default_sim_smp}) --enable-sim-hardware=LIST Specify the hardware to be included in the build. Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) - --with-zlib include zlib support (auto/yes/no) default=auto + --with-system-zlib use installed libz --with-pic try to use only PIC/non-PIC objects [default=use both] --with-gnu-ld assume the C compiler uses GNU ld [default=no] - --with-pkgversion=PKG Use PKG in the version string in place of "GDB" + --with-pkgversion=PKG Use PKG in the version string in place of "SIM" --with-bugurl=URL Direct users to URL to report a bug --with-x use the X Window System @@ -2253,7 +2270,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu # SIM_AC_OUTPUT is a cover function to AC_OUTPUT to generate the Makefile. # It is intended to be invoked last. # -# The simulator's configure.in should look like: +# The simulator's configure.ac should look like: # # dnl Process this file with autoconf to produce a configure script. # AC_PREREQ(2.64)dnl @@ -2315,7 +2332,6 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu - # libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, @@ -8316,8 +8332,6 @@ else fi - - # Some of the common include files depend on bfd.h, and bfd.h checks # that config.h is included first by testing that the PACKAGE macro # is defined. @@ -8728,88 +8742,21 @@ fi # BFD conditionally uses zlib, so we must link it in if libbfd does, by # using the same condition. - # See if the user specified whether he wants zlib support or not. - -# Check whether --with-zlib was given. -if test "${with_zlib+set}" = set; then : - withval=$with_zlib; -else - with_zlib=auto -fi - - - if test "$with_zlib" != "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing zlibVersion" >&5 -$as_echo_n "checking for library containing zlibVersion... " >&6; } -if test "${ac_cv_search_zlibVersion+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + # Use the system's zlib library. + zlibdir="-L\$(top_builddir)/../zlib" + zlibinc="-I\$(top_srcdir)/../zlib" -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char zlibVersion (); -int -main () -{ -return zlibVersion (); - ; - return 0; -} -_ACEOF -for ac_lib in '' z; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" +# Check whether --with-system-zlib was given. +if test "${with_system_zlib+set}" = set; then : + withval=$with_system_zlib; if test x$with_system_zlib = xyes ; then + zlibdir= + zlibinc= fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_zlibVersion=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if test "${ac_cv_search_zlibVersion+set}" = set; then : - break -fi -done -if test "${ac_cv_search_zlibVersion+set}" = set; then : - -else - ac_cv_search_zlibVersion=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_zlibVersion" >&5 -$as_echo "$ac_cv_search_zlibVersion" >&6; } -ac_res=$ac_cv_search_zlibVersion -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - for ac_header in zlib.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "zlib.h" "ac_cv_header_zlib_h" "$ac_includes_default" -if test "x$ac_cv_header_zlib_h" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_ZLIB_H 1 -_ACEOF fi -done -fi - if test "$with_zlib" = "yes" -a "$ac_cv_header_zlib_h" != "yes"; then - as_fn_error "zlib (libz) library was explicitly requested but not found" "$LINENO" 5 - fi - fi # BFD uses libdl when when plugins enabled. @@ -12400,7 +12347,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 12403 "configure" +#line 12350 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -12506,7 +12453,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 12509 "configure" +#line 12456 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -12842,10 +12789,10 @@ fi # Check whether --enable-sim-trace was given. if test "${enable_sim_trace+set}" = set; then : enableval=$enable_sim_trace; case "${enableval}" in - yes) sim_trace="-DTRACE=1 -DWITH_TRACE=-1";; - no) sim_trace="-DTRACE=0 -DWITH_TRACE=0";; + yes) sim_trace="-DWITH_TRACE=-1";; + no) sim_trace="-DWITH_TRACE=0";; [-0-9]*) - sim_trace="-DTRACE='(${enableval})' -DWITH_TRACE='(${enableval})'";; + sim_trace="-DWITH_TRACE='(${enableval})'";; [[:lower:]]*) sim_trace="" for x in `echo "$enableval" | sed -e "s/,/ /g"`; do @@ -12902,7 +12849,7 @@ if test "${with_pkgversion+set}" = set; then : *) PKGVERSION="($withval) " ;; esac else - PKGVERSION="(GDB) " + PKGVERSION="(SIM) " fi @@ -13090,9 +13037,9 @@ fi # Check whether --enable-sim-hostendian was given. if test "${enable_sim_hostendian+set}" = set; then : enableval=$enable_sim_hostendian; case "${enableval}" in - no) sim_hostendian="-DWITH_HOST_BYTE_ORDER=0";; - b*|B*) sim_hostendian="-DWITH_HOST_BYTE_ORDER=BIG_ENDIAN";; - l*|L*) sim_hostendian="-DWITH_HOST_BYTE_ORDER=LITTLE_ENDIAN";; + no) sim_hostendian="-DWITH_HOST_BYTE_ORDER=BFD_ENDIAN_UNKNOWN";; + b*|B*) sim_hostendian="-DWITH_HOST_BYTE_ORDER=BFD_ENDIAN_BIG";; + l*|L*) sim_hostendian="-DWITH_HOST_BYTE_ORDER=BFD_ENDIAN_LITTLE";; *) as_fn_error "\"Unknown value $enableval for --enable-sim-hostendian\"" "$LINENO" 5; sim_hostendian="";; esac if test x"$silent" != x"yes" && test x"$sim_hostendian" != x""; then @@ -13326,12 +13273,12 @@ $as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h esac if test $ac_cv_c_bigendian = yes; then - sim_hostendian="-DWITH_HOST_BYTE_ORDER=BIG_ENDIAN" + sim_hostendian="-DWITH_HOST_BYTE_ORDER=BFD_ENDIAN_BIG" else - sim_hostendian="-DWITH_HOST_BYTE_ORDER=LITTLE_ENDIAN" + sim_hostendian="-DWITH_HOST_BYTE_ORDER=BFD_ENDIAN_LITTLE" fi else - sim_hostendian="-DWITH_HOST_BYTE_ORDER=0" + sim_hostendian="-DWITH_HOST_BYTE_ORDER=BFD_ENDIAN_UNKNOWN" fi fi @@ -13479,14 +13426,14 @@ esac mips_endian= default_endian= case "${target}" in - mips64el*-*-*) mips_endian=LITTLE_ENDIAN ;; - mips64vr*el-*-*) default_endian=LITTLE_ENDIAN ;; - mips64*-*-*) default_endian=BIG_ENDIAN ;; - mips16*-*-*) default_endian=BIG_ENDIAN ;; - mipsisa32*-*-*) default_endian=BIG_ENDIAN ;; - mipsisa64*-*-*) default_endian=BIG_ENDIAN ;; - mips*-*-*) default_endian=BIG_ENDIAN ;; - *) default_endian=BIG_ENDIAN ;; + mips64el*-*-*) mips_endian=LITTLE ;; + mips64vr*el-*-*) default_endian=LITTLE ;; + mips64*-*-*) default_endian=BIG ;; + mips16*-*-*) default_endian=BIG ;; + mipsisa32*-*-*) default_endian=BIG ;; + mipsisa64*-*-*) default_endian=BIG ;; + mips*-*-*) default_endian=BIG ;; + *) default_endian=BIG ;; esac wire_endian="$mips_endian" @@ -13494,26 +13441,26 @@ default_endian="$default_endian" # Check whether --enable-sim-endian was given. if test "${enable_sim_endian+set}" = set; then : enableval=$enable_sim_endian; case "${enableval}" in - b*|B*) sim_endian="-DWITH_TARGET_BYTE_ORDER=BIG_ENDIAN";; - l*|L*) sim_endian="-DWITH_TARGET_BYTE_ORDER=LITTLE_ENDIAN";; + b*|B*) sim_endian="-DWITH_TARGET_BYTE_ORDER=BFD_ENDIAN_BIG";; + l*|L*) sim_endian="-DWITH_TARGET_BYTE_ORDER=BFD_ENDIAN_LITTLE";; yes) if test x"$wire_endian" != x; then - sim_endian="-DWITH_TARGET_BYTE_ORDER=${wire_endian}" + sim_endian="-DWITH_TARGET_BYTE_ORDER=BFD_ENDIAN_${wire_endian}" else - if test x"$default_endian" != x; then - sim_endian="-DWITH_TARGET_BYTE_ORDER=${default_endian}" + if test x"$default_endian" != x; then + sim_endian="-DWITH_TARGET_BYTE_ORDER=BFD_ENDIAN_${default_endian}" else echo "No hard-wired endian for target $target" 1>&6 - sim_endian="-DWITH_TARGET_BYTE_ORDER=0" + sim_endian="-DWITH_TARGET_BYTE_ORDER=BFD_ENDIAN_UNKNOWN" fi fi;; no) if test x"$default_endian" != x; then - sim_endian="-DWITH_DEFAULT_TARGET_BYTE_ORDER=${default_endian}" + sim_endian="-DWITH_DEFAULT_TARGET_BYTE_ORDER=BFD_ENDIAN_${default_endian}" else if test x"$wire_endian" != x; then - sim_endian="-DWITH_DEFAULT_TARGET_BYTE_ORDER=${wire_endian}" + sim_endian="-DWITH_DEFAULT_TARGET_BYTE_ORDER=BFD_ENDIAN_${wire_endian}" else echo "No default endian for target $target" 1>&6 - sim_endian="-DWITH_DEFAULT_TARGET_BYTE_ORDER=0" + sim_endian="-DWITH_DEFAULT_TARGET_BYTE_ORDER=BFD_ENDIAN_UNKNOWN" fi fi;; *) as_fn_error "\"Unknown value $enableval for --enable-sim-endian\"" "$LINENO" 5; sim_endian="";; @@ -13523,10 +13470,10 @@ if test x"$silent" != x"yes" && test x"$sim_endian" != x""; then fi else if test x"$default_endian" != x; then - sim_endian="-DWITH_DEFAULT_TARGET_BYTE_ORDER=${default_endian}" + sim_endian="-DWITH_DEFAULT_TARGET_BYTE_ORDER=BFD_ENDIAN_${default_endian}" else if test x"$wire_endian" != x; then - sim_endian="-DWITH_TARGET_BYTE_ORDER=${wire_endian}" + sim_endian="-DWITH_TARGET_BYTE_ORDER=BFD_ENDIAN_${wire_endian}" else sim_endian= fi @@ -13727,11 +13674,11 @@ case "${target}" in sim_multi_default=mips5000 ;; mips*-sde-elf* | mips*-mti-elf*) - sim_gen=M16 - sim_igen_machine="-M mips64r2,mips3d,mips16,mips16e,mdmx,dsp,dsp2,smartmips" - sim_m16_machine="-M mips16,mips16e,mips64r2" - sim_igen_filter="32,64,f" - sim_mach_default="mipsisa64r2" + sim_gen=MULTI + sim_multi_configs="\ + micromips:micromips64,micromipsdsp:32,64,f:mips_micromips\ + mips64r2:mips64r2,mips3d,mips16,mips16e,mdmx,dsp,dsp2,smartmips:32,64,f:mipsisa64r2" + sim_multi_default=mipsisa64r2 ;; mips64*-*-*) sim_igen_filter="32,64,f" sim_gen=IGEN @@ -13740,11 +13687,11 @@ case "${target}" in sim_igen_filter="32,64,f" sim_m16_filter="16" ;; - mipsisa32r2*-*-*) sim_gen=M16 - sim_igen_machine="-M mips32r2,mips16,mips16e,mdmx,dsp,dsp2,smartmips" - sim_m16_machine="-M mips16,mips16e,mips32r2" - sim_igen_filter="32,f" - sim_mach_default="mipsisa32r2" + mipsisa32r2*-*-*) sim_gen=MULTI + sim_multi_configs="\ + micromips:micromips32,micromipsdsp:32,f:mips_micromips\ + mips32r2:mips32r2,mips3d,mips16,mips16e,mdmx,dsp,dsp2,smartmips:32,f:mipsisa32r2" + sim_multi_default=mipsisa32r2 ;; mipsisa32*-*-*) sim_gen=M16 sim_igen_machine="-M mips32,mips16,mips16e,smartmips" @@ -13809,20 +13756,20 @@ if test ${sim_gen} = MULTI; then # Simple sanity check. if test -z "${sim_multi_configs}" || test -z "${sim_multi_default}"; then - as_fn_error "Error in configure.in: MULTI simulator not set up correctly" "$LINENO" 5 + as_fn_error "Error in configure.ac: MULTI simulator not set up correctly" "$LINENO" 5 fi # Start in a known state. rm -f multi-include.h multi-run.c sim_multi_flags= sim_multi_src= - sim_multi_obj=multi-run.o + sim_multi_obj= sim_multi_igen_configs= sim_seen_default=no cat << __EOF__ > multi-run.c /* Main entry point for MULTI simulators. - Copyright (C) 2003-2015 Free Software Foundation, Inc. + Copyright (C) 2003-2016 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -13843,6 +13790,8 @@ if test ${sim_gen} = MULTI; then #include "sim-main.h" #include "multi-include.h" +#include "elf-bfd.h" +#include "elf/mips.h" #define SD sd #define CPU cpu @@ -13857,6 +13806,9 @@ sim_engine_run (SIM_DESC sd, if (STATE_ARCHITECTURE (sd) == NULL) mach = bfd_mach_${sim_multi_default}; + else if (elf_elfheader (sd->base.prog_bfd)->e_flags + & EF_MIPS_ARCH_ASE_MICROMIPS) + mach = bfd_mach_mips_micromips; else mach = STATE_ARCHITECTURE (SD)->mach; @@ -13886,7 +13838,7 @@ __EOF__ # the ${sim_multi_configs} entry. sim_multi_flags="${sim_multi_flags} -F ${filter} -M ${machine}" - # Check whether mips16 handling is needed. + # Check whether special handling is needed. case ${c} in *:*mips16*:*) # Run igen twice, once for normal mode and once for mips16. @@ -13899,6 +13851,30 @@ __EOF__ sim_multi_obj="${sim_multi_obj} m16${name}_run.o" sim_multi_flags="${sim_multi_flags} -F 16" ;; + *:*micromips32*:*) + # Run igen thrice, once for micromips32, once for micromips16, + # and once for m32. + ws="micromips_m32 micromips16 micromips32" + + # The top-level function for the micromips simulator is + # in a file micromips${name}_run.c, generated by the + # tmp-run-multi Makefile rule. + sim_multi_src="${sim_multi_src} micromips${name}_run.c" + sim_multi_obj="${sim_multi_obj} micromips${name}_run.o" + sim_multi_flags="${sim_multi_flags} -F 16,32" + ;; + *:*micromips64*:*) + # Run igen thrice, once for micromips64, once for micromips16, + # and once for m64. + ws="micromips_m64 micromips16 micromips64" + + # The top-level function for the micromips simulator is + # in a file micromips${name}_run.c, generated by the + # tmp-run-multi Makefile rule. + sim_multi_src="${sim_multi_src} micromips${name}_run.c" + sim_multi_obj="${sim_multi_obj} micromips${name}_run.o" + sim_multi_flags="${sim_multi_flags} -F 16,32,64" + ;; *) ws=m32 ;; @@ -13934,7 +13910,7 @@ __EOF__ # Check whether we added a 'default:' label. if test ${sim_seen_default} = no; then - as_fn_error "Error in configure.in: \${sim_multi_configs} doesn't have an entry for \${sim_multi_default}" "$LINENO" 5 + as_fn_error "Error in configure.ac: \${sim_multi_configs} doesn't have an entry for \${sim_multi_default}" "$LINENO" 5 fi cat << __EOF__ >> multi-run.c @@ -13978,12 +13954,14 @@ else sim_multi_src=doesnt-exist.c if test x"${sim_mach_default}" = x""; then - as_fn_error "Error in configure.in: \${sim_mach_default} not defined" "$LINENO" 5 + as_fn_error "Error in configure.ac: \${sim_mach_default} not defined" "$LINENO" 5 fi SIM_SUBTARGET="$SIM_SUBTARGET -DMIPS_MACH_DEFAULT=bfd_mach_${sim_mach_default}" fi sim_igen_flags="-F ${sim_igen_filter} ${sim_igen_machine} ${sim_igen_smp}" sim_m16_flags=" -F ${sim_m16_filter} ${sim_m16_machine} ${sim_igen_smp}" +sim_micromips16_flags=" -F ${sim_micromips16_filter} ${sim_micromips16_machine} ${sim_igen_smp}" +sim_micromips_flags=" -F ${sim_micromips_filter} ${sim_micromips_machine} ${sim_igen_smp}" @@ -14001,18 +13979,11 @@ case "${target}" in mips*tx39*) hw_enabled=yes hw_extra_devices="tx3904cpu tx3904irc tx3904tmr tx3904sio" - SIM_SUBTARGET="$SIM_SUBTARGET -DTARGET_TX3904=1" ;; *) ;; esac -if test x"$hw_enabled" != x"no"; then - enable_sim_hardware=yes -else - enable_sim_hardware=no -fi - if test "$hw_devices"; then hardware="$hw_devices" else @@ -14027,21 +13998,18 @@ sim_hw_objs="\$(SIM_COMMON_HW_OBJS) `echo $sim_hw | sed -e 's/\([^ ][^ ]*\)/dv-\ # Check whether --enable-sim-hardware was given. if test "${enable_sim_hardware+set}" = set; then : enableval=$enable_sim_hardware; +else + enable_sim_hardware="$hw_enabled" fi case ${enable_sim_hardware} in - yes) sim_hw_p=yes;; - no) sim_hw_p=no;; - ,*) sim_hw_p=yes; hardware="${hardware} `echo ${enableval} | sed -e 's/,/ /'`";; - *,) sim_hw_p=yes; hardware="`echo ${enableval} | sed -e 's/,/ /'` ${hardware}";; - *) sim_hw_p=yes; hardware="`echo ${enableval} | sed -e 's/,/ /'`"'';; + yes|no) ;; + ,*) hardware="${hardware} `echo ${enableval} | sed -e 's/,/ /'`";; + *,) hardware="`echo ${enableval} | sed -e 's/,/ /'` ${hardware}";; + *) hardware="`echo ${enableval} | sed -e 's/,/ /'`"'';; esac -if test "$sim_hw_p" != yes; then - if test "$hw_enabled" = "always"; then - as_fn_error "Sorry, but this simulator requires that hardware support -be enabled. Please configure without --disable-hw-support." "$LINENO" 5 - fi +if test "$enable_sim_hardware" = no; then sim_hw_objs= sim_hw_cflags="-DWITH_HW=0" sim_hw=