This is the mail archive of the binutils@sources.redhat.com mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: i960-* and b.out


| Am Fre, 2002-07-26 um 18.59 schrieb Jim Wilson:
| > >I know that unfortunately a lot of i960 tools defaulted to b.out
| > >for the default name but this oddity is causing unnecessary
| > >issues with at least the RTEMS configurery.
| The problem that hits RTEMS actually is an autoconf problem: 
| autoconf > 2.13 tries to guess on EXEEXT by compiling a c-file without
| any compiler argument: $CC conftest.c
| 
| Using i960-*-gcc's in autoconfiscated source-trees, this leaves b.outs
| around each time a configure-script is run (Autoconf considers 'a.out'
| and cleans them up).
| 
| > > Is there an easy
| > >way to change this so it defaults to a.out like everything else?
| > >Would this cause grief?
| > 
| > Intel changed the a.out object file format, called the result b.out, and then
| > changed the output file name to b.out to make it clear that it wasn't an a.out
| > file.  However, there was never any real need to do that, since we use the
| > file name a.out for COFF and ELF without trouble.
| >
| > See OBJ_DEFAULT_OUTPUT_FILE_NAME in gas/config/obj-bout.h.  This is the only
| > file that uses that macro.  We could just eliminate the macro to solve the
| > problem.
| > 
| > Changing it would mean a minor incompatibility with the Intel GNU960 tools
| > which they still distribute, and which will continue to emit b.out files.
| > There are probably b.out file name assumptions in a few other misc places,
| > like dejagnu, and probably in some other embedded OSes also.
| >         http://developer.intel.com/design/i960/patches/index.htm
| If I read all this correctly, it isn't only i960-*-gcc which produces
| 'b.out', but other i960-compilers do so, too.
| 
| => autoconf probably needs to be extended.

I suppose it should.  But is it possible to see the config.log?  I
would like to understand how autoconf managed to find the objext:

----------------------------------------------------------------------
# _AC_COMPILER_EXEEXT_DEFAULT
# ---------------------------
# Check for the extension used for the default name for executables.
# Beware of `expr' that may return `0' or `'.  Since this macro is
# the first one in touch with the compiler, it should also check that
# it compiles properly.
#
# On OpenVMS 7.1 system, the DEC C 5.5 compiler when called through a
# GNV (gnv.sourceforge.net) cc wrapper, produces the output file named
# `a_out.exe'.
m4_define([_AC_COMPILER_EXEEXT_DEFAULT],
[# Try to create an executable without -o first, disregard a.out.
# It will help us diagnose broken compilers, and finding out an intuition
# of exeext.
AC_MSG_CHECKING([for _AC_LANG compiler default output])
ac_link_default=`echo "$ac_link" | sed ['s/ -o *conftest[^ ]*//']`
AS_IF([AC_TRY_EVAL(ac_link_default)],
[# Find the output, starting from the most likely.  This scheme is
# not robust to junk in `.', hence go to wildcards (a.*) only as a last
# resort.

# Be careful to initialize this variable, since it used to be cached.
# Otherwise an old cache value of `no' led to `EXEEXT = no' in a Makefile.
ac_cv_exeext=
for ac_file in a_out.exe a.exe conftest.exe a.out conftest a.* conftest.*; do
  test -f "$ac_file" || continue
  case $ac_file in
    _AC_COMPILER_EXEEXT_REJECT ) ;;
    a.out ) # We found the default executable, but exeext='' is most
            # certainly right.
            break;;
    *.* ) ac_cv_exeext=`expr "$ac_file" : ['[^.]*\(\..*\)']`
          # FIXME: I believe we export ac_cv_exeext for Libtool --akim.
          export ac_cv_exeext
          break;;
    * ) break;;
  esac
done],
      [echo "$as_me: failed program was:" >&AS_MESSAGE_LOG_FD
cat conftest.$ac_ext >&AS_MESSAGE_LOG_FD
AC_MSG_ERROR([_AC_LANG compiler cannot create executables
check `config.log' for details.], 77)])
ac_exeext=$ac_cv_exeext
AC_MSG_RESULT([$ac_file])
])# _AC_COMPILER_EXEEXT_DEFAULT
----------------------------------------------------------------------


How did this work???  What patch would you suggest?  Thanks!


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]