* dlfcn/dlfcn.h: Pretty print dladdr declaraction.
* elf/rtld.c (process_envvars): Recognize LD_DYNAMIC_WEAK.
(_dl_dynamic_weak): New variable.
* elf/dl-support.c: Likewise.
* sysdeps/generic/ldsodefs.h: Declare _dl_dynamic_weak.
* elf/do-lookup.h: If we find a weak definition treat it like a
normal symbol unless _dl_dynamic_weak is nonzero. In the latter
case treat it like before.
2000-05-26 Andreas Jaeger <aj@suse.de>
* elf/ldconfig.h: Update parameter list for process_elf_file.
* sysdeps/unix/sysv/linux/sparc/readelflib.c (process_elf_file):
Add parameter file_length and pass it ot process_elf*file.
* sysdeps/generic/readelflib.c (check_ptr): New.
(process_elf_file): Use check_ptr to check all accesses to the
mmapped file. Add parameter file_length.
* elf/readlib.c (known_libs): Use <gnu/lib-names.h> to specify
library names.
* sunrpc/xdr_intXX_t.c (xdr_uint8_t): Fix conversion.
Closes PR libc/1573, reported by Bradley White
<bww@laurelnetworks.com>.
2000-05-17 Jakub Jelinek <jakub@redhat.com>
* sysdeps/generic/dl-cache.h (_DL_CACHE_DEFAULT_ID): Only define if
not yet defined.
(_dl_cache_check_flags): Likewise.
* sysdeps/unix/sysv/linux/sparc/sparc64/dl-cache.h: include_next
dl-cache.h.
2000-05-17 Andreas Jaeger <aj@suse.de>
* manual/creature.texi (Feature Test Macros): Remove paragraph
since the description is wrong.
Closes PR libc/1691, reported by Geoff Clare <gwc@unisoft.com>.
2000-05-17 Andreas Jaeger <aj@suse.de>
* time/test_time.args: Removed.
* time/Makefile (test_time-ARGS): Added contents here instead.
* posix/tstgetopt.args: Removed.
* posix/Makefile (tstgetopt-ARGS): Added contents here instead.
* Rules: Allow arguments for test files to be specified in
Makefile with testname-ARGS; remove rules with .args in it.
* dirent/Makefile (opendir-tst1-ARGS): Use this for opendir-tst1,
remove old bogus rule for opendir-tst1.args.
* stdlib/test-canon.c: Rewrite to use test-skeleton.c.
* stdlib/Makefile (test-canon-ARGS): New, supply argument to chdir
into objdir. This allows a readonly sourcetree.
Reported by lrgallardo@yahoo.com, closes PR libc/1421.
2000-05-16 Andreas Jaeger <aj@suse.de>,
David Huggins-Daines <dhd@linuxcare.com>
* sysdeps/generic/dl-cache.c (_dl_load_cache_lookup): Set
cache_data in case of only new cache format correctly.
* sysdeps/generic/dl-cache.c (_dl_load_cache_lookup): Align struct
cache_file_new.
* sysdeps/generic/dl-cache.h (ALIGN_CACHE): New macro to align
struct cache_file_new.
* elf/cache.c (save_cache): Fix str_offset if only new cache is
present.
* elf/cache.c (save_cache): Align struct new_file_cache.
(print_cache): Likewise.
2000-05-07 H.J. Lu <hjl@gnu.org>
* csu/initfini.c: Moved to ....
* sysdeps/generic/initfini.c: ...here.
* csu/Makefile (initfini.c): Set vpath to $(full_config_sysdirs).
* sysdeps/generic/memccpy.c (__memccpy): Don't use reg_char type
for x since promotion in comparison might leads to unexpected
results. Reported by Dan Pop <Dan.Pop@cern.ch>.
2000-05-06 Bruno Haible <haible@clisp.cons.org>
* iconv/gconv_open.c (__gconv_open): If __gconv_find_transform
returned != __GCONV_OK, there is nothing to clean up.
2000-05-06 Bruno Haible <haible@clisp.cons.org>
* intl/tst-gettext.c (main): Disable possibly existing LC_CTYPE and
OUTPUT_CHARSET environment variables.
2000-05-06 Andreas Jaeger <aj@suse.de>
* sysdeps/generic/dl-cache.h (struct file_entry_new): New.
(struct cache_file_new): New.
(struct file_entry): New (moved from cache.c).
(struct cache_file): New (moved from cache.c).
* sysdeps/generic/dl-cache.c (SEARCH_CACHE): New macro, broken out
from _dl_load_cache_lookup.
(_dl_load_cache_lookup): Move search to SEARCH_CACHE macro, handle
the different cache formats.
New variable cache_new for new format.
* elf/ldconfig.h: Change according to changes in cache.c and
ldconfig.c; remove cache_libcmp; add opt_format.
* elf/ldconfig.c: Include "dl-cache.h" and "dl-procinfo.h"; remove
stuff that's defined in those headers.
Add hwcap to struct lib_entry.
(opt_format): New variable to select cache format.
(options): Add format parameter.
(is_hwcap): New function.
(path_hwcap): New function.
(parse_opt): Handle new format parameter.
(search_dir): Handle hwcap, search also subdirectories with hwcap.
* elf/cache.c (_GNU_SOURCE): Removed. Not needed anymore since
ldconfig is part of glibc.
Include dl-cache.h and remove stuff that's defined there.
(struct cache_entry): Add new member hwcap.
(print_entry): Print hwcap, cleanup a bit.
(print_cache): Print new and old formats.
(compare): Use _dl_cache_libcmp from dl-cache.h; handle hwcap.
(save_cache): Save new and old formats.
(add_to_cache): Handle hwcap.
* sysdeps/generic/dl-cache.c (_dl_cache_libcmp): Moved from here...
* sysdeps/generic/dl-cache.h (_dl_cache_libcmp): ...to here.
* sysdeps/generic/dl-cache.c (LD_SO_CACHE): Moved from here...
* sysdeps/generic/dl-cache.h (LD_SO_CACHE): ...to here.
* sysdeps/generic/dl-cache.c (CACHEMAGIC): Moved from here...
* sysdeps/generic/dl-cache.h (CACHEMAGIC): ...to here.
2000-05-05 Bruno Haible <haible@clisp.cons.org>
* intl/dcigettext.c (alignof): New macro.
(_nl_find_msg): Use it instead of __alignof__. Pass correct output
buffer length to __gconv/iconv. If malloc (freemem_size) fails, set
freemem_size to 0.
2000-05-05 Bruno Haible <haible@clisp.cons.org>
* intl/dcigettext.c (dcigettext): Fix interpretation of tsearch
return value.
* sysdeps/generic/dl-procinfo.h (_DL_HWCAP_COUNT): New.
(_dl_string_hwcap): New, does nothing.
* sysdeps/unix/sysv/linux/i386/dl-procinfo.h (_DL_HWCAP_COUNT):
New.
(_dl_procinfo): Use _DL_HWCAP_COUNT instead of a constant.
(_dl_string_hwcap): New function, converts from string to hwcap
encoding.
* sysdeps/unix/sysv/linux/sparc/sparc32/dl-procinfo.h (_DL_HWCAP_COUNT):
New.
(_dl_procinfo): Use _DL_HWCAP_COUNT instead of a constant.
(_dl_string_hwcap): New function, converts from string to hwcap
encoding.
* sysdeps/unix/sysv/linux/sparc/sparc64/dl-procinfo.h (_DL_HWCAP_COUNT):
New.
(_dl_procinfo): Use _DL_HWCAP_COUNT instead of a constant.
(_dl_string_hwcap): New function, converts from string to hwcap
encoding.
2000-05-05 Ulrich Drepper <drepper@redhat.com>
* elf/dl-load.c (_dl_map_object_from_fd): Little of computation of
parameter to mprotect and for variable assignments.
2000-05-03 Jes Sorensen <jes@linuxcare.com>
* sysdeps/generic/ldsodefs.h (LOOKUP_VALUE_ADDRESS): Check the
validity of map before dereferencing it.
* elf/dl-reloc.c (RESOLVE_MAP): Define.
2000-05-02 Jes Sorensen <jes@linuxcare.com>
* elf/dl-runtime.c (fixup): Add the value returned in the symbol
lookup to the arguments to elf_machine_fixup_plt().
* sysdeps/ia64/dl-machine.h (elf_machine_fixup_plt): Add Link_map
of the symbol being resolved to input argument list and make the
function return the pointer to the reloc.
* sysdeps/alpha/dl-machine.h (elf_machine_fixup_plt): Change
return valuie to lookup_t and return the value.
* sysdeps/arm/dl-machine.h (elf_machine_fixup_plt): Likewise.
* sysdeps/generic/dl-machine.h (elf_machine_fixup_plt): Likewise.
* sysdeps/i386/dl-machine.h (elf_machine_fixup_plt): Likewise.
* sysdeps/m68k/dl-machine.h (elf_machine_fixup_plt): Likewise.
* sysdeps/sparc/sparc32/dl-machine.h (elf_machine_fixup_plt): Likewise.
* sysdeps/sparc/sparc64/dl-machine.h (elf_machine_fixup_plt): Likewise.
* sysdeps/powerpc/dl-machine.h (elf_machine_fixup_plt): Likewise.
Make it an inline function returning value after calling
__elf_machine_fixup_plt().
* elf/dl-sym.c (_dl_vsym): Use DL_SYMBOL_ADDRESS() to obtain the
symbol address.
* elf/dl-symbol.c (_dl_symbol_value): Use LOOKUP_VALUE_ADDRESS to
obtain the symbol address.
* sysdeps/generic/ldsodefs.h: Add generic DL_SYMBOL_ADDRESS() macro
depending on the definition of ELF_FUNCTION_PTR_IS_SPECIAL.
* sysdeps/ia64/dl-machine.h: Add DL_SYMBOL_ADDRESS() macro calling
_dl_symbol_address() - this way DL_SYMBOL_ADDRESS() turns into an
inline on non ia64.
2000-04-28 Jes Sorensen <jes@linuxcare.com>
* elf/dl-runtime.c (fixup): Use the portable macros to get the
symbol address of an object.
* elf/dl-runtime.c (fixup-profile): Use the portable macros to get
the symbol address of an object.
* elf/dl-libc.c (struct do_dlsym_args): Change loadbase to a lookup_t.
* elf/dl-lookup.c (_dl_lookup_symbol): Likewise.
(_dl_lookup_symbol_skip): Likewise.
(_dl_lookup_versioned_symbol): Likewise.
(_dl_lookup_versioned_symbol_skip): Likewise.
2000-04-27 Jes Sorensen <jes@linuxcare.com>
* elf/rtld.c (_dl_start): Get the function pointer return address
via _dl_start_address for architectures that need a function
pointer descriptor rather than just a pointer (ia64).
* sysdeps/generic/dl-lookupcfg.h: New file.
* sysdeps/ia64/dl-lookupcfg.h: New file.
* sysdeps/ia64/dl-machine.h: New file.
* sysdeps/ia64/dl-symaddr.c: New file.
* sysdeps/ia64/dl-fptr.c: New file.
* elf/elf.h: Add IA-64 specific definitions.
2000-05-04 Jakub Jelinek <jakub@redhat.com>
* sysdeps/generic/bits/confname.h (_SC* enum): Avoid comma at the
end of enum.
2000-05-04 Jakub Jelinek <jakub@redhat.com>
* iconv/gconv.h (__gconv_t): Add __extension__ to make gcc -pedantic
happy.
* libio/stdio.h: Make fseeko and ftello prototypes available is
__USE_LARGEFILE. Patch by Paul Eggert <eggert@twinsun.com>.
* sysdeps/generic/dl-environ.c (unsetenv): Follow change to the
real unsetenv implementation from 1999-07-29 [PR libc/1714].
2000-05-03 Bruno Haible <haible@clisp.cons.org>
* intl/dcigettext.c (dcigettext): Do the defaulting of 'domainname'
before calling tfind.
2000-03-05 Jakub Jelinek <jakub@redhat.com>
* resolv/resolv.h (res_querydomain): Remove redefinition to
__res_querydomain (reported by Owen Taylor <otaylor@redhat.com>).
2000-05-03 Ulrich Drepper <drepper@redhat.com>
* po/gl.po: Update from translation team.
* manual/intro.texi (Program Basics): Change section title.
* manual/process.texi: Fix reference.
(Executing a File): Add reference exec in other section.
* manual/signal.texi: Fix reference.
* manual/startup.texi: Document syscall function.
Patches by Bryan Henderson <bryanh@giraffe-data.com>.
2000-04-29 Bruno Haible <haible@clisp.cons.org>
* intl/libintl.h (bind_textdomain_codeset): New declaration.
* intl/bindtextdom.c (set_binding_values): New function.
(bindtextdomain): Call it.
(bind_textdomain_codeset): New function.
* intl/dcigettext.c (dcigettext): Pass binding to _nl_find_domain.
(free_mem): Free each binding's codeset.
* intl/gettextP.h (struct binding): Add codeset field.
(_nl_find_domain): Add domainbinding argument.
* intl/finddomain.c (_nl_find_domain): Add domainbinding argument.
Pass it to _nl_make_l10nflist.
* intl/loadinfo.h (struct loaded_l10nfile): Add domainbinding field.
(_nl_make_l10nflist): Add domainbinding argument.
* intl/l10nflist.c (_nl_make_l10nflist): Add domainbinding argument.
* intl/loadmsgcat.c (_nl_load_domain): Look at the domainbinding's
codeset when determining outcharset. If !_LIBC && HAVE_ICONV, call
locale_charset().
* manual/message.texi: New node "Charset conversion in gettext".
2000-04-30 Bruno Haible <haible@clisp.cons.org>
* catgets/open_catalog.c (__open_catalog): Use __builtin_expect where
appropriate. Handle possible __read error.
2000-04-29 Bruno Haible <haible@clisp.cons.org>
* intl/gettextP.h (__builtin_expect): Define as empty if not a
compiler builtin.
* intl/loadinfo.h (__builtin_expect): Likewise.
* intl/dcigettext.c (dcigettext, _nl_find_msg): Use
__builtin_expect where appropriate.
* intl/loadmsgcat.c (_nl_load_domain): Likewise.
* intl/localealias.c (extend_alias_table): Return an error indicator.
(read_alias_file): Bail out if extend_alias_table fails.
2000-04-29 Bruno Haible <haible@clisp.cons.org>
* intl/loadmsgcat.c: Define _GNU_SOURCE as early as possible.
* intl/localealias.c: Likewise.
2000-05-01 Bruno Haible <haible@clisp.cons.org>
* intl/loadmsgcat.c (_nl_load_domain): Initialize domain->conv_tab.
Initialize domain->plural and domain->nplurals even if there is no
nullentry.
2000-05-01 Bruno Haible <haible@clisp.cons.org>
* intl/dcigettext.c (_nl_find_msg): Terminate __gconv loop if return
value is == __GCONV_OK or == __GCONV_EMPTY_INPUT, not != __GCONV_OK.
In case of failure, goto converted.
2000-05-01 Bruno Haible <haible@clisp.cons.org>
* wcsmbs/wcsmbsload.c (norm_add_slashes): Move away.
* iconv/gconv_int.h (norm_add_slashes): Move to here.
* intl/loadmsgcat.c (_nl_load_domain): Normalize strings passed to
__gconv_open.
2000-04-29 Bruno Haible <haible@clisp.cons.org>
* intl/dcigettext.c (transcmp): Compare the domains as well.
(dcigettext): Call strlen (msgid1) after testing msgid1 against NULL,
not before.
* intl/loadmsgcat.c (_nl_load_domain): Deal with EINTR. Include
<errno.h>.
2000-05-03 Ulrich Drepper <drepper@redhat.com>
* sysdeps/generic/hp-timing.h (HP_TIMING_NONAVAIL): Define to
signal timing is not really implemented.
2000-04-17 Andreas Jaeger <aj@suse.de>
* elf/rtld.c (process_dl_debug): Mention statistics in help message.
2000-04-17 Jakub Jelinek <jakub@redhat.com>
* Makefile (install): Use slibdir and libdir instead of inst_slibdir
and inst_libdir.
2000-04-17 Ulrich Drepper <drepper@redhat.com>
* elf/dl-version.c (_dl_check_map_versions): New argument trace_mode.
Before testing versions check that we actually loaded the object
and whether we are in trace mode. If not loaded during tracing don't
test versions in this object.
(_dl_check_all_versions): Take new parameter and pass to
_dl_check_map_versions.
* sysdeps/generic/ldsodefs.h: Update prototypes for
_dl_check_all_versions and _dl_check_map_versions.
* elf/rtld.c (struct version_check_args): Add dotrace.
(version_check_doit): Pass args->dotrace to _dl_check_all_versions.
(dl_main): Pass info about trace mode to version_check_doit.
* elf/dl-open.c (dl_open_worker): Pass zero as new argument to
_dl_check_all_versions.
* manual/users.texi (XPG Functions): Document utmpxname, getutmp,
and getutmpx.
Patch by Bryan Henderson <bryanh@giraffe-data.com>.
* posix/getconf.c: Add support for many more POSIX options.
* sysdeps/posix/sysconf.c: Likewise.
* sysdeps/generic/bits/confname.h: Add many more POSIX options.
* sysdeps/mach/hurd/bits/posix_opt.h: Add _POSIX_REGEXP and
_POSIX_SHELL.
* sysdeps/unix/sysv/linux/bits/posix_opt.h: Likewise.
* sysdeps/unix/sysv/linux/i386/bits/time.h: Rename __CLOCK_HIGHRES to
CLOCK_PROCESS_CPUTIME_ID. Add define CLOCK_MONOTONIC and
CLOCK_THREAD_CPUTIME_ID.
* sysdeps/unix/i386/clock_getcpuclockid.c: Set *clock_id to
CLOCK_PROCESS_CPUTIME_ID.
* sysdeps/unix/i386/i586/clock_getres.c: Change for renaming of
__CLOCK_HIGHRES to CLOCK_PROCESS_CPUTIME_ID. Handle
CLOCK_THREAD_CPUTIME_ID and CLOCK_MONOTONIC the same.
* sysdeps/unix/i386/i586/clock_gettime.c: Likewise.
2000-04-11 Ulrich Drepper <drepper@redhat.com>
* posix/globtest.sh: Fix last change.
2000-04-10 Philip Blundell <philb@gnu.org>
* sysdeps/unix/sysv/linux/bits/in.h (IPV6_JOIN_GROUP,
IPV6_LEAVE_GROUP): New names for IPV6_ADD_MEMBERSHIP,
IPV6_DROP_MEMBERSHIP.
* sysdeps/generic/bits/in.h (IPV6_JOIN_GROUP, IPV6_LEAVE_GROUP):
Likewise.
2000-04-11 Ulrich Drepper <drepper@redhat.com>
* elf/readlib (process_file): Close streams in case of an error.
2000-04-09 Andreas Jaeger <aj@suse.de>
* elf/readlib.c (process_file): Check if file is big enough to
contain aout and ELF headers.
Reported by Reinhard Moosauer <RMoosauer@steinecker.com>.
2000-04-10 Jes Sorensen <Jes.Sorensen@cern.ch>
* elf/dl-fini.c: Include alloca.h to get proper prototype for alloca().
2000-04-11 Ulrich Drepper <drepper@redhat.com>
* test-skeleton.c (main): If STDOUT_UNBUFFERED is defined, make stdout
stream unbuffered.
* rt/Makefile (tests): Add tst-clock.
Add rules to build tst-clock.
* rt/tst-clock.c: New file.
* sysdeps/unix/i386/i586/clock_getres.c: Correct expression to decide
about initialization of nsec.
* sysdeps/unix/i386/i586/clock_gettime.c: Correct expression to decide
about initialization of freq. Set retval to zero if successful.
* sysdeps/unix/sysv/linux/i386/get_clockfreq.c: Cache result.
2000-03-31 Andreas Schwab <schwab@suse.de>
* string/strfry.c: Declare STATE as array of char instead of int
and do not initialize it (done by initstate_r). Pass correct
size.
* sysdeps/generic/ldsodefs.h: Fix typo in comment.
2000-04-02 Ulrich Drepper <drepper@redhat.com>
* elf/dl-fini.c (_dl_fini): Increment j counter after swapping in
element at this position.
* elf/Versions [ld.so] (GLIBC_2.2): Export _dl_load_lock.
* elf/link.h (struct link_map): Add l_reldepsmax, l_reldepsact, and
l_reldeps elements.
* elf/dl-lookup.c (add_dependency): New function.
(_dl_lookup_symbol): Use it whenever symbol was found in a global,
dynamically loaded object.
(_dl_lookup_symbol_skip): Likewise.
(_dl_lookup_versioned_symbol): Likewise.
(_dl_lookup_versioned_symbol_skip): Likewise.
* elf/dl-open.c: Don't define _dl_load_lock here...
* elf/rtld.c: ...but here...
* elf/dl-support.c: ...and here.
* elf/dl-close.c (_dl_close): Close also dependent objects introduce
through relocation.
* elf/dl-fini.c (_dl_fini): Also take dependencies introduced through
relocations.
* dlfcn/Makefile (glrefmain.out): Test is not expected to fail
anymore.
* dlfcn/glrefmain.c: Add one more debug message.
* Makeconfig (preprocess-versions): Don't add $(CPPFLAGS) to compiler
command line.
* Makerules (sysd-versions): Use ( ) instead of { }.
* elf/dl-load.c: Use __builtin_expect to signal that compiler should
optimize for the non-debugging case.
* elf/dl-lookup.c: Likewise.
* sysdeps/generic/libc-start.c: Likewise.
* include/netdb.h: Change type of first parameter of __getnetbyaddr_r.
* inet/getnetbyad.c: Likewise.
* inet/getnetbyad_r.c: Likewise.
* nis/nss_nis/nis-network.c: Likewise.
* nis/nssplus_nis/nisplus-network.c: Likewise.
* nss/nss_files/files-network.c: Likewise.
* resolv/netdb.h: Define uint32_t if not already happened.
Include bits/netdb.h. Remove definition of struct netent.
Change type of first parameter of getnetbyaddr_r and getnetbyaddr.
* sysdeps/generic/stdint.h: Allow definition of uint32_t elsewhere.
* sysdeps/generic/bits/netdb.h: New file.
* sysdeps/unix/sysv/linux/alpha/bits/netdb.h: New file.
2000-03-30 Ulrich Drepper <drepper@redhat.com>
Implement dynamic determination of constructor/destructor order in
the dynamic linker.
* elf/Versions [ld.so] (GLIBC_2.0): Remove _dl_init_next.
(GLIBC_2.2): Add _dl_init.
* elf/dl-close.c: Also call all destructors in FINI_ARRAY.
r_duplist is not anymore allocated separately. l_initfini is and
therefore free it if necessary.
* elf/dl-deps.c: If a searchlist has to be allocated, put all in one
malloc block. Otherwise allocate l_initfini list only.
Put dependencies for the object in l_initfini list.
Sort dependencies for the object to be loaded topologically.
* elf/dl-fini.c: Before running the destructors sort the topologically.
* elf/dl-init.c (_dl_init): Renamed from _dl_init_next. Rewrite to
call constructors instead of iterating over the pointers. Get list of
objects for which to run constructors from l_initfini element. Accept
argc, argv, and env as parameters and pass them to the constructors.
* elf/ld-load.c (_dl_map_object_from_fd): Initialize l_ldnum member
with size of dynamic section.
* elf/dl-open.c (dl_open_worker): Only call _dl_init instead of
_dl_init_next and calling constructors ourself.
* elf/dl-preinit.c (_dl_preinit): Renamed from _dl_preinit_next.
Take argc, argv, and env as parameters and pass them to the
constructors. Rewrite to call all constructors and not iterate over
the pointers.
* elf/dynamic-link.h: Don't relocate DT_FINI_ARRAY entry. Don't
precompute l_initcount and l_preinitcount.
* elf/link.h (struct link_map): Add l_ldnum member.
Make l_phdr_allocated part of the bitfield. Remove l_runcount,
l_initcount, and l_preinitcount. Add l_initfini.
* sysdeps/generic/ldsodefs.h: Replace _dl_init_next prototype with
one for _dl_init.
* sysdeps/i386/dl-machine (RTLD_START): Rewrite to match new init
function interface.
* sysdeps/unix/sysv/linux/init-first.h: Removed.
* sysdeps/unix/sysv/linux/Dist: Delete file here as well.
* sysdeps/unix/sysv/linux/init-first.c [PIC]: Don't use
SYSDEP_CALL_INIT. Make _init a strong alias of init. The calling
conventions now match.
* sysdeps/generic/libc-start.c: Calling __libc_init_first has no
effect for shared objects. Don't emit message and call only for
static library.
* sysdeps/unix/sysv/linux/net/if.h: Moved to ...
* sysdeps/gnu/net/if.h: here.
(_IOT_ifconf, _IOT_ifreq): Hurd ioctl type macros moved from ...
* sysdeps/mach/hurd/net/if.h: ... here; this file now removed.
* sysdeps/generic/net/if.h: New file. Declares just the standard
functions and `struct if_nameindex' type.
* socket/Makefile (headers): Add net/if.h here.
* sysdeps/unix/sysv/linux/Makefile (sysdep_headers): Not here.
* sysdeps/mach/hurd/Dist: Remove it here.
* sysdeps/unix/sysv/linux/Dist: And here.
* sysdeps/generic/if_index.c: Include <net/if.h>.