Commit Graph

272 Commits

Author SHA1 Message Date
Roland McGrath
9f2233e81a ($(installed-libcs)): Depend on `lib' (only). 1995-07-26 06:00:04 +00:00
Roland McGrath
d819080cba Mon Jul 10 05:39:21 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
* sysdeps/mach/hurd/i386/init-first.c (init): Take just one arg,
 	DATA for the entry SP; DATA[-1] is always the return address
 	location.  In both cthreads and non-cthreads cases, use asm to
 	force parameters into %eax and %ecx before return, and mutate
 	DATA[-1] to return to specific asm code to set up the user from
 	%eax and %ecx.
	[PIC] (_init): Caller changed.
	(__libc_init_first) [! PIC] (doinit): Use asm to effect call to init
	with SP unwound to argument data ptr.

Thu Jul  6 14:28:56 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* sysdeps/mach/hurd/dl-sysdep.c (fmh): Fixed this kludge to work
 	when 0x08000000 and up are not mapped.

	* Makerules (stamp$o-$(subdir) rule): Remove the timestamp file
 	before touching it.
	(lib%.so): Use -Wl to get -soname to ld.

	* elf/dlsym.c: Pass final arg to _dl_lookup_symbol.

	* elf/Makefile (libdl.so): Pass $(LDFLAGS.so).
1995-07-10 09:40:15 +00:00
Roland McGrath
487253ea1f Tue Jun 20 02:18:19 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
* Makerules (lib%.so: lib%_pic.a): Pass -soname switch giving the
 	library's name including $(libprefix) and major version number.

	* locale/locale-ctype.c (allocate_arrays): Use xmalloc and bzero
 	in place of xcalloc.

	* Makeconfig (prefix, exec_prefix, libprefix): Instead of
 	`ifndef', use the $(origin) function to only set these if they are
 	undefined, and not if they are defined to empty.

	* gnu-versions.h: New file.
	* features.h (__GNU_LIBRARY__): Increase value to 5.
1995-06-22 09:00:11 +00:00
Roland McGrath
1a2df358c8 Mon Jun 12 13:15:45 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
* Makerules (lib%.so: lib%_pic.a): Moved this rule to after
 	installation rules.

	* sysdeps/mach/sysdep.h [HAVE_ELF] (ENTRY): Redefine this macro so
 	it uses the `.type' directive, which is necessary for shared
 	libraries to work properly.
1995-06-12 18:26:02 +00:00
Roland McGrath
f2b0f935d7 * elf/dl-load.c (_dl_map_object): Add MAP_INHERIT flag in mmap
from zero fill.

	* elf/dl-lookup.c (_dl_lookup_symbol): Take new flag arg NOSELF;
 	if nonzero, don't let *REF satisfy the reference itself.
	* elf/link.h (_dl_lookup_symbol): Add new arg NOSELF in decl.
	* sysdeps/i386/dl-runtime.c (_dl_runtime_resolve): Pass new arg to
 	_dl_lookup_symbol.
	* elf/do-rel.h (elf_dynamic_do_rel): Pass new second arg of
 	R->r_offset to RESOLVE callback.
	* elf/dl-reloc.c (_dl_relocate_object: resolve): Don't let *REF
 	satisfy the reference itself if its value equals the reloc's
 	offset.

	* elf/rtld.c (dl_main): Write a newline in fatal msg.

	* Makerules (lib%.so: lib%_pic.a): Pass $(LDFLAGS.so).
1995-06-12 09:00:13 +00:00
Roland McGrath
5bf62f2d3a Thu Jun 8 02:50:26 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
* elf/rtld.c [! NDEBUG] (__assert_perror_fail): New function.

	* hurd/hurdstartup.c (_hurd_startup): Fancier kludge to guess phdr
 	and user entry point addresses.

	* elf/dl-load.c (open_path): Don't do strlen on DIRPATH if it's null.
	(_dl_map_object): DT_RPATH value is relative to DT_STRTAB value.

	* Makerules (install-lib.so): Don't include libc.so.
	[$(build-shared)=yes] (install): Depend on the installed libc.so file.
	[$(build-shared)=yes] (install-no-libc.a): Make this, rather than
	install, depend on the installed $(install-lib.so) files.
	[$(build-shared)=yes] (install-lib.so): Append libc.so after that rule.

	* sysdeps/mach/hurd/dl-sysdep.c (_dl_sysdep_start): Add kludge to
 	allocate high addresses to avoid random mappings appearing there.
	(mmap): Comment out mask; always pass zero.

Tue Jun  6 13:34:53 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* sysdeps/i386/dl-machine.h (ELF_MACHINE_USER_ADDRESS_MASK): New macro.
	* sysdeps/mach/hurd/dl-sysdep.c (mmap): Use it as mask in vm_map call.

	* elf/dl-error.c (_dl_catch_error): Clear *ERRSTRING and *OBJNAME
 	when successful.

	* sysdeps/mach/hurd/dl-sysdep.c (threadvars): New static variable.
	(__hurd_threadvar_max, __hurd_threadvar_stack_offset): Define these
	variables, using the `threadvars' buffer.

	* elf/dl-reloc.c: Don't dereference L->l_prev when it's null.
	* sysdeps/i386/dl-runtime.c: Likewise.

	* elf/rtld.c (dl_main): Add missing NULL terminating argument in
 	_dl_sysdep_fatal call.
	(__assert_fail): Likewise.

	* locale/Makefile (localedef-modules): Renamed ctype to
 	locale-ctype so as not to conflict with the object file for
 	ctype/ctype.c in the build directory.

	* sysdeps/i386/dl-machine.h (elf_machine_rel): If MAP->l_type is
 	lt_interpreter, first undo relocation done during bootstrapping.
