1998-06-25 19:26  Ulrich Drepper  <drepper@cygnus.com>

	* Makeconfig (CPPFLAGS): Use $($(subdir)-CPPFLAGS) if defined first.
	* locale/Makefile: Define locale-CPPFLAGS instead of redefining
	CPPFLAGS.

	* libc.map: Export __sigaction.

1998-06-25  Andreas Jaeger  <aj@arthur.rhein-neckar.de>

	* sysdeps/unix/sysv/linux/bits/sched.h (CLONE_PTRACE): Add it
	(from Linux 2.1.107).

1998-06-24  Ulrich Drepper  <drepper@cygnus.com>

	* nss/nss_files/files-XXX.c (_nss_files_get,ENTNAME_r): Initialize
	position when file was opened here.
	Reported by Howard Chu <hyc@platinum.com>.

	* sysdeps/generic/glob.c: Also protect FNM_* macros from being
	undefined in a second inclusion.

1998-06-20  Mark Kettenis  <kettenis@phys.uva.nl>

	* sysdeps/mach/hurd/i386/Makefile: New file.
	* sysdeps/mach/hurd/i386/init-first.c [!PIC] (init1): Call
	__libc_init_secure.
	(_hurd_stack_setup): Renamed
	from __libc_init_first.
	(__libc_init_first): New function.
	* sysdeps/mach/hurd/i386/static-start.S: New file.

1998-05-30  Mark Kettenis  <kettenis@phys.uva.nl>

	* sysdeps/mach/hurd/i386/init-first.c

1998-06-22  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* grp/initgroups.c: Use _CALL_DL_FCT.

1998-06-23  Mark Kettenis  <kettenis@phys.uva.nl>

	* elf/dl-load.c (_dl_map_object_from_fd): Add missing cast.
This commit is contained in:
Ulrich Drepper 1998-06-25 19:44:22 +00:00
parent 75c3a84f29
commit 0ca7e46e16
8 changed files with 176 additions and 17 deletions

View File

@ -1,3 +1,47 @@
1998-06-25 19:26 Ulrich Drepper <drepper@cygnus.com>
* Makeconfig (CPPFLAGS): Use $($(subdir)-CPPFLAGS) if defined first.
* locale/Makefile: Define locale-CPPFLAGS instead of redefining
CPPFLAGS.
* libc.map: Export __sigaction.
1998-06-25 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* sysdeps/unix/sysv/linux/bits/sched.h (CLONE_PTRACE): Add it
(from Linux 2.1.107).
1998-06-24 Ulrich Drepper <drepper@cygnus.com>
* nss/nss_files/files-XXX.c (_nss_files_get,ENTNAME_r): Initialize
position when file was opened here.
Reported by Howard Chu <hyc@platinum.com>.
* sysdeps/generic/glob.c: Also protect FNM_* macros from being
undefined in a second inclusion.
1998-06-20 Mark Kettenis <kettenis@phys.uva.nl>
* sysdeps/mach/hurd/i386/Makefile: New file.
* sysdeps/mach/hurd/i386/init-first.c [!PIC] (init1): Call
__libc_init_secure.
(_hurd_stack_setup): Renamed
from __libc_init_first.
(__libc_init_first): New function.
* sysdeps/mach/hurd/i386/static-start.S: New file.
1998-05-30 Mark Kettenis <kettenis@phys.uva.nl>
* sysdeps/mach/hurd/i386/init-first.c
1998-06-22 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* grp/initgroups.c: Use _CALL_DL_FCT.
1998-06-23 Mark Kettenis <kettenis@phys.uva.nl>
* elf/dl-load.c (_dl_map_object_from_fd): Add missing cast.
1998-06-23 Andreas Jaeger <aj@arthur.rhein-neckar.de> 1998-06-23 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* manual/terminal.texi (Pseudo-Terminals): Correct typos. * manual/terminal.texi (Pseudo-Terminals): Correct typos.

View File

