Rask Ingemann Lambertsen <[EMAIL PROTECTED]> writes:
> On Thu, Nov 29, 2007 at 10:05:54PM +0000, Richard Sandiford wrote:
>> Even though current mainline can build libgfortran, all tests fail for
>> simulator testing, and I'm not sure whether you could get it work for
>> bare-metal boards or not. 
>
>    It works on arm-unknown-elf, v850-unknown-elf and frv-unknown-elf:
> http://gcc.gnu.org/ml/gcc-testresults/2007-11/msg01428.html
> http://gcc.gnu.org/ml/gcc-testresults/2007-11/msg01468.html
> http://gcc.gnu.org/ml/gcc-testresults/2007-11/msg00427.html
>
>    Some work has been and is being done in this area:
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21185
>
>    Hans, you showed gfortran results for cris-elf, but we don't seem to be
> building gfortran for the cris?
>
>> It sounds like we've agreed that, if we want
>> to support libgfortran on targets like mips*-elf*, we should use
>> libstd++-like with_newlib checks there too.
>
>    Likewise for the other target libraries - how many did you test?

C, C++ and Objective C.  Libjava isn't supported before or after
the patch for mips*-elf*.  Which other libraries were you thinking of?

>    I tried a build of sparc-unknown-elf (which is know to fail link tests)
> with "with_newlib" checks around the AC_LIBTOOL_DLOPEN macro in both
> libstdc++ and libgfortran. It fails because:
>
> configure:3391: checking whether symbol versioning is supported
> configure:3402: error: Link tests are not allowed after GCC_NO_EXECUTABLES.
>
> With this patch I get marginally further:

Yeah, as it happens, I'd got a similar patch too.  As the comment says,
the test is taken from libssp, which was later adjusted to handle
$with_newlib correctly:

--------------------------------------------------------------------------
AC_MSG_CHECKING([whether symbol versioning is supported])
cat > conftest.map <<EOF
FOO_1.0 {
  global: *foo*; bar; local: *;
};
EOF
save_LDFLAGS="$LDFLAGS"
LDFLAGS="$LDFLAGS -fPIC -shared -Wl,--version-script,./conftest.map"
if test x$gcc_no_link = xyes; then
  # If we cannot link, we cannot build shared libraries, so do not use
  # symbol versioning.
  ssp_use_symver=no
else
  AC_TRY_LINK([int foo;],[],[ssp_use_symver=yes],[ssp_use_symver=no])
fi
LDFLAGS="$save_LDFLAGS"
AC_MSG_RESULT($ssp_use_symver)
AM_CONDITIONAL(LIBSSP_USE_SYMVER, [test "x$ssp_use_symver" = xyes])
--------------------------------------------------------------------------

So my patch simply copied the new test across to libgfortran, although the
outcome is obviously the same either way.

However, I then realised that it was only the beginning.  We have lots
of AC_CHECK_FUNCS and AC_CHECK_LIB tests, which we would need to handle
in the same way as for libstdc++-v3.  A useful project, but probably too
dangerous for 4.3.

>> @@ -2410,6 +2368,16 @@ fi
>>  
>>  # Search for other target-specific linker scripts and such.
>>  case "${target}" in
>> +  m32c-*-* )
>> +    if test -d ${srcdir}/libgloss/m32c; then
>> +      # This is for crt0.o
>> +      FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' 
>> -B$$r/$(TARGET_SUBDIR)/libgloss/m32c'
>> +      # This is for r8c.ld
>> +      FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' 
>> -L$$r/$(TARGET_SUBDIR)/libgloss/m32c'
>> +      # This is for libnosys.a
>> +      FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' 
>> -L$$r/$(TARGET_SUBDIR)/libgloss/libnosys'
>> +    fi
>> +    ;;
>>    mep*)
>>      FLAGS_FOR_TARGET="$FLAGS_FOR_TARGET -mlibrary"
>>      ;;
>
>    This hunk should be left out.

I was thinking I should return it to the pre-patch situation, as I wasn't
comfortable overriding a decision made by the m32c maintainer.  That said,
the changelog says:

2006-04-18  DJ Delorie  <[EMAIL PROTECTED]>

        * configure.in (m32c): Build libstdc++-v3.  Pass flags to
        reference libgloss so that libssp can be built in a combined
        tree.
        * configure: Regenerate.

and libssp was later made newlib-friendly by (at least):

2006-09-29  Joseph S. Myers  <[EMAIL PROTECTED]>

        PR other/25035
        * configure.ac (AC_EXEEXT): Remove.
        (GCC_NO_EXECUTABLES): Call.
        (ssp_use_symver): Default to no if unable to link.
        (AC_CHECK_FUNCS): Hardwire results if unable to link.
        * aclocal.m4, configure, Makefile.in: Regenerate.

Mark, DJ?  Do you agree it's OK to drop that hunk?

Richard

Reply via email to