Wed Jul 26 02:00:29 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>

* malloc/memalign.c: Allocate (SIZE + ALIGNMENT - 1) and then trim
 	if possible.

	* mach/shortcut.awk: Emit decls for RPC.

	* libc-symbols.h [GCC >= 2.7 && !ASSEMBLER] (weak_symbol,
 	weak_alias, strong_alias): Define using GCC __attribute__ syntax.

	* Makerules ($(installed-libcs)): Depend on `lib' (only).
This commit is contained in:
Roland McGrath 1995-07-26 07:10:58 +00:00
parent 9f2233e81a
commit 958f803fc0
3 changed files with 36 additions and 1 deletions

View File

@ -1,3 +1,15 @@
Wed Jul 26 02:00:29 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
* malloc/memalign.c: Allocate (SIZE + ALIGNMENT - 1) and then trim
if possible.
* mach/shortcut.awk: Emit decls for RPC.
* libc-symbols.h [GCC >= 2.7 && !ASSEMBLER] (weak_symbol,
weak_alias, strong_alias): Define using GCC __attribute__ syntax.
* Makerules ($(installed-libcs)): Depend on `lib' (only).
Tue Jul 25 09:14:53 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
* sysdeps/mach/hurd/pathconf.c: Declare VALUE as int, not long int.

View File

@ -134,6 +134,26 @@ Cambridge, MA 02139, USA. */
#endif
#if (!defined (ASSEMBLER) && \
(__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7)))
/* GCC 2.7 and later has special syntax for weak symbols and aliases.
Using that is better when possible, because the compiler and assembler
are better clued in to what we are doing. */
#undef strong_alias
#define strong_alias(name, aliasname) \
__typeof (name) aliasname __attribute__ ((alias (#name)));
#ifdef HAVE_WEAK_SYMBOLS
#undef weak_symbol
#define weak_symbol(name) \
__typeof (name) name __attribute__ ((weak));
#undef weak_alias
#define weak_alias(name, aliasname) \
__typeof (name) aliasname __attribute__ ((weak, alias (#name)));
#endif /* HAVE_WEAK_SYMBOLS. */
#endif /* Not ASSEMBLER, and GCC 2.7 or later. */
/* When the file using this macro is linked in, the linker
will emit a warning message MSG. */

View File

@ -35,11 +35,14 @@ echo == 1 { print $0; }
print "{";
print " kern_return_t err;";
print " extern kern_return_t " syscall " (" proto ");";
print " extern kern_return_t " rpc " (" proto ");";
print " err = " syscall " (" arglist ");";
print " if (err == MACH_SEND_INTERRUPTED)";
print " err = " rpc " (" arglist ");";
print " return err;"
print "}";
print "weak_alias (" call ", " alias ")"
print "weak_alias (" call ", " alias ")";
# Declare RPC so the weak_alias that follows will work.
print "extern __typeof (" call ") " rpc ";";
echo = 1;
}