1995-06-08 09:00:23 +00:00
Roland McGrath
a2fe9c76a9 Fri May 19 17:16:46 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
* sysdeps/mach/hurd/i386/init-first.c: In cthreads case, handle
 	args on stack from kernel.

	* posix/Makefile, sysdeps/alpha/Makefile,
	* sysdeps/mach/hurd/Makefile, sysdeps/sparc/Makefile, Makefile,
	* Makerules, Make-dist: Fix "cvs commit" cmds in rules to not fail
	in the absence of CVS dirs.

	* hurd/hurdstartup.c: Don't call __mach_init.  Grok args from the
 	kernel on the stack properly.

	* set-init.c: Never call _init/_fini; just run __libc_subinit.

	* Makerules (LDFLAGS-c.so): Add -nostartfiles.
	* mach/Machrules (LDFLAGS-$(interface.so)): Likewise.

	* configure.in: Move defaulting of --with-elf and --with-gnu-*
 	based on host os outside the AC_CACHE_VAL for the sysdirs
 	calculation.

	* Makeconfig (localedir, nlsdir): New variables.

	* values.h: New file.
	* Makefile (headers): Add values.h.

	* locale/Makefile (distribute): Add error.h.
	* locale/localedef.c: Include "error.h".
	(main): Use error_message_count instead of warning_cntr.
1995-05-20 00:13:43 +00:00
Roland McGrath
87220b3563 Regenerated
Sat Apr 29 15:46:57 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* posix/glob.c (S_ISDIR): Define if undefined.
1995-05-10 21:57:07 +00:00
Roland McGrath
273d56ce89 (__data_start): Define this symbol as the first thing in .data. 1995-05-09 07:03:38 +00:00
Roland McGrath
08162fa888 Tue May 2 01:52:58 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
Implemented runtime dynamic linker to support ELF shared libraries.
	* elf/Makefile: Added rules to make ld.so and libdl.
	* elf/dl-error.c: New file.
	* elf/dl-fini.c: New file.
	* elf/dl-init.c: New file.
	* elf/dl-load.c: New file.
	* elf/dl-lookup.c: New file.
	* elf/dl-object.c: New file.
	* elf/dl-reloc.c: New file.
	* elf/dlclose.c: New file.
	* elf/dlerror.c: New file.
	* elf/dlopen.c: New file.
	* elf/dlsym.c: New file.
	* elf/dynamic-link.h: New file.
	* elf/link.h: New file.
	* elf/rtld.c: New file.

