about summary refs log tree commit diff
Commit message (Collapse)AuthorAgeFilesLines
* Include SSE state in i386 fenv_t (bug 16064).Joseph Myers2014-05-097-19/+204
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch fixes bug 16064, i386 fenv_t not including SSE state, using the technique suggested there of storing the state in the existing __eip field of fenv_t to avoid needing to increase the size of fenv_t and add new symbol versions. The included testcase, which previously failed for i386 (but passed for x86_64), illustrates how the previous state was buggy. This patch causes the SSE state to be included *to the extent it is on x86_64*. Where some state should logically be included but isn't for x86_64 (see bug 16068), this patch does not cause it to be included for i386 either. The idea is that any patch fixing that bug should fix it for both x86_64 and i386 at once. Tested i386 and x86_64. (I haven't tested the case of a CPU without SSE2 disabling the test.) [BZ #16064] * sysdeps/i386/fpu/fegetenv.c: Include <unistd.h>, <ldsodefs.h> and <dl-procinfo.h>. (__fegetenv): Save SSE state in envp->__eip if supported. * sysdeps/i386/fpu/feholdexcpt.c (feholdexcept): Save SSE state in envp->__eip if supported. * sysdeps/i386/fpu/fesetenv.c: Include <unistd.h>, <ldsodefs.h> and <dl-procinfo.h>. (__fesetenv): Always set __eip, __cs_selector, __opcode, __data_offset and __data_selector in environment to 0. Set SSE state if supported. * sysdeps/x86/fpu/Makefile [$(subdir) = math] (tests): Add test-fenv-sse. [$(subdir) = math] (CFLAGS-test-fenv-sse.c): Add -msse2 -mfpmath=sse. * sysdeps/x86/fpu/test-fenv-sse.c: New file.
* ARM: Allow auto-detection of linker relro featureWill Newton2014-05-093-0/+22
| | | | | | | | | | | | | | Set values for libc_commonpagesize and libc_relro_required for the ARM port to enable relro by default and suppress a warning at configure time. ChangeLog: 2014-05-09 Will Newton <will.newton@linaro.org> * sysdeps/arm/preconfigure.ac: Set libc_commonpagesize and libc_relro_required for ARM. * sysdeps/arm/preconfigure: Regenerate.
* S/390: Port of lock elision to System/zDominik Vogt2014-05-0921-2/+693
| | | | | | | | | | Added support for TX lock elision of pthread mutexes on s390 and s390x. This may improve lock scaling of existing programs on TX capable systems. The lock elision code is only built with --enable-lock-elision=yes and then requires a GCC version supporting the TX builtins. With lock elision default mutexes are elided via __builtin_tbegin, if the cpu supports transactions. By default lock elision is not enabled and the elision code is not built.
* ARM: Add optimized ARMv7 strcmp implementationWill Newton2014-05-093-0/+499
| | | | | | | | | | | | | | | | | | | Add an optimized implementation of strcmp for ARMv7-A cores. This implementation is significantly faster than the current generic C implementation, particularly for strings of 16 bytes and longer. Tested with the glibc string tests for arm-linux-gnueabihf and armeb-linux-gnueabihf. The code was written by ARM, who have agreed to assign the copyright to the FSF for integration into glibc. ChangeLog: 2014-05-09 Will Newton <will.newton@linaro.org> * sysdeps/arm/armv7/strcmp.S: New file. * NEWS: Mention addition of ARMv7 optimized strcmp.
* Some configure-related decrufting.Roland McGrath2014-05-086-20/+12
|
* Fix -Wundef for _UTSNAME_DOMAIN_LENGTH.Roland McGrath2014-05-082-1/+9
|
* Add 16922 to list of bugs fixed.Steve Ellcey2014-05-071-1/+1
|
* 2014-05-07 Steve Ellcey <sellcey@mips.com>Steve Ellcey2014-05-072-7/+14
| | | | | | | [BZ# 16922] * sysdeps/mips/sys/asm.h (INT_SUB): Fix definition. (LONG_SUB): Ditto. (PTR_SUB): Ditto.
* Fix parsing of getai result from nscd for IPv6-only requestAndreas Schwab2014-05-072-4/+14
|
* Fix typo in nscd/selinux.cOndřej Bílka2014-05-073-2/+5
|
* Fix typo in nptl/sockperf.cOndřej Bílka2014-05-073-6/+10
|
* Move ARM internal unwind.h header to the right sysdeps directory.Roland McGrath2014-05-062-0/+5
|
* SPARC: add EFD_SEMAPHORE in <bits/eventfd.h> (BZ #16916)Aurelien Jarno2014-05-073-1/+9
| | | | | EFD_SEMAPHORE has been added in the main <bits/eventfd.h>, but not in the SPARC specific version. Fix that.
* PowerPC: strncpy/stpncpy optimization for PPC64/POWER7Vidya Ranganathan2014-05-0611-1/+610
| | | | | | | | The optimization is achieved by following techniques: > data alignment [gain from aligned memory access on read/write] > POWER7 gains performance with loop unrolling/unwinding [gain by reduction of branch penalty]. > zero padding done by calling optimized memset
* Don't use catomic functions in mcount (BZ #16912)Andreas Schwab2014-05-063-3/+10
| | | | | | mcount cannot use catomic functions since it is called by __libc_start_main before TLS is set up. This reverts the change made by commit 8099361.
* Move rules for Linux-specific pldd program to Linux-specific Makefile.Roland McGrath2014-05-053-6/+13
|
* Fix -Wundef issues in generated errlist.c.Roland McGrath2014-05-053-2/+11
|
* PowerPC: ifunc improvement for internal callsAdhemerval Zanella2014-05-058-26/+64
| | | | | | | This patch changes de default symbol redirection for internal call of memcpy, memset, memchr, and strlen to the IFUNC resolved ones. The performance improvement is noticeable in algorithms that uses these symbols extensible, like the regex functions.
* Revert incorrect removal of the XDR currency from locale/iso-4217.defAdam Conrad2014-05-032-0/+5
| | | | | | | | | | | | In 7447ccd98ee3944a95247ae23284dfac1de6c2aa, the XDR currency was removed from locale/iso-4217.def, despite the fact that it's both still a part of the standard, according to the official table: http://www.currency-iso.org/dam/downloads/table_a1.xml ... and, more importantly, is referenced from localedata/i18n, so any quick-and-dirty locale definition that uses "copy i18n" for LC_MONETARY wouldn't work anymore.
* Update Esperanto translationsAllan McRae2014-05-042-11/+15
|
* Fix -Wundef warning for FEATURE_INDEX_1.Carlos O'Donell2014-05-032-7/+12
| | | | | | | | Define FEATURE_INDEX_1 and FEATURE_INDEX_MAX as macros for use by both assembly and C code. This fixes the -Wundef error for cases where FEATURE_INDEX_1 was not defined but used the correct value of 0 for an undefined macro.
* 2014-05-01 Steve Ellcey <sellcey@mips.com>Steve Ellcey2014-05-0147-0/+96
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * iconvdata/ansi_x3.110.c (ONE_DIRECTION): Define. * iconvdata/armscii-8.c (ONE_DIRECTION): Define. * iconvdata/big5.c (ONE_DIRECTION): Define. * iconvdata/big5hkscs.c (ONE_DIRECTION): Define. * iconvdata/cp1255.c (ONE_DIRECTION): Define. * iconvdata/cp1258.c (ONE_DIRECTION): Define. * iconvdata/cp932.c (ONE_DIRECTION): Define. * iconvdata/euc-cn.c (ONE_DIRECTION): Define. * iconvdata/euc-jisx0213.c (ONE_DIRECTION): Define. * iconvdata/euc-jp-ms.c (ONE_DIRECTION): Define. * iconvdata/euc-jp.c (ONE_DIRECTION): Define. * iconvdata/euc-kr.c (ONE_DIRECTION): Define. * iconvdata/euc-tw.c (ONE_DIRECTION): Define. * iconvdata/gb18030.c (ONE_DIRECTION): Define. * iconvdata/gbbig5.c (ONE_DIRECTION): Define. * iconvdata/gbgbk.c (ONE_DIRECTION): Define. * iconvdata/gbk.c (ONE_DIRECTION): Define. * iconvdata/ibm1364.c (ONE_DIRECTION): Define. * iconvdata/ibm930.c (ONE_DIRECTION): Define. * iconvdata/ibm932.c (ONE_DIRECTION): Define. * iconvdata/ibm933.c (ONE_DIRECTION): Define. * iconvdata/ibm935.c (ONE_DIRECTION): Define. * iconvdata/ibm937.c (ONE_DIRECTION): Define. * iconvdata/ibm939.c (ONE_DIRECTION): Define. * iconvdata/ibm943.c (ONE_DIRECTION): Define. * iconvdata/iso-2022-cn-ext.c (ONE_DIRECTION): Define. * iconvdata/iso-2022-cn.c (ONE_DIRECTION): Define. * iconvdata/iso-2022-jp-3.c (ONE_DIRECTION): Define. * iconvdata/iso-2022-jp.c (ONE_DIRECTION): Define. * iconvdata/iso-2022-kr.c (ONE_DIRECTION): Define. * iconvdata/iso646.c (ONE_DIRECTION): Define. * iconvdata/iso8859-1.c (ONE_DIRECTION): Define. * iconvdata/iso_11548-1.c (ONE_DIRECTION): Define. * iconvdata/iso_6937-2.c (ONE_DIRECTION): Define. * iconvdata/iso_6937.c (ONE_DIRECTION): Define. * iconvdata/johab.c (ONE_DIRECTION): Define. * iconvdata/shift_jisx0213.c (ONE_DIRECTION): Define. * iconvdata/sjis.c (ONE_DIRECTION): Define. * iconvdata/t.61.c (ONE_DIRECTION): Define. * iconvdata/tcvn5712-1.c (ONE_DIRECTION): Define. * iconvdata/tscii.c (ONE_DIRECTION): Define. * iconvdata/uhc.c (ONE_DIRECTION): Define. * iconvdata/unicode.c (ONE_DIRECTION): Define. * iconvdata/utf-16.c (ONE_DIRECTION): Define. * iconvdata/utf-32.c (ONE_DIRECTION): Define. * iconvdata/utf-7.c (ONE_DIRECTION): Define.
* NEWS: Add 16885 to fixed bug list.David S. Miller2014-05-011-1/+1
|
* Fix -Wundef warnings for _IO_JUMPS_OFFSET.Roland McGrath2014-05-012-0/+5
|
* Deconditionalize use of LLL_LOCK_INITIALIZER in bits/libc-lock.h.Roland McGrath2014-05-012-6/+9
|
* Fix implicit declarationAndreas Schwab2014-05-012-0/+5
|
* Fix v9/64-bit strcmp when string ends in multiple zero bytes.David S. Miller2014-05-013-0/+69
| | | | | | | | | | [BZ #16885] * sysdeps/sparc/sparc64/strcmp.S: Fix end comparison handling when multiple zero bytes exist at the end of a string. Reported by Aurelien Jarno <aurelien@aurel32.net> * string/test-strcmp.c (check): Add explicit test for situations where there are multiple zero bytes after the first.
* Correctly handle %p in wprintf (BZ #16890)Andreas Schwab2014-05-014-2/+30
|
* 2014-05-01 Steve Ellcey <sellcey@mips.com>Steve Ellcey2014-05-015-5/+13
| | | | | | | * intl/iconv/skeleton.c (ONE_DIRECTION): Remove define. * iconv/gconv_simple.c (ONE_DIRECTION): Define. * iconvdata/8bit-gap.c (ONE_DIRECTION): Ditto. * iconvdata/8bit-generic.c (ONE_DIRECTION): Ditto.
* 2014-05-01 Steve Ellcey <sellcey@mips.com>Steve Ellcey2014-05-012-2/+6
| | | | * stdlib/longlong.h: Updated from GCC.
* NEWS: Add 15119 to fixed bug listWill Newton2014-05-012-7/+10
|
* ARM: Remove lowlevellock.cWill Newton2014-05-012-132/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | lowlevellock.c for arm differs from the generic lowlevellock.c only in insignificant ways, so can be removed. Happily, this fixes BZ 15119 (unnecessary busy loop in __lll_timedlock_wait on arm). The notable differences between the arm and generic implementations are: 1) arm __lll_timedlock_wait has a fast path out if futex has been set to 0 between since the function was called. This seems unlikely to happen very often, so it seems at worst harmless to lose this fast path. 2) Some function in arm's lowlevellock.c set futex to 2 if it was 1. The generic version always sets the futex to 2. As futex can only be 0, 1 or 2 on entry into these functions, the behaviour is equivalent. (If the futex manages to be 0 on entry then we've just lost another unlikely fast path out.) There are no test suite regressions. Note that hppa and sparc also have their own lowlevellock.c. I believe hppa can also be removed, so I'll send a separate patch for that shortly. sparc's seems to be genuinely needed as it uses a different locking structure. Also note that the analysis at https://sourceware.org/ml/libc-ports/2013-02/msg00021.html indicates a further locking performance bug to fix - I've got a partial patch for that which I can submit once I've finished testing. 2014-05-01 Bernard Ogden <bernie.ogden@linaro.org> [BZ #15119] * sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.c: Remove file.
* Add round-mode context support to sparc.David S. Miller2014-04-302-0/+85
| | | | | | | | | | | | | | | | | | | | | | | * sysdeps/sparc/fpu/fenv_private.h (HAVE_RM_CTX): Define. (libc_feholdexcept_setround_sparc_ctx): New function. (libc_fesetenv_sparc_ctx): Likewise. (libc_feupdateenv_sparc_ctx): Likewise. (libc_feholdsetround_sparc_ctx): Likewise. (libc_feholdexcept_setround_ctx): Define. (libc_feholdexcept_setroundf_ctx): Likewise. (libc_feholdexcept_setroundl_ctx): Likewise. (libc_fesetenv_ctx): Likewise. (libc_fesetenvf_ctx): Likewise. (libc_fesetenvl_ctx): Likewise. (libc_feupdateenv_ctx): Likewise. (libc_feupdateenvf_ctx): Likewise. (libc_feupdateenvl_ctx): Likewise. (libc_feresetround_ctx): Likewise. (libc_feresetroundf_ctx): Likewise. (libc_feresetroundl_ctx): Likewise. (libc_feholdsetround_ctx): Likewise. (libc_feholdsetroundf_ctx): Likewise. (libc_feholdsetroundl_ctx): Likewise.
* Correct sparc CPP guards for EMT_TAGOVF.David S. Miller2014-04-302-1/+4
| | | | | * sysdeps/unix/sysv/linux/sparc/bits/siginfo.h (EMT_TAGOVF): Protect with __USE_GNU instead of XOPEN cpp guards.
* Fix some sparc -Wundef build warnings.David S. Miller2014-04-302-0/+6
| | | | | * sysdeps/sparc/bits/string.h (_STRING_ARCH_unaligned): Define to 0.
* Fix some sparc conform test failures in siginfo.hDavid S. Miller2014-04-302-0/+7
| | | | | * sysdeps/unix/sysv/linux/sparc/bits/siginfo.h (EMT_TAGOVF): Protect with XOPEN cpp guards.
* Move ports/ChangeLog* files to ChangeLog.old-ports*, remove ports/ directory.Roland McGrath2014-04-3015-0/+0
|
* Add deprecation header text to remaining ports/ChangeLog* files.Roland McGrath2014-04-304-0/+27
|
* ARM: Fix R_ARM_IRELATIVE RELA relocations.Julian Brown2014-04-303-2/+8
| | | | | | | | | | | | | | | | | | | | | | | | This patch fixes what I believe to be a bug in the handling of R_ARM_IRELATIVE RELA relocations. At present, these are handled the same as REL relocations: i.e. the addend is loaded from the relocation address. Most of the time this isn't a problem because RELA relocations aren't used on ARM (GNU/Linux at least) anyway, but it causes problems with prelink, which uses RELA on all targets for its conflict table. (Support for ifunc prelinking requires a prelink patch, not yet posted.) Anyway, this patch works, though I'm not 100% sure if it is correct: I notice that this code path received attention last year: https://sourceware.org/ml/libc-ports/2013-07/msg00000.html I'm not sure under what circumstances that patch would have had an effect, nor if my patch conflicts with that case. No regressions using Mentor's usual glibc cross-testing infrastructure. [BZ #16888] * sysdeps/arm/dl-machine.h (elf_machine_rela): Fix R_ARM_IRELATIVE handling.
* Increase minimum Linux kernel version to 2.6.32.Joseph Myers2014-04-3011-46/+47
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch increases the minimum Linux kernel version for glibc to 2.6.32, as discussed in the thread starting at <https://sourceware.org/ml/libc-alpha/2014-01/msg00511.html>. This patch just does the minimal change to arch_minimum_kernel settings (and LIBC_LINUX_VERSION, which determines the minimum kernel headers version, as it doesn't make sense for that to be older than the minimum kernel that can be used at runtime). Followups would be expected to do, roughly and not necessarily precisely in this order: * Remove __LINUX_KERNEL_VERSION checks in kernel-features.h files where those checks are always true / always false for kernels 2.6.32 and above. * Otherwise simplify/improve conditionals in those files (for example, where defining once in the main file then undefining in architecture-specific files makes things clearer than having lots of separate definitions of the same macro), possibly fixing in the process cases where a macro should optimally have been defined for a given architecture but wasn't. (In the review in preparation for this version increase I checked what the right conditions should be for all macros in the main kernel-features.h whose definitions there would have been affected by the increase - but I only fixed that subset of the issues found where --enable-kernel=2.6.32 would have caused a kernel feature to be wrongly assumed to be present, not any cases where a feature is not assumed but could be assumed.) * Remove conditionals on __ASSUME_* where they can now be taken to be always-true, and the definitions when the macros are only used in Linux-specific files. * Split more architectures out of the main kernel-features.h (like ex-ports architectures), once various of the architecture conditionals there have been eliminated so the new architecture-specific files are no larger than actually necessary. Tested x86_64. 2014-03-27 Joseph Myers <joseph@codesourcery.com> [BZ #9894] * sysdeps/unix/sysv/linux/configure.ac (LIBC_LINUX_VERSION): Change to 2.6.32. (arch_minimum_kernel): Change all 2.6.16 settings to 2.6.32. * sysdeps/unix/sysv/linux/configure: Regenerated. * sysdeps/unix/sysv/linux/microblaze/configure.ac: Remove file. * sysdeps/unix/sysv/linux/microblaze/configure: Likewise. * sysdeps/unix/sysv/linux/tile/configure.ac: Likewise. * sysdeps/unix/sysv/linux/tile/configure: Likewise. * README: Update reference to required Linux kernel version. * manual/install.texi (Linux): Update reference to required Linux kernel headers version. * INSTALL: Regenerated.
* conformtest: clean up POSIX expectations for stdlib.h, string.h.Joseph Myers2014-04-303-3/+14
| | | | | | | | | | | | | | | | Continuing the series of patches to clean up conformtest expectations for "POSIX" (1995/6) based on review of the expectations against the standard, this patch cleans up expectations for stdlib.h and string.h. Tested x86_64; no new XFAILs needed. * conform/data/stdlib.h-data [POSIX] (stddef.h): Do not allow header inclusion. [POSIX] (limits.h): Likewise. [POSIX] (math.h): Likewise. [POSIX] (sys/wait.h): Likewise. * conform/data/string.h-data [POSIX || UNIX98] (strtok_r): Require function. [POSIX] (stddef.h): Do not allow header inclusion.
* ChangeLog cleanupAndreas Schwab2014-04-301-493/+275
|
* More fixes for unsafe compiler optimizationAdhemerval Zanella2014-04-302-0/+5
| | | | | GCC 4.9 -ftree-loop-distribute-patterns now may transform loops in memcpy. Add the alias to internal GLIBC symbol to avoid PLT creation.
* Fix lll_unlock twice in pthread_cond_broadcastYang Yingliang2014-04-302-0/+6
| | | | | | | | | | lll_unlock() will be called again if it goes to "wake_all" in pthread_cond_broadcast(). This may make another thread which is waiting for lock in pthread_cond_timedwait() unlock. So there are more than one threads get the lock, it will break the shared data. It's introduced by commit 8313cb997d2d("FUTEX_*_REQUEUE_PI support for non-x86 code")
* Initialize all of datahead structure in nscd (BZ #16791)Siddhesh Poyarekar2014-04-303-5/+23
| | | | | | | | | The datahead structure has an unused padding field that remains uninitialized. Valgrind prints out a warning for it on querying a netgroups entry. This is harmless, but is a potential data leak since it would result in writing out an uninitialized byte to the cache file. Besides, this happens only when there is a cache miss, so we're not adding computation to any fast path.
* Consolidate code to initialize nscd dataset headerSiddhesh Poyarekar2014-04-309-122/+105
| | | | | | | | | | This patch consolidates the code to initialize the header of a dataset into a single set of functions (one for positive and another for negative datasets) primarily to reduce repetition of code. The secondary reason is to simplify Patch 2/2 which fixes the problem of an uninitialized byte in the header by initializing an unused field in the structure and hence preventing a possible data leak into the cache file.
* Do not fail if one of the two responses to AF_UNSPEC fails (BZ #14308)Siddhesh Poyarekar2014-04-304-10/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [Fixes BZ #14308, #12994, #13651] AF_UNSPEC results in sending two queries in parallel, one for the A record and the other for the AAAA record. If one of these is a referral, then the query fails, which is wrong. It should return at least the one successful response. The fix has two parts. The first part makes the referral fall back to the SERVFAIL path, which results in using the successful response. There is a bug in that path however, due to which the second part is necessary. The bug here is that if the first response is a failure and the second succeeds, __libc_res_nsearch does not detect that and assumes a failure. The case where the first response is a success and the second fails, works correctly. This condition is produced by buggy routers, so here's a crude interposable library that can simulate such a condition. The library overrides the recvfrom syscall and modifies the header of the packet received to reproduce this scenario. It has two key variables: mod_packet and first_error. The mod_packet variable when set to 0, results in odd packets being modified to be a referral. When set to 1, even packets are modified to be a referral. The first_error causes the first response to be a failure so that a domain-appended search is performed to test the second part of the __libc_nsearch fix. The driver for this fix is a simple getaddrinfo program that does an AF_UNSPEC query. I have omitted this since it should be easy to implement. I have tested this on x86_64. The interceptor library source: /* Override recvfrom and modify the header of the first DNS response to make it a referral and reproduce bz #845218. We have to resort to this ugly hack because we cannot make bind return the buggy response of a referral for the AAAA record and an authoritative response for the A record. */ #define _GNU_SOURCE #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <stdio.h> #include <stdbool.h> #include <endian.h> #include <dlfcn.h> #include <stdlib.h> /* Lifted from resolv/arpa/nameser_compat.h. */ typedef struct { unsigned id :16; /*%< query identification number */ #if BYTE_ORDER == BIG_ENDIAN /* fields in third byte */ unsigned qr: 1; /*%< response flag */ unsigned opcode: 4; /*%< purpose of message */ unsigned aa: 1; /*%< authoritive answer */ unsigned tc: 1; /*%< truncated message */ unsigned rd: 1; /*%< recursion desired */ /* fields * in * fourth * byte * */ unsigned ra: 1; /*%< recursion available */ unsigned unused :1; /*%< unused bits (MBZ as of 4.9.3a3) */ unsigned ad: 1; /*%< authentic data from named */ unsigned cd: 1; /*%< checking disabled by resolver */ unsigned rcode :4; /*%< response code */ #endif #if BYTE_ORDER == LITTLE_ENDIAN || BYTE_ORDER == PDP_ENDIAN /* fields * in * third * byte * */ unsigned rd :1; /*%< recursion desired */ unsigned tc :1; /*%< truncated message */ unsigned aa :1; /*%< authoritive answer */ unsigned opcode :4; /*%< purpose of message */ unsigned qr :1; /*%< response flag */ /* fields * in * fourth * byte * */ unsigned rcode :4; /*%< response code */ unsigned cd: 1; /*%< checking disabled by resolver */ unsigned ad: 1; /*%< authentic data from named */ unsigned unused :1; /*%< unused bits (MBZ as of 4.9.3a3) */ unsigned ra :1; /*%< recursion available */ #endif /* remaining * bytes * */ unsigned qdcount :16; /*%< number of question entries */ unsigned ancount :16; /*%< number of answer entries */ unsigned nscount :16; /*%< number of authority entries */ unsigned arcount :16; /*%< number of resource entries */ } HEADER; static int done = 0; /* Packets to modify. 0 for the odd packets and 1 for even packets. */ static const int mod_packet = 0; /* Set to true if the first request should result in an error, resulting in a search query. */ static bool first_error = true; static ssize_t (*real_recvfrom) (int sockfd, void *buf, size_t len, int flags, struct sockaddr *src_addr, socklen_t *addrlen); void __attribute__ ((constructor)) init (void) { real_recvfrom = dlsym (RTLD_NEXT, "recvfrom"); if (real_recvfrom == NULL) { printf ("Failed to get reference to recvfrom: %s\n", dlerror ()); printf ("Cannot simulate test\n"); abort (); } } /* Modify the second packet that we receive to set the header in a manner as to reproduce BZ #845218. */ static void mod_buf (HEADER *h, int port) { if (done % 2 == mod_packet || (first_error && done == 1)) { printf ("(Modifying header)"); if (first_error && done == 1) h->rcode = 3; else h->rcode = 0; /* NOERROR == 0. */ h->ancount = 0; h->aa = 0; h->ra = 0; h->arcount = 0; } done++; } ssize_t recvfrom (int sockfd, void *buf, size_t len, int flags, struct sockaddr *src_addr, socklen_t *addrlen) { ssize_t ret = real_recvfrom (sockfd, buf, len, flags, src_addr, addrlen); int port = htons (((struct sockaddr_in *) src_addr)->sin_port); struct in_addr addr = ((struct sockaddr_in *) src_addr)->sin_addr; const char *host = inet_ntoa (addr); printf ("\n*** From %s:%d: ", host, port); mod_buf (buf, port); printf ("returned %zd\n", ret); return ret; }
* Final update to ports ChangeLog.Carlos O'Donell2014-04-291-0/+4
| | | | | Indicate the removal of the README and carry out the final update to the ports/ChangeLog.
* Remove ports README and update machine ChangeLogs.Carlos O'Donell2014-04-295-49/+28
| | | | | | | This patch removes the ports/README now that ports is no longer being used. It also adds a header to all ChangeLogs for all machines that were moved to the main libc tree. The header indicates that the ChangeLog is no longer used.
* 2014-04-29 Steve Ellcey <sellcey@mips.com>Steve Ellcey2014-04-292-0/+8
| | | | * iconf/skeleton.c (ONE_DIRECTION): Set default value if not set.