@ -20,8 +20,7 @@
* sysdeps/pthread/pthread.h: Likewise. * sysdeps/pthread/pthread.h: Likewise.
Patches by Xavier leroy. Patches by Xavier leroy.
* sysdeps/i386/pt-machine.h: When compiling for i686 don't test for * sysdeps/i386/i686/pt-machine.h: New file.
xchgcmp instruction, it is available.
1998-06-25 Ulrich Drepper <drepper@cygnus.com> 1998-06-25 Ulrich Drepper <drepper@cygnus.com>

View File

@ -0,0 +1,72 @@
/* Machine-dependent pthreads configuration and inline functions.
i686 version.
Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson <rth@tamu.edu>.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
/* Spinlock implementation; required. */
extern inline int
testandset (int *spinlock)
{
int ret;
__asm__ __volatile__("xchgl %0, %1"
: "=r"(ret), "=m"(*spinlock)
: "0"(1), "m"(*spinlock));
return ret;
}
/* Get some notion of the current stack. Need not be exactly the top
of the stack, just something somewhere in the current frame. */
#define CURRENT_STACK_FRAME stack_pointer
register char * stack_pointer __asm__ ("%esp");
/* Compare-and-swap for semaphores. It's always available on i686. */
#define HAS_COMPARE_AND_SWAP
extern inline int
__compare_and_swap (long int *p, long int oldval, long int newval)
{
char ret;
long int readval;
__asm__ __volatile__ ("lock; cmpxchgl %3, %1; sete %0"
: "=q" (ret), "=m" (*p), "=a" (readval)
: "r" (newval), "m" (*p), "a" (oldval));
return ret;
}
extern inline int
get_eflags (void)
{
int res;
__asm__ __volatile__ ("pushfl; popl %0" : "=r" (res) : );
return res;
}
extern inline void
set_eflags (int newflags)
{
__asm__ __volatile__ ("pushl %0; popfl" : : "r" (newflags) : "cc");
}

View File

@ -45,9 +45,7 @@ register char * stack_pointer __asm__ ("%esp");
We test dynamically whether it's available or not. */ We test dynamically whether it's available or not. */
#define HAS_COMPARE_AND_SWAP #define HAS_COMPARE_AND_SWAP
#ifndef __i686__ #define TEST_FOR_COMPARE_AND_SWAP
# define TEST_FOR_COMPARE_AND_SWAP
#endif
extern inline int extern inline int
__compare_and_swap (long int *p, long int oldval, long int newval) __compare_and_swap (long int *p, long int oldval, long int newval)

View File

@ -73,13 +73,13 @@ $(objpfx)localedef $(objpfx)locale: $(lib-modules:%=$(objpfx)%.o)
localepath = "$(localedir):$(i18ndir)" localepath = "$(localedir):$(i18ndir)"
CPPFLAGS := -DLOCALE_PATH='$(localepath)' \ locale-CPPFLAGS := -DLOCALE_PATH='$(localepath)' \
-DLOCALEDIR='"$(localedir)"' \ -DLOCALEDIR='"$(localedir)"' \
-DLOCALE_ALIAS_PATH='"$(localedir):$(i18ndir)"' \ -DLOCALE_ALIAS_PATH='"$(localedir):$(i18ndir)"' \
-DCHARMAP_PATH='"$(i18ndir)/charmaps"' \ -DCHARMAP_PATH='"$(i18ndir)/charmaps"' \
-DREPERTOIREMAP_PATH='"$(i18ndir)/repertoiremaps"' \ -DREPERTOIREMAP_PATH='"$(i18ndir)/repertoiremaps"' \
-DLOCSRCDIR='"$(i18ndir)/locales"' -DHAVE_CONFIG_H \ -DLOCSRCDIR='"$(i18ndir)/locales"' -DHAVE_CONFIG_H \
-Iprograms $(CPPFLAGS) -Iprograms
CFLAGS-charmap.c = -Wno-write-strings -Wno-char-subscripts CFLAGS-charmap.c = -Wno-write-strings -Wno-char-subscripts
CFLAGS-locfile.c = -Wno-write-strings -Wno-char-subscripts CFLAGS-locfile.c = -Wno-write-strings -Wno-char-subscripts