Mon May  1 18:48:30 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* Makerules (LDFLAGS-c.so): Add -interp and -e switches to make
 	libc.so runnable.
	* version.c (__libc_print_version): Add "et al" and missing NL to
 	author credit.
1995-05-02 05:56:40 +00:00
Roland McGrath
10ceac89f9 Thu Apr 27 01:24:09 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
* configure.in: Unless --without-fp, prepend */fpu before each
 	machine dir in $mach; don't prepend FPU dirs at end.  If
 	--with-elf, prepend MACHINE/elf directories at end; don't insert
 	them into $mach.

	* Makerules (dist): Filter out *.[cSs] from $(distribute) in deps.

	* sysdeps/stub/clock.c: Added stub warning.
	* sysdeps/stub/dirfd.c: Likewise.
	* sysdeps/stub/exc2signal.c: Likewise.
	* sysdeps/stub/fdopen.c: Likewise.
	* sysdeps/stub/flock.c: Likewise.
	* sysdeps/stub/fpathconf.c: Likewise.
	* sysdeps/stub/ftruncate.c: Likewise.
	* sysdeps/stub/gtty.c: Likewise.
	* sysdeps/stub/isatty.c: Likewise.
	* sysdeps/stub/killpg.c: Likewise.
	* sysdeps/stub/madvise.c: Likewise.
	* sysdeps/stub/mkstemp.c: Likewise.
	* sysdeps/stub/mktemp.c: Likewise.
	* sysdeps/stub/mprotect.c: Likewise.
	* sysdeps/stub/msync.c: Likewise.
	* sysdeps/stub/pathconf.c: Likewise.
	* sysdeps/stub/poll.c: Likewise.
	* sysdeps/stub/raise.c: Likewise.
	* sysdeps/stub/readv.c: Likewise.
	* sysdeps/stub/setenv.c: Likewise.
	* sysdeps/stub/setlogin.c: Likewise.
	* sysdeps/stub/sigaltstack.c: Likewise.
	* sysdeps/stub/sigintr.c: Likewise.
	* sysdeps/stub/sigstack.c: Likewise.
	* sysdeps/stub/sleep.c: Likewise.
	* sysdeps/stub/sstk.c: Likewise.
	* sysdeps/stub/stime.c: Likewise.
	* sysdeps/stub/stty.c: Likewise.
	* sysdeps/stub/syscall.c: Likewise.
	* sysdeps/stub/sysconf.c: Likewise.
	* sysdeps/stub/truncate.c: Likewise.
	* sysdeps/stub/ualarm.c: Likewise.
	* sysdeps/stub/usleep.c: Likewise.
	* sysdeps/stub/utimes.c: Likewise.
	* sysdeps/stub/writev.c: Likewise.

	* sysdeps/stub/libc_fatal.c: Remove __NORETURN keyword.

Wed Apr 26 16:06:42 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* locale/loadlocale.c (_nl_free_locale): Do nothing if DATA is null.

Tue Apr 25 17:17:19 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* posix/glob.c (glob): If GLOB_MARK set, stat names to find
 	directories and append slashes to them in final pass before
 	sorting.
	(glob_in_dir): If GLOB_MARK set, just allocate the extra char for the
	slash; never append it here.
