From dfd2257ad98eb0f6eab167e5fe5ff68ca87172e3 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Sun, 12 Oct 1997 04:05:44 +0000 Subject: Update. 1997-10-12 05:09 Ulrich Drepper * libio/Makefile (routines): Remove iofprintf. * stdio-common/fprintf.c [USE_IN_LIBIO]: Define _IO_fprintf. * libio/filedoalloc.c: Use _G_stat64 instead of stat. * libio/fileops.c (_IO_file_open): Change to take extra argument indicating whether 32 or 64 bit mode is wanted. * libio/iofopen.c: Call _IO_file_open with extra argument set to 0. * libio/iofopen64.c: Call _IO_file_open with extra argument set to 0. * libio/iolibio.h (_IO_freopen, _IO_freopen64): Likewise. * libio/iofgetpos.c: Pretty print. * libio/iofgetpos64.c: Use _IO_fpos64_t for local variable `pos'. * manual/conf.texi: Document all the _SC_ and _CS_ constants. * manual/creature.texi: Document _LARGEFILE_SOURCE, _LARGEFILE64_SOURCE and _FILE_OFFSET_BITS. * manual/llio.texi: Document truncate and ftruncate. * manual/stdio.texi: Document positional parameters for printf. * math/Makefile (headers): Add tgmath.h. (libm-support): Remove s_lrint, s_llrint, s_lround, and s_llround and move to ... (libm-calls): ... here. Add scalbln, s_nextafterx and s_fma. * math/libm-test.c (lround_test, llround_test): Test for all FP formats by using FUNC(). * math/libm.map: Add fma, fmaf, fmal, nextafterx, nextafterxf, nextafterxl, scalbln, scalblnf, scalblnl, lrintf, lrintl, llrintf, llrintl, lroundf, lroundl, llroundf, and llroundl. * math/math.h: Document new platform specific macros from mathdef.h. Remove declaration of lrint, llrint, lround, and llround. * math/test-double.c: Define TEST_DOUBLE. * math/test-idouble.c: Likewise. * math/test-float.c: Define TEST_FLOAT. * math/test-ifloat.c: Likewise. * math/tgmath.h: New file. * math/bits/mathcalls.h: Add nextafterx, scalbln, fma, lrint, llrint, lround, and llround. Change second argument of scalbn to `int'. * sysdeps/libm-ieee754/s_fma.S: New file. * sysdeps/libm-ieee754/s_fmaf.S: New file. * sysdeps/libm-ieee754/s_fmal.S: New file. * sysdeps/libm-i387/s_fma.S: New file. * sysdeps/libm-i387/s_fmaf.S: New file. * sysdeps/libm-i387/s_fmal.S: New file. * sysdeps/libm-i387/s_llrint.S: Change to take double argument. * sysdeps/libm-i387/s_lrint.S: Likewise. * sysdeps/libm-i387/s_llrintf.S: New file. * sysdeps/libm-i387/s_llrintl.S: New file. * sysdeps/libm-i387/s_lrintf.S: New file. * sysdeps/libm-i387/s_lrintl.S: New file. * sysdeps/libm-ieee754/s_llrint.c: Remove version which works on 80bit double. * sysdeps/libm-ieee754/s_lrint.c: Likewise. * sysdeps/libm-ieee754/s_llrintf.S: New file. * sysdeps/libm-ieee754/s_llrintl.S: New file. * sysdeps/libm-ieee754/s_lrintf.S: New file. * sysdeps/libm-ieee754/s_lrintl.S: New file. * sysdeps/libm-i387/s_scalbln.c: New file. Empty file. * sysdeps/libm-i387/s_scalblnf.c: New file. Empty file. * sysdeps/libm-i387/s_scalblnl.c: New file. Empty file. * sysdeps/libm-i387/s_scalbn.c: Add scalbln as alias. * sysdeps/libm-i387/s_scalbnf.c: Add scalblnf as alias. * sysdeps/libm-i387/s_scalbnl.c: Add scalblnl as alias. * sysdeps/libm-ieee754/s_llround.c: Remove version which works on 80bit double. * sysdeps/libm-ieee754/s_lround.c: Likewise. * sysdeps/libm-ieee754/s_llroundf.c: Likewise. * sysdeps/libm-ieee754/s_llroundl.c: Likewise. * sysdeps/libm-ieee754/s_lroundf.c: Likewise. * sysdeps/libm-ieee754/s_lroundl.c: Likewise. * sysdeps/libm-ieee754/s_nextafterl.c: Add alias fo nextafterxl. * sysdeps/libm-ieee754/s_nextafterx.c: New file. * sysdeps/libm-ieee754/s_nextafterxf.c: New file. * sysdeps/libm-ieee754/s_nextafterxl.c: New file. * sysdeps/libm-ieee754/s_scalbln.c: New file. * sysdeps/libm-ieee754/s_scalblnf.c: New file. * sysdeps/libm-ieee754/s_scalblnl.c: New file. * sysdeps/libm-ieee754/s_scalbn.c: Change to take `int' as second arg. * sysdeps/libm-ieee754/s_scalbnf.c: Likewise. * sysdeps/libm-ieee754/s_scalbnl.c: Likewise. * stdlib/stdlib.h: Protect declarations of __strto*l_internal functions by #ifdefs since they are duplicated in inttypes.h. * sysdeps/wordsize-32/inttypes.h: Add definition of strtoimax and strtoumax plus needed declarations. * sysdeps/generic/confname.h (_SC_AIO_LISTIO_MAX): Fix typo. 1997-10-09 Andreas Jaeger * locale/programs/locfile.c (locfile_read): Correct while loop. * db2/makedb.c (main): Add missing parameter for error output. (process_input): Likewise. * resolv/gethnamaddr.c (getanswer): Rewrite a bit to avoid warning. 1997-10-12 05:05 Ulrich Drepper * libc-map: Add __bzero, __mempcpy. 1997-10-10 18:51 David S. Miller * sysdeps/unix/sysv/linux/sparc/bits/ioctls.h: Remove dependencies on kernel_termios.h 1997-10-09 10:24 Thorsten Kukuk Add the changes from the Solaris 2.6 header files, use the new public defines/functions. * nis/nis_addmember.c: Updated. * nis/nis_checkpoint.c: Updated. * nis/nis_creategroup.c: updated. * nis/nis_destroygroup.c: Updated. * nis/nis_getservlist.c: Updated. * nis/nis_ismember.c: Updated. * nis/nis_lookup.c: Updated. * nis/nis_modify.c: Updated. * nis/nis_ping.c: Updated. * nis/nis_print.c: Updated. * nis/nis_print_group_entry.c: Updated. * nis/nis_remove.c: Updated. * nis/nis_removemember.c: Updated. * nis/nis_xdr.c: Updated. * nis/nss_nisplus/nisplus-alias.c: Updated. * nis/nss_nisplus/nisplus-ethers.c: Updated. * nis/nss_nisplus/nisplus-hosts.c: Updated. * nis/nss_nisplus/nisplus-network.c: Updated. * nis/nss_nisplus/nisplus-parser.c: Updated. * nis/nss_nisplus/nisplus-proto.c: Updated. * nis/nss_nisplus/nisplus-rpc.c: Updated. * nis/nss_nisplus/nisplus-service.c: Updated. * nis/rpcsvc/nis.h: Updated. * nis/rpcsvc/nis.x: Updated. * nis/rpcsvc/nis_object.x: Updated. * nis/rpcsvc/nis_tags.h: Updated. * nis/rpcsvc/nislib.h: Updated. * nis/lckcache.c: Removed, since Sun has dropped the directory signatures. The old cache version is now a security risk and not longer supported by Sun. * nis/nis_cache.c: Likewise. * nis/rpcsvc/nis_cache.h: Likewise. * nis/rpcsvc/nis_cache.x: Likewise. * nis/nis_call.c: Remove calls to the cache functions. * nis/libnsl.map: Remove cache and depending functions. * nis/nis_intern.h: Likewise. * nis/nis_add.c: Remove #include . * nis/nis_domain_of.c: Likewise. * nis/nis_domain_of_r.c: Likewise. * nis/nis_error.c: Likewise. * nis/nis_file.c: Likewise. * nis/nis_local_names.c: Likewise. * nis/nis_mkdir.c: Likewise. * nis/nis_rmdir.c: Likewise. * nis/nis_subr.c: Likewise. * nis/nis_verifygroup.c: Likewise. * nis/nis_clone.c: Removed, replaced by ... * nis/nis_clone_dir.c: New. * nis/nis_clone_obj.c: New. * nis/nis_clone_res.c: New. * nis/nis_table.c: Fixed bugs shown through the new clone functions. * nis/nis_defaults.c: Fixed a lot of race conditions. * nis/nis_free.c: Rewritten. * sunrpc/auth_des.c: Fix use of free'ed pointer. * nis/Makefile (libnsl-routines): Remove nis_clone, nis_cache and lckcache. Add nis_clone_dir, nis_clone_obj, and nis_clone_res. 1997-10-09 Andreas Jaeger * wctype/test_wctype.c (TEST): Add parens to avoid ambiguity. 1997-10-08 Andreas Schwab * include/features.h: Don't crash if _XOPEN_SOURCE is defined to be empty. 1997-10-09 05:54 Ulrich Drepper * nss/digits_dots.c: Place `result' in resbuf and not in `buffer'. * nss/getXXbyYY_r.c: Make sure digits_dots.c sees `resbuf' as struct and not a pointer. Little optimizations. 1997-10-09 05:00 Ulrich Drepper * sysdeps/stub/getenv.c: Remove unused file. * sysdeps/stub/lxstat.c: Likewise. * sysdeps/stub/morecore.c: Likewise. * sysdeps/stub/putenv.c: Likewise. * sysdeps/stub/sbrk.c: Likewise. * sysdeps/stub/setenv.c: Likewise. * sysdeps/stub/sysd-stdio.c: Likewise. * sysdeps/stub/sysdep.h: Likewise. Reported by Zack Weinberg . 1997-10-09 04:58 Ulrich Drepper * configure.in: Add __bzero definition to DWARF2 unwind test. Reported by David S. Miller . 1997-10-07 Paul Eggert * intl/loadmsgcat.c (_nl_load_domain): Fix &&/|| typo when checking file size. Check for overflow when stuffing off_t into size_t. 1997-10-07 18:11 Ulrich Drepper * time/africa: Update from tzdata1997i. 1997-10-07 Andreas Jaeger * posix/globtest.sh: Add arguments for name of dynamic linker and call dynamic linker to execute globtest. * posix/Makefile (tests): Supply arguments to globtest.sh. 1997-10-07 Andreas Jaeger * nis/rpcsvc/ypupd.h: Add missing __END_DECLS. 1997-10-03 Andreas Schwab * libc.map: Add mempcpy, prctl. 1997-09-30 Andreas Schwab * sysdeps/generic/memcmp.c: Avoid warnings. * sysdeps/generic/memset.c: Likewise. * sysdeps/generic/strchr.c: Likewise. * sysdeps/generic/strlen.c: Likewise. 1997-09-29 Andreas Schwab * malloc/Makefile ($(objpfx)mtrace): Fix typo. 1997-09-29 Andreas Schwab * sysdeps/m68k/dl-machine.h (elf_machine_rela): Fix last change. The R_68K_GLOB_DAT and R_68K_JMP_SLOT relocations really ignore the addend, Richard. (elf_machine_fixup_plt): Don't add the addend. (elf_machine_plt_value): New function. * sysdeps/alpha/dl-machine.h (elf_machine_plt_value): New function. * sysdeps/sparc/sparc32/dl-machine.h (elf_machine_plt_value): New function. * sysdeps/sparc/sparc64/dl-machine.h (elf_machine_plt_value): New function. * sysdeps/powerpc/dl-machine.h (elf_machine_plt_value): New function. * sysdeps/i386/dl-machine.h (elf_machine_plt_value): New function. * elf/dl-runtime.c (fixup, profile_fixup): Don't add in the addend, instead let the machine dependent setup decide. 1997-09-20 Andreas Schwab * sysdeps/m68k/m68020/bits/string.h: New file. 1997-10-07 04:27 Richard Henderson * Makeconfig (+includes): Add -I$(objpfx). * stdlib/longlong.h [__sparc__]: Prototype __udiv_qrnnd. * sysdeps/alpha/setjmp.S: __setjmp is the same as _setjmp. Make the former a strong symbol and the later a weak alias. * sysdeps/sparc/sparc32/setjmp.S: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/setjmp.S: Likewise. 1997-10-06 21:01 David S. Miller * sysdeps/unix/sysv/linux/sparc/sparc64/bits/types.h: Make ino_t 64-bits. * sysdeps/unix/sysv/linux/sparc/sparc64/kernel_stat.h: Make st_ino member 64-bits as well, to match the kernel. 1997-10-06 19:35 Ulrich Drepper * sysdeps/sparc/sparc64/sub_n.S: Fix typo. Patch by Jakub Jelinek . 1997-10-06 01:09 Zack Weinberg * time/README: Correct list of files from tzcode package. Add contact information for tzcode/tzdata maintainers. Correct spelling of author's name. Compact lists. 1997-10-06 01:48 Ulrich Drepper * malloc/malloc.h: Remove hook definition without caller argument. * malloc/malloc.c: Likewise. * string/tester.c: Correct strsep test. * string/bits/string2.h: Define __string2_1bptr_p and use it. Patch by David S. Miller . * math/Makefile (routines): Add s_clog10. * math/libm-test.c: Add test for clog10. * math/libm.map: Add clog10{,f,l}. * math/bits/cmathcalls.h [__USE_GNU]: Add clog10. * sysdeps/libm-ieee754/s_clog10.c: New file. * sysdeps/libm-ieee754/s_clog10f.c: New file. * sysdeps/libm-ieee754/s_clog10l.c: New file. * manual/math.texi: Describe clog10. * config.h.in: Add USE_REGPARMS and define internal_function based on this. * configure.in: Define USE_REGPARMS for ix86 machines. * gmon/gmon.c: Mark write_hist, write_call_graph and write_bb_counts as internal functions. * inet/getnameinfo.c: Likewise for nrl_domainname. * inet/getnetgrent_r.c: Likewise for __internal_setnetgrent_reuse. * inet/rcmd.c: Likewise for __icheckhost. * intl/dcgettext.c: Likewise for category_to_name and guess_category_value. * intl/localealias.c: Likewise for read_alias_file. * io/fts.c: Likewise for fts_alloc, fts_build, fts_lfree, fts_maxarglen, fts_padjust, fts_palloc, fts_sort, and fts_stat. * libio/genops.c: Likewise for save_for_backup. * malloc/malloc.c (chunk_free, chunk_alloc, chunk_realloc, chunk_align, main_trim, heap_trim): Likewise. * malloc/mtrace.c (tr_where): Likewise. * misc/fstab.c (mnt2fs): Likewise. * misc/getttyent.c (skip, value): Likewise. * misc/syslog.c (openlog_internal): Likewise. * misc/tsearch.c (trecurse, tdestroy_internal): Likewise. * nss/nsswitch.c (nss_lookup_function, nss_parse_file, nss_getline, nss_parse_service_list, nss_new_service): Likewise. * posix/wordexp.c (parse_dollars, parse_backtick, eval_expr): Likewise. * resolv/inet_ntop.c (inet_ntop4, inet_ntop6): Likewise. * resolv/inet_pton.c (inet_pton4, inet_pton6): Likewise. * resolv/res_init.c (res_setoptions): Likewise. * stdio-common/printf_fp.c (group_number): Likewise. * stdio-common/vfprintf.c (buffered_vfprintf, group_number): Likewise. * stdlib/fmtmsg.c (internal_addseverity): Likewise. * sunrpc/auth_des.c (synchronize): Likewise. * sunrpc/auth_unix.c (marshal_new_auth): Likewise. * sunrpc/clnt_perr.c (auth_errmsg): Likewise. * sunrpc/key_call.c (key_call): Likewise. * sunprc/pmap_rmt.c (getbroadcastnets): Likewise. * sunrpc/svc_tcp.c (makefd_xprt): Likewise. * sunrpc/svcauth_des.c (cache_init, cache_spot, cache_ref, invalidate): Likewise. * sunrpc/xdr_rec.c (fix_buf_size, skip_input_bytes, flush_out, set_input_fragment, get_input_bytes): Likewise. * sysdeps/unix/sysv/linux/getsysstats.c (get_proc_path, phys_pages_info): Likewise. * sysdeps/unix/sysv/linux/if_index.c (opensock): Likewise. * sysdeps/unix/sysv/linux/poll.c (__emulate_poll): Likewise. * sysdeps/unix/sysv/linux/readv.c (__atomic_readv_replacement): Likewise. * sysdeps/unix/sysv/linux/readv.c (__atomic_writev_replacement): Likewise. * time/strptime.c (strptime_internal): Likewise. * time/tzfile.c (find_transition, compute_tzname_max): Likewise. * time/tzset.c (compute_change, tz_compute, tzset_internal): Likewise. * libc.map: Remove _libio_using_thunks, add _fp_hw and _dl_addr. * ctype/ctype.h: Pretty print. * grp/grp.h: Likewise. * include/libc-symbols.h: Likewise. * include/limits.h: Likewise. * include/values.h: Likewise. * io/fcntl.h: Likewise. * io/sys/stat.h: Likewise. * libio/stdio.h: Likewise. * malloc/malloc.h: Likewise. * misc/err.h: Likewise. * misc/regexp.h: Likewise. * misc/sys/cdefs.h: Likewise. * misc/sys/file.h: Likewise. * posix/sys/utsname.h: Likewise. * posix/sys/wait.h: Likewise. * pwd/pwd.h: Likewise. * resolv/netdb.h: Likewise. * signal/signal.h: Likewise. * stdlib/stdlib.h: Likewise. * string/endian.h: Likewise. * string/memory.h: Likewise. * sysdeps/mach/hurd/bits/fcntl.h: Likewise. * sysdeps/mach/hurd/sys/param.h: Likewise. * sysdeps/unix/sysv/linux/sys/param.h: Likewise. * termios/termios.h: Likewise. * wcsmbs/wchar.h: Likewise. * wctype/wctype.h: Likewise. * sysdeps/unix/bsd/bsd4.4/wait3.c: Use __WAIT_STATUS in definition. Implement Large File Support API. * include/features.h: Add suuport for _LARGEFILE_SOURCE, _LARGEFILE64_SOURCE, and _FILE_OFFSET_BITS. * libc.map: Add new functions for LFS. * dirent/Makefile (routines): Add readdir64 and readdir64_r. * dirent/dirent.h: Update readdir prototype for LFS and add new prototypes for above functions. * io/Makefile (routines): Add xstat64, fxstat64, lxstat64, statfs64, fstatfs64, lstat64, open64, lseek64, creat64, and ftw64. * io/creat64.c: New file. * io/fstat64.c: New file. * io/lstat64.c: New file. * io/stat64.c: New file. * io/ftw64.c: New file. * io/ftw.c: Rewrite to allow easy definition of ftw64. * io/ftw.h: Add LFS interface. * io/fcntl.h: Likewise. * io/sys/stat.h: Likewise. * io/sys/statfs.h: Likewise. * libio/Makefile (routines): Add iofgetpos64, iofopen64, iofsetpos64, freopen64, fseeko64, and ftello64. * libcio/fseeko64.c: New file. * libio/ftello64.c: New file. * libio/iofgetpos64.c: New file. * libio/iofopen64.c: New file. * libio/iofsetpos64.c: New file. * libio/fileops.c (_IO_file_fopen): Change to use _IO_off64_t. (_IO_file_attach): Likewise. (_IO_do_write): Likewise. (_IO_file_sync): Likewise. (_IO_file_seek): Likewise. (_IO_file_seekoff): Likewise. Use _G_stat64. (_IO_file_fopen64): New function. (_IO_file_jumps): Initialize showmanyc and imbue. * libio/genops.c (_IO_default_seekpos): Change to use _IO_fpos64_t. (_IO_default_seekoff): Likewise. (_IO_default_seek): Likewise. (_IO_default_showmanyc, _IO_default_imbue): New functions. * libio/iofopncook.c (_IO_cookie_seek): Change to use _IO_off64_t. * libio/iolibio.h: Add prototypes for LFS functions. * libio/ioseekoff.c: Change to use _IO_fpos64_t. * libio/ioseekpos.c: Likewise. * libio/libio.h: Define _IO_fpos64_t and _IO_off64_t. (_IO_FILE): Move _offset field to end and change type to _IO_off64_t. (_IO_seekoff, _IO_seekpos): Change prototype. * libio/libioP.h (_IO_seekoff_t, _IO_seekpos_t, _IO_seek_t): Change to use _IO_off64_t. Change prototypes for function from the *ops.c files. * libio/stdio.h: Add LFS interface definition. * libio/strops.c (_IO_str_seekoff): Change to use _IO_fpos64_t. * posix/Makefile (routines): Add pread64 and pwrite64. * posix/confstr.c: Handle _CS_LFS* requests. * posix/getconf.c: Handle LFS* requests. * sysdeps/generic/confname.h: Add _CS_LFS* constants. * posix/unistd.h: Document _LFS64_LARGEFILE and _LFS64_STDIO. Define off_t and off64_t appropriately. Change prototypes of LFS functions. * posix/sys/types.h: Add LFS types. * resources/Makefile (routines): Add getrlimit64 and setlimit64. * resource/sys/resource.h: Change prototypes of LFS functions. * stdio-common/Makefile (routines): Add tmpfile64. * stdio-common/tmpfile64.c: New file. * sysdeps/generic/_G_config.h: Define _G_fpos64_t and _G_off64_t. Define _G_OPEN64, _G_LSEEK64, _G_FSTAT64. * sysdeps/unix/sysv/linux/_G_config.h: Likewise. * sysdeps/generic/bits/resource.h: Add LFS definitions. * sysdeps/unix/bsd/sun/sunos4/bits/resource.h: Likewise. * sysdeps/unix/sysv/linux/bits/resource.h: Likewise. * sysdeps/generic/statfs.h: Use __fsblkcnt_t for some of the fields. * sysdeps/unix/sysv/linux/bits/statfs.h: Likewise. * sysdeps/unix/sysv/linux/mips/bits/statfs.h: Likewise. * sysdeps/generic/types.h: Define LFS types. * sysdeps/unix/sysv/linux/alpha/bits/types.h: Likewise. * sysdeps/unix/sysv/linux/bits/types.h: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/bits/types.h: Likewise. * sysdeps/generic/sys/mman.h: Add LFS definitions. * sysdeps/unix/sysv/linux/sys/mman.h: Likewise. * sysdeps/generic/mach/hurd/bits/fcntl.h: Add flock LFS extensions. * sysdeps/unix/bsd/bits/fcntl.h: Likewise. * sysdeps/unix/sysv/linux/alpha/bits/fcntl.h: Likewise. * sysdeps/unix/sysv/linux/bits/fcntl.h: Likewise. * sysdeps/unix/sysv/linux/mips/bits/fcntl.h: Likewise. * sysdeps/generic/mach/hurd/bits/stat.h: Add stat LFS extensions. * sysdeps/unix/bsd/bits/stat.h: Likewise. * sysdeps/unix/bsd/osf/alpha/bits/stat.h: Likewise. * sysdeps/unix/sysv/linux/alpha/bits/stat.h: Likewise. * sysdeps/unix/sysv/linux/bits/stat.h: Likewise. * sysdeps/unix/sysv/linux/mips/bits/stat.h: Likewise. * sysdeps/unix/sysv/linux/sparc/bits/stat.h: Likewise. * sysdeps/unix/sysv/sysv4/i386/bits/stat.h: Likewise. * sysdeps/unix/sysv/sysv4/solaris2/bits/stat.h: Likewise. * sysdeps/posix/open64.c: New file. * sysdeps/stub/fstatfs64.c: New file. * sysdeps/stub/fxstat64.c: New file. * sysdeps/stub/getrlimit64.c: New file. * sysdeps/stub/lseek64.c: New file. * sysdeps/stub/lxstat64.c: New file. * sysdeps/stub/open64.c: New file. * sysdeps/stub/pread64.c: New file. * sysdeps/stub/pwrite64.c: New file. * sysdeps/stub/readdir64.c: New file. * sysdeps/stub/readdir64_r.c: New file. * sysdeps/stub/setrlimit64.c: New file. * sysdeps/stub/statfs64.c: New file. * sysdeps/stub/xstat64.c: New file. * sysdeps/unix/sysv/linux/llseek.c: Define as __llseek and make llseek and lseek64 weak aliases. * sysdeps/unix/sysv/linux/lseek64.c: New file. Empty. * sysdeps/unix/sysv/linux/alpha/bits/dirent.h: New file. * sysdeps/unix/sysv/linux/bits/dirent.h: Add LFS definitions. * sysdeps/posix/tempname.c: Add extra argument to trigger use of open64. * sysdeps/stub/tempname.c: Likewise. * stdio-common/tempnam.c: Call __stdio_gen_tempname with extra argument. * stdio-common/tmpfile.c: Likewise. * stdio-common/tmpnam.c: Likewise. * stdio-common/tmpnam_r.c: Likewise. * libio/libioP.h: Add definition ofr showmanyc and imbue callbacks. * libio/fileops.c (_IO_file_jumps): Initialize showmanyc and imbue. * libio/iofopncook.c (_IO_cookie_jumps): Likewise. * libio/iopopen.c (_IO_proc_jumps): Likewise. * libio/memstream.c (_IO_mem_jumps): Likewise. * libio/obprintf.c (_IO_obstack_jumps): Likewise. * libio/vsnprintf.c (_IO_strn_jumps): Likewise. * libio/strops.c (_IO_str_jumps): Likewise. * manual/arith.texi: Add a few words why cabs should be used. * manual/llio.texi: Describe sync, fsync, fdatasync. Tell about cleanup handlers & fcntl,lseek,write,read,close,open. * manual/process.texi: Tell about cleanup handlers & system,waitpid, wait. * manual/signal.texi: Likewise for pause. * manual/terminal.texi: Likewise for tcdrain. * manual/time.texi: Document nanosleep. * posix/exevp.c: Don't use nested function. * stdlib/ucontext.h: New file. * sysdeps/i386/sys/ucontext.h: New file. SysV/i386 API definitions. * sunrpc/xcrypt.c (hexval): Make a macro for efficiency. * sysdeps/i386/setjmp.h: Make `here` label local. * sysdeps/i386/elf/start.S: Define _fp_hw "variable". * sysdeps/stub/fstatfs.c: Correct warning. * sysdeps/stub/fxstat.c: Likewise. * sysdeps/stub/lxstat.c: Likewise. * sysdeps/unix/sysv/i386/i686/time.S: New file. 1997-10-03 20:56 Jason Merrill * malloc/obstack.h (obstack_empty_p): New macro. 1997-10-04 17:41 Philip Blundell * inet/getnameinfo.c (getnameinfo): Remove spurious `#if INET6'. 1997-09-30 Zack Weinberg * maint.texi: Add copyright terms for libdb (Sleepycat, Harvard). Document new --with-binutils switch; delete reference to --with-gnu-as, --with-gnu-ld, --with-gnu-binutils. Add to description of --without-fp: a kernel FPU emulator is adequate (from FAQ) * INSTALL: Regenerated. 1997-09-30 17:29 Richard Henderson * sysdeps/sparc/sparc32/dl-machine.h (elf_machine_rela): Move _dl_hwcap declaration to ... (elf_machine_fixup_plt): ... here. --- sysdeps/alpha/dl-machine.h | 8 + sysdeps/alpha/setjmp.S | 6 +- sysdeps/generic/_G_config.h | 9 +- sysdeps/generic/bits/confname.h | 30 ++- sysdeps/generic/bits/resource.h | 26 ++- sysdeps/generic/bits/statfs.h | 10 +- sysdeps/generic/bits/types.h | 17 ++ sysdeps/generic/memcmp.c | 2 + sysdeps/generic/memset.c | 3 +- sysdeps/generic/strchr.c | 5 +- sysdeps/generic/strlen.c | 7 +- sysdeps/generic/sys/mman.h | 10 + sysdeps/i386/dl-machine.h | 8 + sysdeps/i386/elf/start.S | 7 + sysdeps/i386/setjmp.S | 8 +- sysdeps/i386/sys/ucontext.h | 120 +++++++++++ sysdeps/libm-i387/s_fma.S | 32 +++ sysdeps/libm-i387/s_fmaf.S | 32 +++ sysdeps/libm-i387/s_fmal.S | 32 +++ sysdeps/libm-i387/s_llrint.S | 2 +- sysdeps/libm-i387/s_llrintf.S | 34 +++ sysdeps/libm-i387/s_llrintl.S | 34 +++ sysdeps/libm-i387/s_lrint.S | 2 +- sysdeps/libm-i387/s_lrintf.S | 33 +++ sysdeps/libm-i387/s_lrintl.S | 33 +++ sysdeps/libm-i387/s_scalbln.c | 2 + sysdeps/libm-i387/s_scalblnf.c | 2 + sysdeps/libm-i387/s_scalblnl.c | 2 + sysdeps/libm-i387/s_scalbn.S | 2 + sysdeps/libm-i387/s_scalbnf.S | 2 + sysdeps/libm-i387/s_scalbnl.S | 2 + sysdeps/libm-ieee754/s_clog10.c | 65 ++++++ sysdeps/libm-ieee754/s_clog10f.c | 61 ++++++ sysdeps/libm-ieee754/s_clog10l.c | 61 ++++++ sysdeps/libm-ieee754/s_fma.c | 28 +++ sysdeps/libm-ieee754/s_fmaf.c | 28 +++ sysdeps/libm-ieee754/s_fmal.c | 28 +++ sysdeps/libm-ieee754/s_llrint.c | 227 ++++----------------- sysdeps/libm-ieee754/s_llrintf.c | 78 +++++++ sysdeps/libm-ieee754/s_llrintl.c | 86 ++++++++ sysdeps/libm-ieee754/s_llround.c | 151 +++----------- sysdeps/libm-ieee754/s_llroundf.c | 63 ++++++ sysdeps/libm-ieee754/s_llroundl.c | 78 +++++++ sysdeps/libm-ieee754/s_lrint.c | 225 ++++---------------- sysdeps/libm-ieee754/s_lrintf.c | 78 +++++++ sysdeps/libm-ieee754/s_lrintl.c | 86 ++++++++ sysdeps/libm-ieee754/s_lround.c | 143 ++----------- sysdeps/libm-ieee754/s_lroundf.c | 63 ++++++ sysdeps/libm-ieee754/s_lroundl.c | 78 +++++++ sysdeps/libm-ieee754/s_nextafterl.c | 2 + sysdeps/libm-ieee754/s_nextafterx.c | 98 +++++++++ sysdeps/libm-ieee754/s_nextafterxf.c | 78 +++++++ sysdeps/libm-ieee754/s_nextafterxl.c | 1 + sysdeps/libm-ieee754/s_scalbln.c | 70 +++++++ sysdeps/libm-ieee754/s_scalblnf.c | 63 ++++++ sysdeps/libm-ieee754/s_scalblnl.c | 71 +++++++ sysdeps/libm-ieee754/s_scalbn.c | 4 +- sysdeps/libm-ieee754/s_scalbnf.c | 4 +- sysdeps/libm-ieee754/s_scalbnl.c | 4 +- sysdeps/m68k/dl-machine.h | 13 +- sysdeps/m68k/m68020/bits/string.h | 26 +++ sysdeps/mach/hurd/bits/fcntl.h | 76 ++++--- sysdeps/mach/hurd/bits/stat.h | 64 +++++- sysdeps/mach/hurd/sys/param.h | 4 +- sysdeps/posix/open64.c | 43 ++++ sysdeps/posix/tempname.c | 8 +- sysdeps/powerpc/dl-machine.h | 8 + sysdeps/sparc/sparc32/dl-machine.h | 12 +- sysdeps/sparc/sparc32/setjmp.S | 6 +- sysdeps/sparc/sparc64/dl-machine.h | 8 + sysdeps/sparc/sparc64/sub_n.S | 4 +- sysdeps/stub/fstatfs.c | 4 +- sysdeps/stub/fstatfs64.c | 31 +++ sysdeps/stub/fxstat.c | 2 +- sysdeps/stub/fxstat64.c | 47 +++++ sysdeps/stub/getenv.c | 32 --- sysdeps/stub/getrlimit64.c | 31 +++ sysdeps/stub/lseek64.c | 49 +++++ sysdeps/stub/lxstat.c | 39 ---- sysdeps/stub/lxstat64.c | 37 ++++ sysdeps/stub/morecore.c | 37 ---- sysdeps/stub/open64.c | 52 +++++ sysdeps/stub/pread64.c | 43 ++++ sysdeps/stub/putenv.c | 33 --- sysdeps/stub/pwrite64.c | 43 ++++ sysdeps/stub/readdir64.c | 30 +++ sysdeps/stub/readdir64_r.c | 32 +++ sysdeps/stub/sbrk.c | 33 --- sysdeps/stub/setenv.c | 51 ----- sysdeps/stub/setrlimit64.c | 34 +++ sysdeps/stub/statfs64.c | 31 +++ sysdeps/stub/sysd-stdio.c | 116 ----------- sysdeps/stub/sysdep.h | 3 - sysdeps/stub/tempname.c | 7 +- sysdeps/stub/xstat64.c | 36 ++++ sysdeps/unix/bsd/bits/fcntl.h | 65 ++++-- sysdeps/unix/bsd/bits/stat.h | 2 +- sysdeps/unix/bsd/bsd4.4/wait3.c | 2 +- sysdeps/unix/bsd/osf/alpha/bits/stat.h | 2 +- sysdeps/unix/bsd/sun/sunos4/bits/resource.h | 42 +++- sysdeps/unix/sysv/i386/i686/time.S | 27 +++ sysdeps/unix/sysv/i386/time.S | 6 +- sysdeps/unix/sysv/linux/_G_config.h | 15 +- sysdeps/unix/sysv/linux/alpha/bits/dirent.h | 50 +++++ sysdeps/unix/sysv/linux/alpha/bits/fcntl.h | 79 ++++--- sysdeps/unix/sysv/linux/alpha/bits/stat.h | 2 +- sysdeps/unix/sysv/linux/alpha/bits/types.h | 21 +- sysdeps/unix/sysv/linux/bits/dirent.h | 25 ++- sysdeps/unix/sysv/linux/bits/fcntl.h | 84 +++++--- sysdeps/unix/sysv/linux/bits/resource.h | 115 ++++++----- sysdeps/unix/sysv/linux/bits/stat.h | 45 +++- sysdeps/unix/sysv/linux/bits/statfs.h | 36 +++- sysdeps/unix/sysv/linux/bits/types.h | 23 +++ sysdeps/unix/sysv/linux/getsysstats.c | 6 +- sysdeps/unix/sysv/linux/if_index.c | 1 + sysdeps/unix/sysv/linux/llseek.c | 6 +- sysdeps/unix/sysv/linux/lseek64.c | 1 + sysdeps/unix/sysv/linux/mips/bits/fcntl.h | 94 ++++++--- sysdeps/unix/sysv/linux/mips/bits/stat.h | 51 ++++- sysdeps/unix/sysv/linux/mips/bits/statfs.h | 40 +++- sysdeps/unix/sysv/linux/poll.c | 5 +- sysdeps/unix/sysv/linux/readv.c | 4 +- sysdeps/unix/sysv/linux/sparc/bits/fcntl.h | 80 +++++--- sysdeps/unix/sysv/linux/sparc/bits/ioctls.h | 8 +- sysdeps/unix/sysv/linux/sparc/sparc64/bits/types.h | 23 ++- .../unix/sysv/linux/sparc/sparc64/kernel_stat.h | 6 +- sysdeps/unix/sysv/linux/sparc/sparc64/setjmp.S | 13 +- sysdeps/unix/sysv/linux/sys/mman.h | 10 + sysdeps/unix/sysv/linux/sys/param.h | 6 +- sysdeps/unix/sysv/linux/writev.c | 4 +- sysdeps/unix/sysv/sysv4/i386/bits/stat.h | 4 +- sysdeps/unix/sysv/sysv4/solaris2/bits/stat.h | 2 +- sysdeps/wordsize-32/inttypes.h | 29 +++ sysdeps/wordsize-64/inttypes.h | 27 +++ 134 files changed, 3427 insertions(+), 1303 deletions(-) create mode 100644 sysdeps/i386/sys/ucontext.h create mode 100644 sysdeps/libm-i387/s_fma.S create mode 100644 sysdeps/libm-i387/s_fmaf.S create mode 100644 sysdeps/libm-i387/s_fmal.S create mode 100644 sysdeps/libm-i387/s_llrintf.S create mode 100644 sysdeps/libm-i387/s_llrintl.S create mode 100644 sysdeps/libm-i387/s_lrintf.S create mode 100644 sysdeps/libm-i387/s_lrintl.S create mode 100644 sysdeps/libm-i387/s_scalbln.c create mode 100644 sysdeps/libm-i387/s_scalblnf.c create mode 100644 sysdeps/libm-i387/s_scalblnl.c create mode 100644 sysdeps/libm-ieee754/s_clog10.c create mode 100644 sysdeps/libm-ieee754/s_clog10f.c create mode 100644 sysdeps/libm-ieee754/s_clog10l.c create mode 100644 sysdeps/libm-ieee754/s_fma.c create mode 100644 sysdeps/libm-ieee754/s_fmaf.c create mode 100644 sysdeps/libm-ieee754/s_fmal.c create mode 100644 sysdeps/libm-ieee754/s_llrintf.c create mode 100644 sysdeps/libm-ieee754/s_llrintl.c create mode 100644 sysdeps/libm-ieee754/s_llroundf.c create mode 100644 sysdeps/libm-ieee754/s_llroundl.c create mode 100644 sysdeps/libm-ieee754/s_lrintf.c create mode 100644 sysdeps/libm-ieee754/s_lrintl.c create mode 100644 sysdeps/libm-ieee754/s_lroundf.c create mode 100644 sysdeps/libm-ieee754/s_lroundl.c create mode 100644 sysdeps/libm-ieee754/s_nextafterx.c create mode 100644 sysdeps/libm-ieee754/s_nextafterxf.c create mode 100644 sysdeps/libm-ieee754/s_nextafterxl.c create mode 100644 sysdeps/libm-ieee754/s_scalbln.c create mode 100644 sysdeps/libm-ieee754/s_scalblnf.c create mode 100644 sysdeps/libm-ieee754/s_scalblnl.c create mode 100644 sysdeps/m68k/m68020/bits/string.h create mode 100644 sysdeps/posix/open64.c create mode 100644 sysdeps/stub/fstatfs64.c create mode 100644 sysdeps/stub/fxstat64.c delete mode 100644 sysdeps/stub/getenv.c create mode 100644 sysdeps/stub/getrlimit64.c create mode 100644 sysdeps/stub/lseek64.c delete mode 100644 sysdeps/stub/lxstat.c create mode 100644 sysdeps/stub/lxstat64.c delete mode 100644 sysdeps/stub/morecore.c create mode 100644 sysdeps/stub/open64.c create mode 100644 sysdeps/stub/pread64.c delete mode 100644 sysdeps/stub/putenv.c create mode 100644 sysdeps/stub/pwrite64.c create mode 100644 sysdeps/stub/readdir64.c create mode 100644 sysdeps/stub/readdir64_r.c delete mode 100644 sysdeps/stub/sbrk.c delete mode 100644 sysdeps/stub/setenv.c create mode 100644 sysdeps/stub/setrlimit64.c create mode 100644 sysdeps/stub/statfs64.c delete mode 100644 sysdeps/stub/sysd-stdio.c delete mode 100644 sysdeps/stub/sysdep.h create mode 100644 sysdeps/stub/xstat64.c create mode 100644 sysdeps/unix/sysv/i386/i686/time.S create mode 100644 sysdeps/unix/sysv/linux/alpha/bits/dirent.h create mode 100644 sysdeps/unix/sysv/linux/lseek64.c (limited to 'sysdeps') diff --git a/sysdeps/alpha/dl-machine.h b/sysdeps/alpha/dl-machine.h index d3eb242c04..3f65ae99a3 100644 --- a/sysdeps/alpha/dl-machine.h +++ b/sysdeps/alpha/dl-machine.h @@ -353,6 +353,14 @@ elf_machine_fixup_plt(struct link_map *l, const Elf64_Rela *reloc, hasn't made it into Icache yet, so there's nothing to clean up. */ } +/* Return the final value of a plt relocation. */ +static inline Elf64_Addr +elf_machine_plt_value (struct link_map *map, const Elf64_Rela *reloc, + Elf64_Addr value) +{ + return value + reloc->r_addend; +} + #endif /* !dl_machine_h */ #ifdef RESOLVE diff --git a/sysdeps/alpha/setjmp.S b/sysdeps/alpha/setjmp.S index 48fe33b3ec..ae3ceb517d 100644 --- a/sysdeps/alpha/setjmp.S +++ b/sysdeps/alpha/setjmp.S @@ -70,11 +70,11 @@ END(__sigsetjmp) /* Put these traditional entry points in the same file so that we can elide much of the nonsense in trying to jmp to the real function. */ -ENTRY(_setjmp) +ENTRY(__setjmp) ldgp gp, 0(pv) mov 0, a1 br $sigsetjmp_local -END(_setjmp) +END(__setjmp) ENTRY(setjmp) ldgp gp, 0(pv) @@ -82,5 +82,5 @@ ENTRY(setjmp) br $sigsetjmp_local END(setjmp) -weak_extern(_setjmp) +weak_alias(__setjmp, _setjmp) weak_extern(setjmp) diff --git a/sysdeps/generic/_G_config.h b/sysdeps/generic/_G_config.h index 84a552b41e..a9a182169b 100644 --- a/sysdeps/generic/_G_config.h +++ b/sysdeps/generic/_G_config.h @@ -15,16 +15,19 @@ hold any value corresponding to members of the extended character set, as well as at least one value that does not correspond to any member of the extended character set. */ -#define _WINT_T +# define _WINT_T typedef unsigned int wint_t; #endif #define _G_size_t size_t #define _G_fpos_t __off_t +#define _G_fpos64_t __off_t #define _G_ssize_t __ssize_t #define _G_off_t __off_t +#define _G_off64_t __off_t #define _G_pid_t __pid_t #define _G_uid_t __uid_t #define _G_wint_t wint_t +#define _G_stat64 stat typedef int _G_int16_t __attribute__ ((__mode__ (__HI__))); typedef int _G_int32_t __attribute__ ((__mode__ (__SI__))); @@ -57,9 +60,9 @@ typedef unsigned int _G_uint32_t __attribute__ ((__mode__ (__SI__))); #if defined (__cplusplus) || defined (__STDC__) -#define _G_ARGS(ARGLIST) ARGLIST +# define _G_ARGS(ARGLIST) ARGLIST #else -#define _G_ARGS(ARGLIST) () +# define _G_ARGS(ARGLIST) () #endif #endif /* _G_config.h */ diff --git a/sysdeps/generic/bits/confname.h b/sysdeps/generic/bits/confname.h index 5b5cf742b6..6926cad0ad 100644 --- a/sysdeps/generic/bits/confname.h +++ b/sysdeps/generic/bits/confname.h @@ -1,5 +1,5 @@ /* `sysconf', `pathconf', and `confstr' NAME values. Generic version. - Copyright (C) 1993, 1995, 1996 Free Software Foundation, Inc. + Copyright (C) 1993, 1995, 1996, 1997 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 @@ -97,7 +97,7 @@ enum _SC_SHARED_MEMORY_OBJECTS, #define _SC_SHARED_MEMORY_OBJECTS _SC_SHARED_MEMORY_OBJECTS _SC_AIO_LISTIO_MAX, -#define _SC_AIO_LIST_MAX _SC_AIO_LIST_MAX +#define _SC_AIO_LISTIO_MAX _SC_AIO_LISTIO_MAX _SC_AIO_MAX, #define _SC_AIO_MAX _SC_AIO_MAX _SC_AIO_PRIO_DELTA_MAX, @@ -316,10 +316,32 @@ enum #define _SC_NL_TEXTMAX _SC_NL_TEXTMAX }; -#ifdef __USE_POSIX2 +#if (defined __USE_POSIX2 || defined __USE_FILE_OFFSET64 \ + || defined __USE_LARGEFILE64 || defined __USE_LARGEFILE) /* Values for the NAME argument to `confstr'. */ enum { - _CS_PATH /* The default search path. */ + _CS_PATH, /* The default search path. */ +#define _CS_PATH _CS_PATH + +#if (defined __USE_FILE_OFFSET64 || defined __USE_LARGEFILE64 \ + || defined __USE_LARGEFILE) + _CS_LFS_CFLAGS = 1000, +# define _CS_LFS_CFLAGS _CS_LFS_CFLAGS + _CS_LFS_LDFLAGS, +# define _CS_LFS_LDFLAGS _CS_LFS_LDFLAGS + _CS_LFS_LIBS, +# define _CS_LFS_LIBS _CS_LFS_LIBS + _CS_LFS_LINTFLAGS, +# define _CS_LFS_LINTFLAGS _CS_LFS_LINTFLAGS + _CS_LFS64_CFLAGS, +# define _CS_LFS64_CFLAGS _CS_LFS64_CFLAGS + _CS_LFS64_LDFLAGS, +# define _CS_LFS64_LDFLAGS _CS_LFS64_LDFLAGS + _CS_LFS64_LIBS, +# define _CS_LFS64_LIBS _CS_LFS64_LIBS + _CS_LFS64_LINTFLAGS +# define _CS_LFS64_LINTFLAGS _CS_LFS64_LINTFLAGS +#endif }; #endif diff --git a/sysdeps/generic/bits/resource.h b/sysdeps/generic/bits/resource.h index 2c35c12a47..46cf9a7af5 100644 --- a/sysdeps/generic/bits/resource.h +++ b/sysdeps/generic/bits/resource.h @@ -1,5 +1,5 @@ /* Bit values & structures for resource limits. 4.4 BSD/generic GNU version. - Copyright (C) 1994, 1996 Free Software Foundation, Inc. + Copyright (C) 1994, 1996, 1997 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 @@ -65,14 +65,34 @@ enum __rlimit_resource #define RLIM_INFINITY RLIM_INFINITY }; +/* Type for resource quantity measurement. */ +#ifndef __USE_FILE_OFFSET64 +typedef __rlim_t rlim_t; +#else +typedef __rlim64_t rlim_t; +#endif +#ifdef __USE_LARGEFILE64 +typedef __rlim64_t rlim64_t; +#endif + struct rlimit { /* The current (soft) limit. */ - int rlim_cur; + rlim_t rlim_cur; /* The hard limit. */ - int rlim_max; + rlim_t rlim_max; }; +#ifdef __USE_LARGEFILE64 +struct rlimit64 + { + /* The current (soft) limit. */ + rlim64_t rlim_cur; + /* The hard limit. */ + rlim64_t rlim_max; + }; +#endif + /* Whose usage statistics do you want? */ enum __rusage_who /* The macro definitions are necessary because some programs want diff --git a/sysdeps/generic/bits/statfs.h b/sysdeps/generic/bits/statfs.h index 10bc0728b2..9fa3388801 100644 --- a/sysdeps/generic/bits/statfs.h +++ b/sysdeps/generic/bits/statfs.h @@ -38,11 +38,11 @@ struct statfs { unsigned int f_type; unsigned int f_bsize; - unsigned int f_blocks; - unsigned int f_bfree; - unsigned int f_bavail; - unsigned int f_files; - unsigned int f_ffree; + __fsblkcnt_t f_blocks; + __fsblkcnt_t f_bfree; + __fsblkcnt_t f_bavail; + __fsblkcnt_t f_files; + __fsblkcnt_t f_ffree; __fsid_t f_fsid; unsigned int f_namelen; unsigned int f_spare[6]; diff --git a/sysdeps/generic/bits/types.h b/sysdeps/generic/bits/types.h index c264adc917..fdb36f0b54 100644 --- a/sysdeps/generic/bits/types.h +++ b/sysdeps/generic/bits/types.h @@ -65,6 +65,8 @@ typedef int __pid_t; /* Type of process identifications. */ typedef int __ssize_t; /* Type of a byte count, or error. */ typedef __u_quad_t __fsid_t; /* Type of file system IDs. */ typedef long int __clock_t; /* Type of CPU usage counts. */ +typedef long int __rlim_t; /* Type for resource measurement. */ +typedef __quad_t __rlim64_t; /* Type for resource measurement (LFS). */ /* Everythin' else. */ typedef long int __daddr_t; /* The type of a disk address. */ @@ -91,4 +93,19 @@ typedef struct typedef unsigned long int __fd_mask; + +/* Types from the Large File Support interface. */ + +/* Type to count number os disk blocks. */ +typedef long int __blkcnt_t; +typedef __quad_t __blkcnt64_t; + +/* Type to count file system blocks. */ +typedef unsigned int __fsblkcnt_t; +typedef __u_quad_t __fsblkcnt64_t; + +/* Type to count file system inodes. */ +typedef unsigned long int __fsfilcnt_t; +typedef __u_quad_t __fsfilcnt64_t; + #endif /* bits/types.h */ diff --git a/sysdeps/generic/memcmp.c b/sysdeps/generic/memcmp.c index 8fa371192c..844cdc6afb 100644 --- a/sysdeps/generic/memcmp.c +++ b/sysdeps/generic/memcmp.c @@ -132,6 +132,7 @@ memcmp_common_alignment (srcp1, srcp2, len) switch (len % 4) { + default: /* Avoid warning about uninitialized local variables. */ case 2: a0 = ((op_t *) srcp1)[0]; b0 = ((op_t *) srcp2)[0]; @@ -233,6 +234,7 @@ memcmp_not_common_alignment (srcp1, srcp2, len) switch (len % 4) { + default: /* Avoid warning about uninitialized local variables. */ case 2: a1 = ((op_t *) srcp1)[0]; a2 = ((op_t *) srcp1)[1]; diff --git a/sysdeps/generic/memset.c b/sysdeps/generic/memset.c index 1369698652..239dc21e3c 100644 --- a/sysdeps/generic/memset.c +++ b/sysdeps/generic/memset.c @@ -38,7 +38,8 @@ memset (dstpp, c, len) cccc |= cccc << 8; cccc |= cccc << 16; if (OPSIZ > 4) - cccc |= cccc << 32; + /* Do the shift in two steps to avoid warning if long has 32 bits. */ + cccc |= (cccc << 16) << 16; /* There are at least some bytes to set. No need to test for LEN == 0 in this alignment loop. */ diff --git a/sysdeps/generic/strchr.c b/sysdeps/generic/strchr.c index 3663382556..7c1eb9578a 100644 --- a/sysdeps/generic/strchr.c +++ b/sysdeps/generic/strchr.c @@ -63,7 +63,7 @@ strchr (s, c) switch (sizeof (longword)) { case 4: magic_bits = 0x7efefeffL; break; - case 8: magic_bits = (0x7efefefeL << 32) | 0xfefefeffL; break; + case 8: magic_bits = ((0x7efefefeL << 16) << 16) | 0xfefefeffL; break; default: abort (); } @@ -72,7 +72,8 @@ strchr (s, c) charmask = c | (c << 8); charmask |= charmask << 16; if (sizeof (longword) > 4) - charmask |= charmask << 32; + /* Do the shift in two steps to avoid a warning if long has 32 bits. */ + charmask |= (charmask << 16) << 16; if (sizeof (longword) > 8) abort (); diff --git a/sysdeps/generic/strlen.c b/sysdeps/generic/strlen.c index 1fb8b1c97c..b031df8103 100644 --- a/sysdeps/generic/strlen.c +++ b/sysdeps/generic/strlen.c @@ -60,9 +60,10 @@ strlen (str) if (sizeof (longword) > 4) { /* 64-bit version of the magic. */ - magic_bits = (0x7efefefeL << 32) | 0xfefefeffL; - himagic = (himagic << 32) | himagic; - lomagic = (lomagic << 32) | lomagic; + /* Do the shift in two steps to avoid a warning if long has 32 bits. */ + magic_bits = ((0x7efefefeL << 16) << 16) | 0xfefefeffL; + himagic = ((himagic << 16) << 16) | himagic; + lomagic = ((lomagic << 16) << 16) | lomagic; } if (sizeof (longword) > 8) abort (); diff --git a/sysdeps/generic/sys/mman.h b/sysdeps/generic/sys/mman.h index 6484e028c9..6e41a923d5 100644 --- a/sysdeps/generic/sys/mman.h +++ b/sysdeps/generic/sys/mman.h @@ -91,8 +91,18 @@ __BEGIN_DECLS extern __caddr_t __mmap __P ((__caddr_t __addr, size_t __len, int __prot, int __flags, int __fd, __off_t __offset)); +#ifndef __USE_FILE_OFFSET64 extern __caddr_t mmap __P ((__caddr_t __addr, size_t __len, int __prot, int __flags, int __fd, __off_t __offset)); +#else +extern __caddr_t mmap __P ((__caddr_t __addr, size_t __len, int __prot, + int __flags, int __fd, __off_t __offset)) + __asm__ ("mmap64"); +#endif +#ifdef __USE_LARGEFILE64 +extern __caddr_t mmap64 __P ((__caddr_t __addr, size_t __len, int __prot, + int __flags, int __fd, __off64_t __offset)); +#endif /* Deallocate any mapping for the region starting at ADDR and extending LEN bytes. Returns 0 if successful, -1 for errors (and sets errno). */ diff --git a/sysdeps/i386/dl-machine.h b/sysdeps/i386/dl-machine.h index 0ac67c05d9..c347a515a4 100644 --- a/sysdeps/i386/dl-machine.h +++ b/sysdeps/i386/dl-machine.h @@ -290,6 +290,14 @@ elf_machine_fixup_plt (struct link_map *map, const Elf32_Rel *reloc, *reloc_addr = value; } +/* Return the final value of a plt relocation. */ +static inline Elf32_Addr +elf_machine_plt_value (struct link_map *map, const Elf32_Rel *reloc, + Elf32_Addr value) +{ + return value; +} + #endif /* !dl_machine_h */ #ifdef RESOLVE diff --git a/sysdeps/i386/elf/start.S b/sysdeps/i386/elf/start.S index 706e5c963f..7416c0ace9 100644 --- a/sysdeps/i386/elf/start.S +++ b/sysdeps/i386/elf/start.S @@ -94,6 +94,13 @@ _start: call exit hlt /* Crash if somehow `exit' does return. */ +/* To fulfill the System V/i386 ABI we need this symbol. Yuck, it's so + meaningless since we don't support machines < 80386. */ + .section .rodata + .globl _fp_hw + .long 3 + .size _fp_hw, 4 + /* Define a symbol for the first piece of initialized data. */ .data .globl __data_start diff --git a/sysdeps/i386/setjmp.S b/sysdeps/i386/setjmp.S index 1ba3fc5a75..598eef78e7 100644 --- a/sysdeps/i386/setjmp.S +++ b/sysdeps/i386/setjmp.S @@ -20,6 +20,7 @@ #include #define _ASM #include +#include /* Binary compatibility entry point. */ ENTRY (__setjmp) @@ -47,9 +48,10 @@ ENTRY (__sigsetjmp) we can't save and restore our caller's value. Instead, we do an indirect jump through the GOT, using for the temporary register %ecx, which is call-clobbered. */ - call here -here: popl %ecx - addl $_GLOBAL_OFFSET_TABLE_+[.-here], %ecx + call L(here) +L(here): + popl %ecx + addl $_GLOBAL_OFFSET_TABLE_+[.-L(here)], %ecx movl C_SYMBOL_NAME(__sigjmp_save@GOT)(%ecx), %ecx jmp *%ecx #else diff --git a/sysdeps/i386/sys/ucontext.h b/sysdeps/i386/sys/ucontext.h new file mode 100644 index 0000000000..17b6b6c76b --- /dev/null +++ b/sysdeps/i386/sys/ucontext.h @@ -0,0 +1,120 @@ +/* Copyright (C) 1997 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. */ + +/* System V/i386 ABI compliant context switching support. */ + +#ifndef _SYS_UCONTEXT_H +#define _SYS_UCONTEXT_H 1 + +#include +#include + +/* Type for general register. */ +typedef int greg_t; + +/* Number of general registers. */ +#define NGREG 19 + +/* Container for all general registers. */ +typedef greg_t gregset_t[NGREG]; + +/* Number of each register is the `gregset_t' array. */ +enum +{ + GS = 0, +#define GS GS + FS, +#define FS FS + ES, +#define ES ES + DS, +#define DS DS + EDI +#define EDI EDI + ESI +#define ESI ESI + EBP, +#define EBP EBP + ESP, +#define ESP ESP + EBX, +#define EBX EBX + EDX, +#define EDX EDX + ECX, +#define ECX ECX + EAX, +#define EAX EAX + TRAPNO, +#define TRAPNO TRAPNO + ERR, +#define ERR ERR + EIP, +#define EIP EIP + CS, +#define CS CS + EFL, +#define EFL EFL + UESP, +#define UESP UESP + SS +#define SS SS +}; + +/* Structure to describe FPU registers. */ +typedef struct fpregset + { + union + { + struct fpchip_state + { + int state[27]; + int status; + } fpchip_state; + + struct fp_emul_space + { + char fp_emul[246]; + char fp_epad[2]; + } fp_emul_space; + + int f_fpregs[62]; + } fp_reg_set; + + long int f_wregs[33]; + } fpregset_t; + +/* Context to describe whole processor state. */ +typedef struct + { + gregset_t gregs; + fpregset_t fpregs; + } mcontext_t; + +/* Userlevel context. */ +typedef struct ucontext + { + unsigned long int uc_flags; + struct ucontext *uc_links; + __sigset_t uc_sigmask; + stack_t uc_stack; + mcontext_t uc_mcontext; + long int uc_filler[5]; + } ucontext_t; + +#endif /* sys/ucontext.h */ diff --git a/sysdeps/libm-i387/s_fma.S b/sysdeps/libm-i387/s_fma.S new file mode 100644 index 0000000000..deeac574a7 --- /dev/null +++ b/sysdeps/libm-i387/s_fma.S @@ -0,0 +1,32 @@ +/* Compute (X * Y) + Z as ternary operation. + Copyright (C) 1997 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper , 1997. + + 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. */ + +#include + + .text +ENTRY(__fma) + fldl 4(%esp) // x + fldl 12(%esp) // x : y + fmulp // x * y + fldl 20(%esp) // z : x * y + fmulp // (x * y) + z + ret +END(__fma) +weak_alias (__fma, fma) diff --git a/sysdeps/libm-i387/s_fmaf.S b/sysdeps/libm-i387/s_fmaf.S new file mode 100644 index 0000000000..726c49d12c --- /dev/null +++ b/sysdeps/libm-i387/s_fmaf.S @@ -0,0 +1,32 @@ +/* Compute (X * Y) + Z as ternary operation. + Copyright (C) 1997 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper , 1997. + + 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. */ + +#include + + .text +ENTRY(__fmaf) + flds 4(%esp) // x + flds 8(%esp) // x : y + fmulp // x * y + flds 12(%esp) // z : x * y + fmulp // (x * y) + z + ret +END(__fmaf) +weak_alias (__fmaf, fmaf) diff --git a/sysdeps/libm-i387/s_fmal.S b/sysdeps/libm-i387/s_fmal.S new file mode 100644 index 0000000000..be8b557902 --- /dev/null +++ b/sysdeps/libm-i387/s_fmal.S @@ -0,0 +1,32 @@ +/* Compute (X * Y) + Z as ternary operation. + Copyright (C) 1997 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper , 1997. + + 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. */ + +#include + + .text +ENTRY(__fmal) + fldt 4(%esp) // x + fldt 16(%esp) // x : y + fmulp // x * y + fldt 28(%esp) // z : x * y + fmulp // (x * y) + z + ret +END(__fmal) +weak_alias (__fmal, fmal) diff --git a/sysdeps/libm-i387/s_llrint.S b/sysdeps/libm-i387/s_llrint.S index 49bfebc993..6109ec45c3 100644 --- a/sysdeps/libm-i387/s_llrint.S +++ b/sysdeps/libm-i387/s_llrint.S @@ -23,7 +23,7 @@ .text ENTRY(__llrint) - fldt 4(%esp) + fldl 4(%esp) subl $8, %esp fistpll (%esp) fwait diff --git a/sysdeps/libm-i387/s_llrintf.S b/sysdeps/libm-i387/s_llrintf.S new file mode 100644 index 0000000000..c1e1c225c0 --- /dev/null +++ b/sysdeps/libm-i387/s_llrintf.S @@ -0,0 +1,34 @@ +/* Round argument to nearest integral value according to current rounding + direction. + Copyright (C) 1997 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper , 1997. + + 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. */ + +#include + + .text +ENTRY(__llrintf) + flds 4(%esp) + subl $8, %esp + fistpll (%esp) + fwait + popl %eax + popl %edx + ret +END(__llrintf) +weak_alias (__llrintf, llrintf) diff --git a/sysdeps/libm-i387/s_llrintl.S b/sysdeps/libm-i387/s_llrintl.S new file mode 100644 index 0000000000..d894897d5e --- /dev/null +++ b/sysdeps/libm-i387/s_llrintl.S @@ -0,0 +1,34 @@ +/* Round argument to nearest integral value according to current rounding + direction. + Copyright (C) 1997 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper , 1997. + + 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. */ + +#include + + .text +ENTRY(__llrintl) + fldt 4(%esp) + subl $8, %esp + fistpll (%esp) + fwait + popl %eax + popl %edx + ret +END(__llrintl) +weak_alias (__llrintl, llrintl) diff --git a/sysdeps/libm-i387/s_lrint.S b/sysdeps/libm-i387/s_lrint.S index 3be4ca7903..40956ab0d0 100644 --- a/sysdeps/libm-i387/s_lrint.S +++ b/sysdeps/libm-i387/s_lrint.S @@ -23,7 +23,7 @@ .text ENTRY(__lrint) - fldt 4(%esp) + fldl 4(%esp) subl $4, %esp fistpl (%esp) fwait diff --git a/sysdeps/libm-i387/s_lrintf.S b/sysdeps/libm-i387/s_lrintf.S new file mode 100644 index 0000000000..2f49bdbabe --- /dev/null +++ b/sysdeps/libm-i387/s_lrintf.S @@ -0,0 +1,33 @@ +/* Round argument to nearest integral value according to current rounding + direction. + Copyright (C) 1997 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper , 1997. + + 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. */ + +#include + + .text +ENTRY(__lrintf) + flds 4(%esp) + subl $4, %esp + fistpl (%esp) + fwait + popl %eax + ret +END(__lrintf) +weak_alias (__lrintf, lrintf) diff --git a/sysdeps/libm-i387/s_lrintl.S b/sysdeps/libm-i387/s_lrintl.S new file mode 100644 index 0000000000..3a06c91b29 --- /dev/null +++ b/sysdeps/libm-i387/s_lrintl.S @@ -0,0 +1,33 @@ +/* Round argument to nearest integral value according to current rounding + direction. + Copyright (C) 1997 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper , 1997. + + 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. */ + +#include + + .text +ENTRY(__lrintl) + fldt 4(%esp) + subl $4, %esp + fistpl (%esp) + fwait + popl %eax + ret +END(__lrintl) +weak_alias (__lrintl, lrintl) diff --git a/sysdeps/libm-i387/s_scalbln.c b/sysdeps/libm-i387/s_scalbln.c new file mode 100644 index 0000000000..1009713fbc --- /dev/null +++ b/sysdeps/libm-i387/s_scalbln.c @@ -0,0 +1,2 @@ +/* Nothing to do. This function is the same as scalbn. So we define an + alias. */ diff --git a/sysdeps/libm-i387/s_scalblnf.c b/sysdeps/libm-i387/s_scalblnf.c new file mode 100644 index 0000000000..5e558c3540 --- /dev/null +++ b/sysdeps/libm-i387/s_scalblnf.c @@ -0,0 +1,2 @@ +/* Nothing to do. This function is the same as scalbnf. So we define an + alias. */ diff --git a/sysdeps/libm-i387/s_scalblnl.c b/sysdeps/libm-i387/s_scalblnl.c new file mode 100644 index 0000000000..cda2ec11c8 --- /dev/null +++ b/sysdeps/libm-i387/s_scalblnl.c @@ -0,0 +1,2 @@ +/* Nothing to do. This function is the same as scalbnl. So we define an + alias. */ diff --git a/sysdeps/libm-i387/s_scalbn.S b/sysdeps/libm-i387/s_scalbn.S index 709b7a47f5..ea9e25f094 100644 --- a/sysdeps/libm-i387/s_scalbn.S +++ b/sysdeps/libm-i387/s_scalbn.S @@ -15,3 +15,5 @@ ENTRY(__scalbn) ret END (__scalbn) weak_alias (__scalbn, scalbn) +strong_alias (__scalbn, __scalbln) +weak_alias (__scalbn, scalbln) diff --git a/sysdeps/libm-i387/s_scalbnf.S b/sysdeps/libm-i387/s_scalbnf.S index ce92113844..dc8cfb4296 100644 --- a/sysdeps/libm-i387/s_scalbnf.S +++ b/sysdeps/libm-i387/s_scalbnf.S @@ -15,3 +15,5 @@ ENTRY(__scalbnf) ret END (__scalbnf) weak_alias (__scalbnf, scalbnf) +strong_alias (__scalbnf, __scalblnf) +weak_alias (__scalbnf, scalblnf) diff --git a/sysdeps/libm-i387/s_scalbnl.S b/sysdeps/libm-i387/s_scalbnl.S index 09e06457b8..295494b3d2 100644 --- a/sysdeps/libm-i387/s_scalbnl.S +++ b/sysdeps/libm-i387/s_scalbnl.S @@ -16,3 +16,5 @@ ENTRY(__scalbnl) ret END (__scalbnl) weak_alias (__scalbnl, scalbnl) +strong_alias (__scalbnl, __scalblnl) +weak_alias (__scalbnl, scalblnl) diff --git a/sysdeps/libm-ieee754/s_clog10.c b/sysdeps/libm-ieee754/s_clog10.c new file mode 100644 index 0000000000..5a9de75733 --- /dev/null +++ b/sysdeps/libm-ieee754/s_clog10.c @@ -0,0 +1,65 @@ +/* Compute complex base 10 logarithm. + Copyright (C) 1997 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper , 1997. + + 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. */ + +#include +#include + +#include "math_private.h" + + +__complex__ double +__clog10 (__complex__ double x) +{ + __complex__ double result; + int rcls = fpclassify (__real__ x); + int icls = fpclassify (__imag__ x); + + if (rcls == FP_ZERO && icls == FP_ZERO) + { + /* Real and imaginary part are 0.0. */ + __imag__ result = signbit (__real__ x) ? M_PI : 0.0; + __imag__ result = __copysign (__imag__ result, __imag__ x); + /* Yes, the following line raises an exception. */ + __real__ result = -1.0 / fabs (__real__ x); + } + else if (rcls != FP_NAN && icls != FP_NAN) + { + /* Neither real nor imaginary part is NaN. */ + __real__ result = __ieee754_log10 (__ieee754_hypot (__real__ x, + __imag__ x)); + __imag__ result = __ieee754_atan2 (__imag__ x, __real__ x); + } + else + { + __imag__ result = __nan (""); + if (rcls == FP_INFINITE || icls == FP_INFINITE) + /* Real or imaginary part is infinite. */ + __real__ result = HUGE_VAL; + else + __real__ result = __nan (""); + } + + return result; +} +weak_alias (__clog10, clog10) +#ifdef NO_LONG_DOUBLE +strong_alias (__clog10, __clog10l) +weak_alias (__clog10, clog10l) +#endif diff --git a/sysdeps/libm-ieee754/s_clog10f.c b/sysdeps/libm-ieee754/s_clog10f.c new file mode 100644 index 0000000000..4e2fa83edf --- /dev/null +++ b/sysdeps/libm-ieee754/s_clog10f.c @@ -0,0 +1,61 @@ +/* Compute complex base 10 logarithm. + Copyright (C) 1997 Free Software