View File

@ -0,0 +1,7 @@
ifeq ($(subdir),csu)
extra-objs += crt0.o
install-lib += crt0.o
$(objpfx)crt0.o: $(objpfx)static-start.o $(objpfx)abi-note.o $(objpfx)init.o
$(link-relocatable)
endif

View File

@ -1,5 +1,5 @@
/* Initialization code run first thing by the ELF startup code. For i386/Hurd. /* Initialization code run first thing by the ELF startup code. For i386/Hurd.
Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc. Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or The GNU C Library is free software; you can redistribute it and/or
@ -21,11 +21,13 @@
#include <stdio.h> #include <stdio.h>
#include <unistd.h> #include <unistd.h>
#include <string.h> #include <string.h>
#include <sysdep.h>
#include <set-hooks.h>
#include "hurdstartup.h" #include "hurdstartup.h"
#include "set-hooks.h"
#include "hurdmalloc.h" /* XXX */ #include "hurdmalloc.h" /* XXX */
extern void __mach_init (void); extern void __mach_init (void);
extern void __libc_init_secure (void);
extern void __libc_init (int, char **, char **); extern void __libc_init (int, char **, char **);
extern void __getopt_clean_environment (char **); extern void __getopt_clean_environment (char **);
extern void __libc_global_ctors (void); extern void __libc_global_ctors (void);
@ -40,7 +42,7 @@ extern int __libc_argc;
extern char **__libc_argv; extern char **__libc_argv;
/* We often need the PID. Cache this value. */ /* We often need the PID. Cache this value. */
pid_t __libc_pid; pid_t __libc_pid = 0xf00baa;
void *(*_cthread_init_routine) (void); /* Returns new SP to use. */ void *(*_cthread_init_routine) (void); /* Returns new SP to use. */
void (*_cthread_exit_routine) (int status) __attribute__ ((__noreturn__)); void (*_cthread_exit_routine) (int status) __attribute__ ((__noreturn__));
@ -59,6 +61,7 @@ init1 (int argc, char *arg0, ...)
__libc_argc = argc; __libc_argc = argc;
__libc_argv = argv; __libc_argv = argv;
__environ = envp; __environ = envp;
while (*envp) while (*envp)
++envp; ++envp;
d = (void *) ++envp; d = (void *) ++envp;
@ -106,6 +109,10 @@ init1 (int argc, char *arg0, ...)
d->portarray, d->portarraysize, d->portarray, d->portarraysize,
d->intarray, d->intarraysize); d->intarray, d->intarraysize);
#ifndef PIC
__libc_init_secure ();
#endif
__libc_init (argc, argv, __environ); __libc_init (argc, argv, __environ);
/* This is a hack to make the special getopt in GNU libc working. */ /* This is a hack to make the special getopt in GNU libc working. */
@ -214,8 +221,6 @@ init (int *data)
pointer in the dynamic section based solely on that. It is convention pointer in the dynamic section based solely on that. It is convention
for this function to be in the `.init' section, but the symbol name is for this function to be in the `.init' section, but the symbol name is
the only thing that really matters!! */ the only thing that really matters!! */
/*void _init (int argc, ...) __attribute__ ((unused, section (".init")));*/
void void
_init (int argc, ...) _init (int argc, ...)
{ {
@ -232,6 +237,12 @@ _init (int argc, ...)
void void
__libc_init_first (int argc __attribute__ ((unused)), ...) __libc_init_first (int argc __attribute__ ((unused)), ...)
{ {
}
void
_hurd_stack_setup (int argc __attribute__ ((unused)), ...)
{
#ifndef PIC #ifndef PIC
void doinit (int *data) void doinit (int *data)
{ {

View File

@ -0,0 +1,28 @@
/* Startup code for statically linked Hurd/i386 binaries.
Copyright (C) 1998 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
.text
.globl _start
_start:
call _hurd_stack_setup
xorl %edx, %edx
jmp _start1
#define _start _start1
#include <sysdeps/i386/elf/start.S>