1995-04-27 05:47:52 +00:00
Roland McGrath
11872325e2 Sat Apr 22 14:48:03 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
* mach/Machrules [interface-library]
 	(LDFLAGS-$(interface-library:lib%=%.so)): New variable, set to
 	-nostdlib.

	* sysdeps/mach/hurd/fork.c: Subfunction `unlockss' removed.  Lock
 	_hurd_siglock only around initial task creation in parent.  Use
 	_hurd_critical_section_unlock at end.  Handle dead name rights
 	properly, and deal with a send right dying while we try to copy
 	it.  For the time being, use assert_perror for kernel and proc RPC
 	failures.

Fri Apr 21 01:10:15 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* extra-lib.mk: Don't include $(o-iterator); construct it by hand
 	using $(object-suffixes-$(lib)) instead.

	* sysdeps/mach/hurd/Makefile (LDLIBS-c.so): New variable.

	* Makerules (lib%.so: lib%_pic.a): Pass $(LDFLAGS-$(notdir $*).so).
	(LDFLAGS-c.so): New variable.

	* resolv/res_init.c (res_init): Don't clobber _res.options with
 	RES_DEFAULT.  If RES_INIT is clear, OR in RES_DEFAULT.

	* hurd/hurd.h: Declare _hurd_startup.
	* hurd/hurdstartup.c: New file.
	* hurd/Makefile (routines): Add hurdstartup.
1995-04-24 09:00:07 +00:00
Roland McGrath
e215c4786c * Makefile (distribute): Add ChangeLog.[0-9].
* configure.in: Add check for .set directive.
	* config.h.in: Add #undef HAVE_ASM_SET_DIRECTIVE.

	* Makerules [! subdir] (O%-lib): Don't prepend ../.

	* sysdeps/generic/expm1.c: #undef expm1 before weak_alias.


See ChangeLog.4 for earlier changes.
1995-04-14 03:52:54 +00:00
Roland McGrath
8c0dc19cc6 Sun Apr 9 01:24:33 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
* Makerules (+depfiles): Translate %.so to %.o in $(extra-objs).

	* malloc/free.c [emacs] (__malloc_safe_bcopy): Define to safe_bcopy.
	* malloc/realloc.c (__malloc_safe_bcopy): Undefine before defining.

	* malloc/free.c (memmove, __malloc_safe_bcopy): Do include these
 	#ifdef emacs, but only #ifndef memmove.
	* malloc/realloc.c [emacs] (__malloc_safe_bcopy): Just #define to
 	safe_bcopy.
	(memmove): Define only if undefined.

	* stdio/_itoa.h (_EXTERN_INLINE): Define if undefined.
	(_itoa): Use it in defn.
1995-04-10 09:00:08 +00:00
Roland McGrath
e607b492e5 Sun Apr 2 13:13:52 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
* sysdeps/mach/hurd/i386/trampoline.c: Add a link to
 	SS->active_resources, so that _hurdsig_longjmp_from_handler will
 	be called when a longjmp unwinds the signal frame.
	* sysdeps/mach/hurd/i386/sigreturn.c: Remove the link on the
 	SS->active_resources chain added by _hurd_setup_sighandler.
	* hurd/sigunwind.c: New file.
	* hurd/Makefile (sig): Add sigunwind.

	* Makerules (lib%.so: lib%_pic.a): Remove dir name from $*.

	* MakeTAGS (tags-sources): Include $(all-dist).
	[subdir] (all-dist): Define to $(distribute).
1995-04-02 22:08:59 +00:00
Roland McGrath
193ce8dcd6 * Makerules (lib%.so: lib%_pic.a): Pass -L options for subdir and
parent objdirs.

	* extra-lib.mk (object-suffixes-$(lib)): New variable, produced by
 	filtering out $($(lib)-inhibit-o); use that instead of
 	$(object-suffixes) in all the other variables.
1995-04-01 09:07:31 +00:00
Roland McGrath
c316b48636 * mach/Makefile (headers): Add mach/mach_traps.h.
* Makerules ($(installed-libcs) rule): Fix typos.
1995-03-27 17:44:04 +00:00
Roland McGrath
4788ab4637 * Makerules (lib): Depend on lib-noranlib.
(lib-noranlib): Depend on $(install-lib) in objdir.
	(common-mostlyclean): Remove $(install-lib) and stub-$(subdir)
	from objdir.  Don't remove TAGS; it comes in the distribution.

	* malloc/malloc.c (morecore): Save errno around call to
 	_realloc_internal.  Don't account for the additional new blocks of
 	the info table itself when choosing the new table size for the
 	first crack; if it succeeds, the new blocks will have been found
 	in existing free space already described by the existing info
 	table.

	Changes from Germano Caronni <caronni@tik.ethz.ch>:
	Changes from Germano Caronni <caronni@tik.ethz.ch>:
1995-03-21 04:19:38 +00:00
Roland McGrath
693e7b964f Fri Mar 17 12:58:37 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
* sunrpc/Makefile (install-lib): Variable removed.
	(rpcsvc-objs): Variable removed.
	(extra-objs): Don't include $(rpcsvc-objs).
	(extra-libs): New variable, contains librpcsvc.
	(librpcsvc-routines): New variable.
	(librpcsvc-inhibit-o): New variable, contains .so.
	(omit-deps): Set this to $(librpcsvc-routines).
	($(objpfx)rpcgen): Don't use $(libc.a).
	(lib, $(objpfx)librpcsvc.a): Targets removed.

	* o-iterator.mk, extra-lib.mk: New files.
	* Makerules (o-iterator): New variable.
	[extra-libs]: Include extra-lib.mk to generate rules for each word
	of $(extra-libs).
	* Makefile (distribute): Add extra-lib.mk, o-iterator.mk.

	(IMPLICIT_ONE, *_MAX_10_EXP_LOG): Macros removed; no longer needed.
	* stdio/fpioconst.c, stdio/fpioconst.h: Don't use
 	LDBL_MAX_10_EXP_LOG; LAST_POW10 defines the maximal available
 	exponent.
1995-03-17 18:42:51 +00:00
Roland McGrath
f0bf9cb92c Thu Mar 16 00:04:41 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
* locale/C-ctype.c: New correct data generated by drepper.

	* Rules: Don't use $(libc.a).

	Parsing of grouped numbers contributed by Ulrich Drepper.
	* stdlib/strtol.c (__strtol_internal): Renamed from strtol.  Take
 	new flag arg; if nonzero, parse locale-dependent thousands
 	grouping and interpret only the prefix that is correctly grouped.
	(strtol): Define this to call _strtol_internal with zero for the flag.
	Use a weak symbol for the definition.
	* stdlib/strtod.c (strtod, __strtod_internal): Likewise.
  	Check for the exponent of the number overflowing the float format.
	* stdlib/stdlib.h (__strtof, __strtold): Declarations removed.
	(__strto{f,d,ld,l,ul,q,uq}_internal): Declare these functions.
	[__OPTIMIZE__]: Define inline functions calling those.
	* stdlib/grouping.h: New file, written by drepper.
	* stdlib/Makefile (distribute): Add grouping.h.
	* stdio/vfscanf.c: Grok %' modifier to numeric conversions.  Call
 	__strtoX_internal with the grouping flag set iff the modifier is
 	present.

Wed Mar 15 00:40:54 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* sysdeps/generic/memchr.c: Fix typos: limit.h -> limits.h.

	* mach/Machrules: Produce static deps for all object flavors.
	[interface-library]: Remove all these variables and rules.
	($(interface-library)-routines): Define this variable.
	(extra-libs): Append $(interface-library) to this.
	* mach/Makefile (interface-library): Omit .a suffix.
	* hurd/Makefile: Likewise.

Tue Mar 14 23:40:31 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* stdio/internals.c (flushbuf): If !FLUSH_ONLY, don't skip out
 	early if no new data in buffer after priming.

	* Makerules (object-suffixes, libtypes): Move all these variables
 	to Makeconfig.
	* Makeconfig (object-suffixes, libtypes): Moved here from Makerules.

	* Makerules (build-extra-lib): New canned sequence.

	* sysdeps/mach/hurd/euidaccess.c: Include fcntl.h.  Declare ERR;
 	fix uses of FILE and PORT.  Remove bogus weak alias for `access'.

	* sysdeps/mach/hurd/dirfd.c: Include hurd/fd.h and errno.h.
	Add missing semicolon.
	* sysdeps/mach/hurd/opendir.c: Include hurd/fd.h.  Use a `struct
 	hurd_fd *' temp var, since DIRP->__fd is a `void *'.
	* sysdeps/mach/hurd/readdir.c: Include hurd/fd.h.

	* stdlib/wcstombs.c: #if 0 out code for non-ASCII chars until the
 	locale data format is implemented.

	* sysdeps/mach/hurd/i386/trampoline.c (_hurd_setup_sighandler):
 	Pass &__sigreturn on the stack to the trampoline code, so it is
 	not position-dependent.

	* stdio/printf_fp.c (NDEBUG): Define this to disable assert.
  	Don't include <stdarg.h>.
	(__printf_fp): Last arg ARGS is now `const void **const'; 
	dereference ARGS[0] instead of using va_arg.

	* locale/setlocale.c: In LC_ALL case, initialize CATEGORY before
 	loop to install data.

	* locale/loadlocale.c (_nl_category_num_items): Use _NL_ITEM_INDEX
 	to extract number from item code.
	(_nl_load_locale): Close the descriptor when finished.

	* malloc/realloc.c (_realloc_internal): Call _malloc_internal in
 	place of malloc.

	* time/tzfile.c (__tzfile_default): Initialize RULE_STDOFF to zero.
1995-03-16 05:32:45 +00:00
Roland McGrath
51f7530228 Support building several flavors of objects and libraries.
* Makerules (libtypes, object-suffixes): New variables.
	(libtype.*, CFLAGS-*, CPPFLAGS-*): New variables for each object
	suffix.
	(CFLAGS, CPPFLAGS): Append $(C{,CPP}FLAGS-$(suffix $@)).
	(%.so, %.po, %.go): New compilation rules for %.S, %.s, %.c.
	(close-check-inhibit-asm): Append a semicolon.
	(sysd-rules): Generate rules for each object suffix.
	(compile.S, compile.c): Always assume gcc.
	(OUTPUT_OPTION): Define unconditionally.
	(+make-deps): In generated rule, produce a dependent for each
	object suffix.
	(.SUFFIXES): Add $(object-suffixes) in place of .o.
	(.PRECIOUS): Make all suffix flavors precious.
	($(libc.a)): Target removed.
	(lib): Depend on each enabled libtype.
	(libobjs, objects, objs): Depend on all the enabled object flavors.
	(lib%.a): New pattern rule.
	[$(build-shared)=yes] (lib%.so: lib%_pic.a): New pattern rule.
	(stamp-$(subdir)): Rewritten to a pattern rule for stamp.%-$(subdir)
	to make one for each flavor; library dep rule likewise rewritten.
	($(libc.a)(__.SYMDEF)): Target replaced with one target for each
	flavor.
	(symdef.%): New pattern rule; helper for __.SYMDEF targets.
	(installed-libcs): New variable.
	(install): Depend on that instead of
	$(libdir)/lib$(libprefix)$(libc-name).a;
	that file's rule rewritten to make each enabled libtype.
	(install-lib.so): New variable, filters lib%.so from $(install-lib).
	(install-lib): Filter out lib%.so after setting install-lib.so.
	[$(build-shared)=yes] (install): Install $(install-lib.so).
	(common-mostlyclean): Remove all flavors of objects.
1995-03-13 07:42:09 +00:00
Roland McGrath
28f540f45b initial import 1995-02-18 01:27:10 +00:00