+2001-05-13 Zack Weinberg <zackw@stanford.edu>
+
+ * libgcc2.c, libgcc2.h: Restore __eprintf. Label as used for
+ binary backward compat only.
+ * Makefile.in (LIB2FUNCS_ST): New. Put _eprintf here, not
+ in LIB2FUNCS. Pass it to mklibgcc.
+ * mklibgcc.in: Handle LIB2FUNCS_ST.
+
+ * Makefile.in (installdirs): Don't create $(gcc_tooldir).
+
2001-05-13 Alexandre Oliva <aoliva@redhat.com>
* tm.texi (THREAD_MODEL_SPEC): Document it.
_fixunsdfsi _fixunssfsi _fixunsdfdi _fixdfdi _fixunssfdi _fixsfdi \
_fixxfdi _fixunsxfdi _floatdixf _fixunsxfsi \
_fixtfdi _fixunstfdi _floatditf \
- __gcc_bcmp _eprintf \
- _bb _clear_cache _trampoline __main _exit \
+ __gcc_bcmp _bb _clear_cache _trampoline __main _exit \
_absvsi2 _absvdi2 _addvsi3 _addvdi3 _subvsi3 _subvdi3 \
_mulvsi3 _mulvdi3 _negvsi2 _negvdi2 \
_ctors
+# Defined in libgcc2.c, included only in the static library.
+LIB2FUNCS_ST = _eprintf
+
FPBIT_FUNCS = _pack_sf _unpack_sf _addsub_sf _mul_sf _div_sf \
_fpcmp_parts_sf _compare_sf _eq_sf _ne_sf _gt_sf _ge_sf \
_lt_sf _le_sf _unord_sf _si_to_sf _sf_to_si _negate_sf _make_sf \
LIB1ASMFUNCS='$(LIB1ASMFUNCS)' \
LIB1FUNCS_EXTRA='$(LIB1FUNCS_EXTRA)' \
LIB2FUNCS='$(LIB2FUNCS)' \
+ LIB2FUNCS_ST='$(LIB2FUNCS_ST)' \
LIB2ADD='$(LIB2ADD)' \
LIB2ADD_ST='$(LIB2ADD_ST)' \
LIB2ADDEH='$(LIB2ADDEH)' \
done
-if [ -d $(bindir) ] ; then true ; else mkdir $(bindir) ; chmod a+rx $(bindir) ; fi
-if [ -d $(includedir) ] ; then true ; else mkdir $(includedir) ; chmod a+rx $(includedir) ; fi
- -if [ -d $(gcc_tooldir) ] ; then true ; else mkdir $(gcc_tooldir) ; chmod a+rx $(gcc_tooldir) ; fi
-if [ -d $(infodir) ] ; then true ; else mkdir $(infodir) ; chmod a+rx $(infodir) ; fi
-if [ -d $(slibdir) ] ; then true ; else mkdir $(slibdir) ; chmod a+rx $(slibdir) ; fi
# We don't use mkdir -p to create the parents of man1dir,
return 0;
}
+#endif
+\f
+/* __eprintf used to be used by GCC's private version of <assert.h>.
+ We no longer provide that header, but this routine remains in libgcc.a
+ for binary backward compatibility. Note that it is not included in
+ the shared version of libgcc. */
+#ifdef L_eprintf
+#ifndef inhibit_libc
+
+#undef NULL /* Avoid errors if stdio.h and our stddef.h mismatch. */
+#include <stdio.h>
+
+void
+__eprintf (const char *string, const char *expression,
+ unsigned int line, const char *filename)
+{
+ fprintf (stderr, string, expression, line, filename);
+ fflush (stderr);
+ abort ();
+}
+
+#endif
#endif
#ifdef L_bb
extern int __gcc_bcmp (const unsigned char *, const unsigned char *, size_t);
extern void __clear_cache (char *, char *);
+extern void __eprintf (const char *, const char *, unsigned int, const char *)
+ __attribute__ ((__noreturn__));
struct bb;
extern void __bb_exit_func (void);
# LIB1ASMFUNCS
# LIB1FUNCS_EXTRA
# LIB2FUNCS
+# LIB2FUNCS_ST
# LIB2ADD
# LIB2ADD_ST
# LIB2ADDEH
#
libgcc2_objs=""
+libgcc2_st_objs=""
for name in $LIB2FUNCS; do
for ml in $MULTILIBS; do
libgcc2_objs="$libgcc2_objs ${name}${objext}"
done
+for name in $LIB2FUNCS_ST; do
+ for ml in $MULTILIBS; do
+ dir=`echo ${ml} | sed -e 's/;.*$//' -e 's/=/$(EQ)/g'`
+ flags=`echo ${ml} | sed -e 's/^[^;]*;//' -e 's/@/ -/g'`;
+ out="libgcc/${dir}/${name}${objext}"
+
+ echo $out: $libgcc2_c_dep
+ echo " $gcc_compile" '$(MAYBE_USE_COLLECT2)' $flags -DL$name \
+ -c '$(srcdir)/libgcc2.c' -o $out
+ done
+ libgcc2_st_objs="$libgcc2_st_objs ${name}${objext}"
+done
+
if [ "$FPBIT" ]; then
for name in $FPBIT_FUNCS; do
for ml in $MULTILIBS; do
libgcc2_objs="$libgcc2_objs ${oname}${objext}"
done
-libgcc2_st_objs=""
-
for file in $LIB2ADD_ST; do
name=`echo $file | sed -e 's/[.][cSo]$//' -e 's/[.]asm$//' -e 's/[.]txt$//'`
oname=`echo $name | sed -e 's,.*/,,'`