about summary refs log tree commit diff
Commit message (Collapse)AuthorAgeFilesLines
* * Makefile (distribute): Add ChangeLog.[0-9].Roland McGrath1995-04-1412-10407/+10503
| | | | | | | | | | | | * 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.
* * sysdeps/generic/expm1.c: #undef expm1 before weak_alias.Roland McGrath1995-04-144-15/+56
| | | | | | | | | * libc-symbols.h [! HAVE_ASM_SET_DIRECTIVE] (strong_alias, strong_alias_asm): Use `foo = bar' syntax instead. * configure.in: Fix AC_ARG_WITH uses; check for --with-fp. Move $host_os checks to set gnu_ld/as and elf before sysdirs generation. Fix $with_fp test. [$elf=yes]: Prepend MACHINE/elf directory.
* Thu Apr 13 09:45:01 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>Roland McGrath1995-04-142-2/+11
| | | | | * elf/libelf.h (elf_hash): Use XOR instead of ANDN when the bits being cleared are already known to be set. Thanks Ulrich.
* Wed Apr 12 23:27:22 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>Roland McGrath1995-04-132-0/+8
| | | | * posix/environ.c: Add weak alias `_environ'.
* Tue Apr 11 20:38:55 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu> cvs/libc-950411Roland McGrath1995-04-126-4/+39
| | | | | | | | | | | | | * sysdeps/i386/add_n.S [PIC]: Use self-call to avoid generating reloc. * sysdeps/i386/sub_n.S [PIC]: Likewise. * libc-symbols.h (_elf_set_element) [PIC]: Don't make the element word `const'. * Makeconfig (CPPFLAGS, CFLAGS): Fix swapped references to $(foo-$(suffix $@)). * manual/Makefile (chapters-incl): Filter out summary.texi.
* Mon Apr 10 14:53:15 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>Roland McGrath1995-04-103-2/+12
| | | | | | | | * stdlib/strtod.c (STRTOF): Use extra macro to make STRTOF's #defn a weak symbol instead of literal "STRTOF". * locale/setlocale.c: Work around ld bug: don't weakify refs to _nl_{current,C}_*.
* Sun Apr 9 01:24:33 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>Roland McGrath1995-04-103-5/+24
| | | | | | | | | | | | | | | | * 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.
* * extra-lib.mk (install-lib, extra-objs, alltypes-$(lib)): MakeRoland McGrath1995-04-082-3/+11
| | | | sure these are simply-expanded variables.
* * locale/loadlocale.c (_nl_load_locale): Use MAP_INHERIT flag inRoland McGrath1995-04-087-7/+48
| | | | | | | | | | | | | | | mmap call. * configure.in (os=freebsd*|bsdi*): Set base_os=unix/bsd/bsd4.4 for these too. * sysdeps/unix/sysv/tcsetattr.c: Use |= instead of = to properly set c_oflag value. * Makeconfig [! objpfx] (csu-objpfx): Add trailing slash. * locale/Makefile (categories): Uncomment collate. * locale/lc-collate.c: New file.
* * malloc/free.c (__malloc_safe_bcopy, memmove): Don't defineRoland McGrath1995-04-082-23/+15
| | | | | | | | | #ifdef emacs. * malloc/realloc.c: Likewise. * stdio/_itoa.c (_EXTERN_INLINE): Define to empty before #include "_itoa.h". (_itoa): Function removed.
* Sat Apr 8 00:40:59 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>Roland McGrath1995-04-081-0/+9
| | | | | | | | | * malloc/free.c: Remove use of `assert'. * malloc/realloc.c [! emacs] (safe_bcopy): Renamed to __malloc_safe_bcopy; #define safe_bcopy. * malloc/free.c: Cope with systems lacking `memmove'. (_free_internal): Cast result of _malloc_internal.
* Accept -lites* as op sys.Richard M. Stallman1995-04-071-2/+4
|
* * hurd/hurdinline.c: Include signal.h first, so we don't defineRoland McGrath1995-04-064-4/+14
| | | | | | | | | | its inlines too. * sysdeps/unix/sysv/sysv4/sigset.h (__sigfillset): Use ~0L instead of -1 to avoid compiler warning. * configure.in (host_os=linux*): Set elf=yes for this, not just linux*elf*.
* * misc/login_tty.c [! TIOCSCTTY]: Try an emulation using ttynameRoland McGrath1995-04-052-0/+23
| | | | and open.
* Wed Apr 5 00:13:45 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>Roland McGrath1995-04-052-2/+6
| | | | * sysdeps/i386/bsd-_setjmp.S: Fix typo in name: setjmp -> _setjmp.
* * sysdeps/unix/start.c: Remove spurious decl and #endif.Roland McGrath1995-04-042-2/+2
|
* Tue Apr 4 00:48:53 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>Roland McGrath1995-04-043-2/+16
| | | | | | | | | * misc/progname.c (program_invocation_name, program_invocation_short_name): Make these initialized data definitions. * sysdeps/mach/hurd/setitimer.c (fork_itimer): Add self reference so gcc doesn't optimize out the function entirely.
* * posix/execvp.c: Don't use stat to search path; just try execvRoland McGrath1995-04-032-45/+25
| | | | until it works.
* Sun Apr 2 13:13:52 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>Roland McGrath1995-04-027-5/+183
| | | | | | | | | | | | | | | * 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).
* * Makerules (lib%.so: lib%_pic.a): Pass -L options for subdir and cvs/libc-950402Roland McGrath1995-04-013-6/+17
| | | | | | | | 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.
* Sat Apr 1 00:08:06 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>Roland McGrath1995-04-016-109/+39
| | | | | | | | | | | | | | | * locale/loadlocale.c (_nl_load_locale) [MAP_FILE]: Define it zero if undefined. * string/strxfrm.c: Just copy the string (for now). * string/strcoll.c: Just call strcmp (for now). * mach/Makefile (lock): Add mutex-init. * mach/mutex-solid.c (_cthread_mutex_lock_routine, _cthread_mutex_unlock_routine): Variables removed. (__mutex_lock_solid, __mutex_unlock_solid): Don't use them; just stub. (__mutex_init): Function moved to new file mutex-init.c. * mach/mutex-init.c: New file, broken out of mutex-solid.c.
* New file, broken out of mutex-solid.c.Roland McGrath1995-04-011-0/+30
|
* * sysdeps/alpha/__longjmp.c (__longjmp): Take out const.Brendan Kehoe1995-03-312-1/+2
| | | | * sysdeps/alpha/__longjmp.c (__longjmp): Take out const.
* * sysdeps/mips/__longjmp.c (__longjmp): Take out CONST.Brendan Kehoe1995-03-312-1/+5
| | | | | | Thu Mar 30 20:43:02 1995 Brendan Kehoe <brendan@zen.org> * sysdeps/mips/__longjmp.c (__longjmp): Take out CONST.
* Thu Mar 30 01:38:00 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>Roland McGrath1995-03-303-2/+66
| | | | | | | * elf/elf.h (STN_UNDEF): New macro (distinct from SHN_UNDEF, though both are zero). * elf/dlfcn.h: New file.
* * Make-dist (README): Commit it to CVS if there is a CVS directory.Roland McGrath1995-03-2931-2/+97
|
* Wed Mar 29 11:26:48 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>Roland McGrath1995-03-296-31/+46
| | | | | | | | | More changes from Germano Caronni <caronni@tik.ethz.ch>: * malloc/free.c: Relocate _heapinfo when that allows us to return core to the system. * malloc/malloc.c: Move #include <errno.h> outside #ifndef _MALLOC_INTERNAL.
* * mach/Makefile (headers): Add mach/mach_traps.h.Roland McGrath1995-03-274-4/+8
| | | | * Makerules ($(installed-libcs) rule): Fix typos.
* * sysdeps/unix/bsd/bsd4.4/revoke.S: New file.Roland McGrath1995-03-278-3/+77
| | | | | | | | | | * sysdeps/stub/revoke.c: New file. * misc/Makefile (routines): Add revoke. * posix/unistd.h [__USE_BSD] (revoke): Declare it. * sysdeps/generic/pty.c (openpty, forkpty): Declare return types. (forkpty): Declare login_tty. * misc/logwtmp.c (logwtmp): Declare to return void. * misc/login_tty.c (login_tty): Include unistd.h. Declare return type.
* Mon Mar 27 02:23:15 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>Roland McGrath1995-03-2722-40/+682
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * posix/unistd.h [__USE_BSD] (ttyslot): Declare it. * posix/unistd.h [__USE_BSD] (L_SET, L_INCR, L_XTND): Define unless L_SET already defined. * misc/sys/file.h (L_SET, L_INCR, L_XTND): Don't define if L_SET already defined. Incorporated -lutil library from 4.4-Lite. * misc/Makefile (extra-libs, libutil-routines): New variables. * misc/login.c, misc/login_tty.c, misc/logout.c, misc/logwtmp.c, sysdeps/generic/pty.c: New files for -lutil incorporated from 4.4-Lite. Support simple, light-weight unwind-protect mechanism for longjmp. * setjmp/longjmp.c: Call _longjmp_unwind first thing. * sysdeps/mach/hurd/jmp-unwind.c: New file. * sysdeps/stub/jmp-unwind.c: New file. * sysdeps/i386/jmp_buf.h (_JMPBUF_UNWINDS): New macro. * sysdeps/mips/jmp_buf.h (_JMPBUF_UNWINDS): New macro. * setjmp/Makefile (routines): Add jmp-unwind. * hurd/hurd/userlink.h (struct hurd_userlink): Move `next' and `prevp' members into new substructure `resource'; add another such substructure `thread' and members `cleanup' (function ptr) and `cleanup_data' (generic ptr). (_hurd_userlink_link, _hurd_userlink_unlink): Insert/remove LINK into the `_hurd_self_sigstate ()->active_resources' list via the `thread' substructure. * hurd/hurd/port.h (_hurd_port_cleanup): Declare it. (_hurd_port_locked_get): Set LINK->cleanup to _hurd_port_cleanup and LINK->cleanup_data' to the port extracted. * hurd/hurd/signal.h (struct hurd_sigstate): New member `active_resources'. * hurd/port-cleanup.c: New file. * hurd/Makefile (routines): Add port-cleanup. * malloc/malloc.c: Include errno.h. Sat Mar 25 18:24:21 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu> * locale/loadlocale.c (_nl_load_locale): Avoid */ inside comment.
* * misc/Makefile (headers): Add utmp.h.Roland McGrath1995-03-245-4/+74
| | | | * misc/utmp.h: New file, incorporated from 4.4-Lite.
* Fri Mar 24 02:35:37 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>Roland McGrath1995-03-246-715/+919
| | | | | | | | | | | | | | | | * stdio/printf-parse.h: New file, mostly written by drepper. * stdio/vfprintf.c: Rewritten, mostly by drepper. * stdio/printf-prs.c: Rewritten. * stdio/Makefile (distribute): Add printf-parse.h. Thu Mar 23 22:03:44 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu> * sysdeps/unix/start.c [! NO_UNDERSCORES]: Don't declare _start with asm name. Just do a ".set start, __start". * malloc/realloc.c: Call _free_internal instead of free. * stdlib/Makefile: All the mpn stuff moved here from stdio/Makefile.
* All the mpn stuff moved here from stdio/Makefile.Roland McGrath1995-03-241-0/+59
|
* (rm400, rm600): New machine names. (sinix5.*, sinix): New os aliases. ↵Richard M. Stallman1995-03-221-0/+13
| | | | (mips-siemens): Default os to sysv4.
* (signame_init): Define SIGINFO. cvs/make-3-73-1 cvs/make-3-73 cvs/make-3-72-13 cvs/make-3-72-12Roland McGrath1995-03-211-0/+3
|
* Tue Mar 21 00:14:27 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>Roland McGrath1995-03-2113-102/+104
| | | | | | | | | | | | | | * locale/loadlocale.c (_nl_load_locale): If LOCALE/LC_* is a directory, open LOCALE/LC_*/SYS_LC_* instead. * stdio/fpioconst.c, stdio/fpioconst.h, stdio/gmp-impl.h, stdio/gmp.h, stdio/longlong.h, stdio/mp_clz_tab.c, stdio/gen-mpn-copy: Files moved to stdlib. * stdio/Makefile: All mpn stuff moved to stdlib/Makefile. * stdio/printf_fp.c: Use ../stdlib to find fpioconst.h and gmp headers. * stdlib/strtod.c: Don't use ../stdio to find fpioconst.h and gmp headers.
* * Makefile (parent-mostlyclean): Don't use $(libc.a).Roland McGrath1995-03-213-2/+6
| | | | | (parent-clean): Use $(objpfx) to find sysd-*. * Rules (generated): Append dummy.o dummy.c.
* * Makerules (lib): Depend on lib-noranlib.Roland McGrath1995-03-212-4/+18
| | | | | | | | | | | | | | | | (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>:
* Mon Mar 20 03:19:23 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>Roland McGrath1995-03-2014-20/+30
| | | | | | | | | | | * stdio/vfscanf.c (%n): Use READ_IN - 1, so as not to count the read-ahead character. * hurd/dtable.c, hurd/getdport.c, hurd/hurd.h, hurd/hurdexec.c, hurd/hurdinit.c, hurd/hurdprio.c, hurd/hurdsock.c, hurd/ports-get.c, hurd/ports-set.c, hurd/setauth.c, hurd/setuids.c, sysdeps/mach/hurd/i386/trampoline.c: Get anal with unsigned to pacify compiler.
* Sat Mar 18 14:07:08 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>Roland McGrath1995-03-184-22/+68
| | | | | | | | | | * stdio/vfscanf.c: Grok positional parameter specs (i.e. %3$d means %d from 3rd arg). * sysdeps/mach/hurd/closedir.c: Include hurd/fd.h. * stdlib/strtol.c: If !GROUP, set END to null. In loop, test only END, not GROUP.
* * Makefile (subdirs): Put elf last.Roland McGrath1995-03-182-2/+4
|
* Fri Mar 17 12:58:37 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>Roland McGrath1995-03-176-24/+86
| | | | | | | | | | | | | | | | | | | | | | | * 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.
* Handle 80-bit denormalized numbers correctly.Roland McGrath1995-03-171-8/+4
| | | | | | * stdlib/strtod.c, stdlib/strtof.c, stdlib/strtold.c: * stdlib/strtod.c (RETURN): Add parentheses around return value. (round_and_return): Correct handling of denormalized numbers.
* Undo bogus change by drepperRoland McGrath1995-03-174-20/+16
|
* Fri Mar 17 13:28:04 1995 Ulrich Drepper <drepper@ipd.info.uni-karlsruhe.de>Ulrich Drepper1995-03-178-45/+80
| | | | | | | | | | | | | | | | | * sysdeps/ieee754/ldbl2mpn.c (__mpn_extract_long_double): Handle 80-bit denormalized numbers correct. * stdlib/strtod.c,stdlib/strtof.c,stdlib/strtold.c: [IMPLICIT_ONE,*_MAX_10_EXP_LOG]: not needed anymore. * stdlib/strtod.c (RETURN): parenthesis around return value. (round_and_return): correct handling of denormalized numbers. (__strtod_internal): don't check for grouping when not requested while returning 0.0. * stdio/fpioconst.[ch]: [LDBL_MAX_10_EXP_LOG]: don't use it. LAST_POW10 defines the maximal available exponent. * stdlib/{atof,atoi,atol}.c: use __strtoX_internal.
* (__mpn_extract_long_double): Handle 80-bit denormalized numbers correct.Ulrich Drepper1995-03-171-2/+10
|
* * stdlib/strtold.c (STRTOF): Set to strtold, not __strtold.Roland McGrath1995-03-163-6/+6
| | | | | | (strtold): Remove weak alias. * stdlib/strtof.c (STRTOF): Set to strtof, not __strtof. (strtof): Remove weak alias.
* Thu Mar 16 00:04:41 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>Roland McGrath1995-03-1629-284/+658
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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.
* * stdio/printf_fp.c (group_number): Cast *GROUPING to unsigned intRoland McGrath1995-03-133-3/+8
| | | | | | to avoid warning. * sysdeps/generic/sigset.h (__SIGSETFN): Cast result of sizeof to int to avoid warning.
* Support building several flavors of objects and libraries.Roland McGrath1995-03-132-56/+183
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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.