diff options
author | Nicolas Dechesne <nicolas.dechesne@linaro.org> | 2020-01-30 10:00:25 +0100 |
---|---|---|
committer | Nicolas Dechesne <nicolas.dechesne@linaro.org> | 2020-03-03 21:44:22 +0000 |
commit | a49830f2344a360dc6a3d5de60b50aeae794aa1f (patch) | |
tree | ce927df83de2de20871cae7317d4c89dc1605c24 | |
parent | 42898de8fedecfa02d193cf9561a2aa754c625d1 (diff) |
binutils: glibc: remove old recipes
We used to maintain a fork of glibc and binutils back in the days. It
is no longer relevant now, and moreover it is breaking parsing since
the python3 migration.
Signed-off-by: Nicolas Dechesne <nicolas.dechesne@linaro.org>
Change-Id: I2c9d38c15082213a4ff1853023588490f1fa2a6b
117 files changed, 0 insertions, 70844 deletions
diff --git a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0001-R_ARM_TLS_DTPOFF32.patch b/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0001-R_ARM_TLS_DTPOFF32.patch deleted file mode 100644 index 3922cb81..00000000 --- a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0001-R_ARM_TLS_DTPOFF32.patch +++ /dev/null @@ -1,56 +0,0 @@ - -Quote from bug 1443 which explains what the patch does : - - We build some random program and link it with -lust. When we run it, - it dies with a SIGSEGV before reaching main(). - - Libust.so depends on liburcu-bp.so from the usermode-rcu package. - Although libust.so is not prelinked, liburcu-bp.so IS prelinked; this - is critical. - - Libust.so uses a TLS / __thread variable that is defined in liburcu- - bp.so. There are special ARM-specific relocation types that allow two - shared libraries to share thread-specific data. This is critical too. - - One more critical issue: although liburcu-bp.so is prelinked, we can't - load it at its prelinked address, because we also link against - librt.so, and librt.so uses that address. - - The dynamic linker is forced to relink liburcu-bp.so at a different - address. In the course of relinking, it processes the special ARM - relocation record mentioned above. The prelinker has already filled - in the information, which is a short offset into a table of thread- - specific data that is allocated per-thread for each library that uses - TLS. Because the normal behavior of a relocation is to add the symbol - value to an addend stored at the address being relocated, we end up - adding the short offset to itself, doubling it. - - Now we have an awkward situation. The libust.so library doesn't know - about the addend, so its TLS data for this element is correct. The - liburcu-bp.so library has a different offset for the element. When we - go to initialize the element for the first time in liburcu-bp.so, we - write the address of the result at the doubled (broken) offset. - Later, when we refer to the address from libust.so, we check the value - at the correct offset, but it's NULL, so we eat hot SIGSEGV. - -Upstream-Status: Pending - -Signed-off-by: Andrei Dinu <andrei.adrianx.dinu@intel.com> ---- - .../libc/ports/sysdeps/arm/dl-machine.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -ndex 8d905e8..dcfa71e 100644 -Index: git/sysdeps/arm/dl-machine.h -=================================================================== ---- git.orig/sysdeps/arm/dl-machine.h 2014-08-27 05:30:47.748070587 +0000 -+++ git/sysdeps/arm/dl-machine.h 2014-08-27 05:30:47.740070587 +0000 -@@ -495,7 +495,7 @@ - - case R_ARM_TLS_DTPOFF32: - if (sym != NULL) -- *reloc_addr += sym->st_value; -+ *reloc_addr = sym->st_value; - break; - - case R_ARM_TLS_TPOFF32: diff --git a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0001-eglibc-run-libm-err-tab.pl-with-specific-dirs-in-S.patch b/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0001-eglibc-run-libm-err-tab.pl-with-specific-dirs-in-S.patch deleted file mode 100644 index f341282f..00000000 --- a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0001-eglibc-run-libm-err-tab.pl-with-specific-dirs-in-S.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 713d822908d1b2ae8403af7f9375c7054ed3dd49 Mon Sep 17 00:00:00 2001 -From: Ting Liu <b28495@freescale.com> -Date: Wed, 19 Dec 2012 04:39:57 -0600 -Subject: [PATCH] eglibc: run libm-err-tab.pl with specific dirs in ${S} - -libm-err-tab.pl will parse all the files named "libm-test-ulps" -in the given dir recursively. To avoid parsing the one in -${S}/.pc/ (it does exist after eglibc adds aarch64 support, -${S}/.pc/aarch64-0001-glibc-fsf-v1-eaf6f205.patch/ports/sysdeps/ -aarch64/libm-test-ulps), run libm-err-tab.pl with specific dirs -in ${S}. - -Upstream-Status: inappropriate [OE specific] - -Signed-off-by: Ting Liu <b28495@freescale.com> ---- - manual/Makefile | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -Index: git/manual/Makefile -=================================================================== ---- git.orig/manual/Makefile 2014-08-29 10:35:18.728070587 -0700 -+++ git/manual/Makefile 2014-08-29 10:35:18.720070587 -0700 -@@ -105,7 +105,8 @@ - $(objpfx)stamp-libm-err: libm-err-tab.pl $(wildcard $(foreach dir,$(sysdirs),\ - $(dir)/libm-test-ulps)) - pwd=`pwd`; \ -- $(PERL) $< $$pwd/.. > $(objpfx)libm-err-tmp -+ $(PERL) $< $$pwd/../ports > $(objpfx)libm-err-tmp -+ $(PERL) $< $$pwd/../sysdeps >> $(objpfx)libm-err-tmp - $(move-if-change) $(objpfx)libm-err-tmp $(objpfx)libm-err.texi - touch $@ - diff --git a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0002-Fix-utmp-struct-for-compatibility-reasons.patch b/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0002-Fix-utmp-struct-for-compatibility-reasons.patch deleted file mode 100644 index 5f33135a..00000000 --- a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0002-Fix-utmp-struct-for-compatibility-reasons.patch +++ /dev/null @@ -1,53 +0,0 @@ -From 546464783ad948f4ac2061aff08ec79b9f913f71 Mon Sep 17 00:00:00 2001 -From: Andrew Pinski <apinski@cavium.com> -Date: Mon, 27 Oct 2014 00:59:25 -0700 -Subject: [PATCH 02/32] Fix utmp struct for compatibility reasons. - -NOTE This is an ABI change for AARCH64. -If you have some AARCH32 and AARCH64 applications and they both use -utmp, one of them will fail due to the use of time_t inside the -utmp binary format. - -This fixes the problem by setting __WORDSIZE_TIME64_COMPAT32. - -* sysdeps/aarch64/bits/wordsize.h: New file. ---- - sysdeps/aarch64/bits/wordsize.h | 26 ++++++++++++++++++++++++++ - 1 file changed, 26 insertions(+) - create mode 100644 sysdeps/aarch64/bits/wordsize.h - -diff --git a/sysdeps/aarch64/bits/wordsize.h b/sysdeps/aarch64/bits/wordsize.h -new file mode 100644 -index 0000000..3ecccaa ---- /dev/null -+++ b/sysdeps/aarch64/bits/wordsize.h -@@ -0,0 +1,26 @@ -+/* Copyright (C) 2014 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 Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 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 -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ <http://www.gnu.org/licenses/>. */ -+ -+#define __WORDSIZE 64 -+ -+/* LP64 ABI has a 64bit time_t. -+ This allows aarch32 and AARCH64 applications -+ both access utmp. */ -+#define __WORDSIZE_TIME64_COMPAT32 1 -+ -+/* LP64 use the 64bit system call interface. */ -+#define __SYSCALL_WORDSIZE 64 --- -1.9.3 - diff --git a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0003-Allow-sigset-be-an-array-of-a-different-type.patch b/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0003-Allow-sigset-be-an-array-of-a-different-type.patch deleted file mode 100644 index 8888dae0..00000000 --- a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0003-Allow-sigset-be-an-array-of-a-different-type.patch +++ /dev/null @@ -1,75 +0,0 @@ -From cbcc5f6eb5225df0c6931aae5afaf24d3a3681cb Mon Sep 17 00:00:00 2001 -From: Andrew Pinski <apinski@cavium.com> -Date: Mon, 27 Oct 2014 00:59:26 -0700 -Subject: [PATCH 03/32] Allow sigset be an array of a different type - -For AARCH64 ILP32, sigset needs to be an array of unsigned long long as -it needs to be 64bit to match AARCH64 lP64. - -* sysdeps/unix/sysv/linux/bits/sigset.h: Include bits/types.h. -(__sigset_inner_t): New typedef. -(_SIGSET_NWORDS): Use __sigset_inner_t instead of unsigned long. -(__sigset_t): Likewise. -(__sigmask): Likewise. -(__sigword): Likewise. -(__SIGSETFN): Likewise. ---- - sysdeps/unix/sysv/linux/bits/sigset.h | 20 ++++++++++++++------ - 1 file changed, 14 insertions(+), 6 deletions(-) - -diff --git a/sysdeps/unix/sysv/linux/bits/sigset.h b/sysdeps/unix/sysv/linux/bits/sigset.h -index af4ae83..4648e7b 100644 ---- a/sysdeps/unix/sysv/linux/bits/sigset.h -+++ b/sysdeps/unix/sysv/linux/bits/sigset.h -@@ -19,14 +19,22 @@ - #ifndef _SIGSET_H_types - # define _SIGSET_H_types 1 - -+#include <bits/types.h> -+ - typedef int __sig_atomic_t; - -+#ifndef __SIGSET_INNER_T -+typedef unsigned long __sigset_inner_t; -+#else -+typedef __SIGSET_INNER_T __sigset_inner_t; -+#endif -+ - /* A `sigset_t' has a bit for each signal. */ - --# define _SIGSET_NWORDS (1024 / (8 * sizeof (unsigned long int))) -+# define _SIGSET_NWORDS (1024 / (8 * sizeof (__sigset_inner_t))) - typedef struct - { -- unsigned long int __val[_SIGSET_NWORDS]; -+ __sigset_inner_t __val[_SIGSET_NWORDS]; - } __sigset_t; - - #endif -@@ -47,10 +55,10 @@ typedef struct - - /* Return a mask that includes the bit for SIG only. */ - # define __sigmask(sig) \ -- (((unsigned long int) 1) << (((sig) - 1) % (8 * sizeof (unsigned long int)))) -+ (((__sigset_inner_t) 1) << (((sig) - 1) % (8 * sizeof (__sigset_inner_t)))) - - /* Return the word index for SIG. */ --# define __sigword(sig) (((sig) - 1) / (8 * sizeof (unsigned long int))) -+# define __sigword(sig) (((sig) - 1) / (8 * sizeof (__sigset_inner_t))) - - # if defined __GNUC__ && __GNUC__ >= 2 - # define __sigemptyset(set) \ -@@ -108,8 +116,8 @@ extern int __sigdelset (__sigset_t *, int); - _EXTERN_INLINE int \ - NAME (CONST __sigset_t *__set, int __sig) \ - { \ -- unsigned long int __mask = __sigmask (__sig); \ -- unsigned long int __word = __sigword (__sig); \ -+ __sigset_inner_t __mask = __sigmask (__sig); \ -+ __sigset_inner_t __word = __sigword (__sig); \ - return BODY; \ - } - --- -1.9.3 - diff --git a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0004-Add-ability-for-the-IPC-structures-msqid_ds-semid_ds.patch b/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0004-Add-ability-for-the-IPC-structures-msqid_ds-semid_ds.patch deleted file mode 100644 index 8e45284c..00000000 --- a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0004-Add-ability-for-the-IPC-structures-msqid_ds-semid_ds.patch +++ /dev/null @@ -1,219 +0,0 @@ -From 2ad4fd571dd039a756d2a7b6c5fbf6aad19721ec Mon Sep 17 00:00:00 2001 -From: Andrew Pinski <apinski@cavium.com> -Date: Mon, 27 Oct 2014 00:59:27 -0700 -Subject: [PATCH 04/32] Add ability for the IPC structures (msqid_ds, semid_ds, - shmid_ds, etc.) to have time_t being 64bit - -The generic headers for the IPC structures (msqid_ds, semid_ds, shmid_ds, etc.) -already have the ability to already take account time_t being 64bit but only -if WORDSIZE is set 64. Also for AARCH64:ILP32, we want these structures to -match up with the LP64 size, so we add change the all of the unsigned long -types in these headers to be __syscall_ulong_t. Also there is one size_t -field which we need to be changed for AARCH64:ILP32 so we add -a macro which can be changed but defaulting to size_t. - -* sysdeps/unix/sysv/linux/generic/bits/msq.h (msgqnum_t): Change to -__syscall_ulong_t. -(msglen_t): Likewise. -(__IPC_TIME_T_64_BITS): Define if not defined already and WORDSIZE -is 64. -(struct msqid_ds): Change WORD_SIZE check to check __IPC_TIME_T_64_BITS. -Also change some unsigned long fields to __syscall_ulong_t. -* sysdeps/unix/sysv/linux/generic/bits/sem.h (__IPC_TIME_T_64_BITS): -Define if not defined already and WORDSIZE is 64. -(struct semid_ds): Change WORD_SIZE check to check __IPC_TIME_T_64_BITS. -Also change some unsigned long fields to __syscall_ulong_t. -* sysdeps/unix/sysv/linux/generic/bits/shm.h (__IPC_TIME_T_64_BITS): -Define if not defined already and WORDSIZE is 64. -(__SHMID_DS_SIZE_TYPE): Define if not already defined. -(struct shmid_ds): Change WORD_SIZE check to check __IPC_TIME_T_64_BITS. -Change shm_segsz definition to be based on __SHMID_DS_SIZE_TYPE. -Also change some unsigned long fields to __syscall_ulong_t. -(struct shminfo): change some unsigned long fields to __syscall_ulong_t. -(struct shm_info): Likewise. ---- - sysdeps/unix/sysv/linux/generic/bits/msq.h | 21 ++++++++----- - sysdeps/unix/sysv/linux/generic/bits/sem.h | 14 ++++++--- - sysdeps/unix/sysv/linux/generic/bits/shm.h | 50 +++++++++++++++++------------- - 3 files changed, 51 insertions(+), 34 deletions(-) - -diff --git a/sysdeps/unix/sysv/linux/generic/bits/msq.h b/sysdeps/unix/sysv/linux/generic/bits/msq.h -index f3fcd8d..df5128e 100644 ---- a/sysdeps/unix/sysv/linux/generic/bits/msq.h -+++ b/sysdeps/unix/sysv/linux/generic/bits/msq.h -@@ -31,8 +31,13 @@ - #endif - - /* Types used in the structure definition. */ --typedef unsigned long int msgqnum_t; --typedef unsigned long int msglen_t; -+typedef __syscall_ulong_t msgqnum_t; -+typedef __syscall_ulong_t msglen_t; -+ -+#if !defined(__IPC_TIME_T_64_BITS) && __WORDSIZE == 64 -+#define __IPC_TIME_T_64_BITS -+#endif -+ - - /* Structure of record for one message inside the kernel. - The type `struct msg' is opaque. */ -@@ -40,24 +45,24 @@ struct msqid_ds - { - struct ipc_perm msg_perm; /* structure describing operation permission */ - __time_t msg_stime; /* time of last msgsnd command */ --#if __WORDSIZE == 32 -+#ifndef __IPC_TIME_T_64_BITS - unsigned long int __glibc_reserved1; - #endif - __time_t msg_rtime; /* time of last msgrcv command */ --#if __WORDSIZE == 32 -+#ifndef __IPC_TIME_T_64_BITS - unsigned long int __glibc_reserved2; - #endif - __time_t msg_ctime; /* time of last change */ --#if __WORDSIZE == 32 -+#ifndef __IPC_TIME_T_64_BITS - unsigned long int __glibc_reserved3; - #endif -- unsigned long int __msg_cbytes; /* current number of bytes on queue */ -+ __syscall_ulong_t __msg_cbytes; /* current number of bytes on queue */ - msgqnum_t msg_qnum; /* number of messages currently on queue */ - msglen_t msg_qbytes; /* max number of bytes allowed on queue */ - __pid_t msg_lspid; /* pid of last msgsnd() */ - __pid_t msg_lrpid; /* pid of last msgrcv() */ -- unsigned long int __glibc_reserved4; -- unsigned long int __glibc_reserved5; -+ __syscall_ulong_t __glibc_reserved4; -+ __syscall_ulong_t __glibc_reserved5; - }; - - #ifdef __USE_MISC -diff --git a/sysdeps/unix/sysv/linux/generic/bits/sem.h b/sysdeps/unix/sysv/linux/generic/bits/sem.h -index 3c9aea8..a0a5d47 100644 ---- a/sysdeps/unix/sysv/linux/generic/bits/sem.h -+++ b/sysdeps/unix/sysv/linux/generic/bits/sem.h -@@ -36,21 +36,25 @@ - #define SETALL 17 /* set all semval's */ - - -+#if !defined(__IPC_TIME_T_64_BITS) && __WORDSIZE == 64 -+#define __IPC_TIME_T_64_BITS -+#endif -+ - /* Data structure describing a set of semaphores. */ - struct semid_ds - { - struct ipc_perm sem_perm; /* operation permission struct */ - __time_t sem_otime; /* last semop() time */ --#if __WORDSIZE == 32 -+#ifndef __IPC_TIME_T_64_BITS - unsigned long int __glibc_reserved1; - #endif - __time_t sem_ctime; /* last time changed by semctl() */ --#if __WORDSIZE == 32 -+#ifndef __IPC_TIME_T_64_BITS - unsigned long int __glibc_reserved2; - #endif -- unsigned long int sem_nsems; /* number of semaphores in set */ -- unsigned long int __glibc_reserved3; -- unsigned long int __glibc_reserved4; -+ __syscall_ulong_t sem_nsems; /* number of semaphores in set */ -+ __syscall_ulong_t __glibc_reserved3; -+ __syscall_ulong_t __glibc_reserved4; - }; - - /* The user should define a union like the following to use it for arguments -diff --git a/sysdeps/unix/sysv/linux/generic/bits/shm.h b/sysdeps/unix/sysv/linux/generic/bits/shm.h -index 0dbed61..78ff79d 100644 ---- a/sysdeps/unix/sysv/linux/generic/bits/shm.h -+++ b/sysdeps/unix/sysv/linux/generic/bits/shm.h -@@ -44,31 +44,39 @@ __BEGIN_DECLS - extern int __getpagesize (void) __THROW __attribute__ ((__const__)); - - -+#if !defined(__IPC_TIME_T_64_BITS) && __WORDSIZE == 64 -+#define __IPC_TIME_T_64_BITS -+#endif -+ - /* Type to count number of attaches. */ --typedef unsigned long int shmatt_t; -+typedef __syscall_ulong_t shmatt_t; -+ -+#ifndef __SHMID_DS_SIZE_TYPE -+#define __SHMID_DS_SIZE_TYPE(field) size_t field -+#endif - - /* Data structure describing a shared memory segment. */ - struct shmid_ds - { - struct ipc_perm shm_perm; /* operation permission struct */ -- size_t shm_segsz; /* size of segment in bytes */ -+ __SHMID_DS_SIZE_TYPE(shm_segsz); /* size of segment in bytes */ - __time_t shm_atime; /* time of last shmat() */ --#if __WORDSIZE == 32 -+#ifndef __IPC_TIME_T_64_BITS - unsigned long int __glibc_reserved1; - #endif - __time_t shm_dtime; /* time of last shmdt() */ --#if __WORDSIZE == 32 -+#ifndef __IPC_TIME_T_64_BITS - unsigned long int __glibc_reserved2; - #endif - __time_t shm_ctime; /* time of last change by shmctl() */ --#if __WORDSIZE == 32 -+#ifndef __IPC_TIME_T_64_BITS - unsigned long int __glibc_reserved3; - #endif - __pid_t shm_cpid; /* pid of creator */ - __pid_t shm_lpid; /* pid of last shmop */ - shmatt_t shm_nattch; /* number of current attaches */ -- unsigned long int __glibc_reserved4; -- unsigned long int __glibc_reserved5; -+ __syscall_ulong_t __glibc_reserved4; -+ __syscall_ulong_t __glibc_reserved5; - }; - - #ifdef __USE_MISC -@@ -85,25 +93,25 @@ struct shmid_ds - - struct shminfo - { -- unsigned long int shmmax; -- unsigned long int shmmin; -- unsigned long int shmmni; -- unsigned long int shmseg; -- unsigned long int shmall; -- unsigned long int __glibc_reserved1; -- unsigned long int __glibc_reserved2; -- unsigned long int __glibc_reserved3; -- unsigned long int __glibc_reserved4; -+ __syscall_ulong_t shmmax; -+ __syscall_ulong_t shmmin; -+ __syscall_ulong_t shmmni; -+ __syscall_ulong_t shmseg; -+ __syscall_ulong_t shmall; -+ __syscall_ulong_t __glibc_reserved1; -+ __syscall_ulong_t __glibc_reserved2; -+ __syscall_ulong_t __glibc_reserved3; -+ __syscall_ulong_t __glibc_reserved4; - }; - - struct shm_info - { - int used_ids; -- unsigned long int shm_tot; /* total allocated shm */ -- unsigned long int shm_rss; /* total resident shm */ -- unsigned long int shm_swp; /* total swapped shm */ -- unsigned long int swap_attempts; -- unsigned long int swap_successes; -+ __syscall_ulong_t shm_tot; /* total allocated shm */ -+ __syscall_ulong_t shm_rss; /* total resident shm */ -+ __syscall_ulong_t shm_swp; /* total swapped shm */ -+ __syscall_ulong_t swap_attempts; -+ __syscall_ulong_t swap_successes; - }; - - #endif /* __USE_MISC */ --- -1.9.3 - diff --git a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0005-Allow-rusage-work-on-a-big-endian-32bit-on-64bit-tar.patch b/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0005-Allow-rusage-work-on-a-big-endian-32bit-on-64bit-tar.patch deleted file mode 100644 index 8b72820d..00000000 --- a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0005-Allow-rusage-work-on-a-big-endian-32bit-on-64bit-tar.patch +++ /dev/null @@ -1,156 +0,0 @@ -From 45a3fed52fcce87afb3688e518a33f5e1a3ca2bf Mon Sep 17 00:00:00 2001 -From: Andrew Pinski <apinski@cavium.com> -Date: Mon, 27 Oct 2014 00:59:28 -0700 -Subject: [PATCH 05/32] Allow rusage work on a big-endian 32bit-on-64bit target - -Right now rusage works for x32 like ABIs but only for little-endian. -Since AARCH64:ILP32 is a big-endian ABI also. We need to invent a -new way to handle big-endian ABIs also. This adds __RUSAGE_LONG -which is used for this purpose. - -* sysdeps/unix/sysv/linux/bits/resource.h (__RUSAGE_LONG): New define. -(struct rusage): Use __RUSAGE_LONG instead of unions. ---- - sysdeps/unix/sysv/linux/bits/resource.h | 99 +++++++++------------------------ - 1 file changed, 27 insertions(+), 72 deletions(-) - -diff --git a/sysdeps/unix/sysv/linux/bits/resource.h b/sysdeps/unix/sysv/linux/bits/resource.h -index 95c1702..698069d 100644 ---- a/sysdeps/unix/sysv/linux/bits/resource.h -+++ b/sysdeps/unix/sysv/linux/bits/resource.h -@@ -182,8 +182,19 @@ enum __rusage_who - - /* The purpose of all the unions is to have the kernel-compatible layout - while keeping the API type as 'long int', and among machines where -- __syscall_slong_t is not 'long int', this only does the right thing -- for little-endian ones, like x32. */ -+ __syscall_slong_t is not 'long int'. */ -+ -+#ifndef __RUSAGE_LONG -+/* This definition works where __syscall_slong_t is the same as 'long int' -+ and on little-endian when __syscall_slong_t is not 'long int' like x32. */ -+# define __RUSAGE_LONG(__field) \ -+ __extension__ union \ -+ { \ -+ long int __field; \ -+ __syscall_slong_t __##__field##_word; \ -+ } -+#endif -+ - struct rusage - { - /* Total amount of user time used. */ -@@ -191,96 +202,40 @@ struct rusage - /* Total amount of system time used. */ - struct timeval ru_stime; - /* Maximum resident set size (in kilobytes). */ -- __extension__ union -- { -- long int ru_maxrss; -- __syscall_slong_t __ru_maxrss_word; -- }; -+ __RUSAGE_LONG(ru_maxrss); - /* Amount of sharing of text segment memory - with other processes (kilobyte-seconds). */ - /* Maximum resident set size (in kilobytes). */ -- __extension__ union -- { -- long int ru_ixrss; -- __syscall_slong_t __ru_ixrss_word; -- }; -+ __RUSAGE_LONG(ru_ixrss); - /* Amount of data segment memory used (kilobyte-seconds). */ -- __extension__ union -- { -- long int ru_idrss; -- __syscall_slong_t __ru_idrss_word; -- }; -+ __RUSAGE_LONG(ru_idrss); - /* Amount of stack memory used (kilobyte-seconds). */ -- __extension__ union -- { -- long int ru_isrss; -- __syscall_slong_t __ru_isrss_word; -- }; -+ __RUSAGE_LONG(ru_isrss); - /* Number of soft page faults (i.e. those serviced by reclaiming - a page from the list of pages awaiting reallocation. */ -- __extension__ union -- { -- long int ru_minflt; -- __syscall_slong_t __ru_minflt_word; -- }; -+ __RUSAGE_LONG(ru_minflt); - /* Number of hard page faults (i.e. those that required I/O). */ -- __extension__ union -- { -- long int ru_majflt; -- __syscall_slong_t __ru_majflt_word; -- }; -+ __RUSAGE_LONG(ru_majflt); - /* Number of times a process was swapped out of physical memory. */ -- __extension__ union -- { -- long int ru_nswap; -- __syscall_slong_t __ru_nswap_word; -- }; -+ __RUSAGE_LONG(ru_nswap); - /* Number of input operations via the file system. Note: This - and `ru_oublock' do not include operations with the cache. */ -- __extension__ union -- { -- long int ru_inblock; -- __syscall_slong_t __ru_inblock_word; -- }; -+ __RUSAGE_LONG(ru_inblock); - /* Number of output operations via the file system. */ -- __extension__ union -- { -- long int ru_oublock; -- __syscall_slong_t __ru_oublock_word; -- }; -+ __RUSAGE_LONG(ru_oublock); - /* Number of IPC messages sent. */ -- __extension__ union -- { -- long int ru_msgsnd; -- __syscall_slong_t __ru_msgsnd_word; -- }; -+ __RUSAGE_LONG(ru_msgsnd); - /* Number of IPC messages received. */ -- __extension__ union -- { -- long int ru_msgrcv; -- __syscall_slong_t __ru_msgrcv_word; -- }; -+ __RUSAGE_LONG(ru_msgrcv); - /* Number of signals delivered. */ -- __extension__ union -- { -- long int ru_nsignals; -- __syscall_slong_t __ru_nsignals_word; -- }; -+ __RUSAGE_LONG(ru_nsignals); - /* Number of voluntary context switches, i.e. because the process - gave up the process before it had to (usually to wait for some - resource to be available). */ -- __extension__ union -- { -- long int ru_nvcsw; -- __syscall_slong_t __ru_nvcsw_word; -- }; -+ __RUSAGE_LONG(ru_nvcsw); - /* Number of involuntary context switches, i.e. a higher priority process - became runnable or the current process used up its time slice. */ -- __extension__ union -- { -- long int ru_nivcsw; -- __syscall_slong_t __ru_nivcsw_word; -- }; -+ __RUSAGE_LONG(ru_nivcsw); - }; - - /* Priority limits. */ --- -1.9.3 - diff --git a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0006-Allow-fd_mask-type-not-be-an-array-of-long.patch b/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0006-Allow-fd_mask-type-not-be-an-array-of-long.patch deleted file mode 100644 index 6766c31b..00000000 --- a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0006-Allow-fd_mask-type-not-be-an-array-of-long.patch +++ /dev/null @@ -1,48 +0,0 @@ -From 7205aca835ba7fca285644d1c9145a39742ef94f Mon Sep 17 00:00:00 2001 -From: Andrew Pinski <apinski@cavium.com> -Date: Mon, 27 Oct 2014 00:59:29 -0700 -Subject: [PATCH 06/32] Allow fd_mask type not be an array of long. - -Even though XPG4.2 requires fd_set member be a long, AARCH64:ILP32 -needs it to be the same size as AARCH64:LP64 for big-endian so we -need it to be long long. - -* misc/sys/select.h (__FD_MASK_TYPE): Define. -(__FD_MASK_CONST): Define. -(__fd_mask): Change to base on __FD_MASK_TYPE. -(__FD_MASK): Use __FD_MASK_CONST. ---- - misc/sys/select.h | 10 +++++++--- - 1 file changed, 7 insertions(+), 3 deletions(-) - -diff --git a/misc/sys/select.h b/misc/sys/select.h -index 941588d..0ca660e 100644 ---- a/misc/sys/select.h -+++ b/misc/sys/select.h -@@ -49,16 +49,20 @@ typedef __suseconds_t suseconds_t; - # define __suseconds_t_defined - #endif - -+/* The fd_set member is required to be an array of longs by XPG4.2. */ -+#ifndef __FD_MASK_TYPE -+#define __FD_MASK_TYPE long -+#define __FD_MASK_CONST(a) a##ul -+#endif - --/* The fd_set member is required to be an array of longs. */ --typedef long int __fd_mask; -+typedef __FD_MASK_TYPE __fd_mask; - - /* Some versions of <linux/posix_types.h> define this macros. */ - #undef __NFDBITS - /* It's easier to assume 8-bit bytes than to get CHAR_BIT. */ - #define __NFDBITS (8 * (int) sizeof (__fd_mask)) - #define __FD_ELT(d) ((d) / __NFDBITS) --#define __FD_MASK(d) ((__fd_mask) (1UL << ((d) % __NFDBITS))) -+#define __FD_MASK(d) ((__fd_mask) (__FD_MASK_CONST(1) << ((d) % __NFDBITS))) - - /* fd_set for select and pselect. */ - typedef struct --- -1.9.3 - diff --git a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0007-Allow-some-fields-of-siginfo-to-be-different-from-th.patch b/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0007-Allow-some-fields-of-siginfo-to-be-different-from-th.patch deleted file mode 100644 index b5c7ee28..00000000 --- a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0007-Allow-some-fields-of-siginfo-to-be-different-from-th.patch +++ /dev/null @@ -1,102 +0,0 @@ -From b10436b76a65def68aec16dfbdb6617d17dba2a0 Mon Sep 17 00:00:00 2001 -From: Andrew Pinski <apinski@cavium.com> -Date: Mon, 27 Oct 2014 00:59:30 -0700 -Subject: [PATCH 07/32] Allow some fields of siginfo to be different from the - generic one - -In AARCH64:ILP32, we want to use the layout for siginfo as AARCH64:LP64, -so we need to add a few hooks into siginfo.h to support this. - -* sysdeps/unix/sysv/linux/bits/siginfo.h (__SIGINFO_VOIDPTR): New define. -(__SIGINFO_BAND): New define. -(union sigval): Use __SIGINFO_VOIDPTR for the pointer. -(__SI_PAD_SIZE): Don't define if it is already defined. -(struct siginfo): Use __SIGINFO_VOIDPTR for the pointer types. -Use __SIGINFO_BAND for the si_band field. -(struct sigevent): Add a comment on why the remaining fields -don't need special handling. ---- - sysdeps/unix/sysv/linux/bits/siginfo.h | 26 +++++++++++++++++++------- - 1 file changed, 19 insertions(+), 7 deletions(-) - -diff --git a/sysdeps/unix/sysv/linux/bits/siginfo.h b/sysdeps/unix/sysv/linux/bits/siginfo.h -index ae603e8..f319d44 100644 ---- a/sysdeps/unix/sysv/linux/bits/siginfo.h -+++ b/sysdeps/unix/sysv/linux/bits/siginfo.h -@@ -23,6 +23,14 @@ - - #include <bits/wordsize.h> - -+#ifndef __SIGINFO_VOIDPTR -+#define __SIGINFO_VOIDPTR(field) void *field -+#endif -+ -+#ifndef __SIGINFO_BAND -+#define __SIGINFO_BAND(field) long field -+#endif -+ - #if (!defined __have_sigval_t \ - && (defined _SIGNAL_H || defined __need_siginfo_t \ - || defined __need_sigevent_t)) -@@ -32,7 +40,7 @@ - typedef union sigval - { - int sival_int; -- void *sival_ptr; -+ __SIGINFO_VOIDPTR (sival_ptr); - } sigval_t; - #endif - -@@ -41,10 +49,13 @@ typedef union sigval - # define __have_siginfo_t 1 - - # define __SI_MAX_SIZE 128 --# if __WORDSIZE == 64 --# define __SI_PAD_SIZE ((__SI_MAX_SIZE / sizeof (int)) - 4) -+ -+# ifndef __SI_PAD_SIZE -+# if __WORDSIZE == 64 -+# define __SI_PAD_SIZE ((__SI_MAX_SIZE / sizeof (int)) - 4) - # else --# define __SI_PAD_SIZE ((__SI_MAX_SIZE / sizeof (int)) - 3) -+# define __SI_PAD_SIZE ((__SI_MAX_SIZE / sizeof (int)) - 3) -+# endif - # endif - - typedef struct -@@ -94,21 +105,21 @@ typedef struct - /* SIGILL, SIGFPE, SIGSEGV, SIGBUS. */ - struct - { -- void *si_addr; /* Faulting insn/memory ref. */ -+ __SIGINFO_VOIDPTR (si_addr); /* Faulting insn/memory ref. */ - short int si_addr_lsb; /* Valid LSB of the reported address. */ - } _sigfault; - - /* SIGPOLL. */ - struct - { -- long int si_band; /* Band event for SIGPOLL. */ -+ __SIGINFO_BAND (si_band); /* Band event for SIGPOLL. */ - int si_fd; - } _sigpoll; - - /* SIGSYS. */ - struct - { -- void *_call_addr; /* Calling user insn. */ -+ __SIGINFO_VOIDPTR (_call_addr); /* Calling user insn. */ - int _syscall; /* Triggering system call number. */ - unsigned int _arch; /* AUDIT_ARCH_* of syscall. */ - } _sigsys; -@@ -312,6 +323,7 @@ typedef struct sigevent - thread to receive the signal. */ - __pid_t _tid; - -+ /* Note these two are handled only in userspace. */ - struct - { - void (*_function) (sigval_t); /* Function to start. */ --- -1.9.3 - diff --git a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0008-Allow-generic-stat-and-statfs-not-have-padding-for-3.patch b/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0008-Allow-generic-stat-and-statfs-not-have-padding-for-3.patch deleted file mode 100644 index 848aad00..00000000 --- a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0008-Allow-generic-stat-and-statfs-not-have-padding-for-3.patch +++ /dev/null @@ -1,56 +0,0 @@ -From aad845880291f1e6af7c9721f1c53ed36abd10e6 Mon Sep 17 00:00:00 2001 -From: Andrew Pinski <apinski@cavium.com> -Date: Mon, 27 Oct 2014 00:59:31 -0700 -Subject: [PATCH 08/32] Allow generic stat and statfs not have padding for - 32bit targets - -With ILP32, off_t, ino_t, blkcnt_t, fsbcnt_t, fsbfilcnt_t are all -64bit types, this allows us to use the same layout for the -structure stat and statfs as LP64. So we need to remove -the padding which is added for non 64bit targets. - -* sysdeps/unix/sysv/linux/generic/bits/stat.h (__field64): Use -the 64bit version when off_t, ino_t and blkcnt_t match their 64bit -version. -* sysdeps/unix/sysv/linux/generic/bits/statfs.h (__field64): Use -the 64bit version when fsblkcnt_t and fsfilcnt_t match their 64bit -version. ---- - sysdeps/unix/sysv/linux/generic/bits/stat.h | 5 ++++- - sysdeps/unix/sysv/linux/generic/bits/statfs.h | 4 +++- - 2 files changed, 7 insertions(+), 2 deletions(-) - -diff --git a/sysdeps/unix/sysv/linux/generic/bits/stat.h b/sysdeps/unix/sysv/linux/generic/bits/stat.h -index faa2800..3c92184 100644 ---- a/sysdeps/unix/sysv/linux/generic/bits/stat.h -+++ b/sysdeps/unix/sysv/linux/generic/bits/stat.h -@@ -42,7 +42,10 @@ - - #if defined __USE_FILE_OFFSET64 - # define __field64(type, type64, name) type64 name --#elif __WORDSIZE == 64 -+#elif __WORDSIZE == 64 \ -+ || (defined(__OFF_T_MATCHES_OFF64_T) \ -+ && defined(__INO_T_MATCHES_INO64_T) \ -+ && defined (__BLKCNT_T_TYPE_MATCHES_BLKCNT64_T_TYPE)) - # define __field64(type, type64, name) type name - #elif __BYTE_ORDER == __LITTLE_ENDIAN - # define __field64(type, type64, name) \ -diff --git a/sysdeps/unix/sysv/linux/generic/bits/statfs.h b/sysdeps/unix/sysv/linux/generic/bits/statfs.h -index e32cf76..d3bfb50 100644 ---- a/sysdeps/unix/sysv/linux/generic/bits/statfs.h -+++ b/sysdeps/unix/sysv/linux/generic/bits/statfs.h -@@ -34,7 +34,9 @@ - - #if defined __USE_FILE_OFFSET64 - # define __field64(type, type64, name) type64 name --#elif __WORDSIZE == 64 -+#elif __WORDSIZE == 64 \ -+ || (defined (__FSBLKCNT_T_TYPE_MATCHES_FSBLKCNT64_T_TYPE) \ -+ && defined (__FSFILCNT_T_TYPE_MATCHES_FSFILCNT64_T_TYPE)) - # define __field64(type, type64, name) type name - #elif __BYTE_ORDER == __LITTLE_ENDIAN - # define __field64(type, type64, name) \ --- -1.9.3 - diff --git a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0009-Add-header-guards-to-sysdep.h-headers.patch b/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0009-Add-header-guards-to-sysdep.h-headers.patch deleted file mode 100644 index 276fbb64..00000000 --- a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0009-Add-header-guards-to-sysdep.h-headers.patch +++ /dev/null @@ -1,138 +0,0 @@ -From 6d7277631963cebbb8d437cb1525643ade63e883 Mon Sep 17 00:00:00 2001 -From: Andrew Pinski <apinski@cavium.com> -Date: Mon, 27 Oct 2014 00:59:32 -0700 -Subject: [PATCH 09/32] Add header guards to sysdep.h headers. - -* sysdeps/aarch64/sysdep.h: Add header guards. - -[AARCH64] Remove 64 from some relocation names as they have been renamed in later versions of the spec. - -The AARCH64 elf ABI spec renamed some relocations removing 64 from the TLS -relocation names to make them constaint with the ILP32 named ones. - -* elf/elf.h (R_AARCH64_TLS_DTPMOD64): Rename to .. -(R_AARCH64_TLS_DTPMOD): This. -(R_AARCH64_TLS_DTPREL64): Rename to ... -(R_AARCH64_TLS_DTPREL): This. -(R_AARCH64_TLS_TPREL64): Rename to ... -(R_AARCH64_TLS_TPREL): This. -* sysdeps/aarch64/dl-machine.h (elf_machine_type_class): Update -R_AARCH64_TLS_DTPMOD64, R_AARCH64_TLS_DTPREL64, and R_AARCH64_TLS_TPREL64. -(elf_machine_rela): Likewise. - -[AARCH64] Fix pltenter and pltexit for ILP32. - -* sysdeps/aarch64/bits/link.h (la_aarch64_gnu_pltenter): Use -ElfW macro instead of hardcoded Elf64 types. ---- - elf/elf.h | 6 +++--- - sysdeps/aarch64/bits/link.h | 6 +++--- - sysdeps/aarch64/dl-machine.h | 12 ++++++------ - sysdeps/aarch64/sysdep.h | 5 +++++ - 4 files changed, 17 insertions(+), 12 deletions(-) - -diff --git a/elf/elf.h b/elf/elf.h -index 78815e8..0dbf52b 100644 ---- a/elf/elf.h -+++ b/elf/elf.h -@@ -2479,9 +2479,9 @@ typedef Elf32_Addr Elf32_Conflict; - #define R_AARCH64_GLOB_DAT 1025 /* Create GOT entry. */ - #define R_AARCH64_JUMP_SLOT 1026 /* Create PLT entry. */ - #define R_AARCH64_RELATIVE 1027 /* Adjust by program base. */ --#define R_AARCH64_TLS_DTPMOD64 1028 /* Module number, 64 bit. */ --#define R_AARCH64_TLS_DTPREL64 1029 /* Module-relative offset, 64 bit. */ --#define R_AARCH64_TLS_TPREL64 1030 /* TP-relative offset, 64 bit. */ -+#define R_AARCH64_TLS_DTPMOD 1028 /* Module number, 64 bit. */ -+#define R_AARCH64_TLS_DTPREL 1029 /* Module-relative offset, 64 bit. */ -+#define R_AARCH64_TLS_TPREL 1030 /* TP-relative offset, 64 bit. */ - #define R_AARCH64_TLSDESC 1031 /* TLS Descriptor. */ - #define R_AARCH64_IRELATIVE 1032 /* STT_GNU_IFUNC relocation. */ - -diff --git a/sysdeps/aarch64/bits/link.h b/sysdeps/aarch64/bits/link.h -index fe06827..3a84a18 100644 ---- a/sysdeps/aarch64/bits/link.h -+++ b/sysdeps/aarch64/bits/link.h -@@ -40,8 +40,8 @@ typedef struct La_aarch64_retval - } La_aarch64_retval; - __BEGIN_DECLS - --extern Elf64_Addr --la_aarch64_gnu_pltenter (Elf64_Sym *__sym, unsigned int __ndx, -+extern ElfW(Addr) -+la_aarch64_gnu_pltenter (ElfW(Sym) *__sym, unsigned int __ndx, - uintptr_t *__refcook, - uintptr_t *__defcook, - La_aarch64_regs *__regs, -@@ -50,7 +50,7 @@ la_aarch64_gnu_pltenter (Elf64_Sym *__sym, unsigned int __ndx, - long int *__framesizep); - - extern unsigned int --la_aarch64_gnu_pltexit (Elf64_Sym *__sym, unsigned int __ndx, -+la_aarch64_gnu_pltexit (ElfW(Sym) *__sym, unsigned int __ndx, - uintptr_t *__refcook, - uintptr_t *__defcook, - const La_aarch64_regs *__inregs, -diff --git a/sysdeps/aarch64/dl-machine.h b/sysdeps/aarch64/dl-machine.h -index 6615b8f..ebac353 100644 ---- a/sysdeps/aarch64/dl-machine.h -+++ b/sysdeps/aarch64/dl-machine.h -@@ -188,9 +188,9 @@ _dl_start_user: \n\ - - #define elf_machine_type_class(type) \ - ((((type) == R_AARCH64_JUMP_SLOT || \ -- (type) == R_AARCH64_TLS_DTPMOD64 || \ -- (type) == R_AARCH64_TLS_DTPREL64 || \ -- (type) == R_AARCH64_TLS_TPREL64 || \ -+ (type) == R_AARCH64_TLS_DTPMOD || \ -+ (type) == R_AARCH64_TLS_DTPREL || \ -+ (type) == R_AARCH64_TLS_TPREL || \ - (type) == R_AARCH64_TLSDESC) * ELF_RTYPE_CLASS_PLT) \ - | (((type) == R_AARCH64_COPY) * ELF_RTYPE_CLASS_COPY)) - -@@ -314,7 +314,7 @@ elf_machine_rela (struct link_map *map, const ElfW(Rela) *reloc, - break; - } - -- case R_AARCH64_TLS_DTPMOD64: -+ case R_AARCH64_TLS_DTPMOD: - #ifdef RTLD_BOOTSTRAP - *reloc_addr = 1; - #else -@@ -325,12 +325,12 @@ elf_machine_rela (struct link_map *map, const ElfW(Rela) *reloc, - #endif - break; - -- case R_AARCH64_TLS_DTPREL64: -+ case R_AARCH64_TLS_DTPREL: - if (sym) - *reloc_addr = sym->st_value + reloc->r_addend; - break; - -- case R_AARCH64_TLS_TPREL64: -+ case R_AARCH64_TLS_TPREL: - if (sym) - { - CHECK_STATIC_TLS (map, sym_map); -diff --git a/sysdeps/aarch64/sysdep.h b/sysdeps/aarch64/sysdep.h -index 7169ba7..af196f2 100644 ---- a/sysdeps/aarch64/sysdep.h -+++ b/sysdeps/aarch64/sysdep.h -@@ -16,6 +16,9 @@ - License along with the GNU C Library; if not, see - <http://www.gnu.org/licenses/>. */ - -+#ifndef _AARCH64_SYSDEP_H -+#define _AARCH64_SYSDEP_H -+ - #include <sysdeps/generic/sysdep.h> - - #ifdef __ASSEMBLER__ -@@ -96,3 +99,5 @@ - #define mcount _mcount - - #endif /* __ASSEMBLER__ */ -+ -+#endif /* _AARCH64_SYSDEP_H */ --- -1.9.3 - diff --git a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0010-Add-dynamic-ILP32-AARCH64-relocations-to-elf.h.patch b/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0010-Add-dynamic-ILP32-AARCH64-relocations-to-elf.h.patch deleted file mode 100644 index a8460339..00000000 --- a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0010-Add-dynamic-ILP32-AARCH64-relocations-to-elf.h.patch +++ /dev/null @@ -1,254 +0,0 @@ -From de15edafbc188af14eb53aaf2596429daf047b09 Mon Sep 17 00:00:00 2001 -From: Andrew Pinski <apinski@cavium.com> -Date: Mon, 27 Oct 2014 00:59:33 -0700 -Subject: [PATCH 10/32] Add dynamic ILP32 AARCH64 relocations to elf.h - -elf/elf.h (R_AARCH64_P32_ABS32, R_AARCH64_P32_COPY, -R_AARCH64_P32_GLOB_DAT, R_AARCH64_P32_JUMP_SLOT, -R_AARCH64_P32_RELATIVE, R_AARCH64_P32_TLS_DTPMOD, -R_AARCH64_P32_TLS_DTPREL, R_AARCH64_P32_TLS_TPREL, -R_AARCH64_P32_TLSDESC, R_AARCH64_P32_IRELATIVE): Define. - -[AARCH64] Use ELFW and ElfW macros instead of ELF64 and Elf64 names. - -* sysdeps/aarch64/dl-machine.h -(elf_machine_runtime_setup): Use ElfW(Addr). -(elf_machine_rela): Use ELFW(R_TYPE). -(elf_machine_lazy_rel): Likewise. - -[AARCH64] Introduce AARCH64_R so we can reuse the reloc code between ILP32 and LP64. - -* sysdeps/aarch64/sysdep.h (AARCH64_R): Define. -* sysdeps/aarch64/dl-irel.h: Include sysdep.h -(elf_irela): Use reloc names based on AARCH64_R. -* sysdeps/aarch64/dl-machine.h: Include sysdep.h -(elf_machine_type_class): Use reloc names based on AARCH64_R. -(elf_machine_rela): Likewise. -(elf_machine_lazy_rel): Likewise. ---- - elf/elf.h | 14 +++++++++++ - sysdeps/aarch64/dl-irel.h | 3 ++- - sysdeps/aarch64/dl-machine.h | 57 +++++++++++++++++++++++--------------------- - sysdeps/aarch64/sysdep.h | 6 +++++ - 4 files changed, 52 insertions(+), 28 deletions(-) - -diff --git a/elf/elf.h b/elf/elf.h -index 0dbf52b..030f398 100644 ---- a/elf/elf.h -+++ b/elf/elf.h -@@ -2362,6 +2362,20 @@ typedef Elf32_Addr Elf32_Conflict; - /* AArch64 relocs. */ - - #define R_AARCH64_NONE 0 /* No relocation. */ -+ -+/* ILP32 AARCH64 relocs. */ -+#define R_AARCH64_P32_ABS32 1 /* Direct 32 bit. */ -+#define R_AARCH64_P32_COPY 180 /* Copy symbol at runtime. */ -+#define R_AARCH64_P32_GLOB_DAT 181 /* Create GOT entry. */ -+#define R_AARCH64_P32_JUMP_SLOT 182 /* Create PLT entry. */ -+#define R_AARCH64_P32_RELATIVE 183 /* Adjust by program base. */ -+#define R_AARCH64_P32_TLS_DTPMOD 184 /* Module number, 32 bit. */ -+#define R_AARCH64_P32_TLS_DTPREL 185 /* Module-relative offset, 32 bit. */ -+#define R_AARCH64_P32_TLS_TPREL 186 /* TP-relative offset, 32 bit. */ -+#define R_AARCH64_P32_TLSDESC 187 /* TLS Descriptor. */ -+#define R_AARCH64_P32_IRELATIVE 188 /* STT_GNU_IFUNC relocation. */ -+ -+/* LP64 AARCH64 relocs. */ - #define R_AARCH64_ABS64 257 /* Direct 64 bit. */ - #define R_AARCH64_ABS32 258 /* Direct 32 bit. */ - #define R_AARCH64_ABS16 259 /* Direct 16-bit. */ -diff --git a/sysdeps/aarch64/dl-irel.h b/sysdeps/aarch64/dl-irel.h -index 78395ca..79964c2 100644 ---- a/sysdeps/aarch64/dl-irel.h -+++ b/sysdeps/aarch64/dl-irel.h -@@ -23,6 +23,7 @@ - #include <stdio.h> - #include <unistd.h> - #include <ldsodefs.h> -+#include <sysdep.h> - - #define ELF_MACHINE_IRELA 1 - -@@ -40,7 +41,7 @@ elf_irela (const ElfW(Rela) *reloc) - ElfW(Addr) *const reloc_addr = (void *) reloc->r_offset; - const unsigned long int r_type = ELFW(R_TYPE) (reloc->r_info); - -- if (__glibc_likely (r_type == R_AARCH64_IRELATIVE)) -+ if (__glibc_likely (r_type == AARCH64_R(IRELATIVE))) - { - ElfW(Addr) value = elf_ifunc_invoke (reloc->r_addend); - *reloc_addr = value; -diff --git a/sysdeps/aarch64/dl-machine.h b/sysdeps/aarch64/dl-machine.h -index ebac353..4317669 100644 ---- a/sysdeps/aarch64/dl-machine.h -+++ b/sysdeps/aarch64/dl-machine.h -@@ -21,6 +21,7 @@ - - #define ELF_MACHINE_NAME "aarch64" - -+#include <sysdep.h> - #include <tls.h> - #include <dl-tlsdesc.h> - #include <dl-irel.h> -@@ -113,8 +114,8 @@ elf_machine_runtime_setup (struct link_map *l, int lazy, int profile) - } - - if (l->l_info[ADDRIDX (DT_TLSDESC_GOT)] && lazy) -- *(Elf64_Addr*)(D_PTR (l, l_info[ADDRIDX (DT_TLSDESC_GOT)]) + l->l_addr) -- = (Elf64_Addr) &_dl_tlsdesc_resolve_rela; -+ *(ElfW(Addr)*)(D_PTR (l, l_info[ADDRIDX (DT_TLSDESC_GOT)]) + l->l_addr) -+ = (ElfW(Addr)) &_dl_tlsdesc_resolve_rela; - - return lazy; - } -@@ -186,15 +187,15 @@ _dl_start_user: \n\ - br x21 \n\ - "); - --#define elf_machine_type_class(type) \ -- ((((type) == R_AARCH64_JUMP_SLOT || \ -- (type) == R_AARCH64_TLS_DTPMOD || \ -- (type) == R_AARCH64_TLS_DTPREL || \ -- (type) == R_AARCH64_TLS_TPREL || \ -- (type) == R_AARCH64_TLSDESC) * ELF_RTYPE_CLASS_PLT) \ -- | (((type) == R_AARCH64_COPY) * ELF_RTYPE_CLASS_COPY)) -+#define elf_machine_type_class(type) \ -+ ((((type) == AARCH64_R(JUMP_SLOT) || \ -+ (type) == AARCH64_R(TLS_DTPMOD) || \ -+ (type) == AARCH64_R(TLS_DTPREL) || \ -+ (type) == AARCH64_R(TLS_TPREL) || \ -+ (type) == AARCH64_R(TLSDESC)) * ELF_RTYPE_CLASS_PLT) \ -+ | (((type) == AARCH64_R(COPY)) * ELF_RTYPE_CLASS_COPY)) - --#define ELF_MACHINE_JMP_SLOT R_AARCH64_JUMP_SLOT -+#define ELF_MACHINE_JMP_SLOT AARCH64_R(JUMP_SLOT) - - /* AArch64 uses RELA not REL */ - #define ELF_MACHINE_NO_REL 1 -@@ -233,9 +234,9 @@ elf_machine_rela (struct link_map *map, const ElfW(Rela) *reloc, - void *const reloc_addr_arg, int skip_ifunc) - { - ElfW(Addr) *const reloc_addr = reloc_addr_arg; -- const unsigned int r_type = ELF64_R_TYPE (reloc->r_info); -+ const unsigned int r_type = ELFW(R_TYPE) (reloc->r_info); - -- if (__builtin_expect (r_type == R_AARCH64_RELATIVE, 0)) -+ if (__builtin_expect (r_type == AARCH64_R(RELATIVE), 0)) - *reloc_addr = map->l_addr + reloc->r_addend; - else if (__builtin_expect (r_type == R_AARCH64_NONE, 0)) - return; -@@ -253,7 +254,7 @@ elf_machine_rela (struct link_map *map, const ElfW(Rela) *reloc, - - switch (r_type) - { -- case R_AARCH64_COPY: -+ case AARCH64_R(COPY): - if (sym == NULL) - break; - -@@ -271,15 +272,17 @@ elf_machine_rela (struct link_map *map, const ElfW(Rela) *reloc, - MIN (sym->st_size, refsym->st_size)); - break; - -- case R_AARCH64_RELATIVE: -- case R_AARCH64_GLOB_DAT: -- case R_AARCH64_JUMP_SLOT: -- case R_AARCH64_ABS32: -- case R_AARCH64_ABS64: -+ case AARCH64_R(RELATIVE): -+ case AARCH64_R(GLOB_DAT): -+ case AARCH64_R(JUMP_SLOT): -+ case AARCH64_R(ABS32): -+#ifdef __LP64__ -+ case AARCH64_R(ABS64): -+#endif - *reloc_addr = value + reloc->r_addend; - break; - -- case R_AARCH64_TLSDESC: -+ case AARCH64_R(TLSDESC): - { - struct tlsdesc volatile *td = - (struct tlsdesc volatile *)reloc_addr; -@@ -314,7 +317,7 @@ elf_machine_rela (struct link_map *map, const ElfW(Rela) *reloc, - break; - } - -- case R_AARCH64_TLS_DTPMOD: -+ case AARCH64_R(TLS_DTPMOD): - #ifdef RTLD_BOOTSTRAP - *reloc_addr = 1; - #else -@@ -325,12 +328,12 @@ elf_machine_rela (struct link_map *map, const ElfW(Rela) *reloc, - #endif - break; - -- case R_AARCH64_TLS_DTPREL: -+ case AARCH64_R(TLS_DTPREL): - if (sym) - *reloc_addr = sym->st_value + reloc->r_addend; - break; - -- case R_AARCH64_TLS_TPREL: -+ case AARCH64_R(TLS_TPREL): - if (sym) - { - CHECK_STATIC_TLS (map, sym_map); -@@ -339,7 +342,7 @@ elf_machine_rela (struct link_map *map, const ElfW(Rela) *reloc, - } - break; - -- case R_AARCH64_IRELATIVE: -+ case AARCH64_R(IRELATIVE): - value = map->l_addr + reloc->r_addend; - value = elf_ifunc_invoke (value); - *reloc_addr = value; -@@ -370,16 +373,16 @@ elf_machine_lazy_rel (struct link_map *map, - int skip_ifunc) - { - ElfW(Addr) *const reloc_addr = (void *) (l_addr + reloc->r_offset); -- const unsigned int r_type = ELF64_R_TYPE (reloc->r_info); -+ const unsigned int r_type = ELFW(R_TYPE) (reloc->r_info); - /* Check for unexpected PLT reloc type. */ -- if (__builtin_expect (r_type == R_AARCH64_JUMP_SLOT, 1)) -+ if (__builtin_expect (r_type == AARCH64_R(JUMP_SLOT), 1)) - { - if (__builtin_expect (map->l_mach.plt, 0) == 0) - *reloc_addr += l_addr; - else - *reloc_addr = map->l_mach.plt; - } -- else if (__builtin_expect (r_type == R_AARCH64_TLSDESC, 1)) -+ else if (__builtin_expect (r_type == AARCH64_R(TLSDESC), 1)) - { - struct tlsdesc volatile *td = - (struct tlsdesc volatile *)reloc_addr; -@@ -388,7 +391,7 @@ elf_machine_lazy_rel (struct link_map *map, - td->entry = (void*)(D_PTR (map, l_info[ADDRIDX (DT_TLSDESC_PLT)]) - + map->l_addr); - } -- else if (__glibc_unlikely (r_type == R_AARCH64_IRELATIVE)) -+ else if (__glibc_unlikely (r_type == AARCH64_R(IRELATIVE))) - { - ElfW(Addr) value = map->l_addr + reloc->r_addend; - if (__glibc_likely (!skip_ifunc)) -diff --git a/sysdeps/aarch64/sysdep.h b/sysdeps/aarch64/sysdep.h -index af196f2..55d1759 100644 ---- a/sysdeps/aarch64/sysdep.h -+++ b/sysdeps/aarch64/sysdep.h -@@ -21,6 +21,12 @@ - - #include <sysdeps/generic/sysdep.h> - -+#ifdef __LP64__ -+#define AARCH64_R(NAME) R_AARCH64_ ## NAME -+#else -+#define AARCH64_R(NAME) R_AARCH64_P32_ ## NAME -+#endif -+ - #ifdef __ASSEMBLER__ - - /* Syntactic details of assembler. */ --- -1.9.3 - diff --git a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0011-Add-PTR_REG-PTR_LOG_SIZE-and-PTR_SIZE.-Use-it-in-LDS.patch b/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0011-Add-PTR_REG-PTR_LOG_SIZE-and-PTR_SIZE.-Use-it-in-LDS.patch deleted file mode 100644 index eede9b92..00000000 --- a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0011-Add-PTR_REG-PTR_LOG_SIZE-and-PTR_SIZE.-Use-it-in-LDS.patch +++ /dev/null @@ -1,159 +0,0 @@ -From 25170f4bf230293bb299052ed57fa51f9c121a64 Mon Sep 17 00:00:00 2001 -From: Andrew Pinski <apinski@cavium.com> -Date: Mon, 27 Oct 2014 00:59:34 -0700 -Subject: [PATCH 11/32] Add PTR_REG, PTR_LOG_SIZE, and PTR_SIZE. Use it in - LDST_PCREL and LDST_GLOBAL. - -This patch adds a few extra macros which are useful for ILP32 and updates -PTR_MANGLE and PTR_DEMANGLE to use the some of the new macros. - -* sysdeps/aarch64/sysdep.h (PTR_REG): New macro. -(PTR_LOG_SIZE): New macro. -(PTR_SIZE): New macro. -(LDST_PCREL): Use arguments as register numbers rather register names. -Use PTR_REG for the register when loading. -* sysdeps/unix/sysv/linux/aarch64/sysdep.h (PTR_MANGLE): Add a comment -about that the arguments are register numbers rather register names. -(PTR_DEMANGLE): Likewise. -* sysdeps/aarch64/__longjmp.S (__longjmp): Update calls to PTR_DEMANGLE. -* sysdeps/aarch64/setjmp.S (__sigsetjmp): Update calls to PTR_MANGLE. ---- - sysdeps/aarch64/__longjmp.S | 4 ++-- - sysdeps/aarch64/setjmp.S | 4 ++-- - sysdeps/aarch64/sysdep.h | 28 ++++++++++++++++++---------- - sysdeps/unix/sysv/linux/aarch64/sysdep.h | 8 ++++++-- - 4 files changed, 28 insertions(+), 16 deletions(-) - -diff --git a/sysdeps/aarch64/__longjmp.S b/sysdeps/aarch64/__longjmp.S -index 1bb7be36..e1a1cf2 100644 ---- a/sysdeps/aarch64/__longjmp.S -+++ b/sysdeps/aarch64/__longjmp.S -@@ -53,7 +53,7 @@ ENTRY (__longjmp) - ldp x27, x28, [x0, #JB_X27<<3] - #ifdef PTR_DEMANGLE - ldp x29, x4, [x0, #JB_X29<<3] -- PTR_DEMANGLE (x30, x4, x3, x2) -+ PTR_DEMANGLE (30, 4, 3, 2) - #else - ldp x29, x30, [x0, #JB_X29<<3] - #endif -@@ -98,7 +98,7 @@ ENTRY (__longjmp) - cfi_same_value(d15) - #ifdef PTR_DEMANGLE - ldr x4, [x0, #JB_SP<<3] -- PTR_DEMANGLE (x5, x4, x3, x2) -+ PTR_DEMANGLE (5, 4, 3, 2) - #else - ldr x5, [x0, #JB_SP<<3] - #endif -diff --git a/sysdeps/aarch64/setjmp.S b/sysdeps/aarch64/setjmp.S -index d548dd5..41d5321 100644 ---- a/sysdeps/aarch64/setjmp.S -+++ b/sysdeps/aarch64/setjmp.S -@@ -42,7 +42,7 @@ ENTRY (__sigsetjmp) - stp x27, x28, [x0, #JB_X27<<3] - - #ifdef PTR_MANGLE -- PTR_MANGLE (x4, x30, x3, x2) -+ PTR_MANGLE (4, 30, 3, 2) - stp x29, x4, [x0, #JB_X29<<3] - #else - stp x29, x30, [x0, #JB_X29<<3] -@@ -57,7 +57,7 @@ ENTRY (__sigsetjmp) - stp d14, d15, [x0, #JB_D14<<3] - #ifdef PTR_MANGLE - mov x4, sp -- PTR_MANGLE (x5, x4, x3, x2) -+ PTR_MANGLE (5, 4, 3, 2) - str x5, [x0, #JB_SP<<3] - #else - mov x2, sp -diff --git a/sysdeps/aarch64/sysdep.h b/sysdeps/aarch64/sysdep.h -index 55d1759..ab2ee91 100644 ---- a/sysdeps/aarch64/sysdep.h -+++ b/sysdeps/aarch64/sysdep.h -@@ -23,10 +23,16 @@ - - #ifdef __LP64__ - #define AARCH64_R(NAME) R_AARCH64_ ## NAME -+#define PTR_REG(n) x##n -+#define PTR_LOG_SIZE 3 - #else - #define AARCH64_R(NAME) R_AARCH64_P32_ ## NAME -+#define PTR_REG(n) w##n -+#define PTR_LOG_SIZE 2 - #endif - -+#define PTR_SIZE (1<<PTR_LOG_SIZE) -+ - #ifdef __ASSEMBLER__ - - /* Syntactic details of assembler. */ -@@ -87,16 +93,18 @@ - # define L(name) .L##name - #endif - --/* Load or store to/from a pc-relative EXPR into/from R, using T. */ --#define LDST_PCREL(OP, R, T, EXPR) \ -- adrp T, EXPR; \ -- OP R, [T, #:lo12:EXPR];\ -- --/* Load or store to/from a got-relative EXPR into/from R, using T. */ --#define LDST_GLOBAL(OP, R, T, EXPR) \ -- adrp T, :got:EXPR; \ -- ldr T, [T, #:got_lo12:EXPR];\ -- OP R, [T]; -+/* Load or store to/from a pc-relative EXPR into/from R, using T. -+ Note R and T are register numbers and not register names. */ -+#define LDST_PCREL(OP, R, T, EXPR) \ -+ adrp x##T, EXPR; \ -+ OP PTR_REG (R), [x##T, #:lo12:EXPR]; \ -+ -+/* Load or store to/from a got-relative EXPR into/from R, using T. -+ Note R and T are register numbers and not register names. */ -+#define LDST_GLOBAL(OP, R, T, EXPR) \ -+ adrp x##T, :got:EXPR; \ -+ ldr PTR_REG (T), [x##T, #:got_lo12:EXPR]; \ -+ OP x##R, [x##T]; - - /* Since C identifiers are not normally prefixed with an underscore - on this system, the asm identifier `syscall_error' intrudes on the -diff --git a/sysdeps/unix/sysv/linux/aarch64/sysdep.h b/sysdeps/unix/sysv/linux/aarch64/sysdep.h -index 84999f1..fc31661 100644 ---- a/sysdeps/unix/sysv/linux/aarch64/sysdep.h -+++ b/sysdeps/unix/sysv/linux/aarch64/sysdep.h -@@ -313,12 +313,14 @@ - (!defined SHARED && (!defined NOT_IN_libc \ - || defined IS_IN_libpthread))) - # ifdef __ASSEMBLER__ -+/* Note, dst, src, guard, and tmp are all register numbers rather than -+ register names so they will work with both ILP32 and LP64. */ - # define PTR_MANGLE(dst, src, guard, tmp) \ - LDST_PCREL (ldr, guard, tmp, C_SYMBOL_NAME(__pointer_chk_guard_local)); \ - PTR_MANGLE2 (dst, src, guard) - /* Use PTR_MANGLE2 for efficiency if guard is already loaded. */ - # define PTR_MANGLE2(dst, src, guard)\ -- eor dst, src, guard -+ eor x##dst, x##src, x##guard - # define PTR_DEMANGLE(dst, src, guard, tmp)\ - PTR_MANGLE (dst, src, guard, tmp) - # define PTR_DEMANGLE2(dst, src, guard)\ -@@ -331,12 +333,14 @@ extern uintptr_t __pointer_chk_guard_local attribute_relro attribute_hidden; - # endif - #else - # ifdef __ASSEMBLER__ -+/* Note, dst, src, guard, and tmp are all register numbers rather than -+ register names so they will work with both ILP32 and LP64. */ - # define PTR_MANGLE(dst, src, guard, tmp) \ - LDST_GLOBAL (ldr, guard, tmp, C_SYMBOL_NAME(__pointer_chk_guard)); \ - PTR_MANGLE2 (dst, src, guard) - /* Use PTR_MANGLE2 for efficiency if guard is already loaded. */ - # define PTR_MANGLE2(dst, src, guard)\ -- eor dst, src, guard -+ eor x##dst, x##src, x##guard - # define PTR_DEMANGLE(dst, src, guard, tmp)\ - PTR_MANGLE (dst, src, guard, tmp) - # define PTR_DEMANGLE2(dst, src, guard)\ --- -1.9.3 - diff --git a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0012-Use-PTR_REG-in-crti.S.patch b/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0012-Use-PTR_REG-in-crti.S.patch deleted file mode 100644 index f66dbaef..00000000 --- a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0012-Use-PTR_REG-in-crti.S.patch +++ /dev/null @@ -1,189 +0,0 @@ -From 94a5e91090a72bf323b0cf9474a92e9e32e67cc1 Mon Sep 17 00:00:00 2001 -From: Andrew Pinski <apinski@cavium.com> -Date: Mon, 27 Oct 2014 00:59:35 -0700 -Subject: [PATCH 12/32] Use PTR_REG in crti.S. - -call_weak_fn loads from a pointer, so use PTR_REG so the load -is 32bits for ILP32. - -* sysdeps/aarch64/crti.S: Include sysdep.h -(call_weak_fn): Use PTR_REG when loading from -PREINIT_FUNCTION. - -AARCH64: Make RTLD_START paramatizable - -Make RTLD_START paramatizable for ILP32 and LP64 usage and provides common -code between ILP32. - -* sysdeps/aarch64/dl-machine.h (RTLD_START): Rename to ... -(RTLD_START_1): This and add PTR, PTR_SIZE_LOG, and PTR_SP arguments. -(RTLD_START): New macro which uses RTLD_START_1. ---- - sysdeps/aarch64/crti.S | 3 +- - sysdeps/aarch64/dl-machine.h | 128 ++++++++++++++++++++++--------------------- - 2 files changed, 69 insertions(+), 62 deletions(-) - -diff --git a/sysdeps/aarch64/crti.S b/sysdeps/aarch64/crti.S -index 2db7b67..d31bb50 100644 ---- a/sysdeps/aarch64/crti.S -+++ b/sysdeps/aarch64/crti.S -@@ -39,6 +39,7 @@ - they can be called as functions. The symbols _init and _fini are - magic and cause the linker to emit DT_INIT and DT_FINI. */ - -+#include <sysdep.h> - #include <libc-symbols.h> - - #ifndef PREINIT_FUNCTION -@@ -60,7 +61,7 @@ - .type call_weak_fn, %function - call_weak_fn: - adrp x0, :got:PREINIT_FUNCTION -- ldr x0, [x0, #:got_lo12:PREINIT_FUNCTION] -+ ldr PTR_REG(0), [x0, #:got_lo12:PREINIT_FUNCTION] - cbz x0, 1f - b PREINIT_FUNCTION - 1: -diff --git a/sysdeps/aarch64/dl-machine.h b/sysdeps/aarch64/dl-machine.h -index 4317669..6e041b1 100644 ---- a/sysdeps/aarch64/dl-machine.h -+++ b/sysdeps/aarch64/dl-machine.h -@@ -123,68 +123,74 @@ elf_machine_runtime_setup (struct link_map *l, int lazy, int profile) - /* Initial entry point for the dynamic linker. The C function - _dl_start is the real entry point, its return value is the user - program's entry point */ -+#ifdef __LP64__ -+#define RTLD_START RTLD_START_1("x", "3", "sp") -+#else -+#define RTLD_START RTLD_START_1("w", "2", "wsp") -+#endif -+ - --#define RTLD_START asm ("\ --.text \n\ --.globl _start \n\ --.type _start, %function \n\ --.globl _dl_start_user \n\ --.type _dl_start_user, %function \n\ --_start: \n\ -- mov x0, sp \n\ -- bl _dl_start \n\ -- // returns user entry point in x0 \n\ -- mov x21, x0 \n\ --_dl_start_user: \n\ -- // get the original arg count \n\ -- ldr x1, [sp] \n\ -- // get the argv address \n\ -- add x2, sp, #8 \n\ -- // get _dl_skip_args to see if we were \n\ -- // invoked as an executable \n\ -- adrp x4, _dl_skip_args \n\ -- ldr w4, [x4, #:lo12:_dl_skip_args] \n\ -- // do we need to adjust argc/argv \n\ -- cmp w4, 0 \n\ -- beq .L_done_stack_adjust \n\ -- // subtract _dl_skip_args from original arg count \n\ -- sub x1, x1, x4 \n\ -- // store adjusted argc back to stack \n\ -- str x1, [sp] \n\ -- // find the first unskipped argument \n\ -- mov x3, x2 \n\ -- add x4, x2, x4, lsl #3 \n\ -- // shuffle argv down \n\ --1: ldr x5, [x4], #8 \n\ -- str x5, [x3], #8 \n\ -- cmp x5, #0 \n\ -- bne 1b \n\ -- // shuffle envp down \n\ --1: ldr x5, [x4], #8 \n\ -- str x5, [x3], #8 \n\ -- cmp x5, #0 \n\ -- bne 1b \n\ -- // shuffle auxv down \n\ --1: ldp x0, x5, [x4, #16]! \n\ -- stp x0, x5, [x3], #16 \n\ -- cmp x0, #0 \n\ -- bne 1b \n\ -- // Update _dl_argv \n\ -- adrp x3, _dl_argv \n\ -- str x2, [x3, #:lo12:_dl_argv] \n\ --.L_done_stack_adjust: \n\ -- // compute envp \n\ -- add x3, x2, x1, lsl #3 \n\ -- add x3, x3, #8 \n\ -- adrp x16, _rtld_local \n\ -- add x16, x16, #:lo12:_rtld_local \n\ -- ldr x0, [x16] \n\ -- bl _dl_init_internal \n\ -- // load the finalizer function \n\ -- adrp x0, _dl_fini \n\ -- add x0, x0, #:lo12:_dl_fini \n\ -- // jump to the user_s entry point \n\ -- br x21 \n\ -+#define RTLD_START_1(PTR, PTR_SIZE_LOG, PTR_SP) asm ("\ -+.text \n\ -+.globl _start \n\ -+.type _start, %function \n\ -+.globl _dl_start_user \n\ -+.type _dl_start_user, %function \n\ -+_start: \n\ -+ mov " PTR "0, " PTR_SP " \n\ -+ bl _dl_start \n\ -+ // returns user entry point in x0 \n\ -+ mov x21, x0 \n\ -+_dl_start_user: \n\ -+ // get the original arg count \n\ -+ ldr " PTR "1, [sp] \n\ -+ // get the argv address \n\ -+ add " PTR "2, " PTR_SP ", #(1<<" PTR_SIZE_LOG ") \n\ -+ // get _dl_skip_args to see if we were \n\ -+ // invoked as an executable \n\ -+ adrp x4, _dl_skip_args \n\ -+ ldr w4, [x4, #:lo12:_dl_skip_args] \n\ -+ // do we need to adjust argc/argv \n\ -+ cmp w4, 0 \n\ -+ beq .L_done_stack_adjust \n\ -+ // subtract _dl_skip_args from original arg count \n\ -+ sub " PTR "1, " PTR "1, " PTR "4 \n\ -+ // store adjusted argc back to stack \n\ -+ str " PTR "1, [sp] \n\ -+ // find the first unskipped argument \n\ -+ mov " PTR "3, " PTR "2 \n\ -+ add " PTR "4, " PTR "2, " PTR "4, lsl #" PTR_SIZE_LOG " \n\ -+ // shuffle argv down \n\ -+1: ldr " PTR "5, [x4], #(1<<" PTR_SIZE_LOG ") \n\ -+ str " PTR "5, [x3], #(1<<" PTR_SIZE_LOG ") \n\ -+ cmp " PTR "5, #0 \n\ -+ bne 1b \n\ -+ // shuffle envp down \n\ -+1: ldr " PTR "5, [x4], #(1<<" PTR_SIZE_LOG ") \n\ -+ str " PTR "5, [x3], #(1<<" PTR_SIZE_LOG ") \n\ -+ cmp " PTR "5, #0 \n\ -+ bne 1b \n\ -+ // shuffle auxv down \n\ -+1: ldp " PTR "0, " PTR "5, [x4, #(2<<" PTR_SIZE_LOG ")]! \n\ -+ stp " PTR "0, " PTR "5, [x3], #(2<<" PTR_SIZE_LOG ") \n\ -+ cmp " PTR "0, #0 \n\ -+ bne 1b \n\ -+ // Update _dl_argv \n\ -+ adrp x3, _dl_argv \n\ -+ str " PTR "2, [x3, #:lo12:_dl_argv] \n\ -+.L_done_stack_adjust: \n\ -+ // compute envp \n\ -+ add " PTR "3, " PTR "2, " PTR "1, lsl #" PTR_SIZE_LOG " \n\ -+ add " PTR "3, " PTR "3, #(1<<" PTR_SIZE_LOG ") \n\ -+ adrp x16, _rtld_local \n\ -+ add " PTR "16, " PTR "16, #:lo12:_rtld_local \n\ -+ ldr " PTR "0, [x16] \n\ -+ bl _dl_init_internal \n\ -+ // load the finalizer function \n\ -+ adrp x0, _dl_fini \n\ -+ add " PTR "0, " PTR "0, #:lo12:_dl_fini \n\ -+ // jump to the user_s entry point \n\ -+ br x21 \n\ - "); - - #define elf_machine_type_class(type) \ --- -1.9.3 - diff --git a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0013-Use-PTR_REG-PTR_SIZE-PTR_SIZE_LOG-in-dl-tlsesc.S.patch b/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0013-Use-PTR_REG-PTR_SIZE-PTR_SIZE_LOG-in-dl-tlsesc.S.patch deleted file mode 100644 index f13edaee..00000000 --- a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0013-Use-PTR_REG-PTR_SIZE-PTR_SIZE_LOG-in-dl-tlsesc.S.patch +++ /dev/null @@ -1,111 +0,0 @@ -From 8d07ca317ccac9d2f40c253c7e10f50abcb35b1d Mon Sep 17 00:00:00 2001 -From: Andrew Pinski <apinski@cavium.com> -Date: Mon, 27 Oct 2014 00:59:36 -0700 -Subject: [PATCH 13/32] Use PTR_REG/PTR_SIZE/PTR_SIZE_LOG in dl-tlsesc.S - -This converts dl-tlsdesc.S code over to use the new macros which allows for -sharing between ILP32 and LP64 code. - -* sysdeps/aarch64/dl-tlsdesc.S (_dl_tlsdesc_return): Use PTR_REG. -(_dl_tlsdesc_undefweak): Use PTR_REG, PTR_SIZE. -(_dl_tlsdesc_dynamic): Likewise. -(_dl_tlsdesc_resolve_rela): Likewise. -(_dl_tlsdesc_resolve_hold): Likewise. ---- - sysdeps/aarch64/dl-tlsdesc.S | 36 ++++++++++++++++++------------------ - 1 file changed, 18 insertions(+), 18 deletions(-) - -diff --git a/sysdeps/aarch64/dl-tlsdesc.S b/sysdeps/aarch64/dl-tlsdesc.S -index ded5471..6004115 100644 ---- a/sysdeps/aarch64/dl-tlsdesc.S -+++ b/sysdeps/aarch64/dl-tlsdesc.S -@@ -74,7 +74,7 @@ - cfi_startproc - .align 2 - _dl_tlsdesc_return: -- ldr x0, [x0, #8] -+ ldr PTR_REG (0), [x0, #PTR_SIZE] - RET - cfi_endproc - .size _dl_tlsdesc_return, .-_dl_tlsdesc_return -@@ -96,9 +96,9 @@ _dl_tlsdesc_return: - _dl_tlsdesc_undefweak: - str x1, [sp, #-16]! - cfi_adjust_cfa_offset(16) -- ldr x0, [x0, #8] -+ ldr PTR_REG (0), [x0, #PTR_SIZE] - mrs x1, tpidr_el0 -- sub x0, x0, x1 -+ sub PTR_REG (0), PTR_REG (0), PTR_REG (1) - ldr x1, [sp], #16 - cfi_adjust_cfa_offset(16) - RET -@@ -152,20 +152,20 @@ _dl_tlsdesc_dynamic: - stp x3, x4, [sp, #32+16*1] - - mrs x4, tpidr_el0 -- ldr x1, [x0,#8] -- ldr x0, [x4] -- ldr x3, [x1,#16] -- ldr x2, [x0] -- cmp x3, x2 -+ ldr PTR_REG (1), [x0,#PTR_SIZE] -+ ldr PTR_REG (0), [x4] -+ ldr PTR_REG (3), [x1,#(PTR_SIZE * 2)] -+ ldr PTR_REG (2), [x0] -+ cmp PTR_REG (3), PTR_REG (2) - b.hi 2f -- ldr x2, [x1] -- add x0, x0, x2, lsl #4 -- ldr x0, [x0] -+ ldr PTR_REG (2), [x1] -+ add PTR_REG (0), PTR_REG (0), PTR_REG (2), lsl #(PTR_LOG_SIZE + 1) -+ ldr PTR_REG (0), [x0] - cmn x0, #0x1 - b.eq 2f -- ldr x1, [x1,#8] -- add x0, x0, x1 -- sub x0, x0, x4 -+ ldr PTR_REG (1), [x1,#(PTR_SIZE * 2)] -+ add PTR_REG (0), PTR_REG (0), PTR_REG (1) -+ sub PTR_REG (0), PTR_REG (0), PTR_REG (4) - 1: - ldp x1, x2, [sp, #32+16*0] - ldp x3, x4, [sp, #32+16*1] -@@ -196,7 +196,7 @@ _dl_tlsdesc_dynamic: - bl __tls_get_addr - - mrs x1, tpidr_el0 -- sub x0, x0, x1 -+ sub PTR_REG (0), PTR_REG (0), PTR_REG (1) - - RESTORE_Q_REGISTERS - -@@ -242,13 +242,13 @@ _dl_tlsdesc_resolve_rela: - - SAVE_Q_REGISTERS - -- ldr x1, [x3, #8] -+ ldr PTR_REG (1), [x3, #PTR_SIZE] - bl _dl_tlsdesc_resolve_rela_fixup - - RESTORE_Q_REGISTERS - - ldr x0, [sp, #32+16*8] -- ldr x1, [x0] -+ ldr PTR_REG (1), [x0] - blr x1 - - ldp x1, x4, [sp, #32+16*0] -@@ -309,7 +309,7 @@ _dl_tlsdesc_resolve_hold: - RESTORE_Q_REGISTERS - - ldr x0, [sp, #32+16*9] -- ldr x1, [x0] -+ ldr PTR_REG (1), [x0] - blr x1 - - ldp x1, x2, [sp, #32+16*0] --- -1.9.3 - diff --git a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0014-Use-PTR_-macros-in-dl-trampoline.S.patch b/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0014-Use-PTR_-macros-in-dl-trampoline.S.patch deleted file mode 100644 index 9cac0529..00000000 --- a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0014-Use-PTR_-macros-in-dl-trampoline.S.patch +++ /dev/null @@ -1,94 +0,0 @@ -From 25ef3412785db87247df900fc80a17d884ced522 Mon Sep 17 00:00:00 2001 -From: Andrew Pinski <apinski@cavium.com> -Date: Mon, 27 Oct 2014 00:59:37 -0700 -Subject: [PATCH 14/32] Use PTR_* macros in dl-trampoline.S - -Use the PTR_* macros in dl-trampoline.S so it can be used for -both ILP32 and LP64. Also add a comment about what was an magic number -(the size of the rela relocation entries). - -* sysdeps/aarch64/dl-trampoline.S (ip0l): New define. -(RELA_SIZE): New define. -(_dl_runtime_resolve): Use PTR_REG, PTR_SIZE. -(_dl_runtime_profile): Likewise. Use RELA_SIZE and ip0l. ---- - sysdeps/aarch64/dl-trampoline.S | 18 +++++++++++------- - 1 file changed, 11 insertions(+), 7 deletions(-) - -diff --git a/sysdeps/aarch64/dl-trampoline.S b/sysdeps/aarch64/dl-trampoline.S -index 2037f18..22b28ce 100644 ---- a/sysdeps/aarch64/dl-trampoline.S -+++ b/sysdeps/aarch64/dl-trampoline.S -@@ -22,9 +22,13 @@ - #include "dl-link.h" - - #define ip0 x16 -+#define ip0l PTR_REG (16) - #define ip1 x17 - #define lr x30 - -+/* RELA relocatons are 3 pointers */ -+#define RELA_SIZE (PTR_SIZE * 3) -+ - .text - .globl _dl_runtime_resolve - .type _dl_runtime_resolve, #function -@@ -79,7 +83,7 @@ _dl_runtime_resolve: - cfi_rel_offset (q1, 80+7*16) - - /* Get pointer to linker struct. */ -- ldr x0, [ip0, #-8] -+ ldr PTR_REG (0), [ip0, #-PTR_SIZE] - - /* Prepare to call _dl_fixup(). */ - ldr x1, [sp, 80+8*16] /* Recover &PLTGOT[n] */ -@@ -87,7 +91,7 @@ _dl_runtime_resolve: - sub x1, x1, ip0 - add x1, x1, x1, lsl #1 - lsl x1, x1, #3 -- sub x1, x1, #192 -+ sub x1, x1, #(RELA_SIZE<<3) - lsr x1, x1, #3 - - /* Call fixup routine. */ -@@ -191,7 +195,7 @@ _dl_runtime_profile: - stp x0, x1, [x29, #OFFSET_RG + DL_OFFSET_RG_SP] - - /* Get pointer to linker struct. */ -- ldr x0, [ip0, #-8] -+ ldr PTR_REG (0), [ip0, #-PTR_SIZE] - - /* Prepare to call _dl_profile_fixup(). */ - ldr x1, [x29, OFFSET_PLTGOTN] /* Recover &PLTGOT[n] */ -@@ -199,7 +203,7 @@ _dl_runtime_profile: - sub x1, x1, ip0 - add x1, x1, x1, lsl #1 - lsl x1, x1, #3 -- sub x1, x1, #192 -+ sub x1, x1, #(RELA_SIZE<<3) - lsr x1, x1, #3 - - stp x0, x1, [x29, #OFFSET_SAVED_CALL_X0] -@@ -210,8 +214,8 @@ _dl_runtime_profile: - add x4, x29, #OFFSET_FS /* address of framesize */ - bl _dl_profile_fixup - -- ldr ip0, [x29, #OFFSET_FS] /* framesize == 0 */ -- cmp ip0, #0 -+ ldr ip0l, [x29, #OFFSET_FS] /* framesize == 0 */ -+ cmp ip0l, #0 - bge 1f - cfi_remember_state - -@@ -243,7 +247,7 @@ _dl_runtime_profile: - 1: - /* The new frame size is in ip0. */ - -- sub x1, x29, ip0 -+ sub PTR_REG (1), PTR_REG (29), ip0l - and sp, x1, #0xfffffffffffffff0 - - str x0, [x29, #OFFSET_T1] --- -1.9.3 - diff --git a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0015-Use-PTR_-in-start.S.patch b/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0015-Use-PTR_-in-start.S.patch deleted file mode 100644 index 36e4161e..00000000 --- a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0015-Use-PTR_-in-start.S.patch +++ /dev/null @@ -1,75 +0,0 @@ -From 67c890fd7f5d830a433399df6e033fe866c851d0 Mon Sep 17 00:00:00 2001 -From: Andrew Pinski <apinski@cavium.com> -Date: Mon, 27 Oct 2014 00:59:38 -0700 -Subject: [PATCH 15/32] Use PTR_* in start.S - -To support ILP32 without much sources changes, this changes -sysdeps/aarch64/start.S to use the PTR_* macros which was defined -earlier. - -* sysdeps/aarch64/start.S: Include sysdep.h -(_start): Use PTR_REG, PTR_SIZE macros. ---- - sysdeps/aarch64/start.S | 20 +++++++++++--------- - 1 file changed, 11 insertions(+), 9 deletions(-) - -diff --git a/sysdeps/aarch64/start.S b/sysdeps/aarch64/start.S -index 35d603a..dfa0622 100644 ---- a/sysdeps/aarch64/start.S -+++ b/sysdeps/aarch64/start.S -@@ -16,6 +16,8 @@ - License along with the GNU C Library. If not, see - <http://www.gnu.org/licenses/>. */ - -+#include <sysdep.h> -+ - /* This is the canonical entry point, usually the first thing in the text - segment. - -@@ -25,7 +27,7 @@ - - At this entry point, most registers' values are unspecified, except: - -- x0 Contains a function pointer to be registered with `atexit'. -+ x0/w0 Contains a function pointer to be registered with `atexit'. - This is how the dynamic linker arranges to have DT_FINI - functions called for shared libraries that have been loaded - before this code runs. -@@ -53,26 +55,26 @@ _start: - mov x5, x0 - - /* Load argc and a pointer to argv */ -- ldr x1, [sp, #0] -- add x2, sp, #8 -+ ldr PTR_REG (1), [sp, #0] -+ add x2, sp, #PTR_SIZE - - /* Setup stack limit in argument register */ - mov x6, sp - - #ifdef SHARED - adrp x0, :got:main -- ldr x0, [x0, #:got_lo12:main] -+ ldr PTR_REG (0), [x0, #:got_lo12:main] - - adrp x3, :got:__libc_csu_init -- ldr x3, [x3, #:got_lo12:__libc_csu_init] -+ ldr PTR_REG (3), [x3, #:got_lo12:__libc_csu_init] - - adrp x4, :got:__libc_csu_fini -- ldr x4, [x4, #:got_lo12:__libc_csu_fini] -+ ldr PTR_REG (4), [x4, #:got_lo12:__libc_csu_fini] - #else - /* Set up the other arguments in registers */ -- ldr x0, =main -- ldr x3, =__libc_csu_init -- ldr x4, =__libc_csu_fini -+ ldr PTR_REG (0), =main -+ ldr PTR_REG (3), =__libc_csu_init -+ ldr PTR_REG (4), =__libc_csu_fini - #endif - - /* __libc_start_main (main, argc, argv, init, fini, rtld_fini, --- -1.9.3 - diff --git a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0016-Use-PTR_REG-in-getcontext.S.patch b/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0016-Use-PTR_REG-in-getcontext.S.patch deleted file mode 100644 index 0e06033a..00000000 --- a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0016-Use-PTR_REG-in-getcontext.S.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 965def6cd3ff61f27249832c4c0274ab2c3f6244 Mon Sep 17 00:00:00 2001 -From: Andrew Pinski <apinski@cavium.com> -Date: Mon, 27 Oct 2014 00:59:39 -0700 -Subject: [PATCH 16/32] Use PTR_REG in getcontext.S. - -Just like the other patches, this patch allows for getcontext.S to be used -between ILP32 and LP64. - -* sysdeps/unix/sysv/linux/aarch64/getcontext.S: Use PTR_REG when -doing an add so wrapping of the pointer is correct for ILP32. ---- - sysdeps/unix/sysv/linux/aarch64/getcontext.S | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/sysdeps/unix/sysv/linux/aarch64/getcontext.S b/sysdeps/unix/sysv/linux/aarch64/getcontext.S -index 70b2e32..4507040 100644 ---- a/sysdeps/unix/sysv/linux/aarch64/getcontext.S -+++ b/sysdeps/unix/sysv/linux/aarch64/getcontext.S -@@ -90,7 +90,7 @@ ENTRY(__getcontext) - - /* Grab the signal mask */ - /* rt_sigprocmask (SIG_BLOCK, NULL, &ucp->uc_sigmask, _NSIG8) */ -- add x2, x0, #UCONTEXT_SIGMASK -+ add PTR_REG (2), PTR_REG (0), #UCONTEXT_SIGMASK - mov x0, SIG_BLOCK - mov x1, 0 - mov x3, _NSIG8 --- -1.9.3 - diff --git a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0017-Detect-ILP32-in-configure-scripts.patch b/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0017-Detect-ILP32-in-configure-scripts.patch deleted file mode 100644 index cbf67cd3..00000000 --- a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0017-Detect-ILP32-in-configure-scripts.patch +++ /dev/null @@ -1,163 +0,0 @@ -From 8205aaac8673d00cbab2d06be36e450a25dcceaa Mon Sep 17 00:00:00 2001 -From: Andrew Pinski <apinski@cavium.com> -Date: Mon, 27 Oct 2014 00:59:40 -0700 -Subject: [PATCH 17/32] Detect ILP32 in configure scripts. - -This adds detecting of ILP32 to the configure scripts. -Adding to preconfigure detection of ilp32 in preconfigure and then writing out the default-abi in configure. - -* sysdeps/aarch64/preconfigure: Detect ILP32 and set aarch64_config_abi -to ilp32 for ilp32 and lp64 for lp64. Set machine to either -aarch64/ilp32 or aarch64/lp64 depending on the ABI that is selected. -* sysdeps/aarch64/configure.ac: Define HAVE_AARCH64_ILP32 if this is ILP32. -Set the default-abi to either ilp32, lp64, ilp32_be or lp64_be depending -on the ABI. -* sysdeps/aarch64/configure: Regenerate. -* sysdeps/unix/sysv/linux/aarch64/configure.ac: Set arch_minimum_kernel -to 3.19.0 for ILP32. -Set LIBC_SLIBDIR_RTLDDIR to libilp32/lib for ilp32. -* sysdeps/unix/sysv/linux/aarch64/configure: Regenerate. ---- - sysdeps/aarch64/configure | 15 +++++++++++---- - sysdeps/aarch64/configure.ac | 11 +++++++++-- - sysdeps/aarch64/preconfigure | 11 ++++++++++- - sysdeps/unix/sysv/linux/aarch64/configure | 22 +++++++++++++++++++--- - sysdeps/unix/sysv/linux/aarch64/configure.ac | 9 +++++++-- - 5 files changed, 56 insertions(+), 12 deletions(-) - mode change 100644 => 100755 sysdeps/aarch64/configure - mode change 100644 => 100755 sysdeps/unix/sysv/linux/aarch64/configure - -diff --git a/sysdeps/aarch64/configure b/sysdeps/aarch64/configure -old mode 100644 -new mode 100755 -index af870b7..6d3b3c7 ---- a/sysdeps/aarch64/configure -+++ b/sysdeps/aarch64/configure -@@ -163,12 +163,19 @@ rm -f conftest* - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_aarch64_be" >&5 - $as_echo "$libc_cv_aarch64_be" >&6; } -+ -+if test $aarch64_config_abi = ilp32; then -+ $as_echo "#define HAVE_AARCH64_ILP32 1" >>confdefs.h -+ -+fi -+ - if test $libc_cv_aarch64_be = yes; then - $as_echo "#define HAVE_AARCH64_BE 1" >>confdefs.h - -- config_vars="$config_vars --default-abi = lp64_be" -+ libc_aarch64_be=_be - else -- config_vars="$config_vars --default-abi = lp64" -+ libc_aarch64_be= - fi -+ -+config_vars="$config_vars -+default-abi = ${aarch64_config_abi}${libc_aarch64_be}" -diff --git a/sysdeps/aarch64/configure.ac b/sysdeps/aarch64/configure.ac -index 7851dd4..9069325 100644 ---- a/sysdeps/aarch64/configure.ac -+++ b/sysdeps/aarch64/configure.ac -@@ -14,9 +14,16 @@ AC_CACHE_CHECK([for big endian], - yes - #endif - ], libc_cv_aarch64_be=yes, libc_cv_aarch64_be=no)]) -+ -+if test $aarch64_config_abi = ilp32; then -+ AC_DEFINE(HAVE_AARCH64_ILP32) -+fi -+ - if test $libc_cv_aarch64_be = yes; then - AC_DEFINE(HAVE_AARCH64_BE) -- LIBC_CONFIG_VAR([default-abi], [lp64_be]) -+ libc_aarch64_be=_be - else -- LIBC_CONFIG_VAR([default-abi], [lp64]) -+ libc_aarch64_be= - fi -+ -+LIBC_CONFIG_VAR([default-abi], [${aarch64_config_abi}${libc_aarch64_be}]) -diff --git a/sysdeps/aarch64/preconfigure b/sysdeps/aarch64/preconfigure -index d9bd1f8..4bcd8e3 100644 ---- a/sysdeps/aarch64/preconfigure -+++ b/sysdeps/aarch64/preconfigure -@@ -1,6 +1,15 @@ - case "$machine" in - aarch64*) - base_machine=aarch64 -- machine=aarch64 -+ case "$CC $CFLAGS $CPPFLAGS " in -+ *" -mabi=ilp32 "*) aarch64_config_abi=ilp32 ;; -+ *" -mabi=lp64 "*) aarch64_config_abi=lp64 ;; -+ *) aarch64_config_abi=default ;; -+ esac -+ case $aarch64_config_abi in -+ default) machine=aarch64/lp64 aarch64_config_abi=lp64 ;; -+ ilp32) machine=aarch64/ilp32 ;; -+ lp64) machine=aarch64/lp64 ;; -+ esac - ;; - esac -diff --git a/sysdeps/unix/sysv/linux/aarch64/configure b/sysdeps/unix/sysv/linux/aarch64/configure -old mode 100644 -new mode 100755 -index 60230a2..59372d2 ---- a/sysdeps/unix/sysv/linux/aarch64/configure -+++ b/sysdeps/unix/sysv/linux/aarch64/configure -@@ -1,9 +1,23 @@ - # This file is generated from configure.ac by Autoconf. DO NOT EDIT! - # Local configure fragment for sysdeps/unix/sysv/linux/aarch64. - --arch_minimum_kernel=3.7.0 -- --test -n "$libc_cv_slibdir" || -+if test $aarch64_config_abi = ilp32; then -+ arch_minimum_kernel=3.19.0 -+ test -n "$libc_cv_slibdir" || -+case "$prefix" in -+/usr | /usr/) -+ libc_cv_slibdir=/libilp32 -+ libc_cv_rtlddir=/lib -+ if test "$libdir" = '${exec_prefix}/lib'; then -+ libdir='${exec_prefix}/libilp32'; -+ # Locale data can be shared between 32-bit and 64-bit libraries. -+ libc_cv_localedir='${exec_prefix}/lib/locale' -+ fi -+ ;; -+esac -+else -+ arch_minimum_kernel=3.7.0 -+ test -n "$libc_cv_slibdir" || - case "$prefix" in - /usr | /usr/) - libc_cv_slibdir=/lib64 -@@ -15,3 +29,5 @@ case "$prefix" in - fi - ;; - esac -+fi -+ -diff --git a/sysdeps/unix/sysv/linux/aarch64/configure.ac b/sysdeps/unix/sysv/linux/aarch64/configure.ac -index 211fa9c..6526816 100644 ---- a/sysdeps/unix/sysv/linux/aarch64/configure.ac -+++ b/sysdeps/unix/sysv/linux/aarch64/configure.ac -@@ -1,6 +1,11 @@ - GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory. - # Local configure fragment for sysdeps/unix/sysv/linux/aarch64. - --arch_minimum_kernel=3.7.0 -+if test $aarch64_config_abi = ilp32; then -+ arch_minimum_kernel=3.19.0 -+ LIBC_SLIBDIR_RTLDDIR([libilp32], [lib]) -+else -+ arch_minimum_kernel=3.7.0 -+ LIBC_SLIBDIR_RTLDDIR([lib64], [lib]) -+fi - --LIBC_SLIBDIR_RTLDDIR([lib64], [lib]) --- -1.9.3 - diff --git a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0018-Syscalls-for-ILP32-are-passed-always-via-64bit-value.patch b/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0018-Syscalls-for-ILP32-are-passed-always-via-64bit-value.patch deleted file mode 100644 index f74d0513..00000000 --- a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0018-Syscalls-for-ILP32-are-passed-always-via-64bit-value.patch +++ /dev/null @@ -1,145 +0,0 @@ -From e35f6fedc7b6e5a63be82b645c7810c0e7c95d26 Mon Sep 17 00:00:00 2001 -From: Andrew Pinski <apinski@cavium.com> -Date: Mon, 27 Oct 2014 00:59:41 -0700 -Subject: [PATCH 18/32] Syscalls for ILP32 are passed always via 64bit values. - -This patch adds support for ILP32 syscalls, sign and zero extending -where needed. Unlike LP64, pointers are 32bit and need to be zero -extended rather than the standard sign extend that the code would do. -We take advatage of ssize_t being long rather than int for ILP32, -to get this correct. - -* sysdeps/unix/sysv/linux/aarch64/sysdep.h -(INLINE_VSYSCALL): Use long long instead of long. -(INTERNAL_VSYSCALL): Likewise. -(INLINE_SYSCALL): Likewise. -(INTERNAL_SYSCALL_RAW): Likewise. -(ARGIFY): New macro. -(LOAD_ARGS_0): Use long long instead of long. -(LOAD_ARGS_1): Use long long instead of long -and use ARGIFY. -(LOAD_ARGS_2): Likewise. -(LOAD_ARGS_3): Likewise. -(LOAD_ARGS_4): Likewise. -(LOAD_ARGS_5): Likewise. -(LOAD_ARGS_6): Likewise. -(LOAD_ARGS_7): Likewise. ---- - sysdeps/unix/sysv/linux/aarch64/sysdep.h | 52 ++++++++++++++++++++------------ - 1 file changed, 32 insertions(+), 20 deletions(-) - -diff --git a/sysdeps/unix/sysv/linux/aarch64/sysdep.h b/sysdeps/unix/sysv/linux/aarch64/sysdep.h -index fc31661..0d9fa8a 100644 ---- a/sysdeps/unix/sysv/linux/aarch64/sysdep.h -+++ b/sysdeps/unix/sysv/linux/aarch64/sysdep.h -@@ -156,7 +156,7 @@ - ({ \ - __label__ out; \ - __label__ iserr; \ -- long sc_ret; \ -+ long long sc_ret; \ - INTERNAL_SYSCALL_DECL (sc_err); \ - \ - if (__vdso_##name != NULL) \ -@@ -187,7 +187,7 @@ - # define INTERNAL_VSYSCALL(name, err, nr, args...) \ - ({ \ - __label__ out; \ -- long v_ret; \ -+ long long v_ret; \ - \ - if (__vdso_##name != NULL) \ - { \ -@@ -224,11 +224,11 @@ - call. */ - # undef INLINE_SYSCALL - # define INLINE_SYSCALL(name, nr, args...) \ -- ({ unsigned long _sys_result = INTERNAL_SYSCALL (name, , nr, args); \ -+ ({ unsigned long long _sys_result = INTERNAL_SYSCALL (name, , nr, args); \ - if (__builtin_expect (INTERNAL_SYSCALL_ERROR_P (_sys_result, ), 0))\ - { \ - __set_errno (INTERNAL_SYSCALL_ERRNO (_sys_result, )); \ -- _sys_result = (unsigned long) -1; \ -+ _sys_result = (unsigned long long) -1; \ - } \ - (long) _sys_result; }) - -@@ -237,10 +237,10 @@ - - # undef INTERNAL_SYSCALL_RAW - # define INTERNAL_SYSCALL_RAW(name, err, nr, args...) \ -- ({ long _sys_result; \ -+ ({ long long _sys_result; \ - { \ - LOAD_ARGS_##nr (args) \ -- register long _x8 asm ("x8") = (name); \ -+ register long long _x8 asm ("x8") = (name); \ - asm volatile ("svc 0 // syscall " # name \ - : "=r" (_x0) : "r"(_x8) ASM_ARGS_##nr : "memory"); \ - _sys_result = _x0; \ -@@ -262,36 +262,48 @@ - # undef INTERNAL_SYSCALL_ERRNO - # define INTERNAL_SYSCALL_ERRNO(val, err) (-(val)) - -+/* Convert X to a long long, without losing any bits if it is one -+ already or warning if it is a 32-bit pointer. This zero extends -+ 32-bit pointers and sign extends other signed types. Note this only -+ works because ssize_t is long and short-short is promoted to int. */ -+#define ARGIFY(X) \ -+ ((unsigned long long) \ -+ __builtin_choose_expr(__builtin_types_compatible_p(__typeof__(X), __typeof__((X) - (X))), \ -+ (X), \ -+ __builtin_choose_expr(__builtin_types_compatible_p(int, __typeof__((X) - (X))), \ -+ (X), \ -+ (unsigned long)(X)))) -+ - # define LOAD_ARGS_0() \ -- register long _x0 asm ("x0"); -+ register long long _x0 asm ("x0"); - # define LOAD_ARGS_1(x0) \ -- long _x0tmp = (long) (x0); \ -+ long long _x0tmp = ARGIFY (x0); \ - LOAD_ARGS_0 () \ - _x0 = _x0tmp; - # define LOAD_ARGS_2(x0, x1) \ -- long _x1tmp = (long) (x1); \ -+ long long _x1tmp = ARGIFY (x1); \ - LOAD_ARGS_1 (x0) \ -- register long _x1 asm ("x1") = _x1tmp; -+ register long long _x1 asm ("x1") = _x1tmp; - # define LOAD_ARGS_3(x0, x1, x2) \ -- long _x2tmp = (long) (x2); \ -+ long long _x2tmp = ARGIFY (x2); \ - LOAD_ARGS_2 (x0, x1) \ -- register long _x2 asm ("x2") = _x2tmp; -+ register long long _x2 asm ("x2") = _x2tmp; - # define LOAD_ARGS_4(x0, x1, x2, x3) \ -- long _x3tmp = (long) (x3); \ -+ long long _x3tmp = ARGIFY (x3); \ - LOAD_ARGS_3 (x0, x1, x2) \ -- register long _x3 asm ("x3") = _x3tmp; -+ register long long _x3 asm ("x3") = _x3tmp; - # define LOAD_ARGS_5(x0, x1, x2, x3, x4) \ -- long _x4tmp = (long) (x4); \ -+ long long _x4tmp = ARGIFY (x4); \ - LOAD_ARGS_4 (x0, x1, x2, x3) \ -- register long _x4 asm ("x4") = _x4tmp; -+ register long long _x4 asm ("x4") = _x4tmp; - # define LOAD_ARGS_6(x0, x1, x2, x3, x4, x5) \ -- long _x5tmp = (long) (x5); \ -+ long long _x5tmp = ARGIFY (x5); \ - LOAD_ARGS_5 (x0, x1, x2, x3, x4) \ -- register long _x5 asm ("x5") = _x5tmp; -+ register long long _x5 asm ("x5") = _x5tmp; - # define LOAD_ARGS_7(x0, x1, x2, x3, x4, x5, x6)\ -- long _x6tmp = (long) (x6); \ -+ long long _x6tmp = ARGIFY (x6); \ - LOAD_ARGS_6 (x0, x1, x2, x3, x4, x5) \ -- register long _x6 asm ("x6") = _x6tmp; -+ register long long _x6 asm ("x6") = _x6tmp; - - # define ASM_ARGS_0 - # define ASM_ARGS_1 , "r" (_x0) --- -1.9.3 - diff --git a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0019-Reformat-inline-asm-in-elf_machine_load_address.patch b/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0019-Reformat-inline-asm-in-elf_machine_load_address.patch deleted file mode 100644 index d5d8af49..00000000 --- a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0019-Reformat-inline-asm-in-elf_machine_load_address.patch +++ /dev/null @@ -1,57 +0,0 @@ -From 598187ec16f424b7548e8f049436c0c9c43d7795 Mon Sep 17 00:00:00 2001 -From: Andrew Pinski <apinski@cavium.com> -Date: Mon, 27 Oct 2014 00:59:42 -0700 -Subject: [PATCH 19/32] Reformat inline-asm in elf_machine_load_address. - -This patch reformats the inline-asm in elf_machine_load_address so it is -easier to change only part of the inline-asm. That is using string -concating instead of string continueing. - -Also document on why this inline-asm works, it depends on the 32bit -relocation being resolved at link time. - -* sysdeps/aarch64/dl-machine.h (elf_machine_load_address): -Refactor inline-asm. Also add comment. ---- - sysdeps/aarch64/dl-machine.h | 21 ++++++++++++--------- - 1 file changed, 12 insertions(+), 9 deletions(-) - -diff --git a/sysdeps/aarch64/dl-machine.h b/sysdeps/aarch64/dl-machine.h -index 6e041b1..121b178 100644 ---- a/sysdeps/aarch64/dl-machine.h -+++ b/sysdeps/aarch64/dl-machine.h -@@ -53,19 +53,22 @@ elf_machine_load_address (void) - The choice of symbol is arbitrary. The static address we obtain - by constructing a non GOT reference to the symbol, the dynamic - address of the symbol we compute using adrp/add to compute the -- symbol's address relative to the PC. */ -+ symbol's address relative to the PC. -+ This depends on 32bit relocations being resolved at link time -+ and that the static address fits in the 32bits. */ - - ElfW(Addr) static_addr; - ElfW(Addr) dynamic_addr; - -- asm (" \n\ -- adrp %1, _dl_start; \n\ -- add %1, %1, #:lo12:_dl_start \n\ -- ldr %w0, 1f \n\ -- b 2f \n\ --1: .word _dl_start \n\ --2: \n\ -- " : "=r" (static_addr), "=r" (dynamic_addr)); -+ asm (" \n" -+" adrp %1, _dl_start; \n" -+" add %1, %1, #:lo12:_dl_start \n" -+" ldr %w0, 1f \n" -+" b 2f \n" -+"1: \n" -+" .word _dl_start \n" -+"2: \n" -+ : "=r" (static_addr), "=r" (dynamic_addr)); - return dynamic_addr - static_addr; - } - --- -1.9.3 - diff --git a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0020-Add-ILP32-support-to-elf_machine_load_address.patch b/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0020-Add-ILP32-support-to-elf_machine_load_address.patch deleted file mode 100644 index e9c728f1..00000000 --- a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0020-Add-ILP32-support-to-elf_machine_load_address.patch +++ /dev/null @@ -1,61 +0,0 @@ -From 2225cd23a15c1e398188cb9bb17fb6aebbfca617 Mon Sep 17 00:00:00 2001 -From: Andrew Pinski <apinski@cavium.com> -Date: Mon, 27 Oct 2014 00:59:43 -0700 -Subject: [PATCH 20/32] Add ILP32 support to elf_machine_load_address. - -This adds ILP32 support to elf_machine_load_address. -Since elf_machine_load_address depends on the static address being -found without relocations, we need to use 16bit relocation which gets -resolved at link time for ILP32. This is just like how the 32bit -relocation gets resolved at link time for LP64. - -* sysdeps/aarch64/dl-machine.h (elf_machine_load_address): Add support -for ILP32. ---- - sysdeps/aarch64/dl-machine.h | 20 +++++++++++++++++--- - 1 file changed, 17 insertions(+), 3 deletions(-) - -diff --git a/sysdeps/aarch64/dl-machine.h b/sysdeps/aarch64/dl-machine.h -index 121b178..f3bcad1 100644 ---- a/sysdeps/aarch64/dl-machine.h -+++ b/sysdeps/aarch64/dl-machine.h -@@ -54,19 +54,33 @@ elf_machine_load_address (void) - by constructing a non GOT reference to the symbol, the dynamic - address of the symbol we compute using adrp/add to compute the - symbol's address relative to the PC. -- This depends on 32bit relocations being resolved at link time -- and that the static address fits in the 32bits. */ -+ This depends on 32/16bit relocations being resolved at link time -+ and that the static address fits in the 32/16 bits. */ - - ElfW(Addr) static_addr; - ElfW(Addr) dynamic_addr; - - asm (" \n" - " adrp %1, _dl_start; \n" -+#ifdef __LP64__ - " add %1, %1, #:lo12:_dl_start \n" --" ldr %w0, 1f \n" -+#else -+" add %w1, %w1, #:lo12:_dl_start \n" -+#endif -+" ldr %w0, 1f \n" - " b 2f \n" - "1: \n" -+#ifdef __LP64__ - " .word _dl_start \n" -+#else -+# ifdef __AARCH64EB__ -+" .short 0 \n" -+# endif -+" .short _dl_start \n" -+# ifndef __AARCH64EB__ -+" .short 0 \n" -+# endif -+#endif - "2: \n" - : "=r" (static_addr), "=r" (dynamic_addr)); - return dynamic_addr - static_addr; --- -1.9.3 - diff --git a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0021-Set-up-wordsize-for-ILP32.patch b/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0021-Set-up-wordsize-for-ILP32.patch deleted file mode 100644 index cc28d840..00000000 --- a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0021-Set-up-wordsize-for-ILP32.patch +++ /dev/null @@ -1,40 +0,0 @@ -From b334852fe1bdb7c32b0eb36263d08e14ff797591 Mon Sep 17 00:00:00 2001 -From: Andrew Pinski <apinski@cavium.com> -Date: Mon, 27 Oct 2014 00:59:44 -0700 -Subject: [PATCH 21/32] Set up wordsize for ILP32. - -__WORDSIZE needs to be set to 32 for ILP32. - -* sysdeps/aarch64/bits/wordsize.h (__WORDSIZE): Set to 32 for ILP32. -Update comments. ---- - sysdeps/aarch64/bits/wordsize.h | 10 +++++++--- - 1 file changed, 7 insertions(+), 3 deletions(-) - -diff --git a/sysdeps/aarch64/bits/wordsize.h b/sysdeps/aarch64/bits/wordsize.h -index 3ecccaa..3d5a79d 100644 ---- a/sysdeps/aarch64/bits/wordsize.h -+++ b/sysdeps/aarch64/bits/wordsize.h -@@ -15,12 +15,16 @@ - License along with the GNU C Library; if not, see - <http://www.gnu.org/licenses/>. */ - --#define __WORDSIZE 64 -+#ifdef __LP64__ -+# define __WORDSIZE 64 -+#else -+# define __WORDSIZE 32 -+#endif - --/* LP64 ABI has a 64bit time_t. -+/* LP64 and ILP32s ABI uses a 64bit time_t. - This allows aarch32 and AARCH64 applications - both access utmp. */ - #define __WORDSIZE_TIME64_COMPAT32 1 - --/* LP64 use the 64bit system call interface. */ -+/* LP64 and ILP32 use the 64bit system call interface. */ - #define __SYSCALL_WORDSIZE 64 --- -1.9.3 - diff --git a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0022-Add-ILP32-to-makefiles.patch b/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0022-Add-ILP32-to-makefiles.patch deleted file mode 100644 index 60236f8c..00000000 --- a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0022-Add-ILP32-to-makefiles.patch +++ /dev/null @@ -1,59 +0,0 @@ -From 74ed85ab029e159466af00359e5db697c23f6d5a Mon Sep 17 00:00:00 2001 -From: Andrew Pinski <apinski@cavium.com> -Date: Mon, 27 Oct 2014 00:59:45 -0700 -Subject: [PATCH 22/32] Add ILP32 to makefiles - -This patch adds ilp32 and ilp32_be as abi variants to the aarch64 linux -makefile. - -* sysdeps/unix/sysv/linux/aarch64/Makefile (abi-variants): Add ilp32 -and ilp32_be. -(abi-lp64-options): Add defining of LP64 and undef of ILP32 macros. -(abi-lp64-condition): Check word size macro also. -(abi-lp64_be-options): Add defining of LP64 and undef of ILP32 macros. -(abi-lp64_be-condition): Check word size macro also. -(abi-ilp32-options): Define. -(abi-ilp32-condition): Likewise. -(abi-ilp32_be-options): Define. -(abi-ilp32_be-condition): Likewise. ---- - sysdeps/unix/sysv/linux/aarch64/Makefile | 18 ++++++++++++++---- - 1 file changed, 14 insertions(+), 4 deletions(-) - -diff --git a/sysdeps/unix/sysv/linux/aarch64/Makefile b/sysdeps/unix/sysv/linux/aarch64/Makefile -index 88250dd..5ce20fe 100644 ---- a/sysdeps/unix/sysv/linux/aarch64/Makefile -+++ b/sysdeps/unix/sysv/linux/aarch64/Makefile -@@ -25,15 +25,25 @@ endif - - abi-variants := lp64 - abi-variants += lp64_be -+abi-variants += ilp32 -+abi-variants += ilp32_be - - ifeq (,$(filter $(default-abi),$(abi-variants))) - Unknown ABI, must be one of $(abi-variants) - endif - --abi-lp64-options := -U__AARCH64EB__ --abi-lp64-condition := !defined __AARCH64EB__ -+abi-lp64-options := -U__AARCH64EB__ -D__LP64__ -U__ILP32__ -+abi-lp64-condition := __WORDSIZE == 64 && !defined __AARCH64EB__ - abi-lp64-ld-soname := ld-linux-aarch64.so.1 - --abi-lp64_be-options := -D__AARCH64EB__ --abi-lp64_be-condition := defined __AARCH64EB__ -+abi-lp64_be-options := -D__AARCH64EB__ -D__LP64__ -U__ILP32__ -+abi-lp64_be-condition := __WORDSIZE == 64 && defined __AARCH64EB__ - abi-lp64_be-ld-soname := ld-linux-aarch64_be.so.1 -+ -+abi-ilp32-options := -U__AARCH64EB__ -U__LP64__ -D__ILP32__ -+abi-ilp32-condition := __WORDSIZE == 32 && !defined __AARCH64EB__ -+abi-ilp32-ld-soname := ld-linux-aarch64_ilp32.so.1 -+ -+abi-ilp32_be-options := -D__AARCH64EB__ -U__LP64__ -D__ILP32__ -+abi-ilp32_be-condition := __WORDSIZE == 32 && defined __AARCH64EB__ -+abi-ilp32_be-ld-soname := ld-linux-aarch64_be_ilp32.so.1 --- -1.9.3 - diff --git a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0023-Add-support-to-ldconfig-for-ILP32-and-libilp32.patch b/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0023-Add-support-to-ldconfig-for-ILP32-and-libilp32.patch deleted file mode 100644 index 9beb3614..00000000 --- a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0023-Add-support-to-ldconfig-for-ILP32-and-libilp32.patch +++ /dev/null @@ -1,108 +0,0 @@ -From 0c96833f64a81f61c8709924fe79bc9f5137a0b8 Mon Sep 17 00:00:00 2001 -From: Andrew Pinski <apinski@cavium.com> -Date: Mon, 27 Oct 2014 00:59:46 -0700 -Subject: [PATCH 23/32] Add support to ldconfig for ILP32 and libilp32 - -This patch adds support to ldconfig for libilp32 which is used by -ILP32. - -* sysdeps/generic/ldconfig.h (FLAG_AARCH64_LIB32): New define. -* elf/cache.c (print_entry): Handle FLAG_AARCH64_LIB32. -* sysdeps/unix/sysv/linux/aarch64/dl-cache.h (_DL_CACHE_DEFAULT_ID): -Define it to be the FLAG_AARCH64_LIB32 if compiling for ILP32. -(add_system_dir): Add libilp32 to the list of system directories. -* sysdeps/unix/sysv/linux/arm/readelflib.c (process_elf_file): -Handle ILP32 elf binaries. ---- - elf/cache.c | 2 ++ - sysdeps/generic/ldconfig.h | 1 + - sysdeps/unix/sysv/linux/aarch64/dl-cache.h | 13 ++++++++++++- - sysdeps/unix/sysv/linux/arm/readelflib.c | 4 +++- - 4 files changed, 18 insertions(+), 2 deletions(-) - -diff --git a/elf/cache.c b/elf/cache.c -index 4cbf8d9..267214f 100644 ---- a/elf/cache.c -+++ b/elf/cache.c -@@ -101,6 +101,8 @@ print_entry (const char *lib, int flag, unsigned int osversion, - case FLAG_AARCH64_LIB64: - fputs (",AArch64", stdout); - break; -+ case FLAG_AARCH64_LIB32: -+ fputs (",ILP32", stdout); - /* Uses the ARM soft-float ABI. */ - case FLAG_ARM_LIBSF: - fputs (",soft-float", stdout); -diff --git a/sysdeps/generic/ldconfig.h b/sysdeps/generic/ldconfig.h -index ba1d953..1dd8b4e 100644 ---- a/sysdeps/generic/ldconfig.h -+++ b/sysdeps/generic/ldconfig.h -@@ -42,6 +42,7 @@ - #define FLAG_MIPS_LIB32_NAN2008 0x0c00 - #define FLAG_MIPS64_LIBN32_NAN2008 0x0d00 - #define FLAG_MIPS64_LIBN64_NAN2008 0x0e00 -+#define FLAG_AARCH64_LIB32 0x0f00 - - /* Name of auxiliary cache. */ - #define _PATH_LDCONFIG_AUX_CACHE "/var/cache/ldconfig/aux-cache" -diff --git a/sysdeps/unix/sysv/linux/aarch64/dl-cache.h b/sysdeps/unix/sysv/linux/aarch64/dl-cache.h -index 32851d0..930aa20 100644 ---- a/sysdeps/unix/sysv/linux/aarch64/dl-cache.h -+++ b/sysdeps/unix/sysv/linux/aarch64/dl-cache.h -@@ -18,7 +18,11 @@ - - #include <ldconfig.h> - -+#ifdef __LP64__ - #define _DL_CACHE_DEFAULT_ID (FLAG_AARCH64_LIB64 | FLAG_ELF_LIBC6) -+#else -+#define _DL_CACHE_DEFAULT_ID (FLAG_AARCH64_LIB32 | FLAG_ELF_LIBC6) -+#endif - - #define _dl_cache_check_flags(flags) \ - ((flags) == _DL_CACHE_DEFAULT_ID) -@@ -27,18 +31,25 @@ - do \ - { \ - size_t len = strlen (dir); \ -- char path[len + 3]; \ -+ char path[len + 6]; \ - memcpy (path, dir, len + 1); \ - if (len >= 6 && ! memcmp (path + len - 6, "/lib64", 6)) \ - { \ - len -= 2; \ - path[len] = '\0'; \ - } \ -+ if (len >= 9 && ! memcmp (path + len - 9, "/libilp32", 9))\ -+ { \ -+ len -= 5; \ -+ path[len] = '\0'; \ -+ } \ - add_dir (path); \ - if (len >= 4 && ! memcmp (path + len - 4, "/lib", 4)) \ - { \ - memcpy (path + len, "64", 3); \ - add_dir (path); \ -+ memcpy (path + len, "ilp32", 6); \ -+ add_dir (path); \ - } \ - } while (0) - -diff --git a/sysdeps/unix/sysv/linux/arm/readelflib.c b/sysdeps/unix/sysv/linux/arm/readelflib.c -index a15ebe4..e255fb0 100644 ---- a/sysdeps/unix/sysv/linux/arm/readelflib.c -+++ b/sysdeps/unix/sysv/linux/arm/readelflib.c -@@ -41,7 +41,9 @@ process_elf_file (const char *file_name, const char *lib, int *flag, - ret = process_elf32_file (file_name, lib, flag, osversion, soname, - file_contents, file_length); - -- if (!ret && EF_ARM_EABI_VERSION (elf32_header->e_flags) == EF_ARM_EABI_VER5) -+ if (!ret && elf_header->e_machine == EM_AARCH64) -+ *flag = FLAG_AARCH64_LIB32|FLAG_ELF_LIBC6; -+ else if (!ret && EF_ARM_EABI_VERSION (elf32_header->e_flags) == EF_ARM_EABI_VER5) - { - if (elf32_header->e_flags & EF_ARM_ABI_FLOAT_HARD) - *flag = FLAG_ARM_LIBHF|FLAG_ELF_LIBC6; --- -1.9.3 - diff --git a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0024-Add-ILP32-ld.so-to-the-known-interpreter-names.patch b/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0024-Add-ILP32-ld.so-to-the-known-interpreter-names.patch deleted file mode 100644 index 09805b3c..00000000 --- a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0024-Add-ILP32-ld.so-to-the-known-interpreter-names.patch +++ /dev/null @@ -1,29 +0,0 @@ -From f38ab6dca56eace1dc64c6d804c528b6cf7e8f3b Mon Sep 17 00:00:00 2001 -From: Andrew Pinski <apinski@cavium.com> -Date: Mon, 27 Oct 2014 00:59:47 -0700 -Subject: [PATCH 24/32] Add ILP32 ld.so to the known interpreter names. - -This patch adds ILP32 ld.so names to the known interpreter names. - -* sysdeps/unix/sysv/linux/aarch64/ldconfig.h (SYSDEP_KNOWN_INTERPRETER_NAMES): -Add ilp32 ld.so names. ---- - sysdeps/unix/sysv/linux/aarch64/ldconfig.h | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/sysdeps/unix/sysv/linux/aarch64/ldconfig.h b/sysdeps/unix/sysv/linux/aarch64/ldconfig.h -index b0e6b6a..a70eafc 100644 ---- a/sysdeps/unix/sysv/linux/aarch64/ldconfig.h -+++ b/sysdeps/unix/sysv/linux/aarch64/ldconfig.h -@@ -21,6 +21,8 @@ - #define SYSDEP_KNOWN_INTERPRETER_NAMES \ - { "/lib/ld-linux-aarch64.so.1", FLAG_ELF_LIBC6 }, \ - { "/lib/ld-linux-aarch64_be.so.1", FLAG_ELF_LIBC6 }, \ -+ { "/lib/ld-linux-aarch64_ilp32.so.1", FLAG_ELF_LIBC6 }, \ -+ { "/lib/ld-linux-aarch64_be_ilp32.so.1", FLAG_ELF_LIBC6 }, \ - { "/lib/ld-linux.so.3", FLAG_ELF_LIBC6 }, \ - { "/lib/ld-linux-armhf.so.3", FLAG_ELF_LIBC6 }, - #define SYSDEP_KNOWN_LIBRARY_NAMES \ --- -1.9.3 - diff --git a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0025-Add-ldd-rewrite.sed-so-that-ilp32-ld.so-can-be-found.patch b/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0025-Add-ldd-rewrite.sed-so-that-ilp32-ld.so-can-be-found.patch deleted file mode 100644 index 468001cb..00000000 --- a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0025-Add-ldd-rewrite.sed-so-that-ilp32-ld.so-can-be-found.patch +++ /dev/null @@ -1,49 +0,0 @@ -From 640294b548da2c45b2e06e7565197cfbfa71ceb4 Mon Sep 17 00:00:00 2001 -From: Andrew Pinski <apinski@cavium.com> -Date: Mon, 27 Oct 2014 00:59:48 -0700 -Subject: [PATCH 25/32] Add ldd-rewrite.sed so that ilp32 ld.so can be found - -To be support multi-lib with ldd, we need to add a ldd-rewrite.sed file -to rewrite RTLDLIST to include both ld.so's. - -* sysdeps/unix/sysv/linux/aarch64/configure.ac (ldd_rewrite_script): -Set. -* sysdeps/unix/sysv/linux/aarch64/configure: Regenerate. -* sysdeps/unix/sysv/linux/aarch64/ldd-rewrite.sed: New file. ---- - sysdeps/unix/sysv/linux/aarch64/configure | 2 ++ - sysdeps/unix/sysv/linux/aarch64/configure.ac | 2 ++ - sysdeps/unix/sysv/linux/aarch64/ldd-rewrite.sed | 1 + - 3 files changed, 5 insertions(+) - create mode 100644 sysdeps/unix/sysv/linux/aarch64/ldd-rewrite.sed - -diff --git a/sysdeps/unix/sysv/linux/aarch64/configure b/sysdeps/unix/sysv/linux/aarch64/configure -index 59372d2..faef1dd 100755 ---- a/sysdeps/unix/sysv/linux/aarch64/configure -+++ b/sysdeps/unix/sysv/linux/aarch64/configure -@@ -31,3 +31,5 @@ case "$prefix" in - esac - fi - -+ldd_rewrite_script=$dir/ldd-rewrite.sed -+ -diff --git a/sysdeps/unix/sysv/linux/aarch64/configure.ac b/sysdeps/unix/sysv/linux/aarch64/configure.ac -index 6526816..3ca8ed1 100644 ---- a/sysdeps/unix/sysv/linux/aarch64/configure.ac -+++ b/sysdeps/unix/sysv/linux/aarch64/configure.ac -@@ -9,3 +9,5 @@ else - LIBC_SLIBDIR_RTLDDIR([lib64], [lib]) - fi - -+ldd_rewrite_script=$dir/ldd-rewrite.sed -+ -diff --git a/sysdeps/unix/sysv/linux/aarch64/ldd-rewrite.sed b/sysdeps/unix/sysv/linux/aarch64/ldd-rewrite.sed -new file mode 100644 -index 0000000..2f3bbb9 ---- /dev/null -+++ b/sysdeps/unix/sysv/linux/aarch64/ldd-rewrite.sed -@@ -0,0 +1 @@ -+s_^\(RTLDLIST=\)\(.*lib/\)\([^/]*\)\(-aarch64\)\(\|\_be\)\(\|\_ilp32\)\(.so\.[0-9.]*\)$_\1"\2\3-aarch64\5\7 \2\3-aarch64\5\_ilp32\7"_ --- -1.9.3 - diff --git a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0026-Add-kernel_sigaction.h-for-AARCH64-ILP32.patch b/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0026-Add-kernel_sigaction.h-for-AARCH64-ILP32.patch deleted file mode 100644 index 69355d0c..00000000 --- a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0026-Add-kernel_sigaction.h-for-AARCH64-ILP32.patch +++ /dev/null @@ -1,78 +0,0 @@ -From 5fd5c369cf7ed9fc3640f944aeb848b160a343b2 Mon Sep 17 00:00:00 2001 -From: Andrew Pinski <apinski@cavium.com> -Date: Mon, 27 Oct 2014 00:59:49 -0700 -Subject: [PATCH 26/32] Add kernel_sigaction.h for AARCH64 ILP32 - -In ILP32, the sigaction struct is the same as AARCH64 so we need -the header file kernel_sigaction.h. To allow for this to work, -we use a long long fields and then add extra casts when converting -between the user exposed struct and the kernel exposed struct. - -* sysdeps/unix/sysv/linux/aarch64/kernel_sigaction.h: New file. -* sysdeps/unix/sysv/linux/aarch64/sigaction.c (__libc_sigaction): -Add cast here it is necessary. ---- - sysdeps/unix/sysv/linux/aarch64/kernel_sigaction.h | 12 ++++++++++++ - sysdeps/unix/sysv/linux/aarch64/sigaction.c | 10 ++++++---- - 2 files changed, 18 insertions(+), 4 deletions(-) - create mode 100644 sysdeps/unix/sysv/linux/aarch64/kernel_sigaction.h - -diff --git a/sysdeps/unix/sysv/linux/aarch64/kernel_sigaction.h b/sysdeps/unix/sysv/linux/aarch64/kernel_sigaction.h -new file mode 100644 -index 0000000..7b3023b ---- /dev/null -+++ b/sysdeps/unix/sysv/linux/aarch64/kernel_sigaction.h -@@ -0,0 +1,12 @@ -+ -+#define HAVE_SA_RESTORER -+ -+/* This is the sigaction structure in aarch64 kernel. -+ Note the ILP32 struct uses the same struct as LP64 -+ which is why the fields are 64bit in size. */ -+struct kernel_sigaction { -+ unsigned long long k_sa_handler; -+ unsigned long long sa_flags; -+ unsigned long long sa_restorer; -+ sigset_t sa_mask; -+}; -diff --git a/sysdeps/unix/sysv/linux/aarch64/sigaction.c b/sysdeps/unix/sysv/linux/aarch64/sigaction.c -index ae6c3fd..8adcbba 100644 ---- a/sysdeps/unix/sysv/linux/aarch64/sigaction.c -+++ b/sysdeps/unix/sysv/linux/aarch64/sigaction.c -@@ -39,15 +39,17 @@ __libc_sigaction (int sig, const struct sigaction *act, struct sigaction *oact) - - if (act) - { -- kact.k_sa_handler = act->sa_handler; -+ kact.k_sa_handler = (unsigned long long)(uintptr_t)act->sa_handler; - memcpy (&kact.sa_mask, &act->sa_mask, sizeof (sigset_t)); - kact.sa_flags = act->sa_flags; - #ifdef HAVE_SA_RESTORER - if (kact.sa_flags & SA_RESTORER) -- kact.sa_restorer = act->sa_restorer; -+ kact.sa_restorer = (unsigned long long)(uintptr_t)act->sa_restorer; - #endif - } - -+ /* This is needed for ILP32 as the structures are two different sizes due to -+ using the LP64 structure. */ - result = INLINE_SYSCALL (rt_sigaction, 4, sig, - act ? &kact : NULL, - oact ? &koact : NULL, _NSIG / 8); -@@ -55,11 +57,11 @@ __libc_sigaction (int sig, const struct sigaction *act, struct sigaction *oact) - { - if (oact && result >= 0) - { -- oact->sa_handler = koact.k_sa_handler; -+ oact->sa_handler = (void*)(uintptr_t)koact.k_sa_handler; - memcpy (&oact->sa_mask, &koact.sa_mask, sizeof (sigset_t)); - oact->sa_flags = koact.sa_flags; - #ifdef HAVE_SA_RESTORER -- oact->sa_restorer = koact.sa_restorer; -+ oact->sa_restorer = (void*)(uintptr_t)koact.sa_restorer; - #endif - } - } --- -1.9.3 - diff --git a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0027-Add-sigstack.h-header-for-ILP32-reasons.patch b/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0027-Add-sigstack.h-header-for-ILP32-reasons.patch deleted file mode 100644 index 93d7cf97..00000000 --- a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0027-Add-sigstack.h-header-for-ILP32-reasons.patch +++ /dev/null @@ -1,94 +0,0 @@ -From d010da312e05ef8543f6e176d14bcb68a7c369e0 Mon Sep 17 00:00:00 2001 -From: Andrew Pinski <apinski@cavium.com> -Date: Mon, 27 Oct 2014 00:59:50 -0700 -Subject: [PATCH 27/32] Add sigstack.h header for ILP32 reasons. - -ILP32 uses the same structure layout for sigaltstack as -LP64 so we need a special header file. - -* sysdeps/unix/sysv/linux/aarch64/bits/sigstack.h: New file. ---- - sysdeps/unix/sysv/linux/aarch64/bits/sigstack.h | 71 +++++++++++++++++++++++++ - 1 file changed, 71 insertions(+) - create mode 100644 sysdeps/unix/sysv/linux/aarch64/bits/sigstack.h - -diff --git a/sysdeps/unix/sysv/linux/aarch64/bits/sigstack.h b/sysdeps/unix/sysv/linux/aarch64/bits/sigstack.h -new file mode 100644 -index 0000000..2dd8f6b ---- /dev/null -+++ b/sysdeps/unix/sysv/linux/aarch64/bits/sigstack.h -@@ -0,0 +1,71 @@ -+/* sigstack, sigaltstack definitions. -+ Copyright (C) 1998, 1999 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 Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 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 -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ <http://www.gnu.org/licenses/>. */ -+ -+#ifndef _SIGNAL_H -+# error "Never include this file directly. Use <signal.h> instead" -+#endif -+ -+ -+/* Structure describing a signal stack (obsolete). */ -+struct sigstack -+ { -+ void *ss_sp; /* Signal stack pointer. */ -+ int ss_onstack; /* Nonzero if executing on this stack. */ -+ }; -+ -+ -+/* Possible values for `ss_flags.'. */ -+enum -+{ -+ SS_ONSTACK = 1, -+#define SS_ONSTACK SS_ONSTACK -+ SS_DISABLE -+#define SS_DISABLE SS_DISABLE -+}; -+ -+/* Minimum stack size for a signal handler. */ -+#define MINSIGSTKSZ 2048 -+ -+/* System default stack size. */ -+#define SIGSTKSZ 8192 -+ -+ -+/* Alternate, preferred interface. -+ This structure matches the same size and layout -+ for both ILP32 and LP64. */ -+typedef struct sigaltstack -+ { -+#if defined(__ILP32__) && defined(__AARCH64EB__) -+ int __pad_ss_sp; -+#endif -+ void *ss_sp; -+#if defined(__ILP32__) && !defined(__AARCH64EB__) -+ int __pad_ss_sp; -+#endif -+ int ss_flags; -+#if defined(__ILP32__) -+ int __pad_after_ss_flags; -+#endif -+#if defined(__ILP32__) && defined(__AARCH64EB__) -+ int __pad_ss_size; -+#endif -+ size_t ss_size; -+#if defined(__ILP32__) && !defined(__AARCH64EB__) -+ int __pad_ss_size; -+#endif -+ } stack_t; --- -1.9.3 - diff --git a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0028-Fix-up-ucontext-for-ILP32.patch b/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0028-Fix-up-ucontext-for-ILP32.patch deleted file mode 100644 index 89f1fb92..00000000 --- a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0028-Fix-up-ucontext-for-ILP32.patch +++ /dev/null @@ -1,40 +0,0 @@ -From 7ba098b1d1d518b58e1301fe788b8c32156cec7b Mon Sep 17 00:00:00 2001 -From: Andrew Pinski <apinski@cavium.com> -Date: Mon, 27 Oct 2014 00:59:51 -0700 -Subject: [PATCH 28/32] Fix up ucontext for ILP32 - -In ILP32 we want to use the same layout of the structure ucontext as LP64 so -we need to add a padding for uc_link and change the type of uc_flags to -be the kernel unsigned long type. - -* sysdeps/unix/sysv/linux/aarch64/sys/ucontext.h (struct ucontext): -Change the type of uc_flags to __SYSCALL_ULONG_TYPE. -Add padding for uc_link if ILP32. ---- - sysdeps/unix/sysv/linux/aarch64/sys/ucontext.h | 10 ++++++++-- - 1 file changed, 8 insertions(+), 2 deletions(-) - -diff --git a/sysdeps/unix/sysv/linux/aarch64/sys/ucontext.h b/sysdeps/unix/sysv/linux/aarch64/sys/ucontext.h -index 476f5de..5d224fb 100644 ---- a/sysdeps/unix/sysv/linux/aarch64/sys/ucontext.h -+++ b/sysdeps/unix/sysv/linux/aarch64/sys/ucontext.h -@@ -46,8 +46,14 @@ typedef struct sigcontext mcontext_t; - /* Userlevel context. */ - typedef struct ucontext - { -- unsigned long uc_flags; -- struct ucontext *uc_link; -+ __SYSCALL_ULONG_TYPE uc_flags; -+#if defined(__ILP32__) && defined(__AARCH64EB__) -+ int __pad_uc_link; -+#endif -+ struct ucontext *uc_link; -+#if defined(__ILP32__) && !defined(__AARCH64EB__) -+ int __pad_uc_link; -+#endif - stack_t uc_stack; - __sigset_t uc_sigmask; - mcontext_t uc_mcontext; --- -1.9.3 - diff --git a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0029-Add-typesizes.h-for-ILP32.patch b/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0029-Add-typesizes.h-for-ILP32.patch deleted file mode 100644 index ccbd431a..00000000 --- a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0029-Add-typesizes.h-for-ILP32.patch +++ /dev/null @@ -1,160 +0,0 @@ -From ee1e9b42d75a61a87b100dab7293668a5127742c Mon Sep 17 00:00:00 2001 -From: Andrew Pinski <apinski@cavium.com> -Date: Mon, 27 Oct 2014 00:59:52 -0700 -Subject: [PATCH 29/32] Add typesizes.h for ILP32 - -The generic typesizes does not work for ILP32 as the kernel long type -needs to be long long (quad). time_t, off_t, clock_t, suseconds_t, -ino_t, rlim_t are 64bits. -FDSET bitmask is a 64bit type. - -* sysdeps/unix/sysv/linux/aarch64/bits/typesizes.h: New file. ---- - sysdeps/unix/sysv/linux/aarch64/bits/typesizes.h | 135 +++++++++++++++++++++++ - 1 file changed, 135 insertions(+) - create mode 100644 sysdeps/unix/sysv/linux/aarch64/bits/typesizes.h - -diff --git a/sysdeps/unix/sysv/linux/aarch64/bits/typesizes.h b/sysdeps/unix/sysv/linux/aarch64/bits/typesizes.h -new file mode 100644 -index 0000000..f8e3206 ---- /dev/null -+++ b/sysdeps/unix/sysv/linux/aarch64/bits/typesizes.h -@@ -0,0 +1,135 @@ -+/* bits/typesizes.h -- underlying types for *_t. Linux/AARCh64 version. -+ Copyright (C) 2011-2014 Free Software Foundation, Inc. -+ This file is part of the GNU C Library. -+ Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011. -+ -+ The GNU C Library is free software; you can redistribute it and/or -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 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 -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library. If not, see -+ <http://www.gnu.org/licenses/>. */ -+ -+#ifndef _BITS_TYPES_H -+# error "Never include <bits/typesizes.h> directly; use <sys/types.h> instead." -+#endif -+ -+#ifndef _BITS_TYPESIZES_H -+#define _BITS_TYPESIZES_H 1 -+ -+/* See <bits/types.h> for the meaning of these macros. This file exists so -+ that <bits/types.h> need not vary across different GNU platforms. */ -+ -+/* ILP32 kernel interface is 64-bit. */ -+#ifndef __LP64__ -+# define __SYSCALL_SLONG_TYPE __SQUAD_TYPE -+# define __SYSCALL_ULONG_TYPE __UQUAD_TYPE -+#else -+# define __SYSCALL_SLONG_TYPE __SLONGWORD_TYPE -+# define __SYSCALL_ULONG_TYPE __ULONGWORD_TYPE -+#endif -+#define __DEV_T_TYPE __UQUAD_TYPE -+#define __UID_T_TYPE __U32_TYPE -+#define __GID_T_TYPE __U32_TYPE -+#define __INO_T_TYPE __SYSCALL_ULONG_TYPE -+#define __INO64_T_TYPE __UQUAD_TYPE -+#define __MODE_T_TYPE __U32_TYPE -+#define __NLINK_T_TYPE __U32_TYPE -+#define __OFF_T_TYPE __SYSCALL_SLONG_TYPE -+#define __OFF64_T_TYPE __SQUAD_TYPE -+#define __PID_T_TYPE __S32_TYPE -+#define __RLIM_T_TYPE __SYSCALL_ULONG_TYPE -+#define __RLIM64_T_TYPE __UQUAD_TYPE -+#define __BLKCNT_T_TYPE __SYSCALL_SLONG_TYPE -+#define __BLKCNT64_T_TYPE __SQUAD_TYPE -+#define __FSBLKCNT_T_TYPE __SYSCALL_ULONG_TYPE -+#define __FSBLKCNT64_T_TYPE __UQUAD_TYPE -+#define __FSFILCNT_T_TYPE __SYSCALL_ULONG_TYPE -+#define __FSFILCNT64_T_TYPE __UQUAD_TYPE -+#define __FSWORD_T_TYPE __SYSCALL_SLONG_TYPE -+#define __ID_T_TYPE __U32_TYPE -+#define __CLOCK_T_TYPE __SYSCALL_SLONG_TYPE -+#define __TIME_T_TYPE __SYSCALL_SLONG_TYPE -+#define __USECONDS_T_TYPE __U32_TYPE -+#define __SUSECONDS_T_TYPE __SYSCALL_SLONG_TYPE -+#define __DADDR_T_TYPE __S32_TYPE -+#define __SWBLK_T_TYPE __SYSCALL_SLONG_TYPE -+#define __KEY_T_TYPE __S32_TYPE -+#define __CLOCKID_T_TYPE __S32_TYPE -+#define __TIMER_T_TYPE void * -+#define __BLKSIZE_T_TYPE __S32_TYPE -+#define __FSID_T_TYPE struct { int __val[2]; } -+#define __SSIZE_T_TYPE __SLONGWORD_TYPE -+ -+/* Number of descriptors that can fit in an `fd_set'. */ -+#define __FD_SETSIZE 1024 -+ -+/* Tell the libc code that off_t and off64_t are actually the same type -+ for all ABI purposes, even if possibly expressed as different base types -+ for C type-checking purposes. */ -+#define __OFF_T_MATCHES_OFF64_T 1 -+ -+/* Same for ino_t and ino64_t. */ -+#define __INO_T_MATCHES_INO64_T 1 -+ -+/* Same for __blkcnt_t and __blkcnt64_t. */ -+#define __BLKCNT_T_TYPE_MATCHES_BLKCNT64_T_TYPE 1 -+ -+/* Same for __fsblkcnt_t and __fsblkcnt64_t. */ -+#define __FSBLKCNT_T_TYPE_MATCHES_FSBLKCNT64_T_TYPE 1 -+ -+/* Same for __fsfilcnt_t and __fsfilcnt64_t. */ -+#define __FSFILCNT_T_TYPE_MATCHES_FSFILCNT64_T_TYPE 1 -+ -+/* LP32 needs some padding in some cases */ -+ -+#ifndef __LP64__ -+ -+# undef __SIGINFO_INNER -+# ifdef __AARCH64EB__ -+# define __SIGINFO_INNER(type, field) \ -+ __extension__ struct { \ -+ int __pad_##field; \ -+ type field; \ -+ } __attribute__((aligned(8) )) -+# else -+# define __SIGINFO_INNER(type, field) \ -+ __extension__ struct { \ -+ type field; \ -+ int __pad_##field; \ -+ } __attribute__((aligned(8) )) -+# endif -+ -+# define __RUSAGE_LONG(__field) \ -+ __SIGINFO_INNER(long, __field) -+ -+# define __SHMID_DS_SIZE_TYPE(__field) \ -+ __SIGINFO_INNER(size_t, __field) -+ -+# undef __SIGINFO_VOIDPTR -+# define __SIGINFO_VOIDPTR(field) \ -+ __SIGINFO_INNER(void*, field) -+ -+# undef __SIGINFO_BAND -+# define __SIGINFO_BAND(field) \ -+ __SIGINFO_INNER(long, field) -+ -+#define __SIGSET_INNER_T __SYSCALL_ULONG_TYPE -+#define __FD_MASK_TYPE __SYSCALL_SLONG_TYPE -+#define __FD_MASK_CONST(a) (__extension__ a##ull) -+#endif -+ -+ -+#define __IPC_TIME_T_64_BITS -+ -+#define __SI_PAD_SIZE ((__SI_MAX_SIZE / sizeof (int)) - 4) -+ -+ -+#endif /* bits/typesizes.h */ --- -1.9.3 - diff --git a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0030-Make-lp64-and-ilp32-directories.patch b/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0030-Make-lp64-and-ilp32-directories.patch deleted file mode 100644 index 01cbfcd1..00000000 --- a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0030-Make-lp64-and-ilp32-directories.patch +++ /dev/null @@ -1,722 +0,0 @@ -From 3df8339b4b902af706f313b7848871b0aecb3088 Mon Sep 17 00:00:00 2001 -From: Andrew Pinski <apinski@cavium.com> -Date: Mon, 27 Oct 2014 00:59:53 -0700 -Subject: [PATCH 30/32] Make lp64 and ilp32 directories. - -The patch makes the ilp32 and lp64 have their own directory under aarch64. -Since ILP32 uses most of the same system calls as LP64 and has a 64bit -off_t, we need make the functions that end in 64 the same as the ones without. -We also need not to special case ioctl or use the already provided mmap.c file. - -ChangeLog: - * sysdeps/aarch64/ilp32/Implies: New file. - * sysdeps/aarch64/Implies: Rename to - * sysdeps/aarch64/lp64/Implies: This. - * sysdeps/unix/sysv/linux/aarch64/shlib-versions: Rename to ... - * sysdeps/unix/sysv/linux/aarch64/lp64/shlib-versions: This. - * sysdeps/unix/sysv/linux/aarch64/ilp32/Implies: New file. - * sysdeps/unix/sysv/linux/aarch64/ilp32/Versions: New file. - * sysdeps/unix/sysv/linux/aarch64/ilp32/dl-fxstatat64.c: New file - * sysdeps/unix/sysv/linux/aarch64/ilp32/fallocate.c: New file. - * sysdeps/unix/sysv/linux/aarch64/ilp32/fallocate64.c: New file. - * sysdeps/unix/sysv/linux/aarch64/ilp32/fstatfs64.c: New file. - * sysdeps/unix/sysv/linux/aarch64/ilp32/ftruncate64.c: New file. - * sysdeps/unix/sysv/linux/aarch64/ilp32/fxstat.c: New file. - * sysdeps/unix/sysv/linux/aarch64/ilp32/fxstat64.c: New file. - * sysdeps/unix/sysv/linux/aarch64/ilp32/fxstatat.c: New file. - * sysdeps/unix/sysv/linux/aarch64/ilp32/fxstatat64.c: New file. - * sysdeps/unix/sysv/linux/aarch64/ilp32/getdents.c: New file. - * sysdeps/unix/sysv/linux/aarch64/ilp32/getdents64.c: New file. - * sysdeps/unix/sysv/linux/aarch64/ilp32/getrlimit64.c: New file. - * sysdeps/unix/sysv/linux/aarch64/ilp32/llseek.c: New file. - * sysdeps/unix/sysv/linux/aarch64/ilp32/lxstat64.c: New file. - * sysdeps/unix/sysv/linux/aarch64/ilp32/mmap64.c: New file. - * sysdeps/unix/sysv/linux/aarch64/ilp32/posix_fadvise64.c: New file. - * sysdeps/unix/sysv/linux/aarch64/ilp32/posix_fallocate.c: New file. - * sysdeps/unix/sysv/linux/aarch64/ilp32/posix_fallocate64.c: New file. - * sysdeps/unix/sysv/linux/aarch64/ilp32/pread64.c: New file. - * sysdeps/unix/sysv/linux/aarch64/ilp32/preadv64.c: New file. - * sysdeps/unix/sysv/linux/aarch64/ilp32/pwrite64.c: New file. - * sysdeps/unix/sysv/linux/aarch64/ilp32/pwritev64.c: New file. - * sysdeps/unix/sysv/linux/aarch64/ilp32/semctl.c: New file. - * sysdeps/unix/sysv/linux/aarch64/ilp32/sendfile64.c: New file. - * sysdeps/unix/sysv/linux/aarch64/ilp32/setrlimit64.c: New file. - * sysdeps/unix/sysv/linux/aarch64/ilp32/statfs64.c: New file. - * sysdeps/unix/sysv/linux/aarch64/ilp32/statvfs.c: New file. - * sysdeps/unix/sysv/linux/aarch64/ilp32/statvfs64.c: New file. - * sysdeps/unix/sysv/linux/aarch64/ilp32/syscalls.list: New file. - * sysdeps/unix/sysv/linux/aarch64/ilp32/truncate64.c: New file. - * sysdeps/unix/sysv/linux/aarch64/ilp32/shlib-versions: New file. - * sysdeps/unix/sysv/linux/aarch64/ilp32/creat.c: New file. - * sysdeps/unix/sysv/linux/aarch64/ilp32/glob.c: New file. - * sysdeps/unix/sysv/linux/aarch64/ilp32/kernel_stat.h: New file. - * sysdeps/unix/sysv/linux/aarch64/ilp32/xstat.c: New file. ---- - sysdeps/aarch64/Implies | 6 -- - sysdeps/aarch64/ilp32/Implies | 6 ++ - sysdeps/aarch64/lp64/Implies | 7 +++ - sysdeps/unix/sysv/linux/aarch64/ilp32/Implies | 3 + - sysdeps/unix/sysv/linux/aarch64/ilp32/Versions | 5 ++ - sysdeps/unix/sysv/linux/aarch64/ilp32/creat.c | 2 + - .../unix/sysv/linux/aarch64/ilp32/dl-fxstatat64.c | 6 ++ - sysdeps/unix/sysv/linux/aarch64/ilp32/fallocate.c | 1 + - .../unix/sysv/linux/aarch64/ilp32/fallocate64.c | 1 + - sysdeps/unix/sysv/linux/aarch64/ilp32/fstatfs64.c | 1 + - .../unix/sysv/linux/aarch64/ilp32/ftruncate64.c | 1 + - sysdeps/unix/sysv/linux/aarch64/ilp32/fxstat.c | 1 + - sysdeps/unix/sysv/linux/aarch64/ilp32/fxstat64.c | 1 + - sysdeps/unix/sysv/linux/aarch64/ilp32/fxstatat.c | 1 + - sysdeps/unix/sysv/linux/aarch64/ilp32/fxstatat64.c | 1 + - sysdeps/unix/sysv/linux/aarch64/ilp32/getdents.c | 1 + - sysdeps/unix/sysv/linux/aarch64/ilp32/getdents64.c | 2 + - .../unix/sysv/linux/aarch64/ilp32/getrlimit64.c | 1 + - sysdeps/unix/sysv/linux/aarch64/ilp32/glob.c | 1 + - .../unix/sysv/linux/aarch64/ilp32/kernel_stat.h | 24 ++++++++ - sysdeps/unix/sysv/linux/aarch64/ilp32/llseek.c | 1 + - sysdeps/unix/sysv/linux/aarch64/ilp32/lxstat64.c | 1 + - sysdeps/unix/sysv/linux/aarch64/ilp32/mmap64.c | 1 + - .../sysv/linux/aarch64/ilp32/posix_fadvise64.c | 1 + - .../sysv/linux/aarch64/ilp32/posix_fallocate.c | 1 + - .../sysv/linux/aarch64/ilp32/posix_fallocate64.c | 1 + - sysdeps/unix/sysv/linux/aarch64/ilp32/pread64.c | 1 + - sysdeps/unix/sysv/linux/aarch64/ilp32/preadv64.c | 1 + - sysdeps/unix/sysv/linux/aarch64/ilp32/pwrite64.c | 1 + - sysdeps/unix/sysv/linux/aarch64/ilp32/pwritev64.c | 1 + - sysdeps/unix/sysv/linux/aarch64/ilp32/semctl.c | 66 ++++++++++++++++++++++ - sysdeps/unix/sysv/linux/aarch64/ilp32/sendfile64.c | 1 + - .../unix/sysv/linux/aarch64/ilp32/setrlimit64.c | 1 + - .../unix/sysv/linux/aarch64/ilp32/shlib-versions | 7 +++ - sysdeps/unix/sysv/linux/aarch64/ilp32/statfs64.c | 1 + - sysdeps/unix/sysv/linux/aarch64/ilp32/statvfs.c | 5 ++ - sysdeps/unix/sysv/linux/aarch64/ilp32/statvfs64.c | 1 + - .../unix/sysv/linux/aarch64/ilp32/syscalls.list | 21 +++++++ - sysdeps/unix/sysv/linux/aarch64/ilp32/truncate64.c | 1 + - sysdeps/unix/sysv/linux/aarch64/ilp32/xstat.c | 1 + - sysdeps/unix/sysv/linux/aarch64/ilp32/xstat64.c | 1 + - sysdeps/unix/sysv/linux/aarch64/ioctl.S | 31 ---------- - sysdeps/unix/sysv/linux/aarch64/lp64/Implies | 4 ++ - sysdeps/unix/sysv/linux/aarch64/lp64/ioctl.S | 31 ++++++++++ - .../unix/sysv/linux/aarch64/lp64/shlib-versions | 7 +++ - sysdeps/unix/sysv/linux/aarch64/mmap.c | 34 ----------- - 46 files changed, 224 insertions(+), 71 deletions(-) - delete mode 100644 sysdeps/aarch64/Implies - create mode 100644 sysdeps/aarch64/ilp32/Implies - create mode 100644 sysdeps/aarch64/lp64/Implies - create mode 100644 sysdeps/unix/sysv/linux/aarch64/ilp32/Implies - create mode 100644 sysdeps/unix/sysv/linux/aarch64/ilp32/Versions - create mode 100644 sysdeps/unix/sysv/linux/aarch64/ilp32/creat.c - create mode 100644 sysdeps/unix/sysv/linux/aarch64/ilp32/dl-fxstatat64.c - create mode 100644 sysdeps/unix/sysv/linux/aarch64/ilp32/fallocate.c - create mode 100644 sysdeps/unix/sysv/linux/aarch64/ilp32/fallocate64.c - create mode 100644 sysdeps/unix/sysv/linux/aarch64/ilp32/fstatfs64.c - create mode 100644 sysdeps/unix/sysv/linux/aarch64/ilp32/ftruncate64.c - create mode 100644 sysdeps/unix/sysv/linux/aarch64/ilp32/fxstat.c - create mode 100644 sysdeps/unix/sysv/linux/aarch64/ilp32/fxstat64.c - create mode 100644 sysdeps/unix/sysv/linux/aarch64/ilp32/fxstatat.c - create mode 100644 sysdeps/unix/sysv/linux/aarch64/ilp32/fxstatat64.c - create mode 100644 sysdeps/unix/sysv/linux/aarch64/ilp32/getdents.c - create mode 100644 sysdeps/unix/sysv/linux/aarch64/ilp32/getdents64.c - create mode 100644 sysdeps/unix/sysv/linux/aarch64/ilp32/getrlimit64.c - create mode 100644 sysdeps/unix/sysv/linux/aarch64/ilp32/glob.c - create mode 100644 sysdeps/unix/sysv/linux/aarch64/ilp32/kernel_stat.h - create mode 100644 sysdeps/unix/sysv/linux/aarch64/ilp32/llseek.c - create mode 100644 sysdeps/unix/sysv/linux/aarch64/ilp32/lxstat64.c - create mode 100644 sysdeps/unix/sysv/linux/aarch64/ilp32/mmap64.c - create mode 100644 sysdeps/unix/sysv/linux/aarch64/ilp32/posix_fadvise64.c - create mode 100644 sysdeps/unix/sysv/linux/aarch64/ilp32/posix_fallocate.c - create mode 100644 sysdeps/unix/sysv/linux/aarch64/ilp32/posix_fallocate64.c - create mode 100644 sysdeps/unix/sysv/linux/aarch64/ilp32/pread64.c - create mode 100644 sysdeps/unix/sysv/linux/aarch64/ilp32/preadv64.c - create mode 100644 sysdeps/unix/sysv/linux/aarch64/ilp32/pwrite64.c - create mode 100644 sysdeps/unix/sysv/linux/aarch64/ilp32/pwritev64.c - create mode 100644 sysdeps/unix/sysv/linux/aarch64/ilp32/semctl.c - create mode 100644 sysdeps/unix/sysv/linux/aarch64/ilp32/sendfile64.c - create mode 100644 sysdeps/unix/sysv/linux/aarch64/ilp32/setrlimit64.c - create mode 100644 sysdeps/unix/sysv/linux/aarch64/ilp32/shlib-versions - create mode 100644 sysdeps/unix/sysv/linux/aarch64/ilp32/statfs64.c - create mode 100644 sysdeps/unix/sysv/linux/aarch64/ilp32/statvfs.c - create mode 100644 sysdeps/unix/sysv/linux/aarch64/ilp32/statvfs64.c - create mode 100644 sysdeps/unix/sysv/linux/aarch64/ilp32/syscalls.list - create mode 100644 sysdeps/unix/sysv/linux/aarch64/ilp32/truncate64.c - create mode 100644 sysdeps/unix/sysv/linux/aarch64/ilp32/xstat.c - create mode 100644 sysdeps/unix/sysv/linux/aarch64/ilp32/xstat64.c - delete mode 100644 sysdeps/unix/sysv/linux/aarch64/ioctl.S - create mode 100644 sysdeps/unix/sysv/linux/aarch64/lp64/Implies - create mode 100644 sysdeps/unix/sysv/linux/aarch64/lp64/ioctl.S - create mode 100644 sysdeps/unix/sysv/linux/aarch64/lp64/shlib-versions - delete mode 100644 sysdeps/unix/sysv/linux/aarch64/mmap.c - -diff --git a/sysdeps/aarch64/Implies b/sysdeps/aarch64/Implies -deleted file mode 100644 -index e5adf4d..0000000 ---- a/sysdeps/aarch64/Implies -+++ /dev/null -@@ -1,6 +0,0 @@ --wordsize-64 --ieee754/ldbl-128 --ieee754/dbl-64/wordsize-64 --ieee754/dbl-64 --ieee754/flt-32 --aarch64/soft-fp -diff --git a/sysdeps/aarch64/ilp32/Implies b/sysdeps/aarch64/ilp32/Implies -new file mode 100644 -index 0000000..705bc5b ---- /dev/null -+++ b/sysdeps/aarch64/ilp32/Implies -@@ -0,0 +1,6 @@ -+aarch64 -+wordsize-32 -+ieee754/ldbl-128 -+ieee754/dbl-64 -+ieee754/flt-32 -+aarch64/soft-fp -diff --git a/sysdeps/aarch64/lp64/Implies b/sysdeps/aarch64/lp64/Implies -new file mode 100644 -index 0000000..d2fbde7 ---- /dev/null -+++ b/sysdeps/aarch64/lp64/Implies -@@ -0,0 +1,7 @@ -+aarch64 -+wordsize-64 -+ieee754/ldbl-128 -+ieee754/dbl-64/wordsize-64 -+ieee754/dbl-64 -+ieee754/flt-32 -+aarch64/soft-fp -diff --git a/sysdeps/unix/sysv/linux/aarch64/ilp32/Implies b/sysdeps/unix/sysv/linux/aarch64/ilp32/Implies -new file mode 100644 -index 0000000..a88511b ---- /dev/null -+++ b/sysdeps/unix/sysv/linux/aarch64/ilp32/Implies -@@ -0,0 +1,3 @@ -+aarch64/nptl -+unix/sysv/linux/aarch64 -+unix/sysv/linux/generic -diff --git a/sysdeps/unix/sysv/linux/aarch64/ilp32/Versions b/sysdeps/unix/sysv/linux/aarch64/ilp32/Versions -new file mode 100644 -index 0000000..58b6bfb ---- /dev/null -+++ b/sysdeps/unix/sysv/linux/aarch64/ilp32/Versions -@@ -0,0 +1,5 @@ -+libc { -+ GLIBC_2.21 { -+ fallocate64; -+ } -+} -diff --git a/sysdeps/unix/sysv/linux/aarch64/ilp32/creat.c b/sysdeps/unix/sysv/linux/aarch64/ilp32/creat.c -new file mode 100644 -index 0000000..05feb3d ---- /dev/null -+++ b/sysdeps/unix/sysv/linux/aarch64/ilp32/creat.c -@@ -0,0 +1,2 @@ -+#include <sysdeps/unix/sysv/linux/generic/creat.c> -+weak_alias (__libc_creat, creat64) -diff --git a/sysdeps/unix/sysv/linux/aarch64/ilp32/dl-fxstatat64.c b/sysdeps/unix/sysv/linux/aarch64/ilp32/dl-fxstatat64.c -new file mode 100644 -index 0000000..339e5f4 ---- /dev/null -+++ b/sysdeps/unix/sysv/linux/aarch64/ilp32/dl-fxstatat64.c -@@ -0,0 +1,6 @@ -+/* In this implementation we do not really care whether the call fails -+ because of missing kernel support since we do not even call the -+ function in this case. */ -+#undef __ASSUME_ATFCTS -+#define __ASSUME_ATFCTS 1 -+#include "fxstatat.c" -diff --git a/sysdeps/unix/sysv/linux/aarch64/ilp32/fallocate.c b/sysdeps/unix/sysv/linux/aarch64/ilp32/fallocate.c -new file mode 100644 -index 0000000..d3b7218 ---- /dev/null -+++ b/sysdeps/unix/sysv/linux/aarch64/ilp32/fallocate.c -@@ -0,0 +1 @@ -+#include <sysdeps/unix/sysv/linux/wordsize-64/fallocate.c> -diff --git a/sysdeps/unix/sysv/linux/aarch64/ilp32/fallocate64.c b/sysdeps/unix/sysv/linux/aarch64/ilp32/fallocate64.c -new file mode 100644 -index 0000000..df33112 ---- /dev/null -+++ b/sysdeps/unix/sysv/linux/aarch64/ilp32/fallocate64.c -@@ -0,0 +1 @@ -+/* fallocate64 is in posix_fallocate.c */ -diff --git a/sysdeps/unix/sysv/linux/aarch64/ilp32/fstatfs64.c b/sysdeps/unix/sysv/linux/aarch64/ilp32/fstatfs64.c -new file mode 100644 -index 0000000..2be4e59 ---- /dev/null -+++ b/sysdeps/unix/sysv/linux/aarch64/ilp32/fstatfs64.c -@@ -0,0 +1 @@ -+/* fstatfs64 is the same as fstatfs. */ -diff --git a/sysdeps/unix/sysv/linux/aarch64/ilp32/ftruncate64.c b/sysdeps/unix/sysv/linux/aarch64/ilp32/ftruncate64.c -new file mode 100644 -index 0000000..673a8b5 ---- /dev/null -+++ b/sysdeps/unix/sysv/linux/aarch64/ilp32/ftruncate64.c -@@ -0,0 +1 @@ -+/* ftruncate64 is the same as ftruncate. */ -diff --git a/sysdeps/unix/sysv/linux/aarch64/ilp32/fxstat.c b/sysdeps/unix/sysv/linux/aarch64/ilp32/fxstat.c -new file mode 100644 -index 0000000..272b6be ---- /dev/null -+++ b/sysdeps/unix/sysv/linux/aarch64/ilp32/fxstat.c -@@ -0,0 +1 @@ -+#include <sysdeps/unix/sysv/linux/wordsize-64/fxstat.c> -diff --git a/sysdeps/unix/sysv/linux/aarch64/ilp32/fxstat64.c b/sysdeps/unix/sysv/linux/aarch64/ilp32/fxstat64.c -new file mode 100644 -index 0000000..9eff9eb ---- /dev/null -+++ b/sysdeps/unix/sysv/linux/aarch64/ilp32/fxstat64.c -@@ -0,0 +1 @@ -+/* fxstat64 is in fxstat.c */ -diff --git a/sysdeps/unix/sysv/linux/aarch64/ilp32/fxstatat.c b/sysdeps/unix/sysv/linux/aarch64/ilp32/fxstatat.c -new file mode 100644 -index 0000000..689cd57 ---- /dev/null -+++ b/sysdeps/unix/sysv/linux/aarch64/ilp32/fxstatat.c -@@ -0,0 +1 @@ -+#include <sysdeps/unix/sysv/linux/wordsize-64/fxstatat.c> -diff --git a/sysdeps/unix/sysv/linux/aarch64/ilp32/fxstatat64.c b/sysdeps/unix/sysv/linux/aarch64/ilp32/fxstatat64.c -new file mode 100644 -index 0000000..05e7f41 ---- /dev/null -+++ b/sysdeps/unix/sysv/linux/aarch64/ilp32/fxstatat64.c -@@ -0,0 +1 @@ -+/* fxstatat64 is in fxstatat.c */ -diff --git a/sysdeps/unix/sysv/linux/aarch64/ilp32/getdents.c b/sysdeps/unix/sysv/linux/aarch64/ilp32/getdents.c -new file mode 100644 -index 0000000..14dbbc7 ---- /dev/null -+++ b/sysdeps/unix/sysv/linux/aarch64/ilp32/getdents.c -@@ -0,0 +1 @@ -+/* Defined in getdents64.c */ -diff --git a/sysdeps/unix/sysv/linux/aarch64/ilp32/getdents64.c b/sysdeps/unix/sysv/linux/aarch64/ilp32/getdents64.c -new file mode 100644 -index 0000000..08987ea ---- /dev/null -+++ b/sysdeps/unix/sysv/linux/aarch64/ilp32/getdents64.c -@@ -0,0 +1,2 @@ -+#include <sysdeps/unix/sysv/linux/generic/getdents64.c> -+strong_alias (__getdents64, __getdents) -diff --git a/sysdeps/unix/sysv/linux/aarch64/ilp32/getrlimit64.c b/sysdeps/unix/sysv/linux/aarch64/ilp32/getrlimit64.c -new file mode 100644 -index 0000000..9feab0e ---- /dev/null -+++ b/sysdeps/unix/sysv/linux/aarch64/ilp32/getrlimit64.c -@@ -0,0 +1 @@ -+/* getrlimit64 is the same as getrlimit. */ -diff --git a/sysdeps/unix/sysv/linux/aarch64/ilp32/glob.c b/sysdeps/unix/sysv/linux/aarch64/ilp32/glob.c -new file mode 100644 -index 0000000..e542747 ---- /dev/null -+++ b/sysdeps/unix/sysv/linux/aarch64/ilp32/glob.c -@@ -0,0 +1 @@ -+#include <sysdeps/wordsize-64/glob.c> -diff --git a/sysdeps/unix/sysv/linux/aarch64/ilp32/kernel_stat.h b/sysdeps/unix/sysv/linux/aarch64/ilp32/kernel_stat.h -new file mode 100644 -index 0000000..91e01ba ---- /dev/null -+++ b/sysdeps/unix/sysv/linux/aarch64/ilp32/kernel_stat.h -@@ -0,0 +1,24 @@ -+/* Copyright (C) 2011-2014 Free Software Foundation, Inc. -+ This file is part of the GNU C Library. -+ Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011. -+ -+ The GNU C Library is free software; you can redistribute it and/or -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 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 -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library. If not, see -+ <http://www.gnu.org/licenses/>. */ -+ -+#include <sysdeps/unix/sysv/linux/generic/kernel_stat.h> -+ -+/* ILP32 has no overflow checks. */ -+#ifndef __LP64__ -+#define XSTAT_IS_XSTAT64 1 -+#endif -diff --git a/sysdeps/unix/sysv/linux/aarch64/ilp32/llseek.c b/sysdeps/unix/sysv/linux/aarch64/ilp32/llseek.c -new file mode 100644 -index 0000000..24013a8 ---- /dev/null -+++ b/sysdeps/unix/sysv/linux/aarch64/ilp32/llseek.c -@@ -0,0 +1 @@ -+/* lseek() is 64-bit capable already. */ -diff --git a/sysdeps/unix/sysv/linux/aarch64/ilp32/lxstat64.c b/sysdeps/unix/sysv/linux/aarch64/ilp32/lxstat64.c -new file mode 100644 -index 0000000..bb5dbd0 ---- /dev/null -+++ b/sysdeps/unix/sysv/linux/aarch64/ilp32/lxstat64.c -@@ -0,0 +1 @@ -+/* lxstat64 is in lxstat.c */ -diff --git a/sysdeps/unix/sysv/linux/aarch64/ilp32/mmap64.c b/sysdeps/unix/sysv/linux/aarch64/ilp32/mmap64.c -new file mode 100644 -index 0000000..8e32bae ---- /dev/null -+++ b/sysdeps/unix/sysv/linux/aarch64/ilp32/mmap64.c -@@ -0,0 +1 @@ -+/* mmap64 is provided by mmap as they are the same. */ -diff --git a/sysdeps/unix/sysv/linux/aarch64/ilp32/posix_fadvise64.c b/sysdeps/unix/sysv/linux/aarch64/ilp32/posix_fadvise64.c -new file mode 100644 -index 0000000..c9f72c4 ---- /dev/null -+++ b/sysdeps/unix/sysv/linux/aarch64/ilp32/posix_fadvise64.c -@@ -0,0 +1 @@ -+/* posix_fadvise64 is in posix_fadvise.c */ -diff --git a/sysdeps/unix/sysv/linux/aarch64/ilp32/posix_fallocate.c b/sysdeps/unix/sysv/linux/aarch64/ilp32/posix_fallocate.c -new file mode 100644 -index 0000000..b3fe81b ---- /dev/null -+++ b/sysdeps/unix/sysv/linux/aarch64/ilp32/posix_fallocate.c -@@ -0,0 +1 @@ -+#include <sysdeps/unix/sysv/linux/wordsize-64/posix_fallocate.c> -diff --git a/sysdeps/unix/sysv/linux/aarch64/ilp32/posix_fallocate64.c b/sysdeps/unix/sysv/linux/aarch64/ilp32/posix_fallocate64.c -new file mode 100644 -index 0000000..f466f13 ---- /dev/null -+++ b/sysdeps/unix/sysv/linux/aarch64/ilp32/posix_fallocate64.c -@@ -0,0 +1 @@ -+/* posix_fallocate64 is in posix_fallocate.c */ -diff --git a/sysdeps/unix/sysv/linux/aarch64/ilp32/pread64.c b/sysdeps/unix/sysv/linux/aarch64/ilp32/pread64.c -new file mode 100644 -index 0000000..b7f298d ---- /dev/null -+++ b/sysdeps/unix/sysv/linux/aarch64/ilp32/pread64.c -@@ -0,0 +1 @@ -+/* Empty since the pread syscall is equivalent. */ -diff --git a/sysdeps/unix/sysv/linux/aarch64/ilp32/preadv64.c b/sysdeps/unix/sysv/linux/aarch64/ilp32/preadv64.c -new file mode 100644 -index 0000000..0a20301 ---- /dev/null -+++ b/sysdeps/unix/sysv/linux/aarch64/ilp32/preadv64.c -@@ -0,0 +1 @@ -+/* preadv64 is the same as preadv. */ -diff --git a/sysdeps/unix/sysv/linux/aarch64/ilp32/pwrite64.c b/sysdeps/unix/sysv/linux/aarch64/ilp32/pwrite64.c -new file mode 100644 -index 0000000..b7f298d ---- /dev/null -+++ b/sysdeps/unix/sysv/linux/aarch64/ilp32/pwrite64.c -@@ -0,0 +1 @@ -+/* Empty since the pread syscall is equivalent. */ -diff --git a/sysdeps/unix/sysv/linux/aarch64/ilp32/pwritev64.c b/sysdeps/unix/sysv/linux/aarch64/ilp32/pwritev64.c -new file mode 100644 -index 0000000..e96c6f2 ---- /dev/null -+++ b/sysdeps/unix/sysv/linux/aarch64/ilp32/pwritev64.c -@@ -0,0 +1 @@ -+/* pwritev64 is the same as pwritev. */ -diff --git a/sysdeps/unix/sysv/linux/aarch64/ilp32/semctl.c b/sysdeps/unix/sysv/linux/aarch64/ilp32/semctl.c -new file mode 100644 -index 0000000..0652405 ---- /dev/null -+++ b/sysdeps/unix/sysv/linux/aarch64/ilp32/semctl.c -@@ -0,0 +1,66 @@ -+/* Copyright (C) 2007-2014 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 Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 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 -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library. If not, see -+ <http://www.gnu.org/licenses/>. */ -+ -+#include <errno.h> -+#include <stdarg.h> -+#include <sys/sem.h> -+#include <ipc_priv.h> -+#include <sysdep.h> -+ -+/* Define a `union semun' that is for glibc here. */ -+union semun -+{ -+ int val; /* value for SETVAL */ -+ struct semid_ds *buf; /* buffer for IPC_STAT & IPC_SET */ -+ unsigned short int *array; /* array for GETALL & SETALL */ -+ struct seminfo *__buf; /* buffer for IPC_INFO */ -+}; -+ -+union semun_kernel -+{ -+ int val; /* value for SETVAL */ -+ unsigned long long kern_ptr; -+}; -+ -+int __semctl (int semid, int semnum, int cmd, ...); -+ -+int -+__semctl (int semid, int semnum, int cmd, ...) -+{ -+ union semun arg; -+ union semun_kernel arg_real; -+ va_list ap; -+ -+ va_start (ap, cmd); -+ -+ /* Get the argument. */ -+ arg = va_arg (ap, union semun); -+ -+ va_end (ap); -+ -+ arg_real.kern_ptr = 0; -+ if (cmd == SETVAL) -+ arg_real.val = arg.val; -+ else -+ arg_real.kern_ptr = (unsigned long long)(uintptr_t)arg.array; -+ -+ return INLINE_SYSCALL (semctl, 4, semid, semnum, cmd, -+ arg_real.kern_ptr); -+} -+ -+#include <shlib-compat.h> -+versioned_symbol (libc, __semctl, semctl, GLIBC_2_0); -diff --git a/sysdeps/unix/sysv/linux/aarch64/ilp32/sendfile64.c b/sysdeps/unix/sysv/linux/aarch64/ilp32/sendfile64.c -new file mode 100644 -index 0000000..4c451bd ---- /dev/null -+++ b/sysdeps/unix/sysv/linux/aarch64/ilp32/sendfile64.c -@@ -0,0 +1 @@ -+/* sendfile64 is alias of sendfile syscall. */ -diff --git a/sysdeps/unix/sysv/linux/aarch64/ilp32/setrlimit64.c b/sysdeps/unix/sysv/linux/aarch64/ilp32/setrlimit64.c -new file mode 100644 -index 0000000..8edcff0 ---- /dev/null -+++ b/sysdeps/unix/sysv/linux/aarch64/ilp32/setrlimit64.c -@@ -0,0 +1 @@ -+/* setrlimit64 is the same as setrlimit. */ -diff --git a/sysdeps/unix/sysv/linux/aarch64/ilp32/shlib-versions b/sysdeps/unix/sysv/linux/aarch64/ilp32/shlib-versions -new file mode 100644 -index 0000000..17db764 ---- /dev/null -+++ b/sysdeps/unix/sysv/linux/aarch64/ilp32/shlib-versions -@@ -0,0 +1,7 @@ -+DEFAULT GLIBC_2.21 -+ -+%ifdef HAVE_AARCH64_BE -+ld=ld-linux-aarch64_be_ilp32.so.1 -+%else -+ld=ld-linux-aarch64_ilp32.so.1 -+%endif -diff --git a/sysdeps/unix/sysv/linux/aarch64/ilp32/statfs64.c b/sysdeps/unix/sysv/linux/aarch64/ilp32/statfs64.c -new file mode 100644 -index 0000000..06bc688 ---- /dev/null -+++ b/sysdeps/unix/sysv/linux/aarch64/ilp32/statfs64.c -@@ -0,0 +1 @@ -+/* statfs64 is the same as statfs. */ -diff --git a/sysdeps/unix/sysv/linux/aarch64/ilp32/statvfs.c b/sysdeps/unix/sysv/linux/aarch64/ilp32/statvfs.c -new file mode 100644 -index 0000000..48a1d6d ---- /dev/null -+++ b/sysdeps/unix/sysv/linux/aarch64/ilp32/statvfs.c -@@ -0,0 +1,5 @@ -+#define __statvfs64(file, buf) __no_statvfs64(file, buf) -+#define statvfs64(file, buf) no_statvfs64(file, buf) -+#include "sysdeps/unix/sysv/linux/statvfs.c" -+strong_alias (statvfs, __statvfs64) -+weak_alias (statvfs, statvfs64) -diff --git a/sysdeps/unix/sysv/linux/aarch64/ilp32/statvfs64.c b/sysdeps/unix/sysv/linux/aarch64/ilp32/statvfs64.c -new file mode 100644 -index 0000000..510015e ---- /dev/null -+++ b/sysdeps/unix/sysv/linux/aarch64/ilp32/statvfs64.c -@@ -0,0 +1 @@ -+/* statvfs64 is the same as statvfs. */ -diff --git a/sysdeps/unix/sysv/linux/aarch64/ilp32/syscalls.list b/sysdeps/unix/sysv/linux/aarch64/ilp32/syscalls.list -new file mode 100644 -index 0000000..1a3834b ---- /dev/null -+++ b/sysdeps/unix/sysv/linux/aarch64/ilp32/syscalls.list -@@ -0,0 +1,21 @@ -+# File name Caller Syscall name # args Strong name Weak names -+ -+truncate - truncate i:si truncate __truncate truncate64 -+ftruncate - ftruncate i:ii __ftruncate ftruncate ftruncate64 __ftruncate64 -+preadv - preadv Ci:ipii preadv preadv64 -+pwritev - pwritev Ci:ipii pwritev pwritev64 -+pread - pread64 Ci:ibni __libc_pread __libc_pread64 __pread pread __pread64 pread64 -+pwrite - pwrite64 Ci:ibni __libc_pwrite __libc_pwrite64 __pwrite pwrite __pwrite64 pwrite64 -+readahead - readahead i:iii __readahead readahead -+getrlimit - getrlimit i:ip __getrlimit getrlimit getrlimit64 -+setrlimit - setrlimit i:ip __setrlimit setrlimit setrlimit64 -+prlimit EXTRA prlimit64 i:iipp prlimit -+sendfile - sendfile i:iipi sendfile sendfile64 -+lseek - lseek Ci:iii __libc_lseek __lseek lseek __llseek llseek __libc_lseek64 __lseek64 lseek64 -+sync_file_range - sync_file_range Ci:iiii sync_file_range -+mmap - mmap b:aniiii __mmap mmap __mmap64 mmap64 -+posix_fadvise - fadvise64 Vi:iiii posix_fadvise posix_fadvise64 -+fstatfs - fstatfs i:ip __fstatfs fstatfs fstatfs64 __fstatfs64 -+statfs - statfs i:sp __statfs statfs statfs64 __statfs64 -+fanotify_mark EXTRA fanotify_mark i:iiiiis fanotify_mark -+ -diff --git a/sysdeps/unix/sysv/linux/aarch64/ilp32/truncate64.c b/sysdeps/unix/sysv/linux/aarch64/ilp32/truncate64.c -new file mode 100644 -index 0000000..8999768 ---- /dev/null -+++ b/sysdeps/unix/sysv/linux/aarch64/ilp32/truncate64.c -@@ -0,0 +1 @@ -+/* truncate64 is the same as truncate. */ -diff --git a/sysdeps/unix/sysv/linux/aarch64/ilp32/xstat.c b/sysdeps/unix/sysv/linux/aarch64/ilp32/xstat.c -new file mode 100644 -index 0000000..96927fe ---- /dev/null -+++ b/sysdeps/unix/sysv/linux/aarch64/ilp32/xstat.c -@@ -0,0 +1 @@ -+#include <sysdeps/unix/sysv/linux/generic/xstat.c> -diff --git a/sysdeps/unix/sysv/linux/aarch64/ilp32/xstat64.c b/sysdeps/unix/sysv/linux/aarch64/ilp32/xstat64.c -new file mode 100644 -index 0000000..e7acd3b ---- /dev/null -+++ b/sysdeps/unix/sysv/linux/aarch64/ilp32/xstat64.c -@@ -0,0 +1 @@ -+/* xstat64 is in xstat.c */ -diff --git a/sysdeps/unix/sysv/linux/aarch64/ioctl.S b/sysdeps/unix/sysv/linux/aarch64/ioctl.S -deleted file mode 100644 -index 8920a20..0000000 ---- a/sysdeps/unix/sysv/linux/aarch64/ioctl.S -+++ /dev/null -@@ -1,31 +0,0 @@ --/* Copyright (C) 2012-2014 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 Lesser General Public License as -- published by the Free Software Foundation; either version 2.1 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 -- Lesser General Public License for more details. -- -- You should have received a copy of the GNU Lesser General Public -- License along with the GNU C Library; if not, see -- <http://www.gnu.org/licenses/>. */ -- --#include <sysdep.h> -- -- .text --ENTRY(__ioctl) -- mov x8, #__NR_ioctl -- sxtw x0, w0 -- svc #0x0 -- cmn x0, #4095 -- b.cs .Lsyscall_error -- ret --PSEUDO_END (__ioctl) -- --weak_alias (__ioctl, ioctl) -diff --git a/sysdeps/unix/sysv/linux/aarch64/lp64/Implies b/sysdeps/unix/sysv/linux/aarch64/lp64/Implies -new file mode 100644 -index 0000000..6418211 ---- /dev/null -+++ b/sysdeps/unix/sysv/linux/aarch64/lp64/Implies -@@ -0,0 +1,4 @@ -+aarch64/nptl -+unix/sysv/linux/aarch64 -+unix/sysv/linux/generic -+unix/sysv/linux/wordsize-64 -diff --git a/sysdeps/unix/sysv/linux/aarch64/lp64/ioctl.S b/sysdeps/unix/sysv/linux/aarch64/lp64/ioctl.S -new file mode 100644 -index 0000000..8920a20 ---- /dev/null -+++ b/sysdeps/unix/sysv/linux/aarch64/lp64/ioctl.S -@@ -0,0 +1,31 @@ -+/* Copyright (C) 2012-2014 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 Lesser General Public License as -+ published by the Free Software Foundation; either version 2.1 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 -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ <http://www.gnu.org/licenses/>. */ -+ -+#include <sysdep.h> -+ -+ .text -+ENTRY(__ioctl) -+ mov x8, #__NR_ioctl -+ sxtw x0, w0 -+ svc #0x0 -+ cmn x0, #4095 -+ b.cs .Lsyscall_error -+ ret -+PSEUDO_END (__ioctl) -+ -+weak_alias (__ioctl, ioctl) -diff --git a/sysdeps/unix/sysv/linux/aarch64/lp64/shlib-versions b/sysdeps/unix/sysv/linux/aarch64/lp64/shlib-versions -new file mode 100644 -index 0000000..e1768a7 ---- /dev/null -+++ b/sysdeps/unix/sysv/linux/aarch64/lp64/shlib-versions -@@ -0,0 +1,7 @@ -+DEFAULT GLIBC_2.17 -+ -+%ifdef HAVE_AARCH64_BE -+ld=ld-linux-aarch64_be.so.1 -+%else -+ld=ld-linux-aarch64.so.1 -+%endif -diff --git a/sysdeps/unix/sysv/linux/aarch64/mmap.c b/sysdeps/unix/sysv/linux/aarch64/mmap.c -deleted file mode 100644 -index 54ecc10..0000000 ---- a/sysdeps/unix/sysv/linux/aarch64/mmap.c -+++ /dev/null -@@ -1,34 +0,0 @@ --/* Copyright (C) 2009-2014 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 Lesser General Public License as -- published by the Free Software Foundation; either version 2.1 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 -- Lesser General Public License for more details. -- -- You should have received a copy of the GNU Lesser General Public -- License along with the GNU C Library; if not, see -- <http://www.gnu.org/licenses/>. */ -- --#include <sys/types.h> --#include <sys/mman.h> --#include <errno.h> --#include <sys/syscall.h> --#include <sysdep.h> --#include <unistd.h> -- --__ptr_t --__mmap (__ptr_t addr, size_t len, int prot, int flags, int fd, off_t offset) --{ -- return (__ptr_t) INLINE_SYSCALL (mmap, 6, addr, len, prot, flags, fd, offset); --} -- --weak_alias (__mmap, mmap) --weak_alias (__mmap, mmap64) --weak_alias (__mmap, __mmap64) --- -1.9.3 - diff --git a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0031-sysdeps-unix-sysv-linux-aarch64-sysdep.h-Fix-crash-i.patch b/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0031-sysdeps-unix-sysv-linux-aarch64-sysdep.h-Fix-crash-i.patch deleted file mode 100644 index 4c045c42..00000000 --- a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0031-sysdeps-unix-sysv-linux-aarch64-sysdep.h-Fix-crash-i.patch +++ /dev/null @@ -1,40 +0,0 @@ -From c0a1a57f70e84b84517366d3862f5771db8fb25c Mon Sep 17 00:00:00 2001 -From: Will Newton <will.newton@linaro.org> -Date: Wed, 12 Nov 2014 10:25:00 +0000 -Subject: [PATCH 31/32] sysdeps/unix/sysv/linux/aarch64/sysdep.h: Fix crash in - syscall_error - ---- - sysdeps/unix/sysv/linux/aarch64/configure.ac | 2 +- - sysdeps/unix/sysv/linux/aarch64/sysdep.h | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/sysdeps/unix/sysv/linux/aarch64/configure.ac b/sysdeps/unix/sysv/linux/aarch64/configure.ac -index 3ca8ed1..c28ae0c 100644 ---- a/sysdeps/unix/sysv/linux/aarch64/configure.ac -+++ b/sysdeps/unix/sysv/linux/aarch64/configure.ac -@@ -2,7 +2,7 @@ GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory. - # Local configure fragment for sysdeps/unix/sysv/linux/aarch64. - - if test $aarch64_config_abi = ilp32; then -- arch_minimum_kernel=3.19.0 -+ arch_minimum_kernel=3.18.0 - LIBC_SLIBDIR_RTLDDIR([libilp32], [lib]) - else - arch_minimum_kernel=3.7.0 -diff --git a/sysdeps/unix/sysv/linux/aarch64/sysdep.h b/sysdeps/unix/sysv/linux/aarch64/sysdep.h -index 0d9fa8a..f5ca503 100644 ---- a/sysdeps/unix/sysv/linux/aarch64/sysdep.h -+++ b/sysdeps/unix/sysv/linux/aarch64/sysdep.h -@@ -108,7 +108,7 @@ - .Lsyscall_error: \ - adrp x1, :gottprel:errno; \ - neg w2, w0; \ -- ldr x1, [x1, :gottprel_lo12:errno]; \ -+ ldr PTR_REG(1), [x1, :gottprel_lo12:errno]; \ - mrs x3, tpidr_el0; \ - mov x0, -1; \ - str w2, [x1, x3]; \ --- -1.9.3 - diff --git a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0032-sysdeps-unix-sysv-linux-aarch64-configure-Reduce-ker.patch b/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0032-sysdeps-unix-sysv-linux-aarch64-configure-Reduce-ker.patch deleted file mode 100644 index a87d8c42..00000000 --- a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0032-sysdeps-unix-sysv-linux-aarch64-configure-Reduce-ker.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 3307dc591b95381b2ba5f3139a05997cc610e48d Mon Sep 17 00:00:00 2001 -From: Will Newton <will.newton@linaro.org> -Date: Thu, 13 Nov 2014 16:18:06 +0000 -Subject: [PATCH 32/32] sysdeps/unix/sysv/linux/aarch64/configure: Reduce - kernel version to 3.18 - ---- - sysdeps/unix/sysv/linux/aarch64/configure | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/sysdeps/unix/sysv/linux/aarch64/configure b/sysdeps/unix/sysv/linux/aarch64/configure -index faef1dd..a523bfe 100755 ---- a/sysdeps/unix/sysv/linux/aarch64/configure -+++ b/sysdeps/unix/sysv/linux/aarch64/configure -@@ -2,7 +2,7 @@ - # Local configure fragment for sysdeps/unix/sysv/linux/aarch64. - - if test $aarch64_config_abi = ilp32; then -- arch_minimum_kernel=3.19.0 -+ arch_minimum_kernel=3.18.0 - test -n "$libc_cv_slibdir" || - case "$prefix" in - /usr | /usr/) --- -1.9.3 - diff --git a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/CVE-2015-7547.patch b/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/CVE-2015-7547.patch deleted file mode 100644 index 55e18a55..00000000 --- a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/CVE-2015-7547.patch +++ /dev/null @@ -1,639 +0,0 @@ -From e9db92d3acfe1822d56d11abcea5bfc4c41cf6ca Mon Sep 17 00:00:00 2001 -From: Carlos O'Donell <carlos@systemhalted.org> -Date: Tue, 16 Feb 2016 21:26:37 -0500 -Subject: [PATCH] CVE-2015-7547: getaddrinfo() stack-based buffer overflow (Bug - 18665). - -* A stack-based buffer overflow was found in libresolv when invoked from - libnss_dns, allowing specially crafted DNS responses to seize control - of execution flow in the DNS client. The buffer overflow occurs in - the functions send_dg (send datagram) and send_vc (send TCP) for the - NSS module libnss_dns.so.2 when calling getaddrinfo with AF_UNSPEC - family. The use of AF_UNSPEC triggers the low-level resolver code to - send out two parallel queries for A and AAAA. A mismanagement of the - buffers used for those queries could result in the response of a query - writing beyond the alloca allocated buffer created by - _nss_dns_gethostbyname4_r. Buffer management is simplified to remove - the overflow. Thanks to the Google Security Team and Red Hat for - reporting the security impact of this issue, and Robert Holiday of - Ciena for reporting the related bug 18665. (CVE-2015-7547) - -See also: -https://sourceware.org/ml/libc-alpha/2016-02/msg00416.html -https://sourceware.org/ml/libc-alpha/2016-02/msg00418.html - -Upstream-Status: Backport -CVE: CVE-2015-7547 - -https://sourceware.org/git/?p=glibc.git;a=commit;h=e9db92d3acfe1822d56d11abcea5bfc4c41cf6ca -minor tweeking to apply to Changelog and res_send.c - -Signed-off-by: Armin Kuster <akuster@mvista.com> - ---- - ChangeLog | 17 ++- - NEWS | 14 +++ - resolv/nss_dns/dns-host.c | 111 +++++++++++++++++++- - resolv/res_query.c | 3 + - resolv/res_send.c | 260 +++++++++++++++++++++++++++++++++++----------- - 5 files changed, 339 insertions(+), 66 deletions(-) - -diff --git a/ChangeLog b/ChangeLog -index 0f9a3e1..0c7810e 100644 ---- a/ChangeLog -+++ b/ChangeLog -@@ -1,3 +1,18 @@ -+2016-02-15 Carlos O'Donell <carlos@redhat.com> -+ -+ [BZ #18665] -+ * resolv/nss_dns/dns-host.c (gaih_getanswer_slice): Always set -+ *herrno_p. -+ (gaih_getanswer): Document functional behviour. Return tryagain -+ if any result is tryagain. -+ * resolv/res_query.c (__libc_res_nsearch): Set buffer size to zero -+ when freed. -+ * resolv/res_send.c: Add copyright text. -+ (__libc_res_nsend): Document that MAXPACKET is expected. -+ (send_vc): Document. Remove buffer reuse. -+ (send_dg): Document. Remove buffer reuse. Set *thisanssizp to set the -+ size of the buffer. Add Dprint for truncated UDP buffer. -+ - 2014-10-08 Roland McGrath <roland@hack.frob.com> - - [BZ #17460] -diff --git a/NEWS b/NEWS -index a1d3053..6945e6b 100644 ---- a/NEWS -+++ b/NEWS -@@ -5,6 +5,24 @@ See the end for copying conditions. - Please send GNU C library bug reports via <http://sourceware.org/bugzilla/> - using `glibc' in the "product" field. - -+ -+* A stack-based buffer overflow was found in libresolv when invoked from -+ libnss_dns, allowing specially crafted DNS responses to seize control -+ of execution flow in the DNS client. The buffer overflow occurs in -+ the functions send_dg (send datagram) and send_vc (send TCP) for the -+ NSS module libnss_dns.so.2 when calling getaddrinfo with AF_UNSPEC -+ family. The use of AF_UNSPEC triggers the low-level resolver code to -+ send out two parallel queries for A and AAAA. A mismanagement of the -+ buffers used for those queries could result in the response of a query -+ writing beyond the alloca allocated buffer created by -+ _nss_dns_gethostbyname4_r. Buffer management is simplified to remove -+ the overflow. Thanks to the Google Security Team and Red Hat for -+ reporting the security impact of this issue, and Robert Holiday of -+ Ciena for reporting the related bug 18665. (CVE-2015-7547) -+ -+ * The LD_POINTER_GUARD environment variable can no longer be used to -+ disable the pointer guard feature. It is always enabled. -+ - Version 2.20.1 - - * The following bugs are resolved with this release: -diff --git a/resolv/nss_dns/dns-host.c b/resolv/nss_dns/dns-host.c -index 3258e70..755832e 100644 ---- a/resolv/nss_dns/dns-host.c -+++ b/resolv/nss_dns/dns-host.c -@@ -1031,7 +1031,10 @@ gaih_getanswer_slice (const querybuf *answer, int anslen, const char *qname, - int h_namelen = 0; - - if (ancount == 0) -- return NSS_STATUS_NOTFOUND; -+ { -+ *h_errnop = HOST_NOT_FOUND; -+ return NSS_STATUS_NOTFOUND; -+ } - - while (ancount-- > 0 && cp < end_of_message && had_error == 0) - { -@@ -1208,7 +1211,14 @@ gaih_getanswer_slice (const querybuf *answer, int anslen, const char *qname, - /* Special case here: if the resolver sent a result but it only - contains a CNAME while we are looking for a T_A or T_AAAA record, - we fail with NOTFOUND instead of TRYAGAIN. */ -- return canon == NULL ? NSS_STATUS_TRYAGAIN : NSS_STATUS_NOTFOUND; -+ if (canon != NULL) -+ { -+ *h_errnop = HOST_NOT_FOUND; -+ return NSS_STATUS_NOTFOUND; -+ } -+ -+ *h_errnop = NETDB_INTERNAL; -+ return NSS_STATUS_TRYAGAIN; - } - - -@@ -1222,11 +1232,101 @@ gaih_getanswer (const querybuf *answer1, int anslen1, const querybuf *answer2, - - enum nss_status status = NSS_STATUS_NOTFOUND; - -+ /* Combining the NSS status of two distinct queries requires some -+ compromise and attention to symmetry (A or AAAA queries can be -+ returned in any order). What follows is a breakdown of how this -+ code is expected to work and why. We discuss only SUCCESS, -+ TRYAGAIN, NOTFOUND and UNAVAIL, since they are the only returns -+ that apply (though RETURN and MERGE exist). We make a distinction -+ between TRYAGAIN (recoverable) and TRYAGAIN' (not-recoverable). -+ A recoverable TRYAGAIN is almost always due to buffer size issues -+ and returns ERANGE in errno and the caller is expected to retry -+ with a larger buffer. -+ -+ Lastly, you may be tempted to make significant changes to the -+ conditions in this code to bring about symmetry between responses. -+ Please don't change anything without due consideration for -+ expected application behaviour. Some of the synthesized responses -+ aren't very well thought out and sometimes appear to imply that -+ IPv4 responses are always answer 1, and IPv6 responses are always -+ answer 2, but that's not true (see the implementation of send_dg -+ and send_vc to see response can arrive in any order, particularly -+ for UDP). However, we expect it holds roughly enough of the time -+ that this code works, but certainly needs to be fixed to make this -+ a more robust implementation. -+ -+ ---------------------------------------------- -+ | Answer 1 Status / | Synthesized | Reason | -+ | Answer 2 Status | Status | | -+ |--------------------------------------------| -+ | SUCCESS/SUCCESS | SUCCESS | [1] | -+ | SUCCESS/TRYAGAIN | TRYAGAIN | [5] | -+ | SUCCESS/TRYAGAIN' | SUCCESS | [1] | -+ | SUCCESS/NOTFOUND | SUCCESS | [1] | -+ | SUCCESS/UNAVAIL | SUCCESS | [1] | -+ | TRYAGAIN/SUCCESS | TRYAGAIN | [2] | -+ | TRYAGAIN/TRYAGAIN | TRYAGAIN | [2] | -+ | TRYAGAIN/TRYAGAIN' | TRYAGAIN | [2] | -+ | TRYAGAIN/NOTFOUND | TRYAGAIN | [2] | -+ | TRYAGAIN/UNAVAIL | TRYAGAIN | [2] | -+ | TRYAGAIN'/SUCCESS | SUCCESS | [3] | -+ | TRYAGAIN'/TRYAGAIN | TRYAGAIN | [3] | -+ | TRYAGAIN'/TRYAGAIN' | TRYAGAIN' | [3] | -+ | TRYAGAIN'/NOTFOUND | TRYAGAIN' | [3] | -+ | TRYAGAIN'/UNAVAIL | UNAVAIL | [3] | -+ | NOTFOUND/SUCCESS | SUCCESS | [3] | -+ | NOTFOUND/TRYAGAIN | TRYAGAIN | [3] | -+ | NOTFOUND/TRYAGAIN' | TRYAGAIN' | [3] | -+ | NOTFOUND/NOTFOUND | NOTFOUND | [3] | -+ | NOTFOUND/UNAVAIL | UNAVAIL | [3] | -+ | UNAVAIL/SUCCESS | UNAVAIL | [4] | -+ | UNAVAIL/TRYAGAIN | UNAVAIL | [4] | -+ | UNAVAIL/TRYAGAIN' | UNAVAIL | [4] | -+ | UNAVAIL/NOTFOUND | UNAVAIL | [4] | -+ | UNAVAIL/UNAVAIL | UNAVAIL | [4] | -+ ---------------------------------------------- -+ -+ [1] If the first response is a success we return success. -+ This ignores the state of the second answer and in fact -+ incorrectly sets errno and h_errno to that of the second -+ answer. However because the response is a success we ignore -+ *errnop and *h_errnop (though that means you touched errno on -+ success). We are being conservative here and returning the -+ likely IPv4 response in the first answer as a success. -+ -+ [2] If the first response is a recoverable TRYAGAIN we return -+ that instead of looking at the second response. The -+ expectation here is that we have failed to get an IPv4 response -+ and should retry both queries. -+ -+ [3] If the first response was not a SUCCESS and the second -+ response is not NOTFOUND (had a SUCCESS, need to TRYAGAIN, -+ or failed entirely e.g. TRYAGAIN' and UNAVAIL) then use the -+ result from the second response, otherwise the first responses -+ status is used. Again we have some odd side-effects when the -+ second response is NOTFOUND because we overwrite *errnop and -+ *h_errnop that means that a first answer of NOTFOUND might see -+ its *errnop and *h_errnop values altered. Whether it matters -+ in practice that a first response NOTFOUND has the wrong -+ *errnop and *h_errnop is undecided. -+ -+ [4] If the first response is UNAVAIL we return that instead of -+ looking at the second response. The expectation here is that -+ it will have failed similarly e.g. configuration failure. -+ -+ [5] Testing this code is complicated by the fact that truncated -+ second response buffers might be returned as SUCCESS if the -+ first answer is a SUCCESS. To fix this we add symmetry to -+ TRYAGAIN with the second response. If the second response -+ is a recoverable error we now return TRYAGIN even if the first -+ response was SUCCESS. */ -+ - if (anslen1 > 0) - status = gaih_getanswer_slice(answer1, anslen1, qname, - &pat, &buffer, &buflen, - errnop, h_errnop, ttlp, - &first); -+ - if ((status == NSS_STATUS_SUCCESS || status == NSS_STATUS_NOTFOUND - || (status == NSS_STATUS_TRYAGAIN - /* We want to look at the second answer in case of an -@@ -1242,8 +1342,15 @@ gaih_getanswer (const querybuf *answer1, int anslen1, const querybuf *answer2, - &pat, &buffer, &buflen, - errnop, h_errnop, ttlp, - &first); -+ /* Use the second response status in some cases. */ - if (status != NSS_STATUS_SUCCESS && status2 != NSS_STATUS_NOTFOUND) - status = status2; -+ /* Do not return a truncated second response (unless it was -+ unavoidable e.g. unrecoverable TRYAGAIN). */ -+ if (status == NSS_STATUS_SUCCESS -+ && (status2 == NSS_STATUS_TRYAGAIN -+ && *errnop == ERANGE && *h_errnop != NO_RECOVERY)) -+ status = NSS_STATUS_TRYAGAIN; - } - - return status; -diff --git a/resolv/res_query.c b/resolv/res_query.c -index e4ee2a6..616fd57 100644 ---- a/resolv/res_query.c -+++ b/resolv/res_query.c -@@ -396,6 +396,7 @@ __libc_res_nsearch(res_state statp, - { - free (*answerp2); - *answerp2 = NULL; -+ *nanswerp2 = 0; - *answerp2_malloced = 0; - } - } -@@ -436,6 +437,7 @@ __libc_res_nsearch(res_state statp, - { - free (*answerp2); - *answerp2 = NULL; -+ *nanswerp2 = 0; - *answerp2_malloced = 0; - } - -@@ -510,6 +512,7 @@ __libc_res_nsearch(res_state statp, - { - free (*answerp2); - *answerp2 = NULL; -+ *nanswerp2 = 0; - *answerp2_malloced = 0; - } - if (saved_herrno != -1) -diff --git a/resolv/res_send.c b/resolv/res_send.c -index af42b8a..5f9f0e7 100644 ---- a/resolv/res_send.c -+++ b/resolv/res_send.c -@@ -1,3 +1,20 @@ -+/* Copyright (C) 2016 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 Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 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 -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ <http://www.gnu.org/licenses/>. */ -+ - /* - * Copyright (c) 1985, 1989, 1993 - * The Regents of the University of California. All rights reserved. -@@ -360,6 +377,8 @@ __libc_res_nsend(res_state statp, const u_char *buf, int buflen, - #ifdef USE_HOOKS - if (__glibc_unlikely (statp->qhook || statp->rhook)) { - if (anssiz < MAXPACKET && ansp) { -+ /* Always allocate MAXPACKET, callers expect -+ this specific size. */ - u_char *buf = malloc (MAXPACKET); - if (buf == NULL) - return (-1); -@@ -653,6 +672,77 @@ libresolv_hidden_def (res_nsend) - - /* Private */ - -+/* The send_vc function is responsible for sending a DNS query over TCP -+ to the nameserver numbered NS from the res_state STATP i.e. -+ EXT(statp).nssocks[ns]. The function supports sending both IPv4 and -+ IPv6 queries at the same serially on the same socket. -+ -+ Please note that for TCP there is no way to disable sending both -+ queries, unlike UDP, which honours RES_SNGLKUP and RES_SNGLKUPREOP -+ and sends the queries serially and waits for the result after each -+ sent query. This implemetnation should be corrected to honour these -+ options. -+ -+ Please also note that for TCP we send both queries over the same -+ socket one after another. This technically violates best practice -+ since the server is allowed to read the first query, respond, and -+ then close the socket (to service another client). If the server -+ does this, then the remaining second query in the socket data buffer -+ will cause the server to send the client an RST which will arrive -+ asynchronously and the client's OS will likely tear down the socket -+ receive buffer resulting in a potentially short read and lost -+ response data. This will force the client to retry the query again, -+ and this process may repeat until all servers and connection resets -+ are exhausted and then the query will fail. It's not known if this -+ happens with any frequency in real DNS server implementations. This -+ implementation should be corrected to use two sockets by default for -+ parallel queries. -+ -+ The query stored in BUF of BUFLEN length is sent first followed by -+ the query stored in BUF2 of BUFLEN2 length. Queries are sent -+ serially on the same socket. -+ -+ Answers to the query are stored firstly in *ANSP up to a max of -+ *ANSSIZP bytes. If more than *ANSSIZP bytes are needed and ANSCP -+ is non-NULL (to indicate that modifying the answer buffer is allowed) -+ then malloc is used to allocate a new response buffer and ANSCP and -+ ANSP will both point to the new buffer. If more than *ANSSIZP bytes -+ are needed but ANSCP is NULL, then as much of the response as -+ possible is read into the buffer, but the results will be truncated. -+ When truncation happens because of a small answer buffer the DNS -+ packets header field TC will bet set to 1, indicating a truncated -+ message and the rest of the socket data will be read and discarded. -+ -+ Answers to the query are stored secondly in *ANSP2 up to a max of -+ *ANSSIZP2 bytes, with the actual response length stored in -+ *RESPLEN2. If more than *ANSSIZP bytes are needed and ANSP2 -+ is non-NULL (required for a second query) then malloc is used to -+ allocate a new response buffer, *ANSSIZP2 is set to the new buffer -+ size and *ANSP2_MALLOCED is set to 1. -+ -+ The ANSP2_MALLOCED argument will eventually be removed as the -+ change in buffer pointer can be used to detect the buffer has -+ changed and that the caller should use free on the new buffer. -+ -+ Note that the answers may arrive in any order from the server and -+ therefore the first and second answer buffers may not correspond to -+ the first and second queries. -+ -+ It is not supported to call this function with a non-NULL ANSP2 -+ but a NULL ANSCP. Put another way, you can call send_vc with a -+ single unmodifiable buffer or two modifiable buffers, but no other -+ combination is supported. -+ -+ It is the caller's responsibility to free the malloc allocated -+ buffers by detecting that the pointers have changed from their -+ original values i.e. *ANSCP or *ANSP2 has changed. -+ -+ If errors are encountered then *TERRNO is set to an appropriate -+ errno value and a zero result is returned for a recoverable error, -+ and a less-than zero result is returned for a non-recoverable error. -+ -+ If no errors are encountered then *TERRNO is left unmodified and -+ a the length of the first response in bytes is returned. */ - static int - send_vc(res_state statp, - const u_char *buf, int buflen, const u_char *buf2, int buflen2, -@@ -662,11 +752,7 @@ send_vc(res_state statp, - { - const HEADER *hp = (HEADER *) buf; - const HEADER *hp2 = (HEADER *) buf2; -- u_char *ans = *ansp; -- int orig_anssizp = *anssizp; -- // XXX REMOVE -- // int anssiz = *anssizp; -- HEADER *anhp = (HEADER *) ans; -+ HEADER *anhp = (HEADER *) *ansp; - struct sockaddr_in6 *nsap = EXT(statp).nsaddrs[ns]; - int truncating, connreset, resplen, n; - struct iovec iov[4]; -@@ -742,6 +828,8 @@ send_vc(res_state statp, - * Receive length & response - */ - int recvresp1 = 0; -+ /* Skip the second response if there is no second query. -+ To do that we mark the second response as received. */ - int recvresp2 = buf2 == NULL; - uint16_t rlen16; - read_len: -@@ -778,33 +866,14 @@ send_vc(res_state statp, - u_char **thisansp; - int *thisresplenp; - if ((recvresp1 | recvresp2) == 0 || buf2 == NULL) { -+ /* We have not received any responses -+ yet or we only have one response to -+ receive. */ - thisanssizp = anssizp; - thisansp = anscp ?: ansp; - assert (anscp != NULL || ansp2 == NULL); - thisresplenp = &resplen; - } else { -- if (*anssizp != MAXPACKET) { -- /* No buffer allocated for the first -- reply. We can try to use the rest -- of the user-provided buffer. */ --#if _STRING_ARCH_unaligned -- *anssizp2 = orig_anssizp - resplen; -- *ansp2 = *ansp + resplen; --#else -- int aligned_resplen -- = ((resplen + __alignof__ (HEADER) - 1) -- & ~(__alignof__ (HEADER) - 1)); -- *anssizp2 = orig_anssizp - aligned_resplen; -- *ansp2 = *ansp + aligned_resplen; --#endif -- } else { -- /* The first reply did not fit into the -- user-provided buffer. Maybe the second -- answer will. */ -- *anssizp2 = orig_anssizp; -- *ansp2 = *ansp; -- } -- - thisanssizp = anssizp2; - thisansp = ansp2; - thisresplenp = resplen2; -@@ -812,10 +881,14 @@ send_vc(res_state statp, - anhp = (HEADER *) *thisansp; - - *thisresplenp = rlen; -- if (rlen > *thisanssizp) { -- /* Yes, we test ANSCP here. If we have two buffers -- both will be allocatable. */ -- if (__glibc_likely (anscp != NULL)) { -+ /* Is the answer buffer too small? */ -+ if (*thisanssizp < rlen) { -+ /* If the current buffer is not the the static -+ user-supplied buffer then we can reallocate -+ it. */ -+ if (thisansp != NULL && thisansp != ansp) { -+ /* Always allocate MAXPACKET, callers expect -+ this specific size. */ - u_char *newp = malloc (MAXPACKET); - if (newp == NULL) { - *terrno = ENOMEM; -@@ -827,6 +900,9 @@ send_vc(res_state statp, - if (thisansp == ansp2) - *ansp2_malloced = 1; - anhp = (HEADER *) newp; -+ /* A uint16_t can't be larger than MAXPACKET -+ thus it's safe to allocate MAXPACKET but -+ read RLEN bytes instead. */ - len = rlen; - } else { - Dprint(statp->options & RES_DEBUG, -@@ -990,6 +1066,66 @@ reopen (res_state statp, int *terrno, int ns) - return 1; - } - -+/* The send_dg function is responsible for sending a DNS query over UDP -+ to the nameserver numbered NS from the res_state STATP i.e. -+ EXT(statp).nssocks[ns]. The function supports IPv4 and IPv6 queries -+ along with the ability to send the query in parallel for both stacks -+ (default) or serially (RES_SINGLKUP). It also supports serial lookup -+ with a close and reopen of the socket used to talk to the server -+ (RES_SNGLKUPREOP) to work around broken name servers. -+ -+ The query stored in BUF of BUFLEN length is sent first followed by -+ the query stored in BUF2 of BUFLEN2 length. Queries are sent -+ in parallel (default) or serially (RES_SINGLKUP or RES_SNGLKUPREOP). -+ -+ Answers to the query are stored firstly in *ANSP up to a max of -+ *ANSSIZP bytes. If more than *ANSSIZP bytes are needed and ANSCP -+ is non-NULL (to indicate that modifying the answer buffer is allowed) -+ then malloc is used to allocate a new response buffer and ANSCP and -+ ANSP will both point to the new buffer. If more than *ANSSIZP bytes -+ are needed but ANSCP is NULL, then as much of the response as -+ possible is read into the buffer, but the results will be truncated. -+ When truncation happens because of a small answer buffer the DNS -+ packets header field TC will bet set to 1, indicating a truncated -+ message, while the rest of the UDP packet is discarded. -+ -+ Answers to the query are stored secondly in *ANSP2 up to a max of -+ *ANSSIZP2 bytes, with the actual response length stored in -+ *RESPLEN2. If more than *ANSSIZP bytes are needed and ANSP2 -+ is non-NULL (required for a second query) then malloc is used to -+ allocate a new response buffer, *ANSSIZP2 is set to the new buffer -+ size and *ANSP2_MALLOCED is set to 1. -+ -+ The ANSP2_MALLOCED argument will eventually be removed as the -+ change in buffer pointer can be used to detect the buffer has -+ changed and that the caller should use free on the new buffer. -+ -+ Note that the answers may arrive in any order from the server and -+ therefore the first and second answer buffers may not correspond to -+ the first and second queries. -+ -+ It is not supported to call this function with a non-NULL ANSP2 -+ but a NULL ANSCP. Put another way, you can call send_vc with a -+ single unmodifiable buffer or two modifiable buffers, but no other -+ combination is supported. -+ -+ It is the caller's responsibility to free the malloc allocated -+ buffers by detecting that the pointers have changed from their -+ original values i.e. *ANSCP or *ANSP2 has changed. -+ -+ If an answer is truncated because of UDP datagram DNS limits then -+ *V_CIRCUIT is set to 1 and the return value non-zero to indicate to -+ the caller to retry with TCP. The value *GOTSOMEWHERE is set to 1 -+ if any progress was made reading a response from the nameserver and -+ is used by the caller to distinguish between ECONNREFUSED and -+ ETIMEDOUT (the latter if *GOTSOMEWHERE is 1). -+ -+ If errors are encountered then *TERRNO is set to an appropriate -+ errno value and a zero result is returned for a recoverable error, -+ and a less-than zero result is returned for a non-recoverable error. -+ -+ If no errors are encountered then *TERRNO is left unmodified and -+ a the length of the first response in bytes is returned. */ - static int - send_dg(res_state statp, - const u_char *buf, int buflen, const u_char *buf2, int buflen2, -@@ -999,8 +1135,6 @@ send_dg(res_state statp, - { - const HEADER *hp = (HEADER *) buf; - const HEADER *hp2 = (HEADER *) buf2; -- u_char *ans = *ansp; -- int orig_anssizp = *anssizp; - struct timespec now, timeout, finish; - struct pollfd pfd[1]; - int ptimeout; -@@ -1033,6 +1167,8 @@ send_dg(res_state statp, - int need_recompute = 0; - int nwritten = 0; - int recvresp1 = 0; -+ /* Skip the second response if there is no second query. -+ To do that we mark the second response as received. */ - int recvresp2 = buf2 == NULL; - pfd[0].fd = EXT(statp).nssocks[ns]; - pfd[0].events = POLLOUT; -@@ -1196,55 +1332,56 @@ send_dg(res_state statp, - int *thisresplenp; - - if ((recvresp1 | recvresp2) == 0 || buf2 == NULL) { -+ /* We have not received any responses -+ yet or we only have one response to -+ receive. */ - thisanssizp = anssizp; - thisansp = anscp ?: ansp; - assert (anscp != NULL || ansp2 == NULL); - thisresplenp = &resplen; - } else { -- if (*anssizp != MAXPACKET) { -- /* No buffer allocated for the first -- reply. We can try to use the rest -- of the user-provided buffer. */ --#if _STRING_ARCH_unaligned -- *anssizp2 = orig_anssizp - resplen; -- *ansp2 = *ansp + resplen; --#else -- int aligned_resplen -- = ((resplen + __alignof__ (HEADER) - 1) -- & ~(__alignof__ (HEADER) - 1)); -- *anssizp2 = orig_anssizp - aligned_resplen; -- *ansp2 = *ansp + aligned_resplen; --#endif -- } else { -- /* The first reply did not fit into the -- user-provided buffer. Maybe the second -- answer will. */ -- *anssizp2 = orig_anssizp; -- *ansp2 = *ansp; -- } -- - thisanssizp = anssizp2; - thisansp = ansp2; - thisresplenp = resplen2; - } - - if (*thisanssizp < MAXPACKET -- /* Yes, we test ANSCP here. If we have two buffers -- both will be allocatable. */ -- && anscp -+ /* If the current buffer is not the the static -+ user-supplied buffer then we can reallocate -+ it. */ -+ && (thisansp != NULL && thisansp != ansp) - #ifdef FIONREAD -+ /* Is the size too small? */ - && (ioctl (pfd[0].fd, FIONREAD, thisresplenp) < 0 - || *thisanssizp < *thisresplenp) - #endif - ) { -+ /* Always allocate MAXPACKET, callers expect -+ this specific size. */ - u_char *newp = malloc (MAXPACKET); - if (newp != NULL) { -- *anssizp = MAXPACKET; -- *thisansp = ans = newp; -+ *thisanssizp = MAXPACKET; -+ *thisansp = newp; - if (thisansp == ansp2) - *ansp2_malloced = 1; - } - } -+ /* We could end up with truncation if anscp was NULL -+ (not allowed to change caller's buffer) and the -+ response buffer size is too small. This isn't a -+ reliable way to detect truncation because the ioctl -+ may be an inaccurate report of the UDP message size. -+ Therefore we use this only to issue debug output. -+ To do truncation accurately with UDP we need -+ MSG_TRUNC which is only available on Linux. We -+ can abstract out the Linux-specific feature in the -+ future to detect truncation. */ -+ if (__glibc_unlikely (*thisanssizp < *thisresplenp)) { -+ Dprint(statp->options & RES_DEBUG, -+ (stdout, ";; response may be truncated (UDP)\n") -+ ); -+ } -+ - HEADER *anhp = (HEADER *) *thisansp; - socklen_t fromlen = sizeof(struct sockaddr_in6); - assert (sizeof(from) <= fromlen); diff --git a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/GLRO_dl_debug_mask.patch b/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/GLRO_dl_debug_mask.patch deleted file mode 100644 index e858bfae..00000000 --- a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/GLRO_dl_debug_mask.patch +++ /dev/null @@ -1,529 +0,0 @@ -Its controlled by __OPTION_EGLIBC_RTLD_DEBUG -so we should use GLRO_dl_debug_mask - -Singed-off-by: Khem Raj <raj.khem@gmail.com> - -Upstream-Status: Pending -Index: git/elf/dl-open.c -=================================================================== ---- git.orig/elf/dl-open.c 2014-08-27 05:03:59.732070587 +0000 -+++ git/elf/dl-open.c 2014-08-27 05:05:25.656070587 +0000 -@@ -147,7 +147,7 @@ - ns->_ns_main_searchlist->r_list[new_nlist++] = map; - - /* We modify the global scope. Report this. */ -- if (__glibc_unlikely (GLRO(dl_debug_mask) & DL_DEBUG_SCOPES)) -+ if (__glibc_unlikely (GLRO_dl_debug_mask & DL_DEBUG_SCOPES)) - _dl_debug_printf ("\nadd %s [%lu] to global scope\n", - map->l_name, map->l_ns); - } -@@ -243,7 +243,7 @@ - if (__glibc_unlikely (new->l_searchlist.r_list != NULL)) - { - /* Let the user know about the opencount. */ -- if (__glibc_unlikely (GLRO(dl_debug_mask) & DL_DEBUG_FILES)) -+ if (__glibc_unlikely (GLRO_dl_debug_mask & DL_DEBUG_FILES)) - _dl_debug_printf ("opening file=%s [%lu]; direct_opencount=%u\n\n", - new->l_name, new->l_ns, new->l_direct_opencount); - -@@ -294,7 +294,7 @@ - LIBC_PROBE (map_complete, 3, args->nsid, r, new); - - /* Print scope information. */ -- if (__glibc_unlikely (GLRO(dl_debug_mask) & DL_DEBUG_SCOPES)) -+ if (__glibc_unlikely (GLRO_dl_debug_mask & DL_DEBUG_SCOPES)) - _dl_show_scope (new, 0); - - /* Only do lazy relocation if `LD_BIND_NOW' is not set. */ -@@ -511,7 +511,7 @@ - } - - /* Print scope information. */ -- if (__glibc_unlikely (GLRO(dl_debug_mask) & DL_DEBUG_SCOPES)) -+ if (__glibc_unlikely (GLRO_dl_debug_mask & DL_DEBUG_SCOPES)) - _dl_show_scope (imap, from_scope); - } - -@@ -584,7 +584,7 @@ - #endif - - /* Let the user know about the opencount. */ -- if (__glibc_unlikely (GLRO(dl_debug_mask) & DL_DEBUG_FILES)) -+ if (__glibc_unlikely (GLRO_dl_debug_mask & DL_DEBUG_FILES)) - _dl_debug_printf ("opening file=%s [%lu]; direct_opencount=%u\n\n", - new->l_name, new->l_ns, new->l_direct_opencount); - } -Index: git/elf/rtld.c -=================================================================== ---- git.orig/elf/rtld.c 2014-08-27 05:03:59.732070587 +0000 -+++ git/elf/rtld.c 2014-08-27 05:12:33.812070587 +0000 -@@ -321,7 +321,7 @@ - } - #endif - -- if (__glibc_unlikely (GLRO(dl_debug_mask) & DL_DEBUG_STATISTICS)) -+ if (__glibc_unlikely (GLRO_dl_debug_mask & DL_DEBUG_STATISTICS)) - { - #ifndef HP_TIMING_NONAVAIL - print_statistics (&rtld_total_time); -@@ -1699,7 +1699,7 @@ - after relocation. */ - struct link_map *l; - -- if (GLRO(dl_debug_mask) & DL_DEBUG_PRELINK) -+ if (GLRO_dl_debug_mask & DL_DEBUG_PRELINK) - { - struct r_scope_elem *scope = &main_map->l_searchlist; - -@@ -1729,7 +1729,7 @@ - _dl_printf ("\n"); - } - } -- else if (GLRO(dl_debug_mask) & DL_DEBUG_UNUSED) -+ else if (GLRO_dl_debug_mask & DL_DEBUG_UNUSED) - { - /* Look through the dependencies of the main executable - and determine which of them is not actually -@@ -1837,7 +1837,7 @@ - } - } - -- if ((GLRO(dl_debug_mask) & DL_DEBUG_PRELINK) -+ if ((GLRO_dl_debug_mask & DL_DEBUG_PRELINK) - && rtld_multiple_ref) - { - /* Mark the link map as not yet relocated again. */ -@@ -1970,7 +1970,7 @@ - if (r_list == r_listend && liblist == liblistend) - prelinked = true; - -- if (__glibc_unlikely (GLRO(dl_debug_mask) & DL_DEBUG_LIBS)) -+ if (__glibc_unlikely (GLRO_dl_debug_mask & DL_DEBUG_LIBS)) - _dl_debug_printf ("\nprelink checking: %s\n", - prelinked ? "ok" : "failed"); - } -@@ -1988,7 +1988,7 @@ - GLRO(dl_init_all_dirs) = GL(dl_all_dirs); - - /* Print scope information. */ -- if (__glibc_unlikely (GLRO(dl_debug_mask) & DL_DEBUG_SCOPES)) -+ if (__glibc_unlikely (GLRO_dl_debug_mask & DL_DEBUG_SCOPES)) - { - _dl_debug_printf ("\nInitial object scopes\n"); - -@@ -2262,7 +2262,7 @@ - if (debopts[cnt].len == len - && memcmp (dl_debug, debopts[cnt].name, len) == 0) - { -- GLRO(dl_debug_mask) |= debopts[cnt].mask; -+ GLRO_dl_debug_mask |= debopts[cnt].mask; - any_debug = 1; - break; - } -@@ -2283,7 +2283,7 @@ - ++dl_debug; - } - -- if (GLRO(dl_debug_mask) & DL_DEBUG_UNUSED) -+ if (GLRO_dl_debug_mask & DL_DEBUG_UNUSED) - { - /* In order to get an accurate picture of whether a particular - DT_NEEDED entry is actually used we have to process both -@@ -2291,7 +2291,7 @@ - GLRO(dl_lazy) = 0; - } - -- if (GLRO(dl_debug_mask) & DL_DEBUG_HELP) -+ if (GLRO_dl_debug_mask & DL_DEBUG_HELP) - { - size_t cnt; - -@@ -2490,7 +2490,7 @@ - { - mode = trace; - GLRO(dl_verbose) = 1; -- GLRO(dl_debug_mask) |= DL_DEBUG_PRELINK; -+ GLRO_dl_debug_mask |= DL_DEBUG_PRELINK; - GLRO(dl_trace_prelink) = &envline[17]; - } - break; -@@ -2537,7 +2537,7 @@ - if (__access ("/etc/suid-debug", F_OK) != 0) - { - unsetenv ("MALLOC_CHECK_"); -- GLRO(dl_debug_mask) = 0; -+ GLRO_dl_debug_mask = 0; - } - - if (mode != normal) -Index: git/elf/dl-lookup.c -=================================================================== ---- git.orig/elf/dl-lookup.c 2014-08-27 05:03:59.732070587 +0000 -+++ git/elf/dl-lookup.c 2014-08-27 05:13:07.644070587 +0000 -@@ -300,7 +300,7 @@ - hash table. */ - if (__glibc_unlikely (tab->size)) - { -- assert (GLRO(dl_debug_mask) & DL_DEBUG_PRELINK); -+ assert (GLRO_dl_debug_mask & DL_DEBUG_PRELINK); - goto success; - } - #endif -@@ -375,7 +375,7 @@ - continue; - - /* Print some debugging info if wanted. */ -- if (__glibc_unlikely (GLRO(dl_debug_mask) & DL_DEBUG_SYMBOLS)) -+ if (__glibc_unlikely (GLRO_dl_debug_mask & DL_DEBUG_SYMBOLS)) - _dl_debug_printf ("symbol=%s; lookup in file=%s [%lu]\n", - undef_name, DSO_FILENAME (map->l_name), - map->l_ns); -@@ -698,7 +698,7 @@ - } - - /* Display information if we are debugging. */ -- if (__glibc_unlikely (GLRO(dl_debug_mask) & DL_DEBUG_FILES)) -+ if (__glibc_unlikely (GLRO_dl_debug_mask & DL_DEBUG_FILES)) - _dl_debug_printf ("\ - \nfile=%s [%lu]; needed by %s [%lu] (relocation dependency)\n\n", - DSO_FILENAME (map->l_name), -@@ -802,7 +802,7 @@ - { - if ((*ref == NULL || ELFW(ST_BIND) ((*ref)->st_info) != STB_WEAK) - && skip_map == NULL -- && !(GLRO(dl_debug_mask) & DL_DEBUG_UNUSED)) -+ && !(GLRO_dl_debug_mask & DL_DEBUG_UNUSED)) - { - /* We could find no value for a strong reference. */ - const char *reference_name = undef_map ? undef_map->l_name : ""; -@@ -873,7 +873,7 @@ - if (__glibc_unlikely (current_value.m->l_used == 0)) - current_value.m->l_used = 1; - -- if (__glibc_unlikely (GLRO(dl_debug_mask) -+ if (__glibc_unlikely (GLRO_dl_debug_mask - & (DL_DEBUG_BINDINGS|DL_DEBUG_PRELINK))) - _dl_debug_bindings (undef_name, undef_map, ref, - ¤t_value, version, type_class, protected); -@@ -938,7 +938,7 @@ - { - const char *reference_name = undef_map->l_name; - -- if (GLRO(dl_debug_mask) & DL_DEBUG_BINDINGS) -+ if (GLRO_dl_debug_mask & DL_DEBUG_BINDINGS) - { - _dl_debug_printf ("binding file %s [%lu] to %s [%lu]: %s symbol `%s'", - DSO_FILENAME (reference_name), -@@ -952,7 +952,7 @@ - _dl_debug_printf_c ("\n"); - } - #ifdef SHARED -- if (GLRO(dl_debug_mask) & DL_DEBUG_PRELINK) -+ if (GLRO_dl_debug_mask & DL_DEBUG_PRELINK) - { - int conflict = 0; - struct sym_val val = { NULL, NULL }; -Index: git/elf/get-dynamic-info.h -=================================================================== ---- git.orig/elf/get-dynamic-info.h 2014-08-27 05:03:59.732070587 +0000 -+++ git/elf/get-dynamic-info.h 2014-08-27 05:03:59.728070587 +0000 -@@ -157,7 +157,7 @@ - them. Therefore to avoid breaking existing applications the - best we can do is add a warning during debugging with the - intent of notifying the user of the problem. */ -- if (__builtin_expect (GLRO(dl_debug_mask) & DL_DEBUG_FILES, 0) -+ if (__builtin_expect (GLRO_dl_debug_mask & DL_DEBUG_FILES, 0) - && l->l_flags_1 & ~DT_1_SUPPORTED_MASK) - _dl_debug_printf ("\nWARNING: Unsupported flag value(s) of 0x%x in DT_FLAGS_1.\n", - l->l_flags_1 & ~DT_1_SUPPORTED_MASK); -Index: git/csu/libc-start.c -=================================================================== ---- git.orig/csu/libc-start.c 2014-08-27 04:59:01.412070587 +0000 -+++ git/csu/libc-start.c 2014-08-27 05:09:28.936070587 +0000 -@@ -238,7 +238,7 @@ - - /* Call the initializer of the program, if any. */ - #ifdef SHARED -- if (__builtin_expect (GLRO(dl_debug_mask) & DL_DEBUG_IMPCALLS, 0)) -+ if (__builtin_expect (GLRO_dl_debug_mask & DL_DEBUG_IMPCALLS, 0)) - GLRO(dl_debug_printf) ("\ninitialize program: %s\n\n", argv[0]); - #endif - if (init) -@@ -261,7 +261,7 @@ - #endif - - #ifdef SHARED -- if (__glibc_unlikely (GLRO(dl_debug_mask) & DL_DEBUG_IMPCALLS)) -+ if (__glibc_unlikely (GLRO_dl_debug_mask & DL_DEBUG_IMPCALLS)) - GLRO(dl_debug_printf) ("\ntransferring control: %s\n\n", argv[0]); - #endif - -Index: git/elf/dl-cache.c -=================================================================== ---- git.orig/elf/dl-cache.c 2014-08-27 04:59:01.568070587 +0000 -+++ git/elf/dl-cache.c 2014-08-27 05:10:14.384070587 +0000 -@@ -187,7 +187,7 @@ - const char *best; - - /* Print a message if the loading of libs is traced. */ -- if (__glibc_unlikely (GLRO(dl_debug_mask) & DL_DEBUG_LIBS)) -+ if (__glibc_unlikely (GLRO_dl_debug_mask & DL_DEBUG_LIBS)) - _dl_debug_printf (" search cache=%s\n", LD_SO_CACHE); - - if (cache == NULL) -@@ -285,7 +285,7 @@ - } - - /* Print our result if wanted. */ -- if (__builtin_expect (GLRO(dl_debug_mask) & DL_DEBUG_LIBS, 0) -+ if (__builtin_expect (GLRO_dl_debug_mask & DL_DEBUG_LIBS, 0) - && best != NULL) - _dl_debug_printf (" trying file=%s\n", best); - -Index: git/elf/dl-close.c -=================================================================== ---- git.orig/elf/dl-close.c 2014-08-27 04:59:01.568070587 +0000 -+++ git/elf/dl-close.c 2014-08-27 05:10:26.456070587 +0000 -@@ -125,7 +125,7 @@ - dl_close_state = rerun; - - /* There are still references to this object. Do nothing more. */ -- if (__glibc_unlikely (GLRO(dl_debug_mask) & DL_DEBUG_FILES)) -+ if (__glibc_unlikely (GLRO_dl_debug_mask & DL_DEBUG_FILES)) - _dl_debug_printf ("\nclosing file=%s; direct_opencount=%u\n", - map->l_name, map->l_direct_opencount); - -@@ -257,7 +257,7 @@ - if (imap->l_init_called) - { - /* When debugging print a message first. */ -- if (__builtin_expect (GLRO(dl_debug_mask) & DL_DEBUG_IMPCALLS, -+ if (__builtin_expect (GLRO_dl_debug_mask & DL_DEBUG_IMPCALLS, - 0)) - _dl_debug_printf ("\ncalling fini: %s [%lu]\n\n", - imap->l_name, nsid); -@@ -664,7 +664,7 @@ - free (imap->l_reldeps); - - /* Print debugging message. */ -- if (__glibc_unlikely (GLRO(dl_debug_mask) & DL_DEBUG_FILES)) -+ if (__glibc_unlikely (GLRO_dl_debug_mask & DL_DEBUG_FILES)) - _dl_debug_printf ("\nfile=%s [%lu]; destroying link map\n", - imap->l_name, imap->l_ns); - -Index: git/elf/dl-conflict.c -=================================================================== ---- git.orig/elf/dl-conflict.c 2014-08-27 04:59:01.568070587 +0000 -+++ git/elf/dl-conflict.c 2014-08-27 05:10:37.652070587 +0000 -@@ -32,7 +32,7 @@ - ElfW(Rela) *conflictend) - { - #if ! ELF_MACHINE_NO_RELA -- if (__glibc_unlikely (GLRO(dl_debug_mask) & DL_DEBUG_RELOC)) -+ if (__glibc_unlikely (GLRO_dl_debug_mask & DL_DEBUG_RELOC)) - _dl_debug_printf ("\nconflict processing: %s\n", DSO_FILENAME (l->l_name)); - - { -Index: git/elf/dl-deps.c -=================================================================== ---- git.orig/elf/dl-deps.c 2014-08-27 04:59:01.568070587 +0000 -+++ git/elf/dl-deps.c 2014-08-27 05:10:48.260070587 +0000 -@@ -127,7 +127,7 @@ - else \ - { \ - /* This is for DT_AUXILIARY. */ \ -- if (__glibc_unlikely (GLRO(dl_debug_mask) & DL_DEBUG_LIBS)) \ -+ if (__glibc_unlikely (GLRO_dl_debug_mask & DL_DEBUG_LIBS)) \ - _dl_debug_printf (N_("\ - cannot load auxiliary `%s' because of empty dynamic string token " \ - "substitution\n"), __str); \ -@@ -303,7 +303,7 @@ - args.name = name; - - /* Say that we are about to load an auxiliary library. */ -- if (__builtin_expect (GLRO(dl_debug_mask) & DL_DEBUG_LIBS, -+ if (__builtin_expect (GLRO_dl_debug_mask & DL_DEBUG_LIBS, - 0)) - _dl_debug_printf ("load auxiliary object=%s" - " requested by file=%s\n", -@@ -520,7 +520,7 @@ - runp->map->l_reserved = 0; - } - -- if (__builtin_expect (GLRO(dl_debug_mask) & DL_DEBUG_PRELINK, 0) != 0 -+ if (__builtin_expect (GLRO_dl_debug_mask & DL_DEBUG_PRELINK, 0) != 0 - && map == GL(dl_ns)[LM_ID_BASE]._ns_loaded) - { - /* If we are to compute conflicts, we have to build local scope -Index: git/elf/dl-error.c -=================================================================== ---- git.orig/elf/dl-error.c 2014-08-27 04:59:01.568070587 +0000 -+++ git/elf/dl-error.c 2014-08-27 05:11:06.752070587 +0000 -@@ -139,7 +139,7 @@ - _dl_signal_cerror (int errcode, const char *objname, const char *occation, - const char *errstring) - { -- if (__builtin_expect (GLRO(dl_debug_mask) -+ if (__builtin_expect (GLRO_dl_debug_mask - & ~(DL_DEBUG_STATISTICS|DL_DEBUG_PRELINK), 0)) - _dl_debug_printf ("%s: error: %s: %s (%s)\n", objname, occation, - errstring, receiver ? "continued" : "fatal"); -Index: git/elf/dl-fini.c -=================================================================== ---- git.orig/elf/dl-fini.c 2014-08-27 04:59:01.568070587 +0000 -+++ git/elf/dl-fini.c 2014-08-27 05:11:17.544070587 +0000 -@@ -234,7 +234,7 @@ - || l->l_info[DT_FINI] != NULL) - { - /* When debugging print a message first. */ -- if (__builtin_expect (GLRO(dl_debug_mask) -+ if (__builtin_expect (GLRO_dl_debug_mask - & DL_DEBUG_IMPCALLS, 0)) - _dl_debug_printf ("\ncalling fini: %s [%lu]\n\n", - DSO_FILENAME (l->l_name), -@@ -286,7 +286,7 @@ - goto again; - } - -- if (__glibc_unlikely (GLRO(dl_debug_mask) & DL_DEBUG_STATISTICS)) -+ if (__glibc_unlikely (GLRO_dl_debug_mask & DL_DEBUG_STATISTICS)) - _dl_debug_printf ("\nruntime linker statistics:\n" - " final number of relocations: %lu\n" - "final number of relocations from cache: %lu\n", -Index: git/elf/dl-init.c -=================================================================== ---- git.orig/elf/dl-init.c 2014-08-27 04:59:01.568070587 +0000 -+++ git/elf/dl-init.c 2014-08-27 05:11:28.372070587 +0000 -@@ -52,7 +52,7 @@ - return; - - /* Print a debug message if wanted. */ -- if (__glibc_unlikely (GLRO(dl_debug_mask) & DL_DEBUG_IMPCALLS)) -+ if (__glibc_unlikely (GLRO_dl_debug_mask & DL_DEBUG_IMPCALLS)) - _dl_debug_printf ("\ncalling init: %s\n\n", - DSO_FILENAME (l->l_name)); - -@@ -102,7 +102,7 @@ - ElfW(Addr) *addrs; - unsigned int cnt; - -- if (__glibc_unlikely (GLRO(dl_debug_mask) & DL_DEBUG_IMPCALLS)) -+ if (__glibc_unlikely (GLRO_dl_debug_mask & DL_DEBUG_IMPCALLS)) - _dl_debug_printf ("\ncalling preinit: %s\n\n", - DSO_FILENAME (main_map->l_name)); - -Index: git/elf/dl-load.c -=================================================================== ---- git.orig/elf/dl-load.c 2014-08-27 04:59:01.572070587 +0000 -+++ git/elf/dl-load.c 2014-08-27 05:11:41.156070587 +0000 -@@ -957,7 +957,7 @@ - } - - /* Print debugging message. */ -- if (__glibc_unlikely (GLRO(dl_debug_mask) & DL_DEBUG_FILES)) -+ if (__glibc_unlikely (GLRO_dl_debug_mask & DL_DEBUG_FILES)) - _dl_debug_printf ("file=%s [%lu]; generating link map\n", name, nsid); - - /* This is the ELF header. We read it in `open_verify'. */ -@@ -1361,7 +1361,7 @@ - - l->l_entry += l->l_addr; - -- if (__glibc_unlikely (GLRO(dl_debug_mask) & DL_DEBUG_FILES)) -+ if (__glibc_unlikely (GLRO_dl_debug_mask & DL_DEBUG_FILES)) - _dl_debug_printf ("\ - dynamic: 0x%0*lx base: 0x%0*lx size: 0x%0*Zx\n\ - entry: 0x%0*lx phdr: 0x%0*lx phnum: %*u\n\n", -@@ -1787,7 +1787,7 @@ - - /* If we are debugging the search for libraries print the path - now if it hasn't happened now. */ -- if (__glibc_unlikely (GLRO(dl_debug_mask) & DL_DEBUG_LIBS) -+ if (__glibc_unlikely (GLRO_dl_debug_mask & DL_DEBUG_LIBS) - && current_what != this_dir->what) - { - current_what = this_dir->what; -@@ -1808,7 +1808,7 @@ - - buf); - - /* Print name we try if this is wanted. */ -- if (__glibc_unlikely (GLRO(dl_debug_mask) & DL_DEBUG_LIBS)) -+ if (__glibc_unlikely (GLRO_dl_debug_mask & DL_DEBUG_LIBS)) - _dl_debug_printf (" trying file=%s\n", buf); - - fd = open_verify (buf, fbp, loader, whatcode, mode, -@@ -1953,7 +1953,7 @@ - } - - /* Display information if we are debugging. */ -- if (__glibc_unlikely (GLRO(dl_debug_mask) & DL_DEBUG_FILES) -+ if (__glibc_unlikely (GLRO_dl_debug_mask & DL_DEBUG_FILES) - && loader != NULL) - _dl_debug_printf ((mode & __RTLD_CALLMAP) == 0 - ? "\nfile=%s [%lu]; needed by %s [%lu]\n" -@@ -1995,7 +1995,7 @@ - - size_t namelen = strlen (name) + 1; - -- if (__glibc_unlikely (GLRO(dl_debug_mask) & DL_DEBUG_LIBS)) -+ if (__glibc_unlikely (GLRO_dl_debug_mask & DL_DEBUG_LIBS)) - _dl_debug_printf ("find library=%s [%lu]; searching\n", name, nsid); - - fd = -1; -@@ -2122,7 +2122,7 @@ - &realname, &fb, l, LA_SER_DEFAULT, &found_other_class); - - /* Add another newline when we are tracing the library loading. */ -- if (__glibc_unlikely (GLRO(dl_debug_mask) & DL_DEBUG_LIBS)) -+ if (__glibc_unlikely (GLRO_dl_debug_mask & DL_DEBUG_LIBS)) - _dl_debug_printf ("\n"); - } - else -@@ -2155,7 +2155,7 @@ - if (__glibc_unlikely (fd == -1)) - { - if (trace_mode -- && __glibc_likely ((GLRO(dl_debug_mask) & DL_DEBUG_PRELINK) == 0)) -+ && __glibc_likely ((GLRO_dl_debug_mask & DL_DEBUG_PRELINK) == 0)) - { - /* We haven't found an appropriate library. But since we - are only interested in the list of libraries this isn't -Index: git/elf/dl-object.c -=================================================================== ---- git.orig/elf/dl-object.c 2014-08-27 04:59:01.572070587 +0000 -+++ git/elf/dl-object.c 2014-08-27 05:11:51.756070587 +0000 -@@ -98,7 +98,7 @@ - new->l_type = type; - /* If we set the bit now since we know it is never used we avoid - dirtying the cache line later. */ -- if ((GLRO(dl_debug_mask) & DL_DEBUG_UNUSED) == 0) -+ if ((GLRO_dl_debug_mask & DL_DEBUG_UNUSED) == 0) - new->l_used = 1; - new->l_loader = loader; - #if NO_TLS_OFFSET != 0 -Index: git/elf/dl-reloc.c -=================================================================== ---- git.orig/elf/dl-reloc.c 2014-08-27 04:59:01.572070587 +0000 -+++ git/elf/dl-reloc.c 2014-08-27 05:12:07.056070587 +0000 -@@ -183,7 +183,7 @@ - && __builtin_expect (l->l_info[DT_BIND_NOW] != NULL, 0)) - lazy = 0; - -- if (__glibc_unlikely (GLRO(dl_debug_mask) & DL_DEBUG_RELOC)) -+ if (__glibc_unlikely (GLRO_dl_debug_mask & DL_DEBUG_RELOC)) - _dl_debug_printf ("\nrelocation processing: %s%s\n", - DSO_FILENAME (l->l_name), lazy ? " (lazy)" : ""); - -Index: git/elf/dl-version.c -=================================================================== ---- git.orig/elf/dl-version.c 2014-08-27 04:59:01.608070587 +0000 -+++ git/elf/dl-version.c 2014-08-27 05:12:19.568070587 +0000 -@@ -82,7 +82,7 @@ - int result = 0; - - /* Display information about what we are doing while debugging. */ -- if (__glibc_unlikely (GLRO(dl_debug_mask) & DL_DEBUG_VERSIONS)) -+ if (__glibc_unlikely (GLRO_dl_debug_mask & DL_DEBUG_VERSIONS)) - _dl_debug_printf ("\ - checking for version `%s' in file %s [%lu] required by file %s [%lu]\n", - string, DSO_FILENAME (map->l_name), diff --git a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/IO-acquire-lock-fix.patch b/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/IO-acquire-lock-fix.patch deleted file mode 100644 index ffbaba14..00000000 --- a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/IO-acquire-lock-fix.patch +++ /dev/null @@ -1,17 +0,0 @@ -import http://sourceware.org/ml/libc-ports/2007-12/msg00000.html - -Upstream-Status: Pending - -Index: git/bits/stdio-lock.h -=================================================================== ---- git.orig/bits/stdio-lock.h 2014-08-29 10:33:57.960070587 -0700 -+++ git/bits/stdio-lock.h 2014-08-29 10:33:57.952070587 -0700 -@@ -49,6 +49,8 @@ - _IO_cleanup_region_start ((void (*) (void *)) _IO_funlockfile, (_fp)); \ - _IO_flockfile (_fp) - -+# define _IO_acquire_lock_clear_flags2(_fp) _IO_acquire_lock (_fp) -+ - # define _IO_release_lock(_fp) \ - _IO_funlockfile (_fp); \ - _IO_cleanup_region_end (0) diff --git a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/add_resource_h_to_wait_h.patch b/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/add_resource_h_to_wait_h.patch deleted file mode 100644 index 4559de7b..00000000 --- a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/add_resource_h_to_wait_h.patch +++ /dev/null @@ -1,20 +0,0 @@ -The older versions of perf still require sys/resource.h to be -present in this header, the newer version of perf in 3.2 and -beyond directly include sys/resource.h - -Upstream-Status: Inapproriate [older kernel/perf specific] - -Signed-off-by: Saul Wold <sgw@linux.intel.com> - -Index: git/posix/sys/wait.h -=================================================================== ---- git.orig/posix/sys/wait.h 2014-08-29 10:35:10.432070587 -0700 -+++ git/posix/sys/wait.h 2014-08-29 10:35:10.424070587 -0700 -@@ -27,6 +27,7 @@ - __BEGIN_DECLS - - #include <signal.h> -+#include <sys/resource.h> - - /* These macros could also be defined in <stdlib.h>. */ - #if !defined _STDLIB_H || (!defined __USE_XOPEN && !defined __USE_XOPEN2K8) diff --git a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/eglibc-header-bootstrap.patch b/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/eglibc-header-bootstrap.patch deleted file mode 100644 index e1aa1392..00000000 --- a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/eglibc-header-bootstrap.patch +++ /dev/null @@ -1,85 +0,0 @@ -Taken from EGLIBC, r1484 + r1525 - - 2007-02-20 Jim Blandy <jimb@codesourcery.com> - - * Makefile (install-headers): Preserve old behavior: depend on - $(inst_includedir)/gnu/stubs.h only if install-bootstrap-headers - is set; otherwise, place gnu/stubs.h on the 'install-others' list. - - 2007-02-16 Jim Blandy <jimb@codesourcery.com> - - * Makefile: Amend make install-headers to install everything - necessary for building a cross-compiler. Install gnu/stubs.h as - part of 'install-headers', not 'install-others'. - If install-bootstrap-headers is 'yes', install a dummy copy of - gnu/stubs.h, instead of computing the real thing. - * include/stubs-bootstrap.h: New file. - -Upstream-Status: Pending - -Index: git/Makefile -=================================================================== ---- git.orig/Makefile 2014-08-27 18:35:18.908070587 +0000 -+++ git/Makefile 2014-08-27 18:35:19.340070587 +0000 -@@ -69,9 +69,18 @@ - vpath %.h $(subdir-dirs) - - # What to install. --install-others = $(inst_includedir)/gnu/stubs.h - install-bin-script = - -+# If we're bootstrapping, install a dummy gnu/stubs.h along with the -+# other headers, so 'make install-headers' produces a useable include -+# tree. Otherwise, install gnu/stubs.h later, after the rest of the -+# build is done. -+ifeq ($(install-bootstrap-headers),yes) -+install-headers: $(inst_includedir)/gnu/stubs.h -+else -+install-others = $(inst_includedir)/gnu/stubs.h -+endif -+ - ifeq (yes,$(build-shared)) - headers += gnu/lib-names.h - endif -@@ -151,6 +160,16 @@ - - subdir-stubs := $(foreach dir,$(subdirs),$(common-objpfx)$(dir)/stubs) - -+# gnu/stubs.h depends (via the subdir 'stubs' targets) on all the .o -+# files in EGLIBC. For bootstrapping a GCC/EGLIBC pair, an empty -+# gnu/stubs.h is good enough. -+ifeq ($(install-bootstrap-headers),yes) -+$(inst_includedir)/gnu/stubs.h: include/stubs-bootstrap.h $(+force) -+ $(make-target-directory) -+ $(INSTALL_DATA) $< $@ -+ -+installed-stubs = -+else - ifndef abi-variants - installed-stubs = $(inst_includedir)/gnu/stubs.h - else -@@ -177,6 +196,7 @@ - - install-others-nosubdir: $(installed-stubs) - endif -+endif - - - # Since stubs.h is never needed when building the library, we simplify the -Index: git/include/stubs-bootstrap.h -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ git/include/stubs-bootstrap.h 2014-08-27 18:35:19.340070587 +0000 -@@ -0,0 +1,12 @@ -+/* Placeholder stubs.h file for bootstrapping. -+ -+ When bootstrapping a GCC/EGLIBC pair, GCC requires that the EGLIBC -+ headers be installed, but we can't fully build EGLIBC without that -+ GCC. So we run the command: -+ -+ make install-headers install-bootstrap-headers=yes -+ -+ to install the headers GCC needs, but avoid building certain -+ difficult headers. The <gnu/stubs.h> header depends, via the -+ EGLIBC subdir 'stubs' make targets, on every .o file in EGLIBC, but -+ an empty stubs.h like this will do fine for GCC. */ diff --git a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/eglibc-install-pic-archives.patch b/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/eglibc-install-pic-archives.patch deleted file mode 100644 index 9a31255b..00000000 --- a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/eglibc-install-pic-archives.patch +++ /dev/null @@ -1,109 +0,0 @@ -2008-02-07 Joseph Myers <joseph@codesourcery.com> - - * Makerules (install-extras, install-map): New variables. - (installed-libcs): Add libc_pic.a. - (install-lib): Include _pic.a files for versioned shared - libraries. - (install-map-nosubdir, install-extras-nosubdir): Add rules for - installing extra files. - (install-no-libc.a-nosubdir): Depend on install-map-nosubdir and - install-extras-nosubdir. - - -2008-04-01 Maxim Kuvyrkov <maxim@codesourcery.com> - - * Makerules (install-lib): Don't install libpthread_pic.a. - (install-map): Don't install libpthread_pic.map. - -Upstream-Status: Pending - -Index: git/Makerules -=================================================================== ---- git.orig/Makerules 2014-08-27 18:49:22.552070587 +0000 -+++ git/Makerules 2014-08-27 18:49:27.308070587 +0000 -@@ -612,6 +631,9 @@ - $(common-objpfx)libc.so: $(common-objpfx)libc.map - endif - common-generated += libc.so libc_pic.os -+ifndef subdir -+install-extras := soinit.o sofini.o -+endif - ifdef libc.so-version - $(common-objpfx)libc.so$(libc.so-version): $(common-objpfx)libc.so - $(make-link) -@@ -834,6 +856,7 @@ - installed-libcs := $(foreach o,$(filter-out .os,$(object-suffixes-for-libc)),\ - $(inst_libdir)/$(patsubst %,$(libtype$o),\ - $(libprefix)$(libc-name))) -+installed-libcs := $(installed-libcs) $(inst_libdir)/libc_pic.a - install: $(installed-libcs) - $(installed-libcs): $(inst_libdir)/lib$(libprefix)%: lib $(+force) - $(make-target-directory) -@@ -862,6 +885,22 @@ - install-lib.so-versioned := $(filter $(versioned), $(install-lib.so)) - install-lib.so-unversioned := $(filter-out $(versioned), $(install-lib.so)) - -+# Install the _pic.a files for versioned libraries, and corresponding -+# .map files. -+# libpthread_pic.a breaks mklibs, so don't install it and its map. -+install-lib := $(install-lib) $(install-lib.so-versioned:%.so=%_pic.a) -+install-lib := $(filter-out libpthread_pic.a,$(install-lib)) -+# Despite having a soname libhurduser and libmachuser do not use symbol -+# versioning, so don't install the corresponding .map files. -+ifeq ($(build-shared),yes) -+install-map := $(patsubst %.so,%.map,\ -+ $(foreach L,$(install-lib.so-versioned),$(notdir $L))) -+install-map := $(filter-out libhurduser.map libmachuser.map libpthread.map,$(install-map)) -+ifndef subdir -+install-map := $(install-map) libc.map -+endif -+endif -+ - # For versioned libraries, we install three files: - # $(inst_libdir)/libfoo.so -- for linking, symlink or ld script - # $(inst_slibdir)/libfoo.so.NN -- for loading by SONAME, symlink -@@ -1103,9 +1142,22 @@ - endif # headers-nonh - endif # headers - -+ifdef install-map -+$(addprefix $(inst_libdir)/,$(patsubst lib%.map,lib%_pic.map,$(install-map))): \ -+ $(inst_libdir)/lib%_pic.map: $(common-objpfx)lib%.map $(+force) -+ $(do-install) -+endif -+ -+ifdef install-extras -+$(addprefix $(inst_libdir)/libc_pic/,$(install-extras)): \ -+ $(inst_libdir)/libc_pic/%.o: $(elfobjdir)/%.os $(+force) -+ $(do-install) -+endif -+ - .PHONY: install-bin-nosubdir install-bin-script-nosubdir \ - install-rootsbin-nosubdir install-sbin-nosubdir install-lib-nosubdir \ -- install-data-nosubdir install-headers-nosubdir -+ install-data-nosubdir install-headers-nosubdir install-map-nosubdir \ -+ install-extras-nosubdir - install-bin-nosubdir: $(addprefix $(inst_bindir)/,$(install-bin)) - install-bin-script-nosubdir: $(addprefix $(inst_bindir)/,$(install-bin-script)) - install-rootsbin-nosubdir: \ -@@ -1118,6 +1170,10 @@ - install-headers-nosubdir: $(addprefix $(inst_includedir)/,$(headers)) - install-others-nosubdir: $(install-others) - install-others-programs-nosubdir: $(install-others-programs) -+install-map-nosubdir: $(addprefix $(inst_libdir)/,\ -+ $(patsubst lib%.map,lib%_pic.map,$(install-map))) -+install-extras-nosubdir: $(addprefix $(inst_libdir)/libc_pic/,\ -+ $(install-extras)) - - # We need all the `-nosubdir' targets so that `install' in the parent - # doesn't depend on several things which each iterate over the subdirs. -@@ -1127,7 +1183,8 @@ - - .PHONY: install install-no-libc.a-nosubdir - install-no-libc.a-nosubdir: install-headers-nosubdir install-data-nosubdir \ -- install-lib-nosubdir install-others-nosubdir -+ install-lib-nosubdir install-others-nosubdir \ -+ install-map-nosubdir install-extras-nosubdir - ifeq ($(build-programs),yes) - install-no-libc.a-nosubdir: install-bin-nosubdir install-bin-script-nosubdir \ - install-rootsbin-nosubdir install-sbin-nosubdir \ diff --git a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/eglibc-ppc8xx-cache-line-workaround.patch b/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/eglibc-ppc8xx-cache-line-workaround.patch deleted file mode 100644 index bb83d6d3..00000000 --- a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/eglibc-ppc8xx-cache-line-workaround.patch +++ /dev/null @@ -1,68 +0,0 @@ -2007-06-13 Nathan Sidwell <nathan@codesourcery.com> - Mark Shinwell <shinwell@codesourcery.com> - - * sysdeps/unix/sysv/linux/powerpc/libc-start.c - (__libc_start_main): Detect 8xx parts and clear - __cache_line_size if detected. - * sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c - (DL_PLATFORM_AUXV): Likewise. - -Upstream-Status: Pending - -Index: git/sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c -=================================================================== ---- git.orig/sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c 2014-08-27 18:49:23.996070587 +0000 -+++ git/sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c 2014-08-27 18:49:27.332070587 +0000 -@@ -24,9 +24,21 @@ - /* Scan the Aux Vector for the "Data Cache Block Size" entry. If found - verify that the static extern __cache_line_size is defined by checking - for not NULL. If it is defined then assign the cache block size -- value to __cache_line_size. */ -+ value to __cache_line_size. This is used by memset to -+ optimize setting to zero. We have to detect 8xx processors, which -+ have buggy dcbz implementations that cannot report page faults -+ correctly. That requires reading SPR, which is a privileged -+ operation. Fortunately 2.2.18 and later emulates PowerPC mfspr -+ reads from the PVR register. */ - #define DL_PLATFORM_AUXV \ - case AT_DCACHEBSIZE: \ -+ if (__LINUX_KERNEL_VERSION >= 0x020218) \ -+ { \ -+ unsigned pvr = 0; \ -+ asm ("mfspr %0, 287" : "=r" (pvr)); \ -+ if ((pvr & 0xffff0000) == 0x00500000) \ -+ break; \ -+ } \ - __cache_line_size = av->a_un.a_val; \ - break; - -Index: git/sysdeps/unix/sysv/linux/powerpc/libc-start.c -=================================================================== ---- git.orig/sysdeps/unix/sysv/linux/powerpc/libc-start.c 2014-08-27 18:49:23.996070587 +0000 -+++ git/sysdeps/unix/sysv/linux/powerpc/libc-start.c 2014-08-27 18:49:27.332070587 +0000 -@@ -68,11 +68,24 @@ - rtld_fini = NULL; - } - -- /* Initialize the __cache_line_size variable from the aux vector. */ -+ /* Initialize the __cache_line_size variable from the aux vector. -+ This is used by memset to optimize setting to zero. We have to -+ detect 8xx processors, which have buggy dcbz implementations that -+ cannot report page faults correctly. That requires reading SPR, -+ which is a privileged operation. Fortunately 2.2.18 and later -+ emulates PowerPC mfspr reads from the PVR register. */ - for (ElfW (auxv_t) * av = auxvec; av->a_type != AT_NULL; ++av) - switch (av->a_type) - { - case AT_DCACHEBSIZE: -+ if (__LINUX_KERNEL_VERSION >= 0x020218) -+ { -+ unsigned pvr = 0; -+ -+ asm ("mfspr %0, 287" : "=r" (pvr) :); -+ if ((pvr & 0xffff0000) == 0x00500000) -+ break; -+ } - __cache_line_size = av->a_un.a_val; - break; - } diff --git a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/eglibc-resolv-dynamic.patch b/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/eglibc-resolv-dynamic.patch deleted file mode 100644 index a73bcebe..00000000 --- a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/eglibc-resolv-dynamic.patch +++ /dev/null @@ -1,54 +0,0 @@ -cherry-picked from http://www.eglibc.org/archives/patches/msg00772.html - -It hasnt yet been merged into glibc - -Signed-off-by: Khem Raj - -Upstream-Status: Pending - -Index: git/resolv/res_libc.c -=================================================================== ---- git.orig/resolv/res_libc.c 2014-08-27 18:35:15.492070587 +0000 -+++ git/resolv/res_libc.c 2014-08-27 18:35:19.204070587 +0000 -@@ -22,12 +22,13 @@ - #include <arpa/nameser.h> - #include <resolv.h> - #include <bits/libc-lock.h> -- -+#include <sys/stat.h> - - /* The following bit is copied from res_data.c (where it is #ifdef'ed - out) since res_init() should go into libc.so but the rest of that - file should not. */ - -+__libc_lock_define_initialized (static, lock); - extern unsigned long long int __res_initstamp attribute_hidden; - /* We have atomic increment operations on 64-bit platforms. */ - #if __WORDSIZE == 64 -@@ -35,7 +36,6 @@ - # define atomicincunlock(lock) (void) 0 - # define atomicinc(var) catomic_increment (&(var)) - #else --__libc_lock_define_initialized (static, lock); - # define atomicinclock(lock) __libc_lock_lock (lock) - # define atomicincunlock(lock) __libc_lock_unlock (lock) - # define atomicinc(var) ++var -@@ -94,7 +94,18 @@ - int - __res_maybe_init (res_state resp, int preinit) - { -+ static time_t last_mtime; -+ struct stat statbuf; -+ int ret; -+ - if (resp->options & RES_INIT) { -+ ret = stat (_PATH_RESCONF, &statbuf); -+ __libc_lock_lock (lock); -+ if ((ret == 0) && (last_mtime != statbuf.st_mtime)) { -+ last_mtime = statbuf.st_mtime; -+ atomicinc (__res_initstamp); -+ } -+ __libc_lock_unlock (lock); - if (__res_initstamp != resp->_u._ext.initstamp) { - if (resp->nscount > 0) - __res_iclose (resp, true); diff --git a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/eglibc-sh4-fpscr_values.patch b/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/eglibc-sh4-fpscr_values.patch deleted file mode 100644 index bfb813eb..00000000 --- a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/eglibc-sh4-fpscr_values.patch +++ /dev/null @@ -1,42 +0,0 @@ -2010-09-29 Nobuhiro Iwamatsu <iwamatsu@nigauri.org> - Andrew Stubbs <ams@codesourcery.com> - - Resolve SH's __fpscr_values to symbol in libc.so. - - * sysdeps/sh/sh4/fpu/fpu_control.h: Add C++ __set_fpscr prototype. - * sysdeps/unix/sysv/linux/sh/Versions (GLIBC_2.2): Add __fpscr_values. - * sysdeps/unix/sysv/linux/sh/sysdep.S (___fpscr_values): New constant. - -Upstream-Status: Pending - -Index: git/sysdeps/unix/sysv/linux/sh/sysdep.S -=================================================================== ---- git.orig/sysdeps/unix/sysv/linux/sh/sysdep.S 2014-08-27 18:49:24.036070587 +0000 -+++ git/sysdeps/unix/sysv/linux/sh/sysdep.S 2014-08-27 18:49:27.332070587 +0000 -@@ -30,3 +30,14 @@ - - #define __syscall_error __syscall_error_1 - #include <sysdeps/unix/sh/sysdep.S> -+ -+ .data -+ .align 3 -+ .globl ___fpscr_values -+ .type ___fpscr_values, @object -+ .size ___fpscr_values, 8 -+___fpscr_values: -+ .long 0 -+ .long 0x80000 -+weak_alias (___fpscr_values, __fpscr_values) -+ -Index: git/sysdeps/unix/sysv/linux/sh/Versions -=================================================================== ---- git.orig/sysdeps/unix/sysv/linux/sh/Versions 2014-08-27 18:49:24.028070587 +0000 -+++ git/sysdeps/unix/sysv/linux/sh/Versions 2014-08-27 18:49:27.332070587 +0000 -@@ -2,6 +2,7 @@ - GLIBC_2.2 { - # functions used in other libraries - __xstat64; __fxstat64; __lxstat64; -+ __fpscr_values; - - # a* - alphasort64; diff --git a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/eglibc-use-option-groups.patch b/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/eglibc-use-option-groups.patch deleted file mode 100644 index 40c78321..00000000 --- a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/eglibc-use-option-groups.patch +++ /dev/null @@ -1,16577 +0,0 @@ -Forward port eglibc options groups support - -Upstream-Status: Pending - -Index: git/argp/argp-fmtstream.c -=================================================================== ---- git.orig/argp/argp-fmtstream.c 2014-08-29 20:00:42.976070587 -0700 -+++ git/argp/argp-fmtstream.c 2014-08-29 20:01:15.188070587 -0700 -@@ -42,6 +42,7 @@ - #ifdef _LIBC - # include <wchar.h> - # include <libio/libioP.h> -+# include <gnu/option-groups.h> - # define __vsnprintf(s, l, f, a) _IO_vsnprintf (s, l, f, a) - #endif - -@@ -100,7 +101,11 @@ - __argp_fmtstream_update (fs); - if (fs->p > fs->buf) - { -+#ifdef _LIBC - __fxprintf (fs->stream, "%.*s", (int) (fs->p - fs->buf), fs->buf); -+#else -+ fwrite_unlocked (fs->buf, 1, fs->p - fs->buf, fs->stream); -+#endif - } - free (fs->buf); - free (fs); -@@ -145,9 +150,17 @@ - size_t i; - for (i = 0; i < pad; i++) - { -+#ifdef _LIBC - if (_IO_fwide (fs->stream, 0) > 0) -- putwc_unlocked (L' ', fs->stream); -+ { -+#if ! _LIBC || __OPTION_POSIX_WIDE_CHAR_DEVICE_IO -+ putwc_unlocked (L' ', fs->stream); -+#else -+ abort (); -+#endif -+ } - else -+#endif - putc_unlocked (' ', fs->stream); - } - } -@@ -308,9 +321,17 @@ - *nl++ = ' '; - else - for (i = 0; i < fs->wmargin; ++i) -+#ifdef _LIBC - if (_IO_fwide (fs->stream, 0) > 0) -- putwc_unlocked (L' ', fs->stream); -+ { -+#ifdef OPTION_POSIX_WIDE_CHAR_DEVICE_IO -+ putwc_unlocked (L' ', fs->stream); -+#else -+ abort (); -+#endif -+ } - else -+#endif - putc_unlocked (' ', fs->stream); - - /* Copy the tail of the original buffer into the current buffer -Index: git/argp/argp-help.c -=================================================================== ---- git.orig/argp/argp-help.c 2014-08-29 20:00:42.976070587 -0700 -+++ git/argp/argp-help.c 2014-08-29 20:01:15.188070587 -0700 -@@ -51,6 +51,7 @@ - #ifdef _LIBC - # include <../libio/libioP.h> - # include <wchar.h> -+# include <gnu/option-groups.h> - #endif - - #ifndef _ -@@ -1702,7 +1703,7 @@ - } - - char * --__argp_short_program_name (void) -+(__argp_short_program_name) (void) - { - # if HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME - return program_invocation_short_name; -@@ -1873,9 +1874,17 @@ - #endif - } - -+#ifdef _LIBC - if (_IO_fwide (stream, 0) > 0) -- putwc_unlocked (L'\n', stream); -+ { -+#if ! _LIBC || __OPTION_POSIX_WIDE_CHAR_DEVICE_IO -+ putwc_unlocked (L'\n', stream); -+#else -+ abort (); -+#endif -+ } - else -+#endif - putc_unlocked ('\n', stream); - - #if _LIBC || (HAVE_FLOCKFILE && HAVE_FUNLOCKFILE) -Index: git/argp/argp-namefrob.h -=================================================================== ---- git.orig/argp/argp-namefrob.h 2014-08-29 20:00:42.976070587 -0700 -+++ git/argp/argp-namefrob.h 2014-08-29 20:01:15.192070587 -0700 -@@ -76,10 +76,12 @@ - #undef __argp_fmtstream_wmargin - #define __argp_fmtstream_wmargin argp_fmtstream_wmargin - -+#if 0 - #include "mempcpy.h" - #include "strcase.h" - #include "strchrnul.h" - #include "strndup.h" -+#endif - - /* normal libc functions we call */ - #undef __flockfile -Index: git/argp/Makefile -=================================================================== ---- git.orig/argp/Makefile 2014-08-29 20:00:42.976070587 -0700 -+++ git/argp/Makefile 2014-08-29 20:01:15.192070587 -0700 -@@ -18,6 +18,8 @@ - # - # Makefile for argp. - # -+include ../option-groups.mak -+ - subdir := argp - - include ../Makeconfig -Index: git/catgets/Makefile -=================================================================== ---- git.orig/catgets/Makefile 2014-08-29 20:00:43.008070587 -0700 -+++ git/catgets/Makefile 2014-08-29 20:01:15.192070587 -0700 -@@ -22,20 +22,23 @@ - - include ../Makeconfig - -+include ../option-groups.mak -+ - headers = nl_types.h --routines = catgets open_catalog --others = gencat --install-bin = gencat --extra-objs = $(gencat-modules:=.o) -+routines-$(OPTION_EGLIBC_CATGETS) := catgets open_catalog -+others-$(OPTION_EGLIBC_CATGETS) := gencat -+install-bin-$(OPTION_EGLIBC_CATGETS) := gencat -+extra-objs-$(OPTION_EGLIBC_CATGETS) := $(gencat-modules:=.o) - --tests = tst-catgets --test-srcs = test-gencat -+tests-$(OPTION_EGLIBC_CATGETS) := tst-catgets -+test-srcs-$(OPTION_EGLIBC_CATGETS) := test-gencat - -+ifeq (y,$(OPTION_EGLIBC_CATGETS)) - ifeq ($(run-built-tests),yes) - tests-special += $(objpfx)de/libc.cat $(objpfx)test1.cat $(objpfx)test2.cat \ - $(objpfx)sample.SJIS.cat $(objpfx)test-gencat.out - endif -- -+endif - gencat-modules = xmalloc - - # To find xmalloc.c -Index: git/crypt/crypt-entry.c -=================================================================== ---- git.orig/crypt/crypt-entry.c 2014-08-29 20:00:43.028070587 -0700 -+++ git/crypt/crypt-entry.c 2014-08-29 20:01:15.192070587 -0700 -@@ -27,6 +27,7 @@ - #include <stdio.h> - #endif - #include <string.h> -+#include <gnu/option-groups.h> - #include <errno.h> - #include <fips-private.h> - -@@ -76,9 +77,11 @@ - const char *salt; - struct crypt_data * __restrict data; - { -+#if __OPTION_EGLIBC_CRYPT_UFC - ufc_long res[4]; - char ktab[9]; - ufc_long xx = 25; /* to cope with GCC long long compiler bugs */ -+#endif /*__OPTION_EGLIBC_CRYPT_UFC*/ - - #ifdef _LIBC - /* Try to find out whether we have to use MD5 encryption replacement. */ -@@ -105,6 +108,7 @@ - sizeof (struct crypt_data)); - #endif - -+#if __OPTION_EGLIBC_CRYPT_UFC - /* - * Hack DES tables according to salt - */ -@@ -144,6 +148,10 @@ - */ - _ufc_output_conversion_r (res[0], res[1], salt, data); - return data->crypt_3_buf; -+#else /* __OPTION_EGLIBC_CRYPT_UFC */ -+ __set_errno (ENOSYS); -+ return NULL; -+#endif /* __OPTION_EGLIBC_CRYPT_UFC */ - } - weak_alias (__crypt_r, crypt_r) - -@@ -168,7 +176,12 @@ - return __sha512_crypt (key, salt); - #endif - -+#if __OPTION_EGLIBC_CRYPT_UFC - return __crypt_r (key, salt, &_ufc_foobar); -+#else /* __OPTION_EGLIBC_CRYPT_UFC */ -+ __set_errno (ENOSYS); -+ return NULL; -+#endif /* __OPTION_EGLIBC_CRYPT_UFC */ - } - - -Index: git/crypt/Makefile -=================================================================== ---- git.orig/crypt/Makefile 2014-08-29 20:00:43.024070587 -0700 -+++ git/crypt/Makefile 2014-08-29 20:01:15.192070587 -0700 -@@ -18,21 +18,25 @@ - # - # Sub-makefile for crypt() portion of the library. - # -+include ../option-groups.mak -+ - subdir := crypt - - include ../Makeconfig - - headers := crypt.h - --extra-libs := libcrypt --extra-libs-others := $(extra-libs) -+extra-libs-$(OPTION_EGLIBC_CRYPT) := libcrypt -+extra-libs-others-y := $(extra-libs-y) - --libcrypt-routines := crypt-entry md5-crypt sha256-crypt sha512-crypt crypt \ -- crypt_util -+libcrypt-routines :=crypt-entry md5-crypt sha256-crypt sha512-crypt crypt_common -+libcrypt-routines-$(OPTION_EGLIBC_CRYPT_UFC) := crypt crypt_util -+libcrypt-routines += $(libcrypt-routines-y) - --tests := cert md5c-test sha256c-test sha512c-test badsalttest -+tests-$(OPTION_EGLIBC_CRYPT) := md5c-test sha256c-test sha512c-test badsalttest -+tests-$(OPTION_EGLIBC_CRYPT_UFC) += cert - --ifeq ($(crypt-in-libc),yes) -+ifeq ($(crypt-in-libc)$(OPTION_EGLIBC_CRYPT),yesy) - routines += $(libcrypt-routines) - endif - -@@ -44,7 +48,7 @@ - else - libcrypt-routines += md5 sha256 sha512 - --tests += md5test sha256test sha512test -+tests-$(OPTION_EGLIBC_CRYPT) += md5test sha256test sha512test - - # The test md5test-giant uses up to 400 MB of RSS and runs on a fast - # machine over a minute. -@@ -64,8 +68,10 @@ - $(objpfx)sha512test: $(patsubst %, $(objpfx)%.o,$(sha512-routines)) - endif - -+ifeq ($(OPTION_EGLIBC_CRYPT),y) - ifeq (yes,$(build-shared)) - $(addprefix $(objpfx),$(tests)): $(objpfx)libcrypt.so - else - $(addprefix $(objpfx),$(tests)): $(objpfx)libcrypt.a - endif -+endif # eglibc: OPTION_EGLIBC_CRYPT -Index: git/csu/Makefile -=================================================================== ---- git.orig/csu/Makefile 2014-08-29 20:00:43.032070587 -0700 -+++ git/csu/Makefile 2014-08-29 20:01:15.192070587 -0700 -@@ -22,6 +22,8 @@ - # crtn.o, special "initializer" and "finalizer" files used in the link - # to make the .init and .fini sections work right. - -+include ../option-groups.mak -+ - subdir := csu - - include ../Makeconfig -Index: git/debug/Makefile -=================================================================== ---- git.orig/debug/Makefile 2014-08-29 20:00:43.036070587 -0700 -+++ git/debug/Makefile 2014-08-29 20:01:15.192070587 -0700 -@@ -18,6 +18,8 @@ - # - # Sub-makefile for debug portion of the library. - # -+include ../option-groups.mak -+ - subdir := debug - - include ../Makeconfig -@@ -27,7 +29,7 @@ - # Note that ptsname_r_chk and getlogin_r are not here, but in - # login/Makefile instead. If that subdir is omitted from the - # build, its _FORTIFY_SOURCE support will be too. --routines = backtrace backtracesyms backtracesymsfd noophooks \ -+routines = noophooks \ - memcpy_chk memmove_chk mempcpy_chk memset_chk stpcpy_chk \ - strcat_chk strcpy_chk strncat_chk strncpy_chk stpncpy_chk \ - sprintf_chk vsprintf_chk snprintf_chk vsnprintf_chk \ -@@ -36,20 +38,27 @@ - read_chk pread_chk pread64_chk recv_chk recvfrom_chk \ - readlink_chk readlinkat_chk getwd_chk getcwd_chk \ - realpath_chk fread_chk fread_u_chk \ -- wctomb_chk wcscpy_chk wmemcpy_chk wmemmove_chk wmempcpy_chk \ -- wcpcpy_chk wcsncpy_chk wcscat_chk wcsncat_chk wmemset_chk \ -- wcpncpy_chk \ -- swprintf_chk vswprintf_chk wprintf_chk fwprintf_chk \ -- vwprintf_chk vfwprintf_chk fgetws_chk fgetws_u_chk \ - confstr_chk getgroups_chk ttyname_r_chk \ -- gethostname_chk getdomainname_chk wcrtomb_chk mbsnrtowcs_chk \ -- wcsnrtombs_chk mbsrtowcs_chk wcsrtombs_chk mbstowcs_chk \ -- wcstombs_chk asprintf_chk vasprintf_chk dprintf_chk \ -+ gethostname_chk getdomainname_chk \ -+ asprintf_chk vasprintf_chk dprintf_chk \ - vdprintf_chk obprintf_chk \ - longjmp_chk ____longjmp_chk \ - fdelt_chk poll_chk ppoll_chk \ - stack_chk_fail fortify_fail \ - $(static-only-routines) -+routines-$(OPTION_EGLIBC_BACKTRACE) += backtrace backtracesyms backtracesymsfd -+routines-$(OPTION_POSIX_WIDE_CHAR_DEVICE_IO) \ -+ += wprintf_chk fwprintf_chk \ -+ vwprintf_chk vfwprintf_chk fgetws_chk fgetws_u_chk -+routines-$(OPTION_POSIX_C_LANG_WIDE_CHAR) \ -+ += wctomb_chk wcscpy_chk wmemcpy_chk wmemmove_chk wmempcpy_chk \ -+ wcpcpy_chk wcsncpy_chk wcscat_chk wcsncat_chk wmemset_chk \ -+ wcpncpy_chk \ -+ swprintf_chk vswprintf_chk \ -+ wcrtomb_chk mbsnrtowcs_chk \ -+ wcsnrtombs_chk mbsrtowcs_chk wcsrtombs_chk mbstowcs_chk \ -+ wcstombs_chk -+ - static-only-routines := warning-nop stack_chk_fail_local - - CFLAGS-backtrace.c = -fno-omit-frame-pointer -@@ -129,11 +138,15 @@ - LDFLAGS-tst-backtrace5 = -rdynamic - LDFLAGS-tst-backtrace6 = -rdynamic - --tests = backtrace-tst tst-longjmp_chk tst-chk1 tst-chk2 tst-chk3 \ -- tst-lfschk1 tst-lfschk2 tst-lfschk3 test-strcpy_chk test-stpcpy_chk \ -- tst-chk4 tst-chk5 tst-chk6 tst-lfschk4 tst-lfschk5 tst-lfschk6 \ -- tst-longjmp_chk2 tst-backtrace2 tst-backtrace3 tst-backtrace4 \ -- tst-backtrace5 tst-backtrace6 -+tests = tst-longjmp_chk test-strcpy_chk test-stpcpy_chk tst-longjmp_chk2 -+tests-$(OPTION_EGLIBC_LOCALE_CODE) \ -+ += tst-chk1 tst-chk2 tst-chk3 tst-lfschk1 tst-lfschk2 tst-lfschk3 -+tests-$(OPTION_EGLIBC_BACKTRACE) \ -+ += backtrace-tst tst-backtrace2 tst-backtrace3 tst-backtrace4 \ -+ tst-backtrace5 tst-backtrace6 -+ifeq (yy,$(OPTION_EGLIBC_LOCALE_CODE)$(OPTION_EGLIBC_CXX_TESTS)) -+tests += tst-chk4 tst-chk5 tst-chk6 tst-lfschk4 tst-lfschk5 tst-lfschk6 -+endif - - tests-ifunc := $(stpcpy_chk strcpy_chk:%=test-%-ifunc) - tests += $(tests-ifunc) -Index: git/debug/segfault.c -=================================================================== ---- git.orig/debug/segfault.c 2014-08-29 20:00:46.280070587 -0700 -+++ git/debug/segfault.c 2014-08-29 20:01:15.192070587 -0700 -@@ -30,6 +30,7 @@ - #include <unistd.h> - #include <_itoa.h> - #include <ldsodefs.h> -+#include <gnu/option-groups.h> - - /* This file defines macros to access the content of the sigcontext element - passed up by the signal handler. */ -@@ -91,6 +92,7 @@ - REGISTER_DUMP; - #endif - -+#if __OPTION_EGLIBC_BACKTRACE - WRITE_STRING ("\nBacktrace:\n"); - - /* Get the backtrace. */ -@@ -113,6 +115,7 @@ - - /* Now generate nicely formatted output. */ - __backtrace_symbols_fd (arr + i, cnt - i, fd); -+#endif - - #ifdef HAVE_PROC_SELF - /* Now the link map. */ -Index: git/debug/tst-chk1.c -=================================================================== ---- git.orig/debug/tst-chk1.c 2014-08-29 20:00:46.288070587 -0700 -+++ git/debug/tst-chk1.c 2014-08-29 20:01:15.192070587 -0700 -@@ -31,6 +31,7 @@ - #include <sys/select.h> - #include <sys/socket.h> - #include <sys/un.h> -+#include <gnu/option-groups.h> - - - #define obstack_chunk_alloc malloc -@@ -307,6 +308,7 @@ - snprintf (buf + 8, l0 + 3, "%d", num2); - CHK_FAIL_END - -+#if __OPTION_POSIX_C_LANG_WIDE_CHAR - CHK_FAIL_START - swprintf (wbuf + 8, 3, L"%d", num1); - CHK_FAIL_END -@@ -314,6 +316,7 @@ - CHK_FAIL_START - swprintf (wbuf + 8, l0 + 3, L"%d", num1); - CHK_FAIL_END -+#endif /* __OPTION_POSIX_C_LANG_WIDE_CHAR */ - # endif - - memcpy (buf, str1 + 2, l0 + 9); -@@ -381,6 +384,7 @@ - CHK_FAIL_END - #endif - -+#if __OPTION_POSIX_C_LANG_WIDE_CHAR - - /* These ops can be done without runtime checking of object size. */ - wmemcpy (wbuf, L"abcdefghij", 10); -@@ -605,6 +609,7 @@ - CHK_FAIL_END - #endif - -+#endif /* __OPTION_POSIX_C_LANG_WIDE_CHAR */ - - /* Now checks for %n protection. */ - -@@ -1192,6 +1197,7 @@ - # endif - #endif - -+#if __OPTION_POSIX_C_LANG_WIDE_CHAR - if (setlocale (LC_ALL, "de_DE.UTF-8") != NULL) - { - assert (MB_CUR_MAX <= 10); -@@ -1348,6 +1354,7 @@ - puts ("cannot set locale"); - ret = 1; - } -+#endif /* __OPTION_POSIX_C_LANG_WIDE_CHAR */ - - int fd = posix_openpt (O_RDWR); - if (fd != -1) -Index: git/dlfcn/Makefile -=================================================================== ---- git.orig/dlfcn/Makefile 2014-08-29 20:00:46.312070587 -0700 -+++ git/dlfcn/Makefile 2014-08-29 20:01:15.192070587 -0700 -@@ -15,6 +15,8 @@ - # License along with the GNU C Library; if not, see - # <http://www.gnu.org/licenses/>. - -+include ../option-groups.mak -+ - subdir := dlfcn - - include ../Makeconfig -@@ -36,7 +38,9 @@ - ifeq (yes,$(build-shared)) - tests = glrefmain failtest tst-dladdr default errmsg1 tstcxaatexit \ - bug-dlopen1 bug-dlsym1 tst-dlinfo bug-atexit1 bug-atexit2 \ -- bug-atexit3 tstatexit bug-dl-leaf -+ tstatexit bug-dl-leaf -+ -+tests-$(OPTION_EGLIBC_CXX_TESTS) += bug-atexit3 - endif - modules-names = glreflib1 glreflib2 glreflib3 failtestmod defaultmod1 \ - defaultmod2 errmsg1mod modatexit modcxaatexit \ -Index: git/elf/dl-support.c -=================================================================== ---- git.orig/elf/dl-support.c 2014-08-29 20:00:46.384070587 -0700 -+++ git/elf/dl-support.c 2014-08-29 20:01:15.192070587 -0700 -@@ -19,6 +19,7 @@ - /* This file defines some things that for the dynamic linker are defined in - rtld.c and dl-sysdep.c in ways appropriate to bootstrap dynamic linking. */ - -+#include <gnu/option-groups.h> - #include <errno.h> - #include <libintl.h> - #include <stdlib.h> -@@ -42,7 +43,9 @@ - const char *_dl_platform; - size_t _dl_platformlen; - -+#if __OPTION_EGLIBC_RTLD_DEBUG - int _dl_debug_mask; -+#endif - int _dl_lazy; - ElfW(Addr) _dl_use_load_bias = -2; - int _dl_dynamic_weak; -Index: git/elf/rtld.c -=================================================================== ---- git.orig/elf/rtld.c 2014-08-29 20:01:14.708070587 -0700 -+++ git/elf/rtld.c 2014-08-29 20:01:15.196070587 -0700 -@@ -16,6 +16,7 @@ - License along with the GNU C Library; if not, see - <http://www.gnu.org/licenses/>. */ - -+#include <gnu/option-groups.h> - #include <errno.h> - #include <dlfcn.h> - #include <fcntl.h> -@@ -2200,6 +2201,7 @@ - objname, errstring); - } - -+#if __OPTION_EGLIBC_RTLD_DEBUG - /* Nonzero if any of the debugging options is enabled. */ - static int any_debug attribute_relro; - -@@ -2309,6 +2311,7 @@ - _exit (0); - } - } -+#endif /* __OPTION_EGLIBC_RTLD_DEBUG */ - - static void - process_dl_audit (char *str) -@@ -2376,12 +2379,14 @@ - break; - - case 5: -+#if __OPTION_EGLIBC_RTLD_DEBUG - /* Debugging of the dynamic linker? */ - if (memcmp (envline, "DEBUG", 5) == 0) - { - process_dl_debug (&envline[6]); - break; - } -+#endif - if (memcmp (envline, "AUDIT", 5) == 0) - process_dl_audit (&envline[6]); - break; -@@ -2490,7 +2495,9 @@ - { - mode = trace; - GLRO(dl_verbose) = 1; -+#if __OPTION_EGLIBC_RTLD_DEBUG - GLRO_dl_debug_mask |= DL_DEBUG_PRELINK; -+#endif - GLRO(dl_trace_prelink) = &envline[17]; - } - break; -@@ -2537,12 +2544,15 @@ - if (__access ("/etc/suid-debug", F_OK) != 0) - { - unsetenv ("MALLOC_CHECK_"); -+#if __OPTION_EGLIBC_RTLD_DEBUG - GLRO_dl_debug_mask = 0; -+#endif - } - - if (mode != normal) - _exit (5); - } -+#if __OPTION_EGLIBC_RTLD_DEBUG - /* If we have to run the dynamic linker in debugging mode and the - LD_DEBUG_OUTPUT environment variable is given, we write the debug - messages to this file. */ -@@ -2567,6 +2577,7 @@ - /* We use standard output if opening the file failed. */ - GLRO(dl_debug_fd) = STDOUT_FILENO; - } -+#endif /* __OPTION_EGLIBC_RTLD_DEBUG */ - } - - -Index: git/extra-lib.mk -=================================================================== ---- git.orig/extra-lib.mk 2014-08-29 20:00:46.544070587 -0700 -+++ git/extra-lib.mk 2014-08-29 20:01:15.196070587 -0700 -@@ -25,7 +25,9 @@ - extra-objs := $(extra-objs) - - # The modules that go in $(lib). --all-$(lib)-routines := $($(lib)-routines) $($(lib)-sysdep_routines) -+all-$(lib)-routines := $($(lib)-routines) \ -+ $($(lib)-routines-y) \ -+ $($(lib)-sysdep_routines) - - # Add each flavor of library to the lists of things to build and install. - install-lib += $(foreach o,$(object-suffixes-$(lib)),$(lib:lib%=$(libtype$o))) -@@ -101,7 +103,7 @@ - endif - - # This will define `libof-ROUTINE := LIB' for each of the routines. --cpp-srcs-left := $($(lib)-routines) $($(lib)-sysdep_routines) -+cpp-srcs-left := $(all-$(lib)-routines) - ifneq (,$(cpp-srcs-left)) - include $(patsubst %,$(..)cppflags-iterator.mk,$(cpp-srcs-left)) - endif -Index: git/grp/Makefile -=================================================================== ---- git.orig/grp/Makefile 2014-08-29 20:00:46.556070587 -0700 -+++ git/grp/Makefile 2014-08-29 20:01:15.196070587 -0700 -@@ -18,6 +18,8 @@ - # - # Sub-makefile for grp portion of the library. - # -+include ../option-groups.mak -+ - subdir := grp - - include ../Makeconfig -@@ -29,6 +31,9 @@ - getgrent_r getgrgid_r getgrnam_r fgetgrent_r - - tests := testgrp -+ifneq (y,$(OPTION_EGLIBC_NSSWITCH)) -+LDLIBS-testgrp += $(shell cat $(common-objpfx)nss/fixed-nsswitch-libs) -+endif - - ifeq (yes,$(build-shared)) - test-srcs := tst_fgetgrent -Index: git/hesiod/Makefile -=================================================================== ---- git.orig/hesiod/Makefile 2014-08-29 20:00:46.580070587 -0700 -+++ git/hesiod/Makefile 2014-08-29 20:01:15.196070587 -0700 -@@ -18,12 +18,14 @@ - # - # Sub-makefile for hesiod portion of the library. - # -+include ../option-groups.mak -+ - subdir := hesiod - - include ../Makeconfig - --extra-libs := libnss_hesiod --extra-libs-others = $(extra-libs) -+extra-libs-$(OPTION_EGLIBC_INET) += libnss_hesiod -+extra-libs-others-y += $(extra-libs-y) - - subdir-dirs = nss_hesiod - vpath %.c nss_hesiod -Index: git/iconv/gconv_db.c -=================================================================== ---- git.orig/iconv/gconv_db.c 2014-08-29 20:00:46.604070587 -0700 -+++ git/iconv/gconv_db.c 2014-08-29 20:01:15.196070587 -0700 -@@ -25,6 +25,7 @@ - #include <sys/param.h> - #include <bits/libc-lock.h> - #include <locale/localeinfo.h> -+#include <gnu/option-groups.h> - - #include <dlfcn.h> - #include <gconv_int.h> -@@ -828,9 +829,11 @@ - /* Free all resources if necessary. */ - libc_freeres_fn (free_mem) - { -+#if __OPTION_EGLIBC_LOCALE_CODE - /* First free locale memory. This needs to be done before freeing derivations, - as ctype cleanup functions dereference steps arrays which we free below. */ - _nl_locale_subfreeres (); -+#endif - - /* finddomain.c has similar problem. */ - extern void _nl_finddomain_subfreeres (void) attribute_hidden; -Index: git/iconv/gconv_trans.c -=================================================================== ---- git.orig/iconv/gconv_trans.c 2014-08-29 20:00:46.612070587 -0700 -+++ git/iconv/gconv_trans.c 2014-08-29 20:01:15.196070587 -0700 -@@ -23,6 +23,7 @@ - #include <stdint.h> - #include <string.h> - #include <stdlib.h> -+#include <gnu/option-groups.h> - - #include <bits/libc-lock.h> - #include "gconv_int.h" -@@ -59,6 +60,7 @@ - PTR_DEMANGLE (fct); - #endif - -+#if __OPTION_EGLIBC_LOCALE_CODE - /* If there is no transliteration information in the locale don't do - anything and return the error. */ - size = _NL_CURRENT_WORD (LC_CTYPE, _NL_CTYPE_TRANSLIT_TAB_SIZE); -@@ -194,6 +196,7 @@ - sorted. */ - break; - } -+#endif - - /* One last chance: use the default replacement. */ - if (_NL_CURRENT_WORD (LC_CTYPE, _NL_CTYPE_TRANSLIT_DEFAULT_MISSING_LEN) != 0) -Index: git/iconv/iconv_prog.c -=================================================================== ---- git.orig/iconv/iconv_prog.c 2014-08-29 20:00:46.612070587 -0700 -+++ git/iconv/iconv_prog.c 2014-08-29 20:01:15.196070587 -0700 -@@ -35,6 +35,7 @@ - #ifdef _POSIX_MAPPED_FILES - # include <sys/mman.h> - #endif -+#include <gnu/option-groups.h> - #include <charmap.h> - #include <gconv_int.h> - #include "iconv_prog.h" -@@ -221,10 +222,17 @@ - bool to_wrong = - (iconv_open (to_code, "UTF-8") == (iconv_t) -1 - && errno == EINVAL); -+#if __OPTION_EGLIBC_LOCALE_CODE - const char *from_pretty = - (from_code[0] ? from_code : nl_langinfo (CODESET)); - const char *to_pretty = - (orig_to_code[0] ? orig_to_code : nl_langinfo (CODESET)); -+#else -+ const char *from_pretty = -+ (from_code[0] ? from_code : "ANSI_X3.4-1968"); -+ const char *to_pretty = -+ (orig_to_code[0] ? orig_to_code : "ANSI_X3.4-1968"); -+#endif - - if (from_wrong) - { -Index: git/iconv/Makefile -=================================================================== ---- git.orig/iconv/Makefile 2014-08-29 20:00:46.600070587 -0700 -+++ git/iconv/Makefile 2014-08-29 20:01:15.196070587 -0700 -@@ -18,6 +18,8 @@ - # - # Makefile for iconv. - # -+include ../option-groups.mak -+ - subdir := iconv - - include ../Makeconfig -@@ -57,6 +59,9 @@ - CPPFLAGS-strtab = -DNOT_IN_libc - CPPFLAGS-charmap = -DNOT_IN_libc - CPPFLAGS-charmap-dir = -DNOT_IN_libc -+ifneq (y,$(OPTION_EGLIBC_SPAWN)) -+CPPFLAGS-charmap-dir.c += -DNO_UNCOMPRESS -+endif - - ifeq ($(run-built-tests),yes) - xtests-special += $(objpfx)test-iconvconfig.out -Index: git/iconvdata/Makefile -=================================================================== ---- git.orig/iconvdata/Makefile 2014-08-29 20:00:46.628070587 -0700 -+++ git/iconvdata/Makefile 2014-08-29 20:01:15.196070587 -0700 -@@ -18,12 +18,15 @@ - # - # Makefile for iconv data and code. - # -+include ../option-groups.mak -+ - subdir := iconvdata - - include ../Makeconfig - - # Names of all the shared objects which implement the transformations. --modules := ISO8859-1 ISO8859-2 ISO8859-3 ISO8859-4 ISO8859-5 \ -+modules-$(OPTION_EGLIBC_CHARSETS) \ -+ := ISO8859-1 ISO8859-2 ISO8859-3 ISO8859-4 ISO8859-5 \ - ISO8859-6 ISO8859-7 ISO8859-8 ISO8859-9 ISO8859-10 \ - ISO8859-11 ISO8859-13 ISO8859-14 ISO8859-15 ISO8859-16 \ - T.61 ISO_6937 SJIS KOI-8 HP-ROMAN8 HP-ROMAN9 EBCDIC-AT-DE \ -@@ -63,11 +66,13 @@ - MAC-CENTRALEUROPE KOI8-RU ISO8859-9E \ - CP770 CP771 CP772 CP773 CP774 - --modules.so := $(addsuffix .so, $(modules)) -+modules.so := $(addsuffix .so, $(modules-y)) - - ifeq (yes,$(build-shared)) - tests = bug-iconv1 bug-iconv2 tst-loading tst-e2big tst-iconv4 bug-iconv4 \ -- tst-iconv6 bug-iconv5 bug-iconv6 tst-iconv7 bug-iconv8 bug-iconv9 -+ tst-iconv6 bug-iconv5 bug-iconv8 bug-iconv9 -+tests-$(OPTION_EGLIBC_LOCALE_CODE) += bug-iconv6 tst-iconv7 -+ - ifeq ($(have-thread-library),yes) - tests += bug-iconv3 - endif -@@ -130,13 +135,13 @@ - # Rule to generate the shared objects. - charmaps = ../localedata/charmaps - -include $(objpfx)iconv-rules --extra-modules-left := $(modules) -+extra-modules-left := $(modules-y) - include extra-module.mk - - - extra-objs += $(modules.so) --install-others = $(addprefix $(inst_gconvdir)/, $(modules.so)) \ -- $(inst_gconvdir)/gconv-modules -+install-others-y += $(addprefix $(inst_gconvdir)/, $(modules.so)) -+install-others-$(OPTION_EGLIBC_CHARSETS) += $(inst_gconvdir)/gconv-modules - - # We can build the conversion tables for numerous charsets automatically. - -@@ -204,7 +209,7 @@ - ifndef avoid-generated - $(objpfx)iconv-rules: Makefile - $(make-target-directory) -- { echo $(filter-out lib%, $(modules)); \ -+ { echo $(filter-out lib%, $(modules-y)); \ - echo 8bit $(gen-8bit-modules); \ - echo 8bit-gap $(gen-8bit-gap-modules); } | \ - LC_ALL=C \ -@@ -247,7 +252,7 @@ - $(do-install-program) - $(inst_gconvdir)/gconv-modules: gconv-modules $(+force) - $(do-install) --ifeq (no,$(cross-compiling)) -+# eglibc: ifeq (no,$(cross-compiling)) - # Update the $(prefix)/lib/gconv/gconv-modules.cache file. This is necessary - # if this libc has more gconv modules than the previously installed one. - if test -f "$(inst_gconvdir)/gconv-modules.cache"; then \ -@@ -256,9 +261,9 @@ - $(common-objpfx)iconv/iconvconfig \ - $(addprefix --prefix=,$(install_root)); \ - fi --else -- @echo '*@*@*@ You should recreate $(inst_gconvdir)/gconv-modules.cache' --endif -+# eglibc: else -+# eglibc: @echo '*@*@*@ You should recreate $(inst_gconvdir)/gconv-modules.cache' -+# eglibc: endif - - endif # build-shared = yes - -Index: git/include/netdb.h -=================================================================== ---- git.orig/include/netdb.h 2014-08-29 20:00:47.152070587 -0700 -+++ git/include/netdb.h 2014-08-29 20:01:15.196070587 -0700 -@@ -232,6 +232,10 @@ - (const char *name, int af, struct hostent *host, \ - char *buffer, size_t buflen, int *errnop, \ - int *h_errnop); \ -+extern enum nss_status _nss_ ## service ## _gethostbyname3_r \ -+ (const char *name, int af, struct hostent *result, \ -+ char *buffer, size_t buflen, int *errnop, \ -+ int *h_errnop, int32_t *ttlp, char **canonp); \ - extern enum nss_status _nss_ ## service ## _gethostbyname_r \ - (const char *name, struct hostent *host, char *buffer, \ - size_t buflen, int *errnop, int *h_errnop); \ -Index: git/inet/Makefile -=================================================================== ---- git.orig/inet/Makefile 2014-08-29 20:00:47.176070587 -0700 -+++ git/inet/Makefile 2014-08-29 20:01:15.200070587 -0700 -@@ -18,6 +18,8 @@ - # - # Sub-makefile for inet portion of the library. - # -+include ../option-groups.mak -+ - subdir := inet - - include ../Makeconfig -@@ -27,7 +29,8 @@ - netinet/tcp.h netinet/ip.h $(wildcard arpa/*.h protocols/*.h) \ - aliases.h ifaddrs.h netinet/ip6.h netinet/icmp6.h bits/in.h - --routines := htonl htons \ -+routines-$(OPTION_EGLIBC_INET) \ -+ += htonl htons \ - inet_lnaof inet_mkadr \ - inet_netof inet_ntoa inet_net herrno herrno-loc \ - gethstbyad gethstbyad_r gethstbynm gethstbynm2 gethstbynm2_r \ -@@ -41,18 +44,23 @@ - getrpcent_r getrpcbyname_r getrpcbynumber_r \ - ether_aton ether_aton_r ether_hton ether_line \ - ether_ntoa ether_ntoa_r ether_ntoh \ -- rcmd rexec ruserpass \ - getnetgrent_r getnetgrent \ -- getaliasent_r getaliasent getaliasname getaliasname_r \ -- in6_addr getnameinfo if_index ifaddrs inet6_option \ -+ in6_addr getnameinfo if_index ifaddrs \ - getipv4sourcefilter setipv4sourcefilter \ -- getsourcefilter setsourcefilter inet6_opt inet6_rth -+ getsourcefilter setsourcefilter -+routines-$(OPTION_EGLIBC_RCMD) \ -+ += rcmd rexec ruserpass -+routines-$(OPTION_EGLIBC_DB_ALIASES) \ -+ += getaliasent_r getaliasent getaliasname getaliasname_r -+routines-$(OPTION_EGLIBC_ADVANCED_INET6) \ -+ += inet6_option inet6_opt inet6_rth - --aux := check_pf check_native ifreq -+aux-$(OPTION_EGLIBC_INET) += check_pf check_native ifreq - - tests := htontest test_ifindex tst-ntoa tst-ether_aton tst-network \ -- tst-gethnm test-ifaddrs bug-if1 test-inet6_opt tst-ether_line \ -+ tst-gethnm test-ifaddrs bug-if1 tst-ether_line \ - tst-getni1 tst-getni2 tst-inet6_rth tst-checks -+tests-$(OPTION_EGLIBC_ADVANCED_INET6) += test-inet6_opt - - include ../Rules - -Index: git/intl/dcigettext.c -=================================================================== ---- git.orig/intl/dcigettext.c 2014-08-29 20:00:47.224070587 -0700 -+++ git/intl/dcigettext.c 2014-08-29 20:01:15.200070587 -0700 -@@ -77,6 +77,10 @@ - #endif - #include "hash-string.h" - -+#ifdef _LIBC -+# include <gnu/option-groups.h> -+#endif -+ - /* Thread safetyness. */ - #ifdef _LIBC - # include <bits/libc-lock.h> -@@ -449,9 +453,11 @@ - #endif - - #ifdef _LIBC -+#if __OPTION_EGLIBC_LOCALE_CODE - __libc_rwlock_define (extern, __libc_setlocale_lock attribute_hidden) - __libc_rwlock_rdlock (__libc_setlocale_lock); - #endif -+#endif - - __libc_rwlock_rdlock (_nl_state_lock); - -@@ -470,7 +476,11 @@ - search.category = category; - # ifdef HAVE_PER_THREAD_LOCALE - # ifdef _LIBC -+# if __OPTION_EGLIBC_LOCALE_CODE - localename = strdupa (__current_locale_name (category)); -+# else -+ localename = "C"; -+# endif - # endif - search.localename = localename; - # endif -@@ -494,7 +504,9 @@ - retval = (char *) (*foundp)->translation; - - # ifdef _LIBC -+#if __OPTION_EGLIBC_LOCALE_CODE - __libc_rwlock_unlock (__libc_setlocale_lock); -+#endif - # endif - __libc_rwlock_unlock (_nl_state_lock); - return retval; -@@ -611,7 +623,9 @@ - { - no_translation: - FREE_BLOCKS (block_list); -+#if __OPTION_EGLIBC_LOCALE_CODE - __libc_rwlock_unlock (__libc_setlocale_lock); -+#endif - __libc_rwlock_unlock (_nl_state_lock); - __set_errno (saved_errno); - return (plural == 0 -@@ -730,7 +744,9 @@ - if (plural) - retval = plural_lookup (domain, n, retval, retlen); - -+#if __OPTION_EGLIBC_LOCALE_CODE - __libc_rwlock_unlock (__libc_setlocale_lock); -+#endif - __libc_rwlock_unlock (_nl_state_lock); - return retval; - } -@@ -1361,7 +1377,11 @@ - `LC_xxx', and `LANG'. On some systems this can be done by the - `setlocale' function itself. */ - #ifdef _LIBC -+# if __OPTION_EGLIBC_LOCALE_CODE - retval = __current_locale_name (category); -+# else -+ retval = "C"; -+# endif - #else - retval = _nl_locale_name (category, categoryname); - #endif -Index: git/intl/Makefile -=================================================================== ---- git.orig/intl/Makefile 2014-08-29 20:00:47.220070587 -0700 -+++ git/intl/Makefile 2014-08-29 20:01:15.200070587 -0700 -@@ -16,6 +16,7 @@ - # <http://www.gnu.org/licenses/>. - - # Makefile for intl subdirectory: message handling code from GNU gettext. -+include ../option-groups.mak - - subdir = intl - -@@ -48,7 +49,7 @@ - $(objpfx)plural.o: plural.c - - ifeq ($(run-built-tests),yes) --ifeq (yes,$(build-shared)) -+ifeq (yyyes,$(OPTION_EGLIBC_LOCALES)$(OPTION_EGLIBC_LOCALE_CODE)$(build-shared)) - ifneq ($(strip $(MSGFMT)),:) - tests-special += $(objpfx)tst-translit.out $(objpfx)tst-gettext.out \ - $(objpfx)tst-gettext2.out $(objpfx)tst-codeset.out \ -Index: git/io/Makefile -=================================================================== ---- git.orig/io/Makefile 2014-08-29 20:00:47.244070587 -0700 -+++ git/io/Makefile 2014-08-29 20:01:15.200070587 -0700 -@@ -18,6 +18,8 @@ - # - # Sub-makefile for I/O portion of the library. - # -+include ../option-groups.mak -+ - subdir := io - - include ../Makeconfig -@@ -36,7 +38,7 @@ - fxstatat fxstatat64 \ - statfs fstatfs statfs64 fstatfs64 \ - statvfs fstatvfs statvfs64 fstatvfs64 \ -- umask chmod fchmod lchmod fchmodat \ -+ umask chmod fchmod fchmodat \ - mkdir mkdirat \ - open open_2 open64 open64_2 openat openat_2 openat64 openat64_2 \ - read write lseek lseek64 access euidaccess faccessat \ -@@ -49,11 +51,13 @@ - ttyname ttyname_r isatty \ - link linkat symlink symlinkat readlink readlinkat \ - unlink unlinkat rmdir \ -- ftw ftw64 fts poll ppoll \ -+ poll ppoll \ - posix_fadvise posix_fadvise64 \ - posix_fallocate posix_fallocate64 \ - sendfile sendfile64 \ - utimensat futimens -+routines-$(OPTION_EGLIBC_BSD) += lchmod -+routines-$(OPTION_EGLIBC_FTRAVERSE) += ftw ftw64 fts - - aux := have_o_cloexec - -@@ -64,18 +68,22 @@ - fstatat fstatat64 mknod mknodat - - others := pwd --test-srcs := ftwtest -+test-srcs-$(OPTION_EGLIBC_FTRAVERSE) := ftwtest - tests := test-utime test-stat test-stat2 test-lfs tst-getcwd \ -- tst-fcntl bug-ftw1 bug-ftw2 bug-ftw3 bug-ftw4 tst-statvfs \ -+ tst-fcntl tst-statvfs \ - tst-openat tst-unlinkat tst-fstatat tst-futimesat \ - tst-renameat tst-fchownat tst-fchmodat tst-faccessat \ - tst-symlinkat tst-linkat tst-readlinkat tst-mkdirat \ -- tst-mknodat tst-mkfifoat tst-ttyname_r bug-ftw5 \ -+ tst-mknodat tst-mkfifoat tst-ttyname_r \ - tst-posix_fallocate -+tests-$(OPTION_EGLIBC_FTRAVERSE) += bug-ftw1 bug-ftw2 bug-ftw3 bug-ftw4 \ -+ bug-ftw5 - - ifeq ($(run-built-tests),yes) -+ifeq (y,$(OPTION_EGLIBC_FTRAVERSE)) - tests-special += $(objpfx)ftwtest.out - endif -+endif - - include ../Rules - -Index: git/libidn/Makefile -=================================================================== ---- git.orig/libidn/Makefile 2014-08-29 20:00:47.316070587 -0700 -+++ git/libidn/Makefile 2014-08-29 20:01:15.200070587 -0700 -@@ -16,6 +16,7 @@ - # <http://www.gnu.org/licenses/>. - - # Makefile for libidn subdirectory of GNU C Library. -+include ../option-groups.mak - - subdir := libidn - -@@ -23,8 +24,8 @@ - - routines = idn-stub - --extra-libs = libcidn --extra-libs-others = $(extra-libs) -+extra-libs-$(OPTION_EGLIBC_IDN) = libcidn -+extra-libs-others-y = $(extra-libs-y) - - libcidn-routines := punycode toutf8 nfkc stringprep rfc3454 profiles idna \ - iconvme -Index: git/libidn/toutf8.c -=================================================================== ---- git.orig/libidn/toutf8.c 2014-08-29 20:00:47.332070587 -0700 -+++ git/libidn/toutf8.c 2014-08-29 20:01:15.200070587 -0700 -@@ -33,6 +33,11 @@ - /* Get strlen. */ - #include <string.h> - -+/* Get __OPTION_EGLIBC_LOCALE_CODE. */ -+#ifdef _LIBC -+# include <gnu/option-groups.h> -+#endif -+ - /* Get iconv_string. */ - #include "iconvme.h" - -@@ -47,7 +52,11 @@ - #endif - - #ifdef _LIBC --# define stringprep_locale_charset() nl_langinfo (CODESET) -+# if __OPTION_EGLIBC_LOCALE_CODE -+# define stringprep_locale_charset() nl_langinfo (CODESET) -+# else -+# define stringprep_locale_charset() "ANSI_X3.4-1968" -+# endif - #else - /** - * stringprep_locale_charset - return charset used in current locale -Index: git/libio/fileops.c -=================================================================== ---- git.orig/libio/fileops.c 2014-08-29 20:00:47.352070587 -0700 -+++ git/libio/fileops.c 2014-08-29 20:01:15.200070587 -0700 -@@ -38,6 +38,7 @@ - #include <string.h> - #include <errno.h> - #include <unistd.h> -+#include <gnu/option-groups.h> - #include <stdlib.h> - #if _LIBC - # include "../wcsmbs/wcsmbsload.h" -@@ -174,7 +175,7 @@ - - /* Free buffer. */ - #if defined _LIBC || defined _GLIBCPP_USE_WCHAR_T -- if (fp->_mode > 0) -+ if (_IO_is_wide (fp)) - { - if (_IO_have_wbackup (fp)) - _IO_free_wbackup_area (fp); -@@ -359,6 +360,7 @@ - cs = strstr (last_recognized + 1, ",ccs="); - if (cs != NULL) - { -+#if __OPTION_POSIX_WIDE_CHAR_DEVICE_IO - /* Yep. Load the appropriate conversions and set the orientation - to wide. */ - struct gconv_fcts fcts; -@@ -423,6 +425,12 @@ - - /* Set the mode now. */ - result->_mode = 1; -+#else -+ /* Treat this as if we couldn't find the given character set. */ -+ (void) _IO_file_close_it (fp); -+ __set_errno (EINVAL); -+ return NULL; -+#endif - } - } - -Index: git/libio/__fpurge.c -=================================================================== ---- git.orig/libio/__fpurge.c 2014-08-29 20:00:47.336070587 -0700 -+++ git/libio/__fpurge.c 2014-08-29 20:01:15.200070587 -0700 -@@ -21,7 +21,7 @@ - void - __fpurge (FILE *fp) - { -- if (fp->_mode > 0) -+ if (_IO_is_wide (fp)) - { - /* Wide-char stream. */ - if (_IO_in_backup (fp)) -Index: git/libio/iofwide.c -=================================================================== ---- git.orig/libio/iofwide.c 2014-08-29 20:00:47.360070587 -0700 -+++ git/libio/iofwide.c 2014-08-29 20:01:15.200070587 -0700 -@@ -26,6 +26,7 @@ - - #include <libioP.h> - #ifdef _LIBC -+# include <gnu/option-groups.h> - # include <dlfcn.h> - # include <wchar.h> - #endif -@@ -43,6 +44,8 @@ - #endif - - -+#if ! defined _LIBC || __OPTION_POSIX_C_LANG_WIDE_CHAR -+ - /* Prototypes of libio's codecvt functions. */ - static enum __codecvt_result do_out (struct _IO_codecvt *codecvt, - __mbstate_t *statep, -@@ -513,3 +516,26 @@ - return MB_CUR_MAX; - #endif - } -+ -+#else -+/* OPTION_POSIX_C_LANG_WIDE_CHAR is disabled. */ -+ -+#undef _IO_fwide -+int -+_IO_fwide (fp, mode) -+ _IO_FILE *fp; -+ int mode; -+{ -+ /* Die helpfully if the user tries to create a wide stream; I -+ disbelieve that most users check the return value from -+ 'fwide (fp, 1)'. */ -+ assert (mode <= 0); -+ -+ /* We can only make streams byte-oriented, which is trivial. */ -+ if (mode < 0) -+ fp->_mode = -1; -+ -+ return fp->_mode; -+} -+ -+#endif -Index: git/libio/ioseekoff.c -=================================================================== ---- git.orig/libio/ioseekoff.c 2014-08-29 20:00:47.364070587 -0700 -+++ git/libio/ioseekoff.c 2014-08-29 20:01:15.200070587 -0700 -@@ -60,7 +60,7 @@ - else - abort (); - } -- if (_IO_fwide (fp, 0) < 0) -+ if (! _IO_is_wide (fp)) - _IO_free_backup_area (fp); - else - _IO_free_wbackup_area (fp); -Index: git/libio/ioseekpos.c -=================================================================== ---- git.orig/libio/ioseekpos.c 2014-08-29 20:00:47.364070587 -0700 -+++ git/libio/ioseekpos.c 2014-08-29 20:01:15.200070587 -0700 -@@ -35,7 +35,7 @@ - /* If we have a backup buffer, get rid of it, since the __seekoff - callback may not know to do the right thing about it. - This may be over-kill, but it'll do for now. TODO */ -- if (_IO_fwide (fp, 0) <= 0) -+ if (! _IO_is_wide (fp)) - { - if (_IO_have_backup (fp)) - _IO_free_backup_area (fp); -Index: git/libio/iosetbuffer.c -=================================================================== ---- git.orig/libio/iosetbuffer.c 2014-08-29 20:00:47.364070587 -0700 -+++ git/libio/iosetbuffer.c 2014-08-29 20:01:15.204070587 -0700 -@@ -24,6 +24,8 @@ - This exception applies to code released by its copyright holders - in files containing the exception. */ - -+#include <gnu/option-groups.h> -+ - #include "libioP.h" - - void -@@ -38,9 +40,11 @@ - if (!buf) - size = 0; - (void) _IO_SETBUF (fp, buf, size); -+#if __OPTION_POSIX_C_LANG_WIDE_CHAR - if (_IO_vtable_offset (fp) == 0 && fp->_mode == 0 && _IO_CHECK_WIDE (fp)) - /* We also have to set the buffer using the wide char function. */ - (void) _IO_WSETBUF (fp, buf, size); -+#endif /* __OPTION_POSIX_C_LANG_WIDE_CHAR */ - _IO_release_lock (fp); - } - libc_hidden_def (_IO_setbuffer) -Index: git/libio/libioP.h -=================================================================== ---- git.orig/libio/libioP.h 2014-08-29 20:00:47.372070587 -0700 -+++ git/libio/libioP.h 2014-08-29 20:01:15.204070587 -0700 -@@ -42,6 +42,10 @@ - /*# include <comthread.h>*/ - #endif - -+#if defined _LIBC -+# include <gnu/option-groups.h> -+#endif -+ - #include <math_ldbl_opt.h> - - #include "iolibio.h" -@@ -508,8 +512,20 @@ - - - #if defined _LIBC || defined _GLIBCPP_USE_WCHAR_T -+ -+/* _IO_is_wide (fp) is roughly equivalent to '_IO_fwide (fp, 0) > 0', -+ except that when OPTION_POSIX_C_LANG_WIDE_CHAR is disabled, it -+ expands to a constant, allowing the compiler to realize that it can -+ eliminate code that references wide stream handling functions. -+ This, in turn, allows us to omit them. */ -+#if __OPTION_POSIX_C_LANG_WIDE_CHAR -+# define _IO_is_wide(_f) ((_f)->_mode > 0) -+#else -+# define _IO_is_wide(_f) (0) -+#endif -+ - # define _IO_do_flush(_f) \ -- ((_f)->_mode <= 0 \ -+ (! _IO_is_wide (_f) \ - ? _IO_do_write(_f, (_f)->_IO_write_base, \ - (_f)->_IO_write_ptr-(_f)->_IO_write_base) \ - : _IO_wdo_write(_f, (_f)->_wide_data->_IO_write_base, \ -Index: git/libio/Makefile -=================================================================== ---- git.orig/libio/Makefile 2014-08-29 20:00:47.332070587 -0700 -+++ git/libio/Makefile 2014-08-29 20:01:15.204070587 -0700 -@@ -18,6 +18,8 @@ - # - # Specific makefile for libio. - # -+include ../option-groups.mak -+ - subdir := libio - - include ../Makeconfig -@@ -27,16 +29,13 @@ - - routines := \ - filedoalloc iofclose iofdopen iofflush iofgetpos iofgets iofopen \ -- iofopncook iofputs iofread iofsetpos ioftell wfiledoalloc \ -+ iofopncook iofputs iofread iofsetpos ioftell \ - iofwrite iogetdelim iogetline iogets iopadn iopopen ioputs \ - ioseekoff ioseekpos iosetbuffer iosetvbuf ioungetc \ - iovsprintf iovsscanf \ - iofgetpos64 iofopen64 iofsetpos64 \ -- fputwc fputwc_u getwc getwc_u getwchar getwchar_u iofgetws iofgetws_u \ -- iofputws iofputws_u iogetwline iowpadn ioungetwc putwc putwc_u \ -- putwchar putwchar_u putchar putchar_u fwprintf swprintf vwprintf \ -- wprintf wscanf fwscanf vwscanf vswprintf iovswscanf swscanf wgenops \ -- wstrops wfileops iofwide fwide wmemstream \ -+ putchar putchar_u \ -+ iofwide \ - \ - clearerr feof ferror fileno fputc freopen fseek getc getchar \ - memstream pclose putc putchar rewind setbuf setlinebuf vasprintf \ -@@ -47,25 +46,48 @@ - __fpurge __fpending __fsetlocking \ - \ - libc_fatal fmemopen -- --tests = tst_swprintf tst_wprintf tst_swscanf tst_wscanf tst_getwc tst_putwc \ -- tst_wprintf2 tst-widetext test-fmemopen tst-ext tst-ext2 \ -- tst-fgetws tst-ungetwc1 tst-ungetwc2 tst-swscanf tst-sscanf \ -- tst-mmap-setvbuf bug-ungetwc1 bug-ungetwc2 tst-atime tst-eof \ -- tst-freopen bug-rewind bug-rewind2 bug-ungetc bug-fseek \ -- tst-mmap-eofsync tst-mmap-fflushsync bug-mmap-fflush \ -- tst-mmap2-eofsync tst-mmap-offend bug-fopena+ bug-wfflush \ -- bug-ungetc2 bug-ftell bug-ungetc3 bug-ungetc4 tst-fopenloc2 \ -- tst-memstream1 tst-memstream2 \ -- tst-wmemstream1 tst-wmemstream2 \ -- bug-memstream1 bug-wmemstream1 \ -- tst-setvbuf1 tst-popen1 tst-fgetwc bug-wsetpos tst-fseek \ -- tst-fwrite-error tst-ftell-partial-wide tst-ftell-active-handler \ -- tst-ftell-append -+routines-$(OPTION_POSIX_C_LANG_WIDE_CHAR) += \ -+ wfiledoalloc \ -+ iowpadn \ -+ swprintf \ -+ vswprintf iovswscanf swscanf wgenops \ -+ wstrops wfileops wmemstream -+routines-$(call option-disabled, OPTION_POSIX_C_LANG_WIDE_CHAR) += \ -+ wdummyfileops -+routines-$(OPTION_POSIX_WIDE_CHAR_DEVICE_IO) += \ -+ fputwc fputwc_u getwc getwc_u getwchar getwchar_u iofgetws iofgetws_u \ -+ iofputws iofputws_u iogetwline ioungetwc putwc putwc_u \ -+ putwchar putwchar_u fwprintf vwprintf \ -+ wprintf wscanf fwscanf vwscanf \ -+ fwide -+ -+tests = test-fmemopen tst-ext tst-ext2 \ -+ tst-mmap-setvbuf tst-atime tst-eof \ -+ tst-freopen bug-ungetc bug-fseek \ -+ tst-mmap-eofsync tst-mmap-fflushsync bug-mmap-fflush \ -+ tst-mmap2-eofsync tst-mmap-offend bug-fopena+ \ -+ bug-ungetc2 bug-ungetc3 bug-ungetc4 \ -+ tst-memstream1 tst-memstream2 \ -+ bug-memstream1 tst-popen1 tst-fwrite-error \ -+ tst-ftell-active-handler tst-ftell-append -+tests-$(OPTION_EGLIBC_LOCALE_CODE) \ -+ += tst-swscanf tst-fgetws tst-setvbuf1 \ -+ tst-ungetwc1 tst-ungetwc2 bug-ftell bug-ungetwc2 \ -+ tst-widetext -+tests-$(OPTION_POSIX_WIDE_CHAR_DEVICE_IO) \ -+ += bug-rewind bug-rewind2 bug-ungetwc1 \ -+ bug-wfflush bug-wmemstream1 tst-fopenloc2 \ -+ tst_getwc \ -+ tst_putwc tst_wprintf tst_wprintf2 tst_wscanf \ -+ tst-fgetwc bug-wsetpos tst-fseek tst-ftell-partial-wide -+tests-$(OPTION_POSIX_C_LANG_WIDE_CHAR) \ -+ += tst_swprintf tst_swscanf \ -+ tst-sscanf \ -+ tst-wmemstream1 tst-wmemstream2 - ifeq (yes,$(build-shared)) - # Add test-fopenloc only if shared library is enabled since it depends on - # shared localedata objects. --tests += tst-fopenloc -+tests-$(OPTION_EGLIBC_LOCALE_CODE) += tst-fopenloc - endif - test-srcs = test-freopen - -@@ -164,13 +186,17 @@ - oldiofsetpos64 - - ifeq ($(run-built-tests),yes) -+ifeq (y,$(OPTION_POSIX_WIDE_CHAR_DEVICE_IO)) - tests-special += $(objpfx)test-freopen.out -+endif -+ifeq (y,$(OPTION_EGLIBC_LOCALE_CODE)) - ifeq (yes,$(build-shared)) - # Run tst-fopenloc-cmp.out and tst-openloc-mem.out only if shared - # library is enabled since they depend on tst-fopenloc.out. - tests-special += $(objpfx)tst-fopenloc-cmp.out $(objpfx)tst-fopenloc-mem.out - endif - endif -+endif - - include ../Rules - -Index: git/libio/wdummyfileops.c -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ git/libio/wdummyfileops.c 2014-08-29 20:01:15.204070587 -0700 -@@ -0,0 +1,161 @@ -+/* Copyright (C) 2007 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 Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 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 -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, write to the Free -+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -+ 02111-1307 USA. -+ -+ As a special exception, if you link the code in this file with -+ files compiled with a GNU compiler to produce an executable, -+ that does not cause the resulting executable to be covered by -+ the GNU Lesser General Public License. This exception does not -+ however invalidate any other reasons why the executable file -+ might be covered by the GNU Lesser General Public License. -+ This exception applies to code released by its copyright holders -+ in files containing the exception. */ -+ -+#include <assert.h> -+#include <stdio.h> -+#include <stdlib.h> -+#include <libioP.h> -+ -+static void __THROW __attribute__ ((__noreturn__)) -+_IO_wfile_wide_char_support_disabled (void) -+{ -+ static const char errstr[] -+ = ("The application tried to use wide character I/O, but libc.so" -+ " was compiled\n" -+ "with the OPTION_POSIX_C_LANG_WIDE_CHAR option group disabled.\n"); -+ __libc_write (STDERR_FILENO, errstr, sizeof (errstr) - 1); -+ abort (); -+} -+ -+static void -+_IO_wfile_disabled_void_int (_IO_FILE *fp, int x) -+{ -+ _IO_wfile_wide_char_support_disabled (); -+} -+ -+static int -+_IO_wfile_disabled_int_int (_IO_FILE *fp, int x) -+{ -+ _IO_wfile_wide_char_support_disabled (); -+} -+ -+static int -+_IO_wfile_disabled_int_none (_IO_FILE *fp) -+{ -+ _IO_wfile_wide_char_support_disabled (); -+} -+ -+static _IO_size_t -+_IO_wfile_disabled_xsputn (_IO_FILE *fp, const void *data, _IO_size_t n) -+{ -+ _IO_wfile_wide_char_support_disabled (); -+} -+ -+static _IO_size_t -+_IO_wfile_disabled_xsgetn (_IO_FILE *fp, void *data, _IO_size_t n) -+{ -+ _IO_wfile_wide_char_support_disabled (); -+} -+ -+static _IO_off64_t -+_IO_wfile_disabled_seekoff (_IO_FILE *fp, _IO_off64_t off, int dir, int mode) -+{ -+ _IO_wfile_wide_char_support_disabled (); -+} -+ -+static _IO_off64_t -+_IO_wfile_disabled_seekpos (_IO_FILE *fp, _IO_off64_t pos, int flags) -+{ -+ _IO_wfile_wide_char_support_disabled (); -+} -+ -+static _IO_FILE * -+_IO_wfile_disabled_setbuf (_IO_FILE *fp, char *buffer, _IO_ssize_t length) -+{ -+ _IO_wfile_wide_char_support_disabled (); -+} -+ -+static _IO_ssize_t -+_IO_wfile_disabled_read (_IO_FILE *fp, void *buffer, _IO_ssize_t length) -+{ -+ _IO_wfile_wide_char_support_disabled (); -+} -+ -+static _IO_ssize_t -+_IO_wfile_disabled_write (_IO_FILE *fp, const void *buffer, _IO_ssize_t length) -+{ -+ _IO_wfile_wide_char_support_disabled (); -+} -+ -+static _IO_off64_t -+_IO_wfile_disabled_seek (_IO_FILE *fp, _IO_off64_t offset, int mode) -+{ -+ _IO_wfile_wide_char_support_disabled (); -+} -+ -+static int -+_IO_wfile_disabled_close (_IO_FILE *fp) -+{ -+ _IO_wfile_wide_char_support_disabled (); -+} -+ -+static int -+_IO_wfile_disabled_stat (_IO_FILE *fp, void *buf) -+{ -+ _IO_wfile_wide_char_support_disabled (); -+} -+ -+static int -+_IO_wfile_disabled_showmanyc (_IO_FILE *fp) -+{ -+ _IO_wfile_wide_char_support_disabled (); -+} -+ -+static void -+_IO_wfile_disabled_imbue (_IO_FILE *fp, void *locale) -+{ -+ _IO_wfile_wide_char_support_disabled (); -+} -+ -+static const struct _IO_jump_t _IO_wfile_jumps_disabled = -+{ -+ JUMP_INIT_DUMMY, -+ JUMP_INIT(finish, _IO_wfile_disabled_void_int), -+ JUMP_INIT(overflow, _IO_wfile_disabled_int_int), -+ JUMP_INIT(underflow, _IO_wfile_disabled_int_none), -+ JUMP_INIT(uflow, _IO_wfile_disabled_int_none), -+ JUMP_INIT(pbackfail, _IO_wfile_disabled_int_int), -+ JUMP_INIT(xsputn, _IO_wfile_disabled_xsputn), -+ JUMP_INIT(xsgetn, _IO_wfile_disabled_xsgetn), -+ JUMP_INIT(seekoff, _IO_wfile_disabled_seekoff), -+ JUMP_INIT(seekpos, _IO_wfile_disabled_seekpos), -+ JUMP_INIT(setbuf, _IO_wfile_disabled_setbuf), -+ JUMP_INIT(sync, _IO_wfile_disabled_int_none), -+ JUMP_INIT(doallocate, _IO_wfile_disabled_int_none), -+ JUMP_INIT(read, _IO_wfile_disabled_read), -+ JUMP_INIT(write, _IO_wfile_disabled_write), -+ JUMP_INIT(seek, _IO_wfile_disabled_seek), -+ JUMP_INIT(close, _IO_wfile_disabled_close), -+ JUMP_INIT(stat, _IO_wfile_disabled_stat), -+ JUMP_INIT(showmanyc, _IO_wfile_disabled_showmanyc), -+ JUMP_INIT(imbue, _IO_wfile_disabled_imbue) -+}; -+ -+strong_alias (_IO_wfile_jumps_disabled, _IO_wfile_jumps) -+libc_hidden_data_def (_IO_wfile_jumps) -+strong_alias (_IO_wfile_jumps_disabled, _IO_wfile_jumps_mmap) -+strong_alias (_IO_wfile_jumps_disabled, _IO_wfile_jumps_maybe_mmap) -Index: git/locale/catnames.c -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ git/locale/catnames.c 2014-08-29 20:01:15.204070587 -0700 -@@ -0,0 +1,48 @@ -+/* Copyright (C) 2006 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 Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 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 -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, write to the Free -+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -+ 02111-1307 USA. */ -+ -+#include "localeinfo.h" -+ -+/* Define an array of category names (also the environment variable names). */ -+const union catnamestr_t _nl_category_names attribute_hidden = -+ { -+ { -+#define DEFINE_CATEGORY(category, category_name, items, a) \ -+ category_name, -+#include "categories.def" -+#undef DEFINE_CATEGORY -+ } -+ }; -+ -+const uint8_t _nl_category_name_idxs[__LC_LAST] attribute_hidden = -+ { -+#define DEFINE_CATEGORY(category, category_name, items, a) \ -+ [category] = offsetof (union catnamestr_t, CATNAMEMF (__LINE__)), -+#include "categories.def" -+#undef DEFINE_CATEGORY -+ }; -+ -+/* An array of their lengths, for convenience. */ -+const uint8_t _nl_category_name_sizes[] attribute_hidden = -+ { -+#define DEFINE_CATEGORY(category, category_name, items, a) \ -+ [category] = sizeof (category_name) - 1, -+#include "categories.def" -+#undef DEFINE_CATEGORY -+ [LC_ALL] = sizeof ("LC_ALL") - 1 -+ }; -Index: git/locale/C-ctype.c -=================================================================== ---- git.orig/locale/C-ctype.c 2014-08-29 20:00:47.396070587 -0700 -+++ git/locale/C-ctype.c 2014-08-29 20:01:15.204070587 -0700 -@@ -19,8 +19,11 @@ - #include "localeinfo.h" - #include <endian.h> - #include <stdint.h> -+#include <gnu/option-groups.h> - -+#if __OPTION_EGLIBC_LOCALE_CODE - #include "C-translit.h" -+#endif - - /* This table's entries are taken from POSIX.2 Table 2-6 - ``LC_CTYPE Category Definition in the POSIX Locale''. -@@ -647,6 +650,7 @@ - { .word = L'7' }, - { .word = L'8' }, - { .word = L'9' }, -+#if __OPTION_EGLIBC_LOCALE_CODE - /* _NL_CTYPE_TRANSLIT_TAB_SIZE */ - { .word = NTRANSLIT }, - /* _NL_CTYPE_TRANSLIT_FROM_IDX */ -@@ -657,6 +661,22 @@ - { .wstr = translit_to_idx }, - /* _NL_CTYPE_TRANSLIT_TO_TBL */ - { .wstr = (uint32_t *) translit_to_tbl }, -+#else -+ /* If the locale code isn't enabled, we don't have the -+ transliteration code in iconv/gconv_trans.c anyway, so there's -+ no need for the transliteration tables here. We'll fall back -+ on the default missing replacement, '?'. */ -+ /* _NL_CTYPE_TRANSLIT_TAB_SIZE */ -+ { .word = 0 }, -+ /* _NL_CTYPE_TRANSLIT_FROM_IDX */ -+ { .wstr = NULL }, -+ /* _NL_CTYPE_TRANSLIT_FROM_TBL */ -+ { .wstr = NULL }, -+ /* _NL_CTYPE_TRANSLIT_TO_IDX */ -+ { .wstr = NULL }, -+ /* _NL_CTYPE_TRANSLIT_TO_TBL */ -+ { .wstr = NULL }, -+#endif - /* _NL_CTYPE_TRANSLIT_DEFAULT_MISSING_LEN */ - { .word = 1 }, - /* _NL_CTYPE_TRANSLIT_DEFAULT_MISSING */ -Index: git/locale/dummy-setlocale.c -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ git/locale/dummy-setlocale.c 2014-08-29 20:01:15.204070587 -0700 -@@ -0,0 +1,33 @@ -+/* Copyright (C) 2006 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 Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 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 -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, write to the Free -+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -+ 02111-1307 USA. */ -+ -+#include <string.h> -+#include <locale.h> -+ -+char * -+setlocale (int category, const char *locale) -+{ -+ if (! locale -+ || locale[0] == '\0' -+ || strcmp (locale, "C") == 0 -+ || strcmp (locale, "POSIX") == 0) -+ return (char *) "C"; -+ else -+ return NULL; -+} -+libc_hidden_def (setlocale) -Index: git/locale/localeinfo.h -=================================================================== ---- git.orig/locale/localeinfo.h 2014-08-29 20:00:47.404070587 -0700 -+++ git/locale/localeinfo.h 2014-08-29 20:01:15.204070587 -0700 -@@ -224,7 +224,7 @@ - unused. We can manage this playing some tricks with weak references. - But with thread-local locale settings, it becomes quite ungainly unless - we can use __thread variables. So only in that case do we attempt this. */ --#ifndef SHARED -+#if !defined SHARED && !defined IN_GLIBC_LOCALEDEF - # include <tls.h> - # define NL_CURRENT_INDIRECT 1 - #endif -Index: git/locale/Makefile -=================================================================== ---- git.orig/locale/Makefile 2014-08-29 20:00:47.400070587 -0700 -+++ git/locale/Makefile 2014-08-29 20:01:15.204070587 -0700 -@@ -18,27 +18,43 @@ - # - # Makefile for locales. - # -+include ../option-groups.mak -+ - subdir := locale - - include ../Makeconfig - - headers = locale.h bits/locale.h langinfo.h xlocale.h --routines = setlocale findlocale loadlocale loadarchive \ -- localeconv nl_langinfo nl_langinfo_l mb_cur_max \ -- newlocale duplocale freelocale uselocale --tests = tst-C-locale tst-locname tst-duplocale -+# catnames is needed by OPTION_EGLIBC_LOCALE_CODE and by the 'intl' code. -+# If we put the latter in an option group, too, we can omit catnames -+# when both option groups are disabled. libstdc++-v3 needs mb_cur_max. -+routines-y := catnames mb_cur_max -+routines-$(OPTION_EGLIBC_LOCALE_CODE) \ -+ += setlocale findlocale loadlocale loadarchive \ -+ localeconv nl_langinfo nl_langinfo_l \ -+ newlocale duplocale freelocale uselocale -+ifneq (y,$(OPTION_EGLIBC_LOCALE_CODE)) -+routines-y += dummy-setlocale -+endif -+tests-$(OPTION_EGLIBC_LOCALE_CODE) += tst-C-locale tst-locname tst-duplocale - categories = ctype messages monetary numeric time paper name \ - address telephone measurement identification collate --aux = $(categories:%=lc-%) $(categories:%=C-%) SYS_libc C_name \ -- xlocale localename global-locale coll-lookup --others = localedef locale -+# C-messages belongs in an intl option group. -+aux-y := C-ctype C-time \ -+ SYS_libc C_name xlocale global-locale coll-lookup -+aux-$(OPTION_EGLIBC_LOCALE_CODE) \ -+ += $(filter-out $(aux-y), \ -+ $(categories:%=lc-%) $(categories:%=C-%)) \ -+ localename -+others-$(OPTION_EGLIBC_LOCALE_CODE) = localedef locale - #others-static = localedef locale --install-bin = localedef locale --extra-objs = $(localedef-modules:=.o) $(localedef-aux:=.o) \ -+install-bin = $(others-y) -+extra-objs-$(OPTION_EGLIBC_LOCALE_CODE) \ -+ = $(localedef-modules:=.o) $(localedef-aux:=.o) \ - $(locale-modules:=.o) $(lib-modules:=.o) - --extra-libs = libBrokenLocale --extra-libs-others = $(extra-libs) -+extra-libs-$(OPTION_EGLIBC_LOCALE_CODE) = libBrokenLocale -+extra-libs-others = $(extra-libs-y) - - libBrokenLocale-routines = broken_cur_max - -@@ -94,6 +110,9 @@ - CFLAGS-charmap.c = -Wno-write-strings -Wno-char-subscripts - CFLAGS-locfile.c = -Wno-write-strings -Wno-char-subscripts - CFLAGS-charmap-dir.c = -Wno-write-strings -+ifneq (y,$(OPTION_EGLIBC_SPAWN)) -+CFLAGS-charmap-dir.c += -DNO_UNCOMPRESS -+endif - - # This makes sure -DNOT_IN_libc et al are passed for all these modules. - cpp-srcs-left := $(addsuffix .c,$(localedef-modules) $(localedef-aux) \ -Index: git/locale/programs/charmap-dir.c -=================================================================== ---- git.orig/locale/programs/charmap-dir.c 2014-08-29 20:00:47.408070587 -0700 -+++ git/locale/programs/charmap-dir.c 2014-08-29 20:01:15.204070587 -0700 -@@ -19,7 +19,9 @@ - #include <error.h> - #include <fcntl.h> - #include <libintl.h> -+#ifndef NO_UNCOMPRESS - #include <spawn.h> -+#endif - #include <stdio.h> - #include <stdlib.h> - #include <string.h> -@@ -156,6 +158,7 @@ - return closedir (dir); - } - -+#ifndef NO_UNCOMPRESS - /* Creates a subprocess decompressing the given pathname, and returns - a stream reading its output (the decompressed data). */ - static -@@ -204,6 +207,7 @@ - } - return NULL; - } -+#endif - - /* Opens a charmap for reading, given its name (not an alias name). */ - FILE * -@@ -226,6 +230,7 @@ - if (stream != NULL) - return stream; - -+#ifndef NO_UNCOMPRESS - memcpy (p, ".gz", 4); - stream = fopen_uncompressed (pathname, "gzip"); - if (stream != NULL) -@@ -235,6 +240,7 @@ - stream = fopen_uncompressed (pathname, "bzip2"); - if (stream != NULL) - return stream; -+#endif - - return NULL; - } -@@ -263,8 +269,8 @@ - char *alias = NULL; - char junk[BUFSIZ]; - -- if (fscanf (stream, " <code_set_name> %ms", &alias) == 1 -- || fscanf (stream, "%% alias %ms", &alias) == 1) -+ if (fscanf (stream, " <code_set_name> %as", &alias) == 1 -+ || fscanf (stream, "%% alias %as", &alias) == 1) - { - aliases = (char **) xrealloc (aliases, - (naliases + 2) * sizeof (char *)); -Index: git/locale/programs/ld-collate.c -=================================================================== ---- git.orig/locale/programs/ld-collate.c 2014-08-29 20:00:47.408070587 -0700 -+++ git/locale/programs/ld-collate.c 2014-08-29 20:01:15.208070587 -0700 -@@ -350,7 +350,7 @@ - } - if (wcs != NULL) - { -- size_t nwcs = wcslen ((wchar_t *) wcs); -+ size_t nwcs = wcslen_uint32 (wcs); - uint32_t zero = 0; - /* Handle <U0000> as a single character. */ - if (nwcs == 0) -@@ -1776,8 +1776,7 @@ - - if ((*eptr)->nwcs == runp->nwcs) - { -- int c = wmemcmp ((wchar_t *) (*eptr)->wcs, -- (wchar_t *) runp->wcs, runp->nwcs); -+ int c = wmemcmp_uint32 ((*eptr)->wcs, runp->wcs, runp->nwcs); - - if (c == 0) - { -@@ -2010,9 +2009,9 @@ - one consecutive entry. */ - if (runp->wcnext != NULL - && runp->nwcs == runp->wcnext->nwcs -- && wmemcmp ((wchar_t *) runp->wcs, -- (wchar_t *)runp->wcnext->wcs, -- runp->nwcs - 1) == 0 -+ && wmemcmp_uint32 (runp->wcs, -+ runp->wcnext->wcs, -+ runp->nwcs - 1) == 0 - && (runp->wcs[runp->nwcs - 1] - == runp->wcnext->wcs[runp->nwcs - 1] + 1)) - { -@@ -2036,9 +2035,9 @@ - runp = runp->wcnext; - while (runp->wcnext != NULL - && runp->nwcs == runp->wcnext->nwcs -- && wmemcmp ((wchar_t *) runp->wcs, -- (wchar_t *)runp->wcnext->wcs, -- runp->nwcs - 1) == 0 -+ && wmemcmp_uint32 (runp->wcs, -+ runp->wcnext->wcs, -+ runp->nwcs - 1) == 0 - && (runp->wcs[runp->nwcs - 1] - == runp->wcnext->wcs[runp->nwcs - 1] + 1)); - -Index: git/locale/programs/ld-ctype.c -=================================================================== ---- git.orig/locale/programs/ld-ctype.c 2014-08-29 20:00:47.408070587 -0700 -+++ git/locale/programs/ld-ctype.c 2014-08-29 20:01:15.208070587 -0700 -@@ -957,7 +957,7 @@ - allocate_arrays (ctype, charmap, ctype->repertoire); - - default_missing_len = (ctype->default_missing -- ? wcslen ((wchar_t *) ctype->default_missing) -+ ? wcslen_uint32 (ctype->default_missing) - : 0); - - init_locale_data (&file, nelems); -@@ -1968,7 +1968,7 @@ - ignore = 1; - else - /* This value is usable. */ -- obstack_grow (ob, to_wstr, wcslen ((wchar_t *) to_wstr) * 4); -+ obstack_grow (ob, to_wstr, wcslen_uint32 (to_wstr) * 4); - - first = 0; - } -@@ -2516,8 +2516,8 @@ - } - - handle_tok_digit: -- class_bit = _ISwdigit; -- class256_bit = _ISdigit; -+ class_bit = BITw (tok_digit); -+ class256_bit = BIT (tok_digit); - handle_digits = 1; - goto read_charclass; - -@@ -4001,8 +4001,7 @@ - - while (idx < number) - { -- int res = wcscmp ((const wchar_t *) sorted[idx]->from, -- (const wchar_t *) runp->from); -+ int res = wcscmp_uint32 (sorted[idx]->from, runp->from); - if (res == 0) - { - replace = 1; -@@ -4039,11 +4038,11 @@ - for (cnt = 0; cnt < number; ++cnt) - { - struct translit_to_t *srunp; -- from_len += wcslen ((const wchar_t *) sorted[cnt]->from) + 1; -+ from_len += wcslen_uint32 (sorted[cnt]->from) + 1; - srunp = sorted[cnt]->to; - while (srunp != NULL) - { -- to_len += wcslen ((const wchar_t *) srunp->str) + 1; -+ to_len += wcslen_uint32 (srunp->str) + 1; - srunp = srunp->next; - } - /* Plus one for the extra NUL character marking the end of -@@ -4067,18 +4066,18 @@ - ctype->translit_from_idx[cnt] = from_len; - ctype->translit_to_idx[cnt] = to_len; - -- len = wcslen ((const wchar_t *) sorted[cnt]->from) + 1; -- wmemcpy ((wchar_t *) &ctype->translit_from_tbl[from_len], -- (const wchar_t *) sorted[cnt]->from, len); -+ len = wcslen_uint32 (sorted[cnt]->from) + 1; -+ wmemcpy_uint32 (&ctype->translit_from_tbl[from_len], -+ sorted[cnt]->from, len); - from_len += len; - - ctype->translit_to_idx[cnt] = to_len; - srunp = sorted[cnt]->to; - while (srunp != NULL) - { -- len = wcslen ((const wchar_t *) srunp->str) + 1; -- wmemcpy ((wchar_t *) &ctype->translit_to_tbl[to_len], -- (const wchar_t *) srunp->str, len); -+ len = wcslen_uint32 (srunp->str) + 1; -+ wmemcpy_uint32 (&ctype->translit_to_tbl[to_len], -+ srunp->str, len); - to_len += len; - srunp = srunp->next; - } -Index: git/locale/programs/ld-messages.c -=================================================================== ---- git.orig/locale/programs/ld-messages.c 2014-08-29 20:00:47.412070587 -0700 -+++ git/locale/programs/ld-messages.c 2014-08-29 20:01:15.208070587 -0700 -@@ -25,6 +25,7 @@ - #include <string.h> - #include <stdint.h> - #include <sys/uio.h> -+#include <gnu/option-groups.h> - - #include <assert.h> - -@@ -124,6 +125,7 @@ - } - else - { -+#if __OPTION_POSIX_REGEXP - int result; - regex_t re; - -@@ -140,6 +142,7 @@ - } - else if (result != 0) - regfree (&re); -+#endif - } - - if (messages->noexpr == NULL) -@@ -158,6 +161,7 @@ - } - else - { -+#if __OPTION_POSIX_REGEXP - int result; - regex_t re; - -@@ -174,6 +178,7 @@ - } - else if (result != 0) - regfree (&re); -+#endif - } - } - -Index: git/locale/programs/ld-time.c -=================================================================== ---- git.orig/locale/programs/ld-time.c 2014-08-29 20:00:47.412070587 -0700 -+++ git/locale/programs/ld-time.c 2014-08-29 20:01:15.208070587 -0700 -@@ -215,8 +215,10 @@ - } - else - { -+ static const uint32_t wt_fmt_ampm[] -+ = { '%','I',':','%','M',':','%','S',' ','%','p',0 }; - time->t_fmt_ampm = "%I:%M:%S %p"; -- time->wt_fmt_ampm = (const uint32_t *) L"%I:%M:%S %p"; -+ time->wt_fmt_ampm = wt_fmt_ampm; - } - } - -@@ -226,7 +228,7 @@ - const int days_per_month[12] = { 31, 29, 31, 30, 31, 30, - 31, 31, 30, 31 ,30, 31 }; - size_t idx; -- wchar_t *wstr; -+ uint32_t *wstr; - - time->era_entries = - (struct era_data *) xmalloc (time->num_era -@@ -464,18 +466,18 @@ - } - - /* Now generate the wide character name and format. */ -- wstr = wcschr ((wchar_t *) time->wera[idx], L':');/* end direction */ -- wstr = wstr ? wcschr (wstr + 1, L':') : NULL; /* end offset */ -- wstr = wstr ? wcschr (wstr + 1, L':') : NULL; /* end start */ -- wstr = wstr ? wcschr (wstr + 1, L':') : NULL; /* end end */ -+ wstr = wcschr_uint32 (time->wera[idx], L':'); /* end direction */ -+ wstr = wstr ? wcschr_uint32 (wstr + 1, L':') : NULL; /* end offset */ -+ wstr = wstr ? wcschr_uint32 (wstr + 1, L':') : NULL; /* end start */ -+ wstr = wstr ? wcschr_uint32 (wstr + 1, L':') : NULL; /* end end */ - if (wstr != NULL) - { -- time->era_entries[idx].wname = (uint32_t *) wstr + 1; -- wstr = wcschr (wstr + 1, L':'); /* end name */ -+ time->era_entries[idx].wname = wstr + 1; -+ wstr = wcschr_uint32 (wstr + 1, L':'); /* end name */ - if (wstr != NULL) - { - *wstr = L'\0'; -- time->era_entries[idx].wformat = (uint32_t *) wstr + 1; -+ time->era_entries[idx].wformat = wstr + 1; - } - else - time->era_entries[idx].wname = -@@ -530,7 +532,16 @@ - if (time->date_fmt == NULL) - time->date_fmt = "%a %b %e %H:%M:%S %Z %Y"; - if (time->wdate_fmt == NULL) -- time->wdate_fmt = (const uint32_t *) L"%a %b %e %H:%M:%S %Z %Y"; -+ { -+ static const uint32_t wdate_fmt[] = -+ { '%','a',' ', -+ '%','b',' ', -+ '%','e',' ', -+ '%','H',':','%','M',':','%','S',' ', -+ '%','Z',' ', -+ '%','Y',0 }; -+ time->wdate_fmt = wdate_fmt; -+ } - } - - -Index: git/locale/programs/linereader.c -=================================================================== ---- git.orig/locale/programs/linereader.c 2014-08-29 20:00:47.412070587 -0700 -+++ git/locale/programs/linereader.c 2014-08-29 20:01:15.208070587 -0700 -@@ -595,7 +595,7 @@ - { - int return_widestr = lr->return_widestr; - char *buf; -- wchar_t *buf2 = NULL; -+ uint32_t *buf2 = NULL; - size_t bufact; - size_t bufmax = 56; - -Index: git/locale/programs/localedef.c -=================================================================== ---- git.orig/locale/programs/localedef.c 2014-08-29 20:00:47.416070587 -0700 -+++ git/locale/programs/localedef.c 2014-08-29 20:01:15.208070587 -0700 -@@ -114,6 +114,7 @@ - #define OPT_LIST_ARCHIVE 309 - #define OPT_LITTLE_ENDIAN 400 - #define OPT_BIG_ENDIAN 401 -+#define OPT_UINT32_ALIGN 402 - - /* Definitions of arguments for argp functions. */ - static const struct argp_option options[] = -@@ -150,6 +151,8 @@ - N_("Generate little-endian output") }, - { "big-endian", OPT_BIG_ENDIAN, NULL, 0, - N_("Generate big-endian output") }, -+ { "uint32-align", OPT_UINT32_ALIGN, "ALIGNMENT", 0, -+ N_("Set the target's uint32_t alignment in bytes (default 4)") }, - { NULL, 0, NULL, 0, NULL } - }; - -@@ -239,12 +242,14 @@ - ctype locale. (P1003.2 4.35.5.2) */ - setlocale (LC_CTYPE, "POSIX"); - -+#ifndef NO_SYSCONF - /* Look whether the system really allows locale definitions. POSIX - defines error code 3 for this situation so I think it must be - a fatal error (see P1003.2 4.35.8). */ - if (sysconf (_SC_2_LOCALEDEF) < 0) - WITH_CUR_LOCALE (error (3, 0, _("\ - FATAL: system does not define `_POSIX2_LOCALEDEF'"))); -+#endif - - /* Process charmap file. */ - charmap = charmap_read (charmap_file, verbose, 1, be_quiet, 1); -@@ -338,6 +343,9 @@ - case OPT_BIG_ENDIAN: - set_big_endian (true); - break; -+ case OPT_UINT32_ALIGN: -+ uint32_align_mask = strtol (arg, NULL, 0) - 1; -+ break; - case 'c': - force_output = 1; - break; -Index: git/locale/programs/locfile.c -=================================================================== ---- git.orig/locale/programs/locfile.c 2014-08-29 20:00:47.432070587 -0700 -+++ git/locale/programs/locfile.c 2014-08-29 20:01:15.208070587 -0700 -@@ -544,6 +544,9 @@ - machine running localedef. */ - bool swap_endianness_p; - -+/* The target's value of __align__(uint32_t) - 1. */ -+unsigned int uint32_align_mask = 3; -+ - /* When called outside a start_locale_structure/end_locale_structure - or start_locale_prelude/end_locale_prelude block, record that the - next byte in FILE's obstack will be the first byte of a new element. -@@ -621,7 +624,7 @@ - void - add_locale_wstring (struct locale_file *file, const uint32_t *string) - { -- add_locale_uint32_array (file, string, wcslen ((const wchar_t *) string) + 1); -+ add_locale_uint32_array (file, string, wcslen_uint32 (string) + 1); - } - - /* Record that FILE's next element is the 32-bit integer VALUE. */ -Index: git/locale/programs/locfile.h -=================================================================== ---- git.orig/locale/programs/locfile.h 2014-08-29 20:00:47.432070587 -0700 -+++ git/locale/programs/locfile.h 2014-08-29 20:01:15.208070587 -0700 -@@ -71,6 +71,8 @@ - - extern bool swap_endianness_p; - -+extern unsigned int uint32_align_mask; -+ - /* Change the output to be big-endian if BIG_ENDIAN is true and - little-endian otherwise. */ - static inline void -@@ -275,4 +277,49 @@ - const struct charmap_t *charmap, - const char *output_path); - -+static inline size_t -+wcslen_uint32 (const uint32_t *str) -+{ -+ size_t len = 0; -+ while (str[len] != 0) -+ len++; -+ return len; -+} -+ -+static inline int -+wmemcmp_uint32 (const uint32_t *s1, const uint32_t *s2, size_t n) -+{ -+ while (n-- != 0) -+ { -+ int diff = *s1++ - *s2++; -+ if (diff != 0) -+ return diff; -+ } -+ return 0; -+} -+ -+static inline int -+wcscmp_uint32 (const uint32_t *s1, const uint32_t *s2) -+{ -+ while (*s1 != 0 && *s1 == *s2) -+ s1++, s2++; -+ return *s1 - *s2; -+} -+ -+static inline uint32_t * -+wmemcpy_uint32 (uint32_t *s1, const uint32_t *s2, size_t n) -+{ -+ return memcpy (s1, s2, n * sizeof (uint32_t)); -+} -+ -+static inline uint32_t * -+wcschr_uint32 (const uint32_t *s, uint32_t ch) -+{ -+ do -+ if (*s == ch) -+ return (uint32_t *) s; -+ while (*s++ != 0); -+ return 0; -+} -+ - #endif /* locfile.h */ -Index: git/locale/setlocale.c -=================================================================== ---- git.orig/locale/setlocale.c 2014-08-29 20:00:47.432070587 -0700 -+++ git/locale/setlocale.c 2014-08-29 20:01:15.208070587 -0700 -@@ -64,36 +64,6 @@ - #endif - - --/* Define an array of category names (also the environment variable names). */ --const union catnamestr_t _nl_category_names attribute_hidden = -- { -- { --#define DEFINE_CATEGORY(category, category_name, items, a) \ -- category_name, --#include "categories.def" --#undef DEFINE_CATEGORY -- } -- }; -- --const uint8_t _nl_category_name_idxs[__LC_LAST] attribute_hidden = -- { --#define DEFINE_CATEGORY(category, category_name, items, a) \ -- [category] = offsetof (union catnamestr_t, CATNAMEMF (__LINE__)), --#include "categories.def" --#undef DEFINE_CATEGORY -- }; -- --/* An array of their lengths, for convenience. */ --const uint8_t _nl_category_name_sizes[] attribute_hidden = -- { --#define DEFINE_CATEGORY(category, category_name, items, a) \ -- [category] = sizeof (category_name) - 1, --#include "categories.def" --#undef DEFINE_CATEGORY -- [LC_ALL] = sizeof ("LC_ALL") - 1 -- }; -- -- - #ifdef NL_CURRENT_INDIRECT - # define WEAK_POSTLOAD(postload) weak_extern (postload) - #else -Index: git/locale/xlocale.c -=================================================================== ---- git.orig/locale/xlocale.c 2014-08-29 20:00:47.436070587 -0700 -+++ git/locale/xlocale.c 2014-08-29 20:01:15.208070587 -0700 -@@ -18,6 +18,7 @@ - <http://www.gnu.org/licenses/>. */ - - #include <locale.h> -+#include <gnu/option-groups.h> - #include "localeinfo.h" - - #define DEFINE_CATEGORY(category, category_name, items, a) \ -@@ -25,6 +26,19 @@ - #include "categories.def" - #undef DEFINE_CATEGORY - -+/* If the locale support code isn't enabled, don't generate strong -+ reference to the C locale_data structures here; let the Makefile -+ decide which ones to include. (In the static linking case, the -+ strong reference to the 'class', 'toupper', and 'tolower' tables -+ will cause C-ctype.o to be brought in, as it should be, even when -+ the reference to _nl_C_LC_CTYPE will be weak.) */ -+#if ! __OPTION_EGLIBC_LOCALE_CODE -+# define DEFINE_CATEGORY(category, category_name, items, a) \ -+ weak_extern (_nl_C_##category) -+# include "categories.def" -+# undef DEFINE_CATEGORY -+#endif -+ - /* Defined in locale/C-ctype.c. */ - extern const char _nl_C_LC_CTYPE_class[] attribute_hidden; - extern const char _nl_C_LC_CTYPE_toupper[] attribute_hidden; -@@ -52,3 +66,26 @@ - .__ctype_tolower = (const int *) _nl_C_LC_CTYPE_tolower + 128, - .__ctype_toupper = (const int *) _nl_C_LC_CTYPE_toupper + 128 - }; -+ -+ -+#if ! __OPTION_EGLIBC_LOCALE_CODE -+/* When locale code is enabled, these are each defined in the -+ appropriate lc-CATEGORY.c file, so that static links (when __thread -+ is supported) bring in only those lc-CATEGORY.o files for -+ categories the program actually uses; look for NL_CURRENT_INDIRECT -+ in localeinfo.h. -+ -+ When locale code is disabled, the _nl_C_CATEGORY objects are the -+ only possible referents. At the moment, there isn't a way to get -+ __OPTION_EGLIBC_LOCALE_CODE defined in every compilation unit that -+ #includes localeinfo.h, so we can't just turn off -+ NL_CURRENT_INDIRECT. So we'll define the _nl_current_CATEGORY -+ pointers here. */ -+#if defined (NL_CURRENT_INDIRECT) -+#define DEFINE_CATEGORY(category, category_name, items, a) \ -+ __thread struct __locale_data * const *_nl_current_##category \ -+ attribute_hidden = &_nl_C_locobj.__locales[category]; -+#include "categories.def" -+#undef DEFINE_CATEGORY -+#endif -+#endif /* __OPTION_EGLIBC_LOCALE_CODE */ -Index: git/localedata/Makefile -=================================================================== ---- git.orig/localedata/Makefile 2014-08-29 20:00:47.444070587 -0700 -+++ git/localedata/Makefile 2014-08-29 20:01:15.212070587 -0700 -@@ -21,12 +21,22 @@ - - include ../Makeconfig - --# List with all available character set descriptions. --charmaps := $(wildcard charmaps/[A-I]*) $(wildcard charmaps/[J-Z]*) -+include ../option-groups.mak - - # List with all available character set descriptions. --locales := $(wildcard locales/*) -+all-charmaps := $(wildcard charmaps/[A-I]*) $(wildcard charmaps/[J-Z]*) -+ -+all-locales := $(wildcard locales/*) - -+# If the EGLIBC_LOCALES option group is not enabled, trim the -+# list of charmap and locale source files. -+ifeq ($(OPTION_EGLIBC_LOCALES),y) -+charmaps := $(all-charmaps) -+locales := $(all-locales) -+else -+charmaps := -+locales := locales/POSIX -+endif - - subdir-dirs = tests-mbwc - vpath %.c tests-mbwc -@@ -71,14 +81,20 @@ - tst_wcsxfrm tst_wctob tst_wctomb tst_wctrans \ - tst_wctype tst_wcwidth - --tests = $(locale_test_suite) tst-digits tst-setlocale bug-iconv-trans \ -+# Since these tests build their own locale files, they're not -+# dependent on the OPTION_EGLIBC_LOCALES option group. But they do -+# need the locale functions to be present. -+tests-$(OPTION_EGLIBC_LOCALE_CODE) \ -+ += $(locale_test_suite) tst-digits tst-setlocale bug-iconv-trans \ - tst-leaks tst-mbswcs1 tst-mbswcs2 tst-mbswcs3 tst-mbswcs4 tst-mbswcs5 \ - tst-mbswcs6 tst-xlocale1 tst-xlocale2 bug-usesetlocale \ - tst-strfmon1 tst-sscanf bug-setlocale1 tst-setlocale2 tst-setlocale3 \ - tst-wctype -+ifeq (y,$(OPTION_EGLIBC_LOCALE_CODE)) - tests-static = bug-setlocale1-static - tests += $(tests-static) --ifeq (yes,$(build-shared)) -+endif -+ifeq (yesy,$(build-shared)$(OPTION_EGLIBC_LOCALE_CODE)) - ifneq (no,$(PERL)) - tests-special += $(objpfx)mtrace-tst-leaks.out - endif -@@ -92,12 +108,14 @@ - - tests: $(objdir)/iconvdata/gconv-modules - -+ifeq (y,$(OPTION_EGLIBC_LOCALE_CODE)) - tests-special += $(objpfx)sort-test.out $(objpfx)tst-fmon.out \ - $(objpfx)tst-locale.out $(objpfx)tst-rpmatch.out \ - $(objpfx)tst-trans.out $(objpfx)tst-ctype.out \ - $(objpfx)tst-langinfo.out $(objpfx)tst-langinfo-static.out \ - $(objpfx)tst-numeric.out - tests-static += tst-langinfo-static -+endif - - ifeq ($(run-built-tests),yes) - # We have to generate locales -@@ -143,9 +161,13 @@ - $(addprefix $(objpfx),$(CTYPE_FILES)): %: \ - gen-locale.sh $(common-objpfx)locale/localedef Makefile \ - $(addprefix charmaps/,$(CHARMAPS)) $(addprefix locales/,$(LOCALE_SRCS)) -- @$(SHELL) gen-locale.sh $(common-objpfx) \ -- '$(built-program-cmd-before-env)' '$(run-program-env)' \ -- '$(built-program-cmd-after-env)' $@; \ -+ @$(SHELL) gen-locale.sh $(common-objpfx) \ -+ '$(if $(cross-localedef), \ -+ $(cross-localedef), \ -+ $(built-program-cmd-before-env) \ -+ $(run-program-env) \ -+ $(built-program-cmd-after-env))' \ -+ $@; \ - $(evaluate-test) - - $(addsuffix .out,$(addprefix $(objpfx),$(tests))): %: \ -@@ -213,6 +235,11 @@ - - include SUPPORTED - -+# Only install locale data if OPTION_EGLIBC_LOCALES is selected. -+ifneq ($(OPTION_EGLIBC_LOCALES),y) -+SUPPORTED-LOCALES := -+endif -+ - INSTALL-SUPPORTED-LOCALES=$(addprefix install-, $(SUPPORTED-LOCALES)) - - # Sometimes the whole collection of locale files should be installed. -Index: git/login/Makefile -=================================================================== ---- git.orig/login/Makefile 2014-08-29 20:00:47.736070587 -0700 -+++ git/login/Makefile 2014-08-29 20:01:15.212070587 -0700 -@@ -18,6 +18,7 @@ - # - # Sub-makefile for login portion of the library. - # -+include ../option-groups.mak - - subdir := login - -@@ -25,14 +26,16 @@ - - headers := utmp.h bits/utmp.h lastlog.h pty.h - --routines := getlogin getlogin_r setlogin getlogin_r_chk \ -- getutent getutent_r getutid getutline getutid_r getutline_r \ -- utmp_file utmpname updwtmp getpt grantpt unlockpt ptsname \ -- ptsname_r_chk -+routines := getpt grantpt unlockpt ptsname ptsname_r_chk -+routines-$(OPTION_EGLIBC_UTMP) \ -+ += getutent getutent_r getutid getutline getutid_r getutline_r \ -+ utmp_file utmpname updwtmp -+routines-$(OPTION_EGLIBC_GETLOGIN) += getlogin getlogin_r getlogin_r_chk -+routines-$(OPTION_EGLIBC_BSD) += setlogin - - CFLAGS-grantpt.c = -DLIBEXECDIR='"$(libexecdir)"' - --others = utmpdump -+others-$(OPTION_EGLIBC_UTMP) += utmpdump - - ifeq (yes,$(build-pt-chown)) - others += pt_chown -@@ -46,8 +49,8 @@ - tests := tst-utmp tst-utmpx tst-grantpt tst-ptsname - - # Build the -lutil library with these extra functions. --extra-libs := libutil --extra-libs-others := $(extra-libs) -+extra-libs-$(OPTION_EGLIBC_UTMP) := libutil -+extra-libs-others := $(extra-libs-y) - - libutil-routines:= login login_tty logout logwtmp openpty forkpty - -Index: git/Makeconfig -=================================================================== ---- git.orig/Makeconfig 2014-08-29 20:00:42.956070587 -0700 -+++ git/Makeconfig 2014-08-29 20:01:15.212070587 -0700 -@@ -582,7 +582,7 @@ - # and run on the build system, causes that program with those - # arguments to be run on the host for which the library is built. - ifndef test-wrapper --test-wrapper = -+test-wrapper = $(cross-test-wrapper) - endif - # Likewise, but the name of the program is preceded by - # <variable>=<value> assignments for environment variables. -@@ -1057,6 +1057,24 @@ - libm = $(common-objpfx)math/libm.a - endif - -+# Generate a header file that #defines preprocessor symbols indicating -+# which option groups are enabled. Note that the option-groups.config file -+# may not exist at all. -+before-compile += $(common-objpfx)gnu/option-groups.h -+common-generated += gnu/option-groups.h gnu/option-groups.stmp -+headers += gnu/option-groups.h -+$(common-objpfx)gnu/option-groups.h: $(common-objpfx)gnu/option-groups.stmp; @: -+$(common-objpfx)gnu/option-groups.stmp: \ -+ $(..)scripts/option-groups.awk \ -+ $(..)option-groups.defaults \ -+ $(wildcard $(common-objpfx)option-groups.config) -+ $(make-target-directory) -+ @rm -f ${@:stmp=T} $@ -+ LC_ALL=C $(AWK) -f $^ > ${@:stmp=T} -+ $(move-if-change) ${@:stmp=T} ${@:stmp=h} -+ touch $@ -+ -+ - # These are the subdirectories containing the library source. The order - # is more or less arbitrary. The sorting step will take care of the - # dependencies. -Index: git/Makerules -=================================================================== ---- git.orig/Makerules 2014-08-29 20:00:42.960070587 -0700 -+++ git/Makerules 2014-08-29 20:01:15.212070587 -0700 -@@ -379,6 +379,25 @@ - endef - endif - -+# Include targets in the selected option groups. -+aux += $(aux-y) -+extra-libs += $(extra-libs-y) -+extra-libs-others += $(extra-libs-others-y) -+extra-objs += $(extra-objs-y) -+install-bin += $(install-bin-y) -+install-others += $(install-others-y) -+install-sbin += $(install-sbin-y) -+modules += $(modules-y) -+others += $(others-y) -+others-pie += $(others-pie-y) -+routines += $(routines-y) -+static-only-routines += $(static-only-routines-y) -+sysdep_routines += $(sysdep_routines-y) -+test-srcs += $(test-srcs-y) -+tests += $(tests-y) -+xtests += $(xtests-y) -+ -+ - # Modify the list of routines we build for different targets - - ifeq (yes,$(build-shared)) -Index: git/malloc/Makefile -=================================================================== ---- git.orig/malloc/Makefile 2014-08-29 20:00:47.760070587 -0700 -+++ git/malloc/Makefile 2014-08-29 20:01:15.212070587 -0700 -@@ -18,6 +18,8 @@ - # - # Makefile for malloc routines - # -+include ../option-groups.mak -+ - subdir := malloc - - include ../Makeconfig -@@ -36,9 +38,15 @@ - non-lib.a := libmcheck.a - - # Additional library. -+ifeq ($(OPTION_EGLIBC_MEMUSAGE),y) - extra-libs = libmemusage - extra-libs-others = $(extra-libs) - -+ifdef OPTION_EGLIBC_MEMUSAGE_DEFAULT_BUFFER_SIZE -+CPPFLAGS-memusage += -D__OPTION_EGLIBC_MEMUSAGE_DEFAULT_BUFFER_SIZE=$(OPTION_EGLIBC_MEMUSAGE_DEFAULT_BUFFER_SIZE) -+endif -+endif -+ - libmemusage-routines = memusage - libmemusage-inhibit-o = $(filter-out .os,$(object-suffixes)) - -@@ -67,7 +75,7 @@ - # Unless we get a test for the availability of libgd which also works - # for cross-compiling we disable the memusagestat generation in this - # situation. --ifneq ($(cross-compiling),yes) -+ifeq ($(cross-compiling)$(OPTION_EGLIBC_MEMUSAGE),noy) - # If the gd library is available we build the `memusagestat' program. - ifneq ($(LIBGD),no) - others: $(objpfx)memusage -Index: git/malloc/memusage.c -=================================================================== ---- git.orig/malloc/memusage.c 2014-08-29 20:00:47.768070587 -0700 -+++ git/malloc/memusage.c 2014-08-29 20:01:15.212070587 -0700 -@@ -33,6 +33,7 @@ - #include <stdint.h> - #include <sys/mman.h> - #include <sys/time.h> -+#include <gnu/option-groups.h> - - #include <memusage.h> - -@@ -93,7 +94,11 @@ - #define peak_stack peak_use[1] - #define peak_total peak_use[2] - --#define DEFAULT_BUFFER_SIZE 32768 -+#ifndef __OPTION_EGLIBC_MEMUSAGE_DEFAULT_BUFFER_SIZE -+# define DEFAULT_BUFFER_SIZE 32768 -+#else -+# define DEFAULT_BUFFER_SIZE __OPTION_EGLIBC_MEMUSAGE_DEFAULT_BUFFER_SIZE -+#endif - static size_t buffer_size; - - static int fd = -1; -Index: git/malloc/memusage.sh -=================================================================== ---- git.orig/malloc/memusage.sh 2014-08-29 20:00:47.768070587 -0700 -+++ git/malloc/memusage.sh 2014-08-29 20:01:15.212070587 -0700 -@@ -35,7 +35,7 @@ - - # Print help message - do_help() { -- echo $"Usage: memusage [OPTION]... PROGRAM [PROGRAMOPTION]... -+ printf $"Usage: memusage [OPTION]... PROGRAM [PROGRAMOPTION]... - Profile memory usage of PROGRAM. - - -n,--progname=NAME Name of the program file to profile -Index: git/math/Makefile -=================================================================== ---- git.orig/math/Makefile 2014-08-29 20:00:47.836070587 -0700 -+++ git/math/Makefile 2014-08-29 20:01:15.212070587 -0700 -@@ -21,6 +21,8 @@ - - include ../Makeconfig - -+include ../option-groups.mak -+ - # Installed header files. - headers := math.h bits/mathcalls.h bits/mathinline.h bits/huge_val.h \ - bits/huge_valf.h bits/huge_vall.h bits/inf.h bits/nan.h \ -@@ -33,8 +35,8 @@ - - # Build the -lm library. - --extra-libs := libm --extra-libs-others = $(extra-libs) -+extra-libs-$(OPTION_EGLIBC_LIBM) := libm -+extra-libs-others-$(OPTION_EGLIBC_LIBM) = $(extra-libs-$(OPTION_EGLIBC_LIBM)) - - libm-support = k_standard s_lib_version s_matherr s_signgam \ - fclrexcpt fgetexcptflg fraiseexcpt fsetexcptflg \ -Index: git/misc/err.c -=================================================================== ---- git.orig/misc/err.c 2014-08-29 20:00:48.232070587 -0700 -+++ git/misc/err.c 2014-08-29 20:01:15.212070587 -0700 -@@ -22,6 +22,7 @@ - #include <errno.h> - #include <string.h> - #include <stdio.h> -+#include <gnu/option-groups.h> - - #include <wchar.h> - #define flockfile(s) _IO_flockfile (s) -@@ -37,6 +38,7 @@ - va_end (ap); \ - } - -+#if __OPTION_POSIX_WIDE_CHAR_DEVICE_IO - static void - convert_and_print (const char *format, __gnuc_va_list ap) - { -@@ -81,6 +83,7 @@ - - __vfwprintf (stderr, wformat, ap); - } -+#endif - - void - vwarnx (const char *format, __gnuc_va_list ap) -@@ -88,9 +91,13 @@ - flockfile (stderr); - if (_IO_fwide (stderr, 0) > 0) - { -+#if __OPTION_POSIX_WIDE_CHAR_DEVICE_IO - __fwprintf (stderr, L"%s: ", __progname); - convert_and_print (format, ap); - putwc_unlocked (L'\n', stderr); -+#else -+ abort (); -+#endif - } - else - { -@@ -111,6 +118,7 @@ - flockfile (stderr); - if (_IO_fwide (stderr, 0) > 0) - { -+#if __OPTION_POSIX_WIDE_CHAR_DEVICE_IO - __fwprintf (stderr, L"%s: ", __progname); - if (format) - { -@@ -119,6 +127,9 @@ - } - __set_errno (error); - __fwprintf (stderr, L"%m\n"); -+#else -+ abort (); -+#endif - } - else - { -Index: git/misc/error.c -=================================================================== ---- git.orig/misc/error.c 2014-08-29 20:00:48.232070587 -0700 -+++ git/misc/error.c 2014-08-29 20:01:15.212070587 -0700 -@@ -35,6 +35,7 @@ - #endif - - #ifdef _LIBC -+# include <gnu/option-groups.h> - # include <libintl.h> - # include <stdbool.h> - # include <stdint.h> -@@ -205,6 +206,7 @@ - #if _LIBC - if (_IO_fwide (stderr, 0) > 0) - { -+#if __OPTION_POSIX_WIDE_CHAR_DEVICE_IO - size_t len = strlen (message) + 1; - wchar_t *wmessage = NULL; - mbstate_t st; -@@ -265,6 +267,9 @@ - - if (use_malloc) - free (wmessage); -+#else -+ abort (); -+#endif - } - else - #endif -Index: git/misc/Makefile -=================================================================== ---- git.orig/misc/Makefile 2014-08-29 20:00:48.232070587 -0700 -+++ git/misc/Makefile 2014-08-29 20:01:15.212070587 -0700 -@@ -19,6 +19,10 @@ - # Sub-makefile for misc portion of the library. - # - -+# Some system-dependent implementations of these functions use option -+# groups (see sysdeps/unix/sysv/linux/Makefile, for example). -+include ../option-groups.mak -+ - subdir := misc - - include ../Makeconfig -@@ -46,40 +50,47 @@ - select pselect \ - acct chroot fsync sync fdatasync syncfs reboot \ - gethostid sethostid \ -- revoke vhangup \ -+ vhangup \ - swapon swapoff mktemp mkstemp mkstemp64 mkdtemp \ - mkostemp mkostemp64 mkstemps mkstemps64 mkostemps mkostemps64 \ - ualarm usleep \ - gtty stty \ - ptrace \ -- fstab mntent mntent_r \ -+ mntent mntent_r \ - utimes lutimes futimes futimesat \ - truncate ftruncate truncate64 ftruncate64 \ -- chflags fchflags \ - insremque getttyent getusershell getpass ttyslot \ - syslog syscall daemon \ - mmap mmap64 munmap mprotect msync madvise mincore remap_file_pages\ - mlock munlock mlockall munlockall \ -- efgcvt efgcvt_r qefgcvt qefgcvt_r \ - hsearch hsearch_r tsearch lsearch \ - err error ustat \ -- getsysstats dirname regexp \ -+ getsysstats dirname \ - getloadavg getclktck \ - fgetxattr flistxattr fremovexattr fsetxattr getxattr \ - listxattr lgetxattr llistxattr lremovexattr lsetxattr \ - removexattr setxattr getauxval ifunc-impl-list - -+routines-$(OPTION_POSIX_REGEXP) += regexp -+routines-$(OPTION_EGLIBC_FSTAB) += fstab -+routines-$(OPTION_EGLIBC_BSD) += chflags fchflags revoke -+routines-$(OPTION_EGLIBC_FCVT) += efgcvt efgcvt_r qefgcvt qefgcvt_r -+ - generated += tst-error1.mtrace tst-error1-mem.out - - aux := init-misc - install-lib := libg.a - gpl2lgpl := error.c error.h - --tests := tst-dirname tst-tsearch tst-fdset tst-efgcvt tst-mntent tst-hsearch \ -- tst-error1 tst-pselect tst-insremque tst-mntent2 bug-hsearch1 -+tests := tst-dirname tst-tsearch tst-fdset tst-mntent tst-hsearch \ -+ tst-pselect tst-insremque tst-mntent2 bug-hsearch1 -+tests-$(OPTION_POSIX_WIDE_CHAR_DEVICE_IO) += tst-error1 -+tests-$(OPTION_EGLIBC_FCVT) += tst-efgcvt - ifeq ($(run-built-tests),yes) -+ifeq (y,$(OPTION_POSIX_WIDE_CHAR_DEVICE_IO)) - tests-special += $(objpfx)tst-error1-mem.out - endif -+endif - - CFLAGS-select.c = -fexceptions -fasynchronous-unwind-tables - CFLAGS-tsearch.c = $(uses-callbacks) -Index: git/misc/sys/xattr.h -=================================================================== ---- git.orig/misc/sys/xattr.h 2014-08-29 20:00:52.644070587 -0700 -+++ git/misc/sys/xattr.h 2014-08-29 20:01:15.216070587 -0700 -@@ -26,7 +26,6 @@ - - /* The following constants should be used for the fifth parameter of - `*setxattr'. */ --#ifndef __USE_KERNEL_XATTR_DEFS - enum - { - XATTR_CREATE = 1, /* set value, fail if attr already exists. */ -@@ -34,7 +33,6 @@ - XATTR_REPLACE = 2 /* set value, fail if attr does not exist. */ - #define XATTR_REPLACE XATTR_REPLACE - }; --#endif - - /* Set the attribute NAME of the file pointed to by PATH to VALUE (which - is SIZE bytes long). Return 0 on success, -1 for errors. */ -Index: git/misc/tst-efgcvt.c -=================================================================== ---- git.orig/misc/tst-efgcvt.c 2014-08-29 20:00:52.652070587 -0700 -+++ git/misc/tst-efgcvt.c 2014-08-29 20:01:15.216070587 -0700 -@@ -59,7 +59,7 @@ - { 123.01, -4, 3, "" }, - { 126.71, -4, 3, "" }, - { 0.0, 4, 1, "0000" }, --#if DBL_MANT_DIG == 53 -+#if DBL_MANT_DIG == 53 && !(defined __powerpc__ && defined __NO_FPRS__ && !defined _SOFT_FLOAT && !defined _SOFT_DOUBLE) - { 0x1p-1074, 3, -323, "494" }, - { -0x1p-1074, 3, -323, "494" }, - #endif -Index: git/nis/Makefile -=================================================================== ---- git.orig/nis/Makefile 2014-08-29 20:00:52.660070587 -0700 -+++ git/nis/Makefile 2014-08-29 20:01:15.216070587 -0700 -@@ -18,6 +18,8 @@ - # - # Makefile for NIS/NIS+ part. - # -+include ../option-groups.mak -+ - subdir := nis - - include ../Makeconfig -@@ -30,19 +32,26 @@ - - # These are the databases available for the nis (and perhaps later nisplus) - # service. This must be a superset of the services in nss. --databases = proto service hosts network grp pwd rpc ethers \ -- spwd netgrp alias publickey -+databases-y := proto service hosts network grp pwd rpc ethers \ -+ spwd netgrp publickey -+databases-$(OPTION_EGLIBC_DB_ALIASES) += alias - - # Specify rules for the nss_* modules. --services := nis nisplus compat -+# The 'compat' module includes nis support, and the 'nss' directory -+# includes a bare-bones "files" library, so we'll include 'compat' in -+# OPTION_EGLIBC_NIS. -+services-y := -+services-$(OPTION_EGLIBC_NIS) += nis nisplus compat -+ -+extra-libs-$(OPTION_EGLIBC_NIS) += libnsl -+extra-libs-y += $(services-y:%=libnss_%) - --extra-libs = libnsl $(services:%=libnss_%) - # These libraries will be built in the `others' pass rather than - # the `lib' pass, because they depend on libc.so being built already. --extra-libs-others = $(extra-libs) -+extra-libs-others-y += $(extra-libs-y) - - # The sources are found in the appropriate subdir. --subdir-dirs = $(services:%=nss_%) -+subdir-dirs = $(services-y:%=nss_%) - vpath %.c $(subdir-dirs) - - libnsl-routines = yp_xdr ypclnt ypupdate_xdr \ -@@ -60,11 +69,11 @@ - libnss_compat-routines := $(addprefix compat-,grp pwd spwd initgroups) - libnss_compat-inhibit-o = $(filter-out .os,$(object-suffixes)) - --libnss_nis-routines := $(addprefix nis-,$(databases)) nis-initgroups \ -+libnss_nis-routines := $(addprefix nis-,$(databases-y)) nis-initgroups \ - nss-nis - libnss_nis-inhibit-o = $(filter-out .os,$(object-suffixes)) - --libnss_nisplus-routines := $(addprefix nisplus-,$(databases)) nisplus-parser \ -+libnss_nisplus-routines := $(addprefix nisplus-,$(databases-y)) nisplus-parser \ - nss-nisplus nisplus-initgroups - libnss_nisplus-inhibit-o = $(filter-out .os,$(object-suffixes)) - -@@ -80,12 +89,12 @@ - # Target-specific variable setting to link objects using deprecated - # RPC interfaces with the version of libc.so that makes them available - # for new links: --$(services:%=$(objpfx)libnss_%.so) $(objpfx)libnsl.so: \ -+$(services-y:%=$(objpfx)libnss_%.so) $(objpfx)libnsl.so: \ - libc-for-link = $(libnsl-libc) - - - ifeq ($(build-shared),yes) --$(others:%=$(objpfx)%): $(objpfx)libnsl.so$(libnsl.so-version) -+$(others-y:%=$(objpfx)%): $(objpfx)libnsl.so$(libnsl.so-version) - else --$(others:%=$(objpfx)%): $(objpfx)libnsl.a -+$(others-y:%=$(objpfx)%): $(objpfx)libnsl.a - endif -Index: git/nptl/Makefile -=================================================================== ---- git.orig/nptl/Makefile 2014-08-29 20:00:52.704070587 -0700 -+++ git/nptl/Makefile 2014-08-29 20:01:15.216070587 -0700 -@@ -18,6 +18,8 @@ - # - # Sub-makefile for NPTL portion of the library. - # -+include ../option-groups.mak -+ - subdir := nptl - - include ../Makeconfig -@@ -116,7 +118,7 @@ - pt-raise pt-system \ - flockfile ftrylockfile funlockfile \ - sigaction \ -- herrno res pt-allocrtsig \ -+ pt-allocrtsig \ - pthread_kill_other_threads \ - pthread_getaffinity pthread_setaffinity \ - pthread_attr_getaffinity pthread_attr_setaffinity \ -@@ -136,6 +138,8 @@ - # pthread_setgid pthread_setegid pthread_setregid \ - # pthread_setresgid - -+libpthread-routines-$(OPTION_EGLIBC_INET) := herrno res -+ - libpthread-shared-only-routines = version pt-allocrtsig unwind-forcedunwind - libpthread-static-only-routines = pthread_atfork - -@@ -210,7 +214,7 @@ - tst-mutexpi1 tst-mutexpi2 tst-mutexpi3 tst-mutexpi4 tst-mutexpi5 \ - tst-mutexpi5a tst-mutexpi6 tst-mutexpi7 tst-mutexpi7a tst-mutexpi8 \ - tst-mutexpi9 \ -- tst-spin1 tst-spin2 tst-spin3 tst-spin4 \ -+ tst-spin1 tst-spin2 tst-spin3 \ - tst-cond1 tst-cond2 tst-cond3 tst-cond4 tst-cond5 tst-cond6 tst-cond7 \ - tst-cond8 tst-cond9 tst-cond10 tst-cond11 tst-cond12 tst-cond13 \ - tst-cond14 tst-cond15 tst-cond16 tst-cond17 tst-cond18 tst-cond19 \ -@@ -244,14 +248,14 @@ - tst-cancel6 tst-cancel7 tst-cancel8 tst-cancel9 tst-cancel10 \ - tst-cancel11 tst-cancel12 tst-cancel13 tst-cancel14 tst-cancel15 \ - tst-cancel16 tst-cancel17 tst-cancel18 tst-cancel19 tst-cancel20 \ -- tst-cancel21 tst-cancel22 tst-cancel23 tst-cancel24 tst-cancel25 \ -+ tst-cancel21 tst-cancel22 tst-cancel23 tst-cancel25 \ - tst-cancel-self tst-cancel-self-cancelstate \ - tst-cancel-self-canceltype tst-cancel-self-testcancel \ - tst-cleanup0 tst-cleanup1 tst-cleanup2 tst-cleanup3 tst-cleanup4 \ - tst-flock1 tst-flock2 \ - tst-signal1 tst-signal2 tst-signal3 tst-signal4 tst-signal5 \ - tst-signal6 tst-signal7 \ -- tst-exec1 tst-exec2 tst-exec3 tst-exec4 \ -+ tst-exec2 tst-exec3 tst-exec4 \ - tst-exit1 tst-exit2 tst-exit3 \ - tst-stdio1 tst-stdio2 \ - tst-stack1 tst-stack2 tst-stack3 tst-pthread-getattr \ -@@ -259,13 +263,12 @@ - tst-unload \ - tst-dlsym1 \ - tst-sysconf \ -- tst-locale1 tst-locale2 \ -+ tst-locale2 \ - tst-umask1 \ - tst-popen1 \ - tst-clock1 \ - tst-context1 \ - tst-sched1 \ -- tst-backtrace1 \ - tst-abstime \ - tst-vfork1 tst-vfork2 tst-vfork1x tst-vfork2x \ - tst-getpid1 tst-getpid2 tst-getpid3 \ -@@ -275,6 +278,17 @@ - tst-mutexpp1 tst-mutexpp6 tst-mutexpp10 - test-srcs = tst-oddstacklimit - -+# This test uses the posix_spawn functions. -+tests-$(OPTION_EGLIBC_SPAWN) += tst-exec1 -+ -+# This test uses the 'backtrace' functions. -+tests-$(OPTION_EGLIBC_BACKTRACE) += tst-backtrace1 -+ -+# This test is written in C++. -+tests-$(OPTION_EGLIBC_CXX_TESTS) += tst-cancel24 -+ -+tests-$(OPTION_EGLIBC_LOCALE_CODE) += tst-locale1 -+ - # Files which must not be linked with libpthread. - tests-nolibpthread = tst-unload - -Index: git/nptl/pthread_create.c -=================================================================== ---- git.orig/nptl/pthread_create.c 2014-08-29 20:00:52.764070587 -0700 -+++ git/nptl/pthread_create.c 2014-08-29 20:01:15.216070587 -0700 -@@ -31,6 +31,7 @@ - #include <kernel-features.h> - #include <exit-thread.h> - -+#include <gnu/option-groups.h> - #include <shlib-compat.h> - - #include <stap-probe.h> -@@ -240,8 +241,10 @@ - THREAD_SETMEM (pd, cpuclock_offset, now); - #endif - -+#if __OPTION_EGLIBC_INET - /* Initialize resolver state pointer. */ - __resp = &pd->res; -+#endif - - /* Initialize pointers to locale data. */ - __ctype_init (); -@@ -322,8 +325,10 @@ - /* Run the destructor for the thread-local data. */ - __nptl_deallocate_tsd (); - -+#if __OPTION_EGLIBC_INET - /* Clean up any state libc stored in thread-local variables. */ - __libc_thread_freeres (); -+#endif - - /* If this is the last thread we terminate the process now. We - do not notify the debugger, it might just irritate it if there -Index: git/nscd/Makefile -=================================================================== ---- git.orig/nscd/Makefile 2014-08-29 20:00:52.948070587 -0700 -+++ git/nscd/Makefile 2014-08-29 20:01:15.216070587 -0700 -@@ -18,14 +18,17 @@ - # - # Sub-makefile for nscd portion of the library. - # -+include ../option-groups.mak -+ - subdir := nscd - - include ../Makeconfig - - ifneq ($(use-nscd),no) --routines := nscd_getpw_r nscd_getgr_r nscd_gethst_r nscd_getai \ -+routines-$(OPTION_EGLIBC_INET) += \ -+ nscd_getpw_r nscd_getgr_r nscd_gethst_r nscd_getai \ - nscd_initgroups nscd_getserv_r nscd_netgroup --aux := nscd_helper -+aux-$(OPTION_EGLIBC_INET) += nscd_helper - endif - - # To find xmalloc.c -@@ -37,14 +40,18 @@ - dbg_log nscd_conf nscd_stat cache mem nscd_setup_thread \ - xmalloc xstrdup aicache initgrcache gai res_hconf \ - netgroupcache -- -+ifneq (y,$(OPTION_EGLIBC_NIS)) -+# If we haven't build libnsl.so, then we'll need to include our -+# own copy of nis_hash. -+nscd-modules += nis_hash -+endif - ifeq ($(build-nscd)$(have-thread-library),yesyes) - --others += nscd --others-pie += nscd --install-sbin := nscd -+others-$(OPTION_EGLIBC_INET) += nscd -+others-pie-$(OPTION_EGLIBC_INET) += nscd -+install-sbin-$(OPTION_EGLIBC_INET) += nscd - --extra-objs = $(nscd-modules:=.o) -+extra-objs-$(OPTION_EGLIBC_INET) += $(nscd-modules:=.o) - - endif - -@@ -101,7 +108,15 @@ - $(objpfx)nscd: $(nscd-modules:%=$(objpfx)%.o) - - ifeq ($(build-shared),yes) --$(objpfx)nscd: $(shared-thread-library) $(common-objpfx)nis/libnsl.so -+$(objpfx)nscd: $(shared-thread-library) -+else -+$(objpfx)nscd: $(static-thread-library) -+endif -+ -+ifeq (y,$(OPTION_EGLIBC_NIS)) -+ifeq ($(build-shared),yes) -+$(objpfx)nscd: $(common-objpfx)nis/libnsl.so - else --$(objpfx)nscd: $(static-thread-library) $(common-objpfx)nis/libnsl.a -+$(objpfx)nscd: $(common-objpfx)nis/libnsl.a -+endif - endif -Index: git/nscd/nis_hash.c -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ git/nscd/nis_hash.c 2014-08-29 20:01:15.216070587 -0700 -@@ -0,0 +1,3 @@ -+/* If OPTION_EGLIBC_NIS is disabled, nscd can't get this from libnsl.so; -+ we need our own copy. */ -+#include "../nis/nis_hash.c" -Index: git/nss/fixed-nsswitch.conf -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ git/nss/fixed-nsswitch.conf 2014-08-29 20:01:15.216070587 -0700 -@@ -0,0 +1,22 @@ -+# /etc/nsswitch.conf -+# -+# Example configuration for fixed name service. -+# See the description of OPTION_EGLIBC_NSSWITCH in option-groups.def -+# for details. -+# -+ -+aliases: files -+ -+passwd: files -+group: files -+shadow: files -+ -+hosts: files dns -+networks: files dns -+ -+protocols: files -+services: files -+ethers: files -+rpc: files -+ -+netgroup: files -Index: git/nss/fixed-nsswitch.functions -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ git/nss/fixed-nsswitch.functions 2014-08-29 20:01:15.216070587 -0700 -@@ -0,0 +1,121 @@ -+/* List of functions defined for fixed NSS in GNU C Library. -+ Copyright (C) 1996, 1997, 1998, 2005 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 Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 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 -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, write to the Free -+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -+ 02111-1307 USA. */ -+ -+/* When OPTION_EGLIBC_NSSWITCH is disabled (see option-groups.def), -+ EGLIBC does not use the 'dlopen' and 'dlsym' functions to look for -+ database query functions in the individual name service libraries. -+ Instead, it uses a set of functions chosen at compile time, as -+ directed by the OPTION_EGLIBC_NSSWITCH_FIXED_FUNCTIONS file. This -+ file is a sample of what you might use there. -+ -+ This file is C source code; it should only contain invocations of -+ the following macros: -+ -+ - DEFINE_ENT (DATABASE, SERVICE, X) -+ -+ Declare the 'setXent', 'getXent_r', and 'endXent' functions that -+ query DATABASE using the service library 'libnss_SERVICE.so.2'. -+ DATABASE should be the full name of the database as it appears in -+ 'nsswitch.conf', like 'passwd' or 'aliases'. -+ -+ (The non-reentrant 'getXent' functions are implemented in terms -+ of the reentrant 'getXent_r' functions, so there is no need to -+ refer to them explicitly here.) -+ -+ - DEFINE_GETBY (DATABASE, SERVICE, X, KEY) -+ -+ Declare the 'getXbyKEY_r' functions that query DATABASE using -+ SERVICE. DATABASE and SERVICE are as described above. -+ -+ (The non-reentrant 'getXbyKEY' functions are implemented in terms -+ of the reentrant 'getXbyKEY_r' functions, so there is no need to -+ refer to them explicitly here.) -+ -+ Use the special key 'name3' for the service library function that -+ implements the 'getaddrinfo' function. -+ -+ - DEFINE_GET (DATABASE, SERVICE, QUERY) -+ -+ Declare the 'getQUERY_r' functions that query DATABASE using -+ SERVICE. This is used for functions like 'getpwnam'. -+ -+ (The non-reentrant 'getQUERY' functions are implemented in terms -+ of the reentrant 'getQUERY_r' functions, so there is no need to -+ refer to them explicitly here.) -+ -+ This sample file only includes functions that consult the files in -+ '/etc', and the Domain Name System (DNS). */ -+ -+/* aliases */ -+DEFINE_ENT (aliases, files, alias) -+DEFINE_GETBY (aliases, files, alias, name) -+ -+/* ethers */ -+DEFINE_ENT (ethers, files, ether) -+ -+/* group */ -+DEFINE_ENT (group, files, gr) -+DEFINE_GET (group, files, grgid) -+DEFINE_GET (group, files, grnam) -+ -+/* hosts */ -+DEFINE_ENT (hosts, files, host) -+DEFINE_GETBY (hosts, files, host, addr) -+DEFINE_GETBY (hosts, files, host, name) -+DEFINE_GETBY (hosts, files, host, name2) -+DEFINE_GET (hosts, files, hostton) -+DEFINE_GET (hosts, files, ntohost) -+DEFINE_GETBY (hosts, dns, host, addr) -+DEFINE_GETBY (hosts, dns, host, name) -+DEFINE_GETBY (hosts, dns, host, name2) -+DEFINE_GETBY (hosts, dns, host, name3) -+ -+/* netgroup */ -+DEFINE_ENT (netgroup, files, netgr) -+ -+/* networks */ -+DEFINE_ENT (networks, files, net) -+DEFINE_GETBY (networks, files, net, name) -+DEFINE_GETBY (networks, files, net, addr) -+DEFINE_GETBY (networks, dns, net, name) -+DEFINE_GETBY (networks, dns, net, addr) -+ -+/* protocols */ -+DEFINE_ENT (protocols, files, proto) -+DEFINE_GETBY (protocols, files, proto, name) -+DEFINE_GETBY (protocols, files, proto, number) -+ -+/* passwd */ -+DEFINE_ENT (passwd, files, pw) -+DEFINE_GET (passwd, files, pwnam) -+DEFINE_GET (passwd, files, pwuid) -+ -+/* rpc */ -+DEFINE_ENT (rpc, files, rpc) -+DEFINE_GETBY (rpc, files, rpc, name) -+DEFINE_GETBY (rpc, files, rpc, number) -+ -+/* services */ -+DEFINE_ENT (services, files, serv) -+DEFINE_GETBY (services, files, serv, name) -+DEFINE_GETBY (services, files, serv, port) -+ -+/* shadow */ -+DEFINE_ENT (shadow, files, sp) -+DEFINE_GET (shadow, files, spnam) -Index: git/nss/gen-fixed-nsswitch.c -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ git/nss/gen-fixed-nsswitch.c 2014-08-29 20:01:15.216070587 -0700 -@@ -0,0 +1,803 @@ -+/* gen-fixed-nsswitch.c --- generate fixed name service data structures -+ Copyright (C) 1996-1999, 2001-2006, 2007 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 Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 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 -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, write to the Free -+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -+ 02111-1307 USA. */ -+ -+#define _GNU_SOURCE -+ -+#include <stdlib.h> -+#include <stdio.h> -+#include <errno.h> -+#include <string.h> -+#include <stdarg.h> -+#include <assert.h> -+#include <ctype.h> -+ -+#include "gnu/lib-names.h" -+#include "nss.h" -+ -+/* Provide a fallback definition to allow this file to be compiled outside -+ libc. */ -+#ifndef internal_function -+# define internal_function -+#endif -+ -+ -+/* Simple utilities. */ -+ -+void __attribute__ ((noreturn)) -+error (const char *message) -+{ -+ fprintf (stderr, "%s\n", message); -+ exit (1); -+} -+ -+ -+void * -+check_alloc (void *p) -+{ -+ if (p) -+ return p; -+ else -+ error ("out of memory"); -+} -+ -+void * -+xmalloc (size_t size) -+{ -+ return check_alloc (malloc (size)); -+} -+ -+ -+/* Format ARGS according to FORMAT, and return the result as a -+ malloc'ed string. */ -+char * -+saprintf (const char *format, ...) -+{ -+ va_list args; -+ size_t len; -+ char *buf; -+ -+ va_start (args, format); -+ len = vsnprintf (NULL, 0, format, args); -+ va_end (args); -+ -+ buf = xmalloc (len + 1); -+ va_start (args, format); -+ assert (len == vsnprintf (buf, len + 1, format, args)); -+ va_end (args); -+ -+ return buf; -+} -+ -+ -+ -+/* Data structures representing the configuration file in memory. */ -+ -+/* These are copied from nsswitch.h. -+ -+ We could simply #include that file, but this program runs on the -+ build machine and links against the build machine's libraries, -+ whereas that header is meant for use by target code; it uses -+ 'libc_hidden_proto', 'internal_function', and related hair. Since -+ we've copied the parsing code, we might as well copy the data -+ structure definitions as well. */ -+ -+/* Actions performed after lookup finished. */ -+typedef enum -+{ -+ NSS_ACTION_CONTINUE, -+ NSS_ACTION_RETURN -+} lookup_actions; -+ -+ -+typedef struct service_library -+{ -+ /* Name of service (`files', `dns', `nis', ...). */ -+ const char *name; -+ /* Pointer to the loaded shared library. */ -+ void *lib_handle; -+ /* And the link to the next entry. */ -+ struct service_library *next; -+} service_library; -+ -+ -+/* For mapping a function name to a function pointer. It is known in -+ nsswitch.c:nss_lookup_function that a string pointer for the lookup key -+ is the first member. */ -+typedef struct -+{ -+ const char *fct_name; -+ void *fct_ptr; -+} known_function; -+ -+ -+typedef struct service_user -+{ -+ /* And the link to the next entry. */ -+ struct service_user *next; -+ /* Action according to result. */ -+ lookup_actions actions[5]; -+ /* Link to the underlying library object. */ -+ service_library *library; -+ /* Collection of known functions. -+ -+ With OPTION_EGLIBC_NSSWITCH enabled, this is the root of a -+ 'tsearch'-style tree. -+ -+ With OPTION_EGLIBC_NSSWITCH disabled, this is an array of -+ pointers to known_function structures, NULL-terminated. */ -+ union -+ { -+ void *tree; -+ const known_function **array; -+ } known; -+ /* Name of the service (`files', `dns', `nis', ...). */ -+ const char *name; -+} service_user; -+ -+/* To access the action based on the status value use this macro. */ -+#define nss_next_action(ni, status) ((ni)->actions[2 + status]) -+ -+ -+typedef struct name_database_entry -+{ -+ /* And the link to the next entry. */ -+ struct name_database_entry *next; -+ /* List of service to be used. */ -+ service_user *service; -+ /* Name of the database. */ -+ const char *name; -+} name_database_entry; -+ -+ -+typedef struct name_database -+{ -+ /* List of all known databases. */ -+ name_database_entry *entry; -+ /* List of libraries with service implementation. */ -+ service_library *library; -+} name_database; -+ -+ -+ -+/* Gathering the contents of the FIXED_FUNCTIONS file. */ -+ -+/* It should be possible to generate this list automatically by -+ looking at the services and databases used in the nsswitch.conf -+ file, and having a hard-coded set of queries supported on each -+ database. */ -+ -+/* We #include the FIXED_FUNCTIONS file several times to build an -+ array of function structures holding its data. */ -+enum function_kind { -+ fk_end = 0, /* Last entry. */ -+ fk_setent, /* Like setpwent. */ -+ fk_getent, /* Like getpwent. */ -+ fk_endent, /* Like endpwent. */ -+ fk_getby, /* Like gethostbyname. */ -+ fk_get /* Like getpwnam. */ -+}; -+ -+ -+struct function { -+ /* What kind of function this is. */ -+ enum function_kind kind; -+ -+ /* The database and service of the function being hardwired in. */ -+ char *database, *service; -+ -+ /* The kind of entry being queried, for 'fk_setent', 'fk_getent', -+ 'fk_endent', and 'fk_getby' functions. */ -+ char *entry; -+ -+ /* The key, for 'fk_getby' entries. */ -+ char *key; -+ -+ /* The value and key, for 'fk_get' entries. */ -+ char *value_and_key; -+}; -+ -+ -+const struct function functions[] = -+ { -+ -+#define DEFINE_ENT(database, service, entry) \ -+ { fk_setent, #database, #service, #entry }, \ -+ { fk_getent, #database, #service, #entry }, \ -+ { fk_endent, #database, #service, #entry }, -+#define DEFINE_GETBY(database, service, entry, key) \ -+ { fk_getby, #database, #service, #entry, #key }, -+#define DEFINE_GET(database, service, value_and_key) \ -+ { fk_get, #database, #service, NULL, NULL, #value_and_key }, -+ -+#include FIXED_FUNCTIONS -+ -+#undef DEFINE_ENT -+#undef DEFINE_GETBY -+#undef DEFINE_GET -+ -+ { fk_end } -+ }; -+ -+ -+/* Parsing the config file. Functions copied from nsswitch.c. */ -+ -+#define __strchrnul strchrnul -+#define __getline getline -+#define __strncasecmp strncasecmp -+ -+/* Prototypes for the local functions. */ -+static name_database *nss_parse_file (const char *fname) internal_function; -+static name_database_entry *nss_getline (char *line) internal_function; -+static service_user *nss_parse_service_list (const char *line) -+ internal_function; -+ -+static name_database * -+internal_function -+nss_parse_file (const char *fname) -+{ -+ FILE *fp; -+ name_database *result; -+ name_database_entry *last; -+ char *line; -+ size_t len; -+ -+ /* Open the configuration file. */ -+ fp = fopen (fname, "rc"); -+ if (fp == NULL) -+ return NULL; -+ -+ // /* No threads use this stream. */ -+ // __fsetlocking (fp, FSETLOCKING_BYCALLER); -+ -+ result = (name_database *) xmalloc (sizeof (name_database)); -+ -+ result->entry = NULL; -+ result->library = NULL; -+ last = NULL; -+ line = NULL; -+ len = 0; -+ do -+ { -+ name_database_entry *this; -+ ssize_t n; -+ -+ n = __getline (&line, &len, fp); -+ if (n < 0) -+ break; -+ if (line[n - 1] == '\n') -+ line[n - 1] = '\0'; -+ -+ /* Because the file format does not know any form of quoting we -+ can search forward for the next '#' character and if found -+ make it terminating the line. */ -+ *__strchrnul (line, '#') = '\0'; -+ -+ /* If the line is blank it is ignored. */ -+ if (line[0] == '\0') -+ continue; -+ -+ /* Each line completely specifies the actions for a database. */ -+ this = nss_getline (line); -+ if (this != NULL) -+ { -+ if (last != NULL) -+ last->next = this; -+ else -+ result->entry = this; -+ -+ last = this; -+ } -+ } -+ while (!feof_unlocked (fp)); -+ -+ /* Free the buffer. */ -+ free (line); -+ /* Close configuration file. */ -+ fclose (fp); -+ -+ return result; -+} -+ -+ -+/* Read the source names: -+ `( <source> ( "[" "!"? (<status> "=" <action> )+ "]" )? )*' -+ */ -+static service_user * -+internal_function -+nss_parse_service_list (const char *line) -+{ -+ service_user *result = NULL, **nextp = &result; -+ -+ while (1) -+ { -+ service_user *new_service; -+ const char *name; -+ -+ while (isspace (line[0])) -+ ++line; -+ if (line[0] == '\0') -+ /* No source specified. */ -+ return result; -+ -+ /* Read <source> identifier. */ -+ name = line; -+ while (line[0] != '\0' && !isspace (line[0]) && line[0] != '[') -+ ++line; -+ if (name == line) -+ return result; -+ -+ -+ new_service = (service_user *) xmalloc (sizeof (*new_service)); -+ new_service->name = (char *) xmalloc (line - name + 1); -+ -+ *((char *) __mempcpy ((char *) new_service->name, name, line - name)) -+ = '\0'; -+ -+ /* Set default actions. */ -+ new_service->actions[2 + NSS_STATUS_TRYAGAIN] = NSS_ACTION_CONTINUE; -+ new_service->actions[2 + NSS_STATUS_UNAVAIL] = NSS_ACTION_CONTINUE; -+ new_service->actions[2 + NSS_STATUS_NOTFOUND] = NSS_ACTION_CONTINUE; -+ new_service->actions[2 + NSS_STATUS_SUCCESS] = NSS_ACTION_RETURN; -+ new_service->actions[2 + NSS_STATUS_RETURN] = NSS_ACTION_RETURN; -+ new_service->library = NULL; -+ new_service->known.tree = NULL; -+ new_service->next = NULL; -+ -+ while (isspace (line[0])) -+ ++line; -+ -+ if (line[0] == '[') -+ { -+ /* Read criterions. */ -+ do -+ ++line; -+ while (line[0] != '\0' && isspace (line[0])); -+ -+ do -+ { -+ int not; -+ enum nss_status status; -+ lookup_actions action; -+ -+ /* Grok ! before name to mean all statii but that one. */ -+ not = line[0] == '!'; -+ if (not) -+ ++line; -+ -+ /* Read status name. */ -+ name = line; -+ while (line[0] != '\0' && !isspace (line[0]) && line[0] != '=' -+ && line[0] != ']') -+ ++line; -+ -+ /* Compare with known statii. */ -+ if (line - name == 7) -+ { -+ if (__strncasecmp (name, "SUCCESS", 7) == 0) -+ status = NSS_STATUS_SUCCESS; -+ else if (__strncasecmp (name, "UNAVAIL", 7) == 0) -+ status = NSS_STATUS_UNAVAIL; -+ else -+ return result; -+ } -+ else if (line - name == 8) -+ { -+ if (__strncasecmp (name, "NOTFOUND", 8) == 0) -+ status = NSS_STATUS_NOTFOUND; -+ else if (__strncasecmp (name, "TRYAGAIN", 8) == 0) -+ status = NSS_STATUS_TRYAGAIN; -+ else -+ return result; -+ } -+ else -+ return result; -+ -+ while (isspace (line[0])) -+ ++line; -+ if (line[0] != '=') -+ return result; -+ do -+ ++line; -+ while (isspace (line[0])); -+ -+ name = line; -+ while (line[0] != '\0' && !isspace (line[0]) && line[0] != '=' -+ && line[0] != ']') -+ ++line; -+ -+ if (line - name == 6 && __strncasecmp (name, "RETURN", 6) == 0) -+ action = NSS_ACTION_RETURN; -+ else if (line - name == 8 -+ && __strncasecmp (name, "CONTINUE", 8) == 0) -+ action = NSS_ACTION_CONTINUE; -+ else -+ return result; -+ -+ if (not) -+ { -+ /* Save the current action setting for this status, -+ set them all to the given action, and reset this one. */ -+ const lookup_actions save = new_service->actions[2 + status]; -+ new_service->actions[2 + NSS_STATUS_TRYAGAIN] = action; -+ new_service->actions[2 + NSS_STATUS_UNAVAIL] = action; -+ new_service->actions[2 + NSS_STATUS_NOTFOUND] = action; -+ new_service->actions[2 + NSS_STATUS_SUCCESS] = action; -+ new_service->actions[2 + status] = save; -+ } -+ else -+ new_service->actions[2 + status] = action; -+ -+ /* Skip white spaces. */ -+ while (isspace (line[0])) -+ ++line; -+ } -+ while (line[0] != ']'); -+ -+ /* Skip the ']'. */ -+ ++line; -+ } -+ -+ *nextp = new_service; -+ nextp = &new_service->next; -+ } -+} -+ -+static name_database_entry * -+internal_function -+nss_getline (char *line) -+{ -+ const char *name; -+ name_database_entry *result; -+ size_t len; -+ -+ /* Ignore leading white spaces. ATTENTION: this is different from -+ what is implemented in Solaris. The Solaris man page says a line -+ beginning with a white space character is ignored. We regard -+ this as just another misfeature in Solaris. */ -+ while (isspace (line[0])) -+ ++line; -+ -+ /* Recognize `<database> ":"'. */ -+ name = line; -+ while (line[0] != '\0' && !isspace (line[0]) && line[0] != ':') -+ ++line; -+ if (line[0] == '\0' || name == line) -+ /* Syntax error. */ -+ return NULL; -+ *line++ = '\0'; -+ -+ len = strlen (name) + 1; -+ -+ result = (name_database_entry *) xmalloc (sizeof (*result)); -+ result->name = (char *) xmalloc (len); -+ -+ /* Save the database name. */ -+ memcpy ((char *) result->name, name, len); -+ -+ /* Parse the list of services. */ -+ result->service = nss_parse_service_list (line); -+ -+ result->next = NULL; -+ return result; -+} -+ -+ -+ -+/* Generating code for statically initialized nsswitch structures. */ -+ -+ -+/* Return the service-neutral suffix of the name of the service -+ library function referred to by the function F. The result is -+ allocated with malloc. */ -+char * -+known_function_suffix (const struct function *f) -+{ -+ switch (f->kind) -+ { -+ case fk_setent: -+ return saprintf ("set%sent", f->entry); -+ -+ case fk_getent: -+ return saprintf ("get%sent_r", f->entry); -+ -+ case fk_endent: -+ return saprintf ("end%sent", f->entry); -+ -+ case fk_getby: -+ return saprintf ("get%sby%s_r", f->entry, f->key); -+ -+ case fk_get: -+ return saprintf ("get%s_r", f->value_and_key); -+ -+ default: -+ abort (); -+ } -+} -+ -+ -+/* Return the name of the service library function referred to by the -+ function F. The result is allocated with malloc. */ -+char * -+known_function_name (const struct function *f) -+{ -+ return saprintf ("_nss_%s_%s", f->service, known_function_suffix (f)); -+} -+ -+ -+/* Write initialized known_function structures to OUT for -+ all the functions we'll use. */ -+void -+generate_known_functions (FILE *out) -+{ -+ int i; -+ -+ /* First, generate weak references to the functions. The service -+ libraries depend on libc, and if these references weren't weak, -+ we'd be making libc depend circularly on the service -+ libraries. */ -+ for (i = 0; functions[i].kind; i++) -+ { -+ char *name = known_function_name (&functions[i]); -+ fprintf (out, "typeof (%s) %s __attribute__ ((weak));\n", -+ name, name); -+ } -+ fputs ("\n", out); -+ -+ /* Then, a table mapping names to functions. */ -+ fputs ("static const known_function fixed_known_functions[] = {\n", -+ out); -+ for (i = 0; functions[i].kind; i++) -+ { -+ const struct function *f = &functions[i]; -+ char *suffix = known_function_suffix (f); -+ -+ fprintf (out, " /* %2d */ { \"%s\", _nss_%s_%s },\n", -+ i, suffix, f->service, suffix); -+ } -+ fputs ("};\n", out); -+ fputs ("\n", out); -+} -+ -+ -+/* Print code to OUT for an initialized array of pointers to the -+ 'known_function' structures needed for USER, which is for -+ DATABASE. Return its name, allocated with malloc. */ -+char * -+generate_known_function_list (FILE *out, -+ const name_database_entry *database, -+ const service_user *user) -+{ -+ char *list_name = saprintf ("fixed_%s_%s_known_funcs", -+ database->name, user->name); -+ fprintf (out, "static const known_function *%s[] = {\n", -+ list_name); -+ int i; -+ for (i = 0; functions[i].kind; i++) -+ if (strcmp (functions[i].database, database->name) == 0 -+ && strcmp (functions[i].service, user->name) == 0) -+ fprintf (out, " &fixed_known_functions[%d], /* %s */\n", -+ i, known_function_name (&functions[i])); -+ fputs (" NULL\n", out); -+ fputs ("};\n", out); -+ fputs ("\n", out); -+ -+ return list_name; -+} -+ -+ -+/* Return the name of the status value STATUS, as a statically -+ allocated string. */ -+const char * -+lookup_status_name (enum nss_status status) -+{ -+ switch (status) -+ { -+ case NSS_STATUS_TRYAGAIN: return "NSS_STATUS_TRYAGAIN"; -+ case NSS_STATUS_UNAVAIL: return "NSS_STATUS_UNAVAIL"; -+ case NSS_STATUS_NOTFOUND: return "NSS_STATUS_NOTFOUND"; -+ case NSS_STATUS_SUCCESS: return "NSS_STATUS_SUCCESS"; -+ case NSS_STATUS_RETURN: return "NSS_STATUS_RETURN"; -+ default: abort (); -+ }; -+} -+ -+ -+/* Return the name of ACTION as a statically allocated string. */ -+const char * -+lookup_action_name (lookup_actions action) -+{ -+ switch (action) -+ { -+ case NSS_ACTION_CONTINUE: return "NSS_ACTION_CONTINUE"; -+ case NSS_ACTION_RETURN: return "NSS_ACTION_RETURN"; -+ default: abort (); -+ } -+} -+ -+ -+/* Print code to OUT for the list of service_user structures starting -+ with USER, which are all for DATABASE. Return the name of the -+ first structure in that list, or zero if USER is NULL. */ -+char * -+generate_service_user_list (FILE *out, -+ name_database_entry *database, -+ service_user *user) -+{ -+ if (user) -+ { -+ /* Generate the tail of the list. */ -+ char *next_name = generate_service_user_list (out, database, user->next); -+ /* Generate our known function list. */ -+ char *known_function_list_name = -+ generate_known_function_list (out, database, user); -+ -+ char *name = saprintf ("fixed_%s_%s_user", database->name, user->name); -+ -+ fprintf (out, "static const service_user %s = {\n", name); -+ if (next_name) -+ fprintf (out, " (service_user *) &%s,\n", next_name); -+ else -+ fprintf (out, " NULL, /* no next entry */\n"); -+ fputs (" {\n", out); -+ int i; -+ for (i = 0; i < sizeof (user->actions) / sizeof (user->actions[0]); i++) -+ fprintf (out, " %s, /* %s */\n", -+ lookup_action_name (user->actions[i]), -+ lookup_status_name (i - 2)); -+ fputs (" },\n", out); -+ fprintf (out, " NULL, /* we never need the service library */\n"); -+ fprintf (out, " { .array = %s },\n", known_function_list_name); -+ fprintf (out, " \"%s\"\n", user->name); -+ fputs ("};\n", out); -+ fputs ("\n", out); -+ -+ return name; -+ } -+ else -+ return NULL; -+} -+ -+ -+/* Print code to OUT for the list of name_database_entry structures -+ starting with DATABASE. Return the name of the first structure -+ in that list, or zero if DATABASE is NULL. */ -+char * -+generate_name_database_entries (FILE *out, name_database_entry *database) -+{ -+ if (database) -+ { -+ char *next_name = generate_name_database_entries (out, database->next); -+ char *service_user_name -+ = generate_service_user_list (out, database, database->service); -+ char *name = saprintf ("fixed_%s_name_database", database->name); -+ -+ fprintf (out, "static const name_database_entry %s = {\n", name); -+ -+ if (next_name) -+ fprintf (out, " (name_database_entry *) &%s,\n", next_name); -+ else -+ fprintf (out, " NULL,\n"); -+ -+ if (service_user_name) -+ fprintf (out, " (service_user *) &%s,\n", service_user_name); -+ else -+ fprintf (out, " NULL,\n"); -+ -+ fprintf (out, " \"%s\"\n", database->name); -+ fprintf (out, "};\n"); -+ fputs ("\n", out); -+ -+ return name; -+ } -+ else -+ return NULL; -+} -+ -+ -+void -+generate_name_database (FILE *out, name_database *service_table) -+{ -+ /* Produce a linked list of the known name_database_entry -+ structures. */ -+ char *entries = generate_name_database_entries (out, service_table->entry); -+ -+ /* Now produce the main structure that points to them all. */ -+ fprintf (out, "static const name_database fixed_name_database = {\n"); -+ if (entries) -+ fprintf (out, " (name_database_entry *) &%s,\n", entries); -+ else -+ fprintf (out, " NULL,\n"); -+ fputs (" NULL /* we don't need the libraries */\n" -+ "};\n", -+ out); -+} -+ -+ -+ -+/* Generating the list of service libraries we generate references to. */ -+ -+/* String with revision number of the shared object files. */ -+static const char *const nss_shlib_revision = LIBNSS_FILES_SO + 15; -+ -+void -+generate_service_lib_list (FILE *out, name_database *service_table) -+{ -+ int i, j; -+ int printed_any = 0; -+ -+ for (i = 0; functions[i].kind; i++) -+ { -+ /* Mention each service library only once. */ -+ for (j = 0; j < i; j++) -+ if (strcmp (functions[i].service, functions[j].service) == 0) -+ break; -+ -+ if (j >= i) -+ { -+ if (printed_any) -+ putc (' ', out); -+ fprintf (out, "-lnss_%s", -+ functions[i].service, -+ nss_shlib_revision); -+ printed_any = 1; -+ } -+ } -+} -+ -+ -+/* Main. */ -+ -+int -+main (int argc, char **argv) -+{ -+ if (argc != 4) -+ { -+ fprintf (stderr, "usage: gen-fixed-nsswitch HEADER SERVLIBS CONFIG\n"); -+ exit (1); -+ } -+ -+ name_database *service_table = nss_parse_file (argv[3]); -+ -+ FILE *header = fopen (argv[1], "w"); -+ if (! header) -+ { -+ fprintf (stderr, -+ "gen-fixed-nsswitch: couldn't open output file %s: %s\n", -+ argv[1], strerror (errno)); -+ exit (1); -+ } -+ fputs ("/* Generated by nss/gen-fixed-nsswitch.c. */\n", header); -+ fputs ("\n", header); -+ generate_known_functions (header); -+ generate_name_database (header, service_table); -+ fclose (header); -+ -+ FILE *service_lib_list = fopen (argv[2], "w"); -+ if (! service_lib_list) -+ { -+ fprintf (stderr, -+ "gen-fixed-nsswitch: couldn't open output file %s: %s\n", -+ argv[2], strerror (errno)); -+ exit (1); -+ } -+ generate_service_lib_list (service_lib_list, service_table); -+ fclose (service_lib_list); -+ -+ return 0; -+} -Index: git/nss/getent.c -=================================================================== ---- git.orig/nss/getent.c 2014-08-29 20:00:52.976070587 -0700 -+++ git/nss/getent.c 2014-08-29 20:01:15.216070587 -0700 -@@ -39,6 +39,7 @@ - #include <netinet/ether.h> - #include <netinet/in.h> - #include <sys/socket.h> -+#include <gnu/option-groups.h> - - /* Get libc version number. */ - #include <version.h> -@@ -91,6 +92,7 @@ - fprintf (stream, gettext ("Written by %s.\n"), "Thorsten Kukuk"); - } - -+#if __OPTION_EGLIBC_DB_ALIASES - /* This is for aliases */ - static void - print_aliases (struct aliasent *alias) -@@ -135,7 +137,9 @@ - - return result; - } -+#endif /* __OPTION_EGLIBC_DB_ALIASES */ - -+#if __OPTION_EGLIBC_INET - /* This is for ethers */ - static int - ethers_keys (int number, char *key[]) -@@ -179,6 +183,7 @@ - - return result; - } -+#endif /* __OPTION_EGLIBC_INET */ - - /* This is for group */ - static void -@@ -301,6 +306,7 @@ - return result; - } - -+#if __OPTION_EGLIBC_INET - /* This is for hosts */ - static void - print_hosts (struct hostent *host) -@@ -598,6 +604,7 @@ - - return result; - } -+#endif /* __OPTION_EGLIBC_INET */ - - /* Now is all for passwd */ - static void -@@ -650,6 +657,7 @@ - return result; - } - -+#if __OPTION_EGLIBC_INET - /* This is for protocols */ - static void - print_protocols (struct protoent *proto) -@@ -805,6 +813,7 @@ - - return result; - } -+#endif /* __OPTION_EGLIBC_INET */ - - /* This is for shadow */ - static void -@@ -871,21 +880,34 @@ - } databases[] = - { - #define D(name) { #name, name ## _keys }, --D(ahosts) --D(ahostsv4) --D(ahostsv6) --D(aliases) --D(ethers) -+ -+#if __OPTION_EGLIBC_INET -+#define DN(name) D(name) -+#else -+#define DN(name) -+#endif -+ -+#if __OPTION_EGLIBC_DB_ALIASES -+#define DA(name) D(name) -+#else -+#define DA(name) -+#endif -+ -+DN(ahosts) -+DN(ahostsv4) -+DN(ahostsv6) -+DA(aliases) -+DN(ethers) - D(group) - D(gshadow) --D(hosts) -+DN(hosts) - D(initgroups) --D(netgroup) --D(networks) -+DN(netgroup) -+DN(networks) - D(passwd) --D(protocols) --D(rpc) --D(services) -+DN(protocols) -+DN(rpc) -+DN(services) - D(shadow) - #undef D - { NULL, NULL } -Index: git/nss/getnssent_r.c -=================================================================== ---- git.orig/nss/getnssent_r.c 2014-08-29 20:00:52.976070587 -0700 -+++ git/nss/getnssent_r.c 2014-08-29 20:01:15.220070587 -0700 -@@ -16,6 +16,7 @@ - <http://www.gnu.org/licenses/>. */ - - #include <errno.h> -+#include <gnu/option-groups.h> - #include <netdb.h> - #include "nsswitch.h" - -@@ -59,11 +60,13 @@ - } fct; - int no_more; - -+#if __OPTION_EGLIBC_INET - if (res && __res_maybe_init (&_res, 0) == -1) - { - __set_h_errno (NETDB_INTERNAL); - return; - } -+#endif /* __OPTION_EGLIBC_INET */ - - /* Cycle through the services and run their `setXXent' functions until - we find an available service. */ -@@ -101,11 +104,13 @@ - } fct; - int no_more; - -+#if __OPTION_EGLIBC_INET - if (res && __res_maybe_init (&_res, 0) == -1) - { - __set_h_errno (NETDB_INTERNAL); - return; - } -+#endif /* __OPTION_EGLIBC_INET */ - - /* Cycle through all the services and run their endXXent functions. */ - no_more = setup (func_name, lookup_fct, &fct.ptr, nip, startp, 1); -@@ -141,12 +146,14 @@ - int no_more; - enum nss_status status; - -+#if __OPTION_EGLIBC_INET - if (res && __res_maybe_init (&_res, 0) == -1) - { - *h_errnop = NETDB_INTERNAL; - *result = NULL; - return errno; - } -+#endif /* __OPTION_EGLIBC_INET */ - - /* Initialize status to return if no more functions are found. */ - status = NSS_STATUS_NOTFOUND; -@@ -161,7 +168,7 @@ - int is_last_nip = *nip == *last_nip; - - status = DL_CALL_FCT (fct.f, -- (resbuf, buffer, buflen, &errno, &h_errno)); -+ (resbuf, buffer, buflen, &errno, h_errnop)); - - /* The status is NSS_STATUS_TRYAGAIN and errno is ERANGE the - provided buffer is too small. In this case we should give -Index: git/nss/Makefile -=================================================================== ---- git.orig/nss/Makefile 2014-08-29 20:00:52.972070587 -0700 -+++ git/nss/Makefile 2014-08-29 20:01:15.220070587 -0700 -@@ -18,29 +18,36 @@ - # - # Makefile for name service switch. - # -+include ../option-groups.mak -+ - subdir := nss - - include ../Makeconfig - - headers := nss.h - --# This is the trivial part which goes into libc itself. --routines = nsswitch getnssent getnssent_r digits_dots \ -- $(addsuffix -lookup,$(databases)) -- - # These are the databases that go through nss dispatch. - # Caution: if you add a database here, you must add its real name - # in databases.def, too. --databases = proto service hosts network grp pwd rpc ethers \ -- spwd netgrp key alias sgrp -+databases-y = grp pwd spwd sgrp -+databases-$(OPTION_EGLIBC_INET) \ -+ += proto service hosts network rpc ethers \ -+ netgrp key -+databases-$(OPTION_EGLIBC_DB_ALIASES) += alias -+ -+# This is the trivial part which goes into libc itself. -+routines-y += nsswitch getnssent getnssent_r \ -+ $(addsuffix -lookup,$(databases-y)) -+routines-$(OPTION_EGLIBC_INET) += digits_dots - - others := getent makedb - install-bin := getent makedb - makedb-modules = xmalloc hash-string - extra-objs += $(makedb-modules:=.o) - --tests = test-netdb tst-nss-test1 test-digits-dots --xtests = bug-erange -+tests = tst-nss-test1 -+tests-$(OPTION_EGLIBC_INET) += test-netdb test-digits-dots -+xtests-$(OPTION_EGLIBC_INET) += bug-erange - - # Specify rules for the nss_* modules. We have some services. - services := files db -@@ -55,7 +62,7 @@ - vpath %.c $(subdir-dirs) ../locale/programs ../intl - - --libnss_files-routines := $(addprefix files-,$(databases)) \ -+libnss_files-routines := $(addprefix files-,$(databases-y)) \ - files-initgroups files-have_o_cloexec files-init - - libnss_db-dbs := $(addprefix db-,\ -@@ -78,6 +85,45 @@ - tests += $(tests-static) - endif - -+ifneq ($(OPTION_EGLIBC_NSSWITCH),y) -+ -+ifndef OPTION_EGLIBC_NSSWITCH_FIXED_CONFIG -+$(error OPTION_EGLIBC_NSSWITCH_FIXED_CONFIG variable left unset) -+endif -+ -+ifndef OPTION_EGLIBC_NSSWITCH_FIXED_FUNCTIONS -+$(error OPTION_EGLIBC_NSSWITCH_FIXED_FUNCTIONS variable left unset) -+endif -+ -+ifeq (,$(wildcard $(OPTION_EGLIBC_NSSWITCH_FIXED_CONFIG))) -+$(warning OPTION_EGLIBC_NSSWITCH is disabled, but fixed config file) -+$(error does not exist: $(OPTION_EGLIBC_NSSWITCH_FIXED_CONFIG)) -+endif -+ -+ifeq (,$(wildcard $(OPTION_EGLIBC_NSSWITCH_FIXED_FUNCTIONS))) -+$(warning OPTION_EGLIBC_NSSWITCH is disabled, but fixed functions file) -+$(error does not exist: $(OPTION_EGLIBC_NSSWITCH_FIXED_FUNCTIONS)) -+endif -+ -+before-compile := $(objpfx)fixed-nsswitch.h -+generated := fixed-nsswitch.h -+$(objpfx)fixed-nsswitch.h $(objfpx)fixed-nsswitch-libs: \ -+ $(objpfx)gen-fixed-nsswitch \ -+ $(OPTION_EGLIBC_NSSWITCH_FIXED_CONFIG) -+ $< $(objpfx)fixed-nsswitch.h \ -+ $(objpfx)fixed-nsswitch-libs \ -+ $(OPTION_EGLIBC_NSSWITCH_FIXED_CONFIG) -+ -+$(objpfx)gen-fixed-nsswitch: gen-fixed-nsswitch.c \ -+ $(common-objpfx)option-groups.config \ -+ $(OPTION_EGLIBC_NSSWITCH_FIXED_FUNCTIONS) -+ $(native-compile) -+gen-fixed-nsswitch-CFLAGS = \ -+ -g3 -O -Wall \ -+ -I $(objpfx) \ -+ -DFIXED_FUNCTIONS='"$(OPTION_EGLIBC_NSSWITCH_FIXED_FUNCTIONS)"' -+endif -+ - include ../Rules - - ifeq (yes,$(have-selinux)) -Index: git/nss/nsswitch.c -=================================================================== ---- git.orig/nss/nsswitch.c 2014-08-29 20:00:53.004070587 -0700 -+++ git/nss/nsswitch.c 2014-08-29 20:01:15.220070587 -0700 -@@ -26,6 +26,7 @@ - #include <stdio_ext.h> - #include <stdlib.h> - #include <string.h> -+#include <gnu/option-groups.h> - - #include <aliases.h> - #include <grp.h> -@@ -41,6 +42,15 @@ - #include "../nscd/nscd_proto.h" - #include <sysdep.h> - -+/* When OPTION_EGLIBC_NSSWITCH is disabled, we use fixed tables of -+ databases and services, generated at library build time. Thus: -+ - We can't reconfigure individual databases, so we don't need a -+ name-to-database map. -+ - We never add databases or service libraries, or look up functions -+ at runtime, so there's no need for a lock to protect our tables. -+ See ../option-groups.def for the details. */ -+#if __OPTION_EGLIBC_NSSWITCH -+ - /* Prototypes for the local functions. */ - static name_database *nss_parse_file (const char *fname) internal_function; - static name_database_entry *nss_getline (char *line) internal_function; -@@ -79,6 +89,9 @@ - - __libc_lock_define_initialized (static, lock) - -+#define lock_nsswitch __libc_lock_lock (lock) -+#define unlock_nsswitch __libc_lock_unlock (lock) -+ - #if !defined DO_STATIC_NSS || defined SHARED - /* String with revision number of the shared object files. */ - static const char *const __nss_shlib_revision = LIBNSS_FILES_SO + 15; -@@ -93,6 +106,20 @@ - __libc_freeres. */ - static name_database_entry *defconfig_entries; - -+#else /* __OPTION_EGLIBC_NSSWITCH */ -+ -+/* Bring in the statically initialized service table we generated at -+ build time. */ -+#include "fixed-nsswitch.h" -+ -+const static name_database *service_table = &fixed_name_database; -+ -+/* Nothing ever changes, so there's no need to lock anything. */ -+#define lock_nsswitch (0) -+#define unlock_nsswitch (0) -+ -+#endif /* __OPTION_EGLIBC_NSSWITCH */ -+ - - #ifdef USE_NSCD - /* Nonzero if this is the nscd process. */ -@@ -109,20 +136,22 @@ - const char *defconfig, service_user **ni) - { - /* Prevent multiple threads to change the service table. */ -- __libc_lock_lock (lock); -+ lock_nsswitch; - - /* Reconsider database variable in case some other thread called - `__nss_configure_lookup' while we waited for the lock. */ - if (*ni != NULL) - { -- __libc_lock_unlock (lock); -+ unlock_nsswitch; - return 0; - } - -+#if __OPTION_EGLIBC_NSSWITCH - /* Are we initialized yet? */ - if (service_table == NULL) - /* Read config file. */ - service_table = nss_parse_file (_PATH_NSSWITCH_CONF); -+#endif - - /* Test whether configuration data is available. */ - if (service_table != NULL) -@@ -144,6 +173,7 @@ - *ni = entry->service; - } - -+#if __OPTION_EGLIBC_NSSWITCH - /* No configuration data is available, either because nsswitch.conf - doesn't exist or because it doesn't have a line for this database. - -@@ -166,13 +196,23 @@ - { - entry->next = defconfig_entries; - entry->service = *ni; -- entry->name[0] = '\0'; -+ entry->name = ""; - defconfig_entries = entry; - } - } - } -+#else -+ /* Without the dynamic behavior, we can't process defconfig. The -+ databases the user specified at library build time are all you -+ get. */ -+ if (*ni == NULL) -+ { -+ unlock_nsswitch; -+ return -1; -+ } -+#endif - -- __libc_lock_unlock (lock); -+ unlock_nsswitch; - - return *ni != NULL ? 0 : -1; - } -@@ -252,6 +292,7 @@ - libc_hidden_def (__nss_next2) - - -+#if __OPTION_EGLIBC_NSSWITCH - int - attribute_compat_text_section - __nss_next (service_user **ni, const char *fct_name, void **fctp, int status, -@@ -300,13 +341,13 @@ - } - - /* Prevent multiple threads to change the service table. */ -- __libc_lock_lock (lock); -+ lock_nsswitch; - - /* Install new rules. */ - *databases[cnt].dbp = new_db; - __nss_database_custom[cnt] = true; - -- __libc_lock_unlock (lock); -+ unlock_nsswitch; - - return 0; - } -@@ -402,7 +443,7 @@ - void **found, *result; - - /* We now modify global data. Protect it. */ -- __libc_lock_lock (lock); -+ lock_nsswitch; - - /* Search the tree of functions previously requested. Data in the - tree are `known_function' structures, whose first member is a -@@ -413,7 +454,7 @@ - enough to a pointer to our structure to use as a lookup key that - will be passed to `known_compare' (above). */ - -- found = __tsearch (&fct_name, &ni->known, &known_compare); -+ found = __tsearch (&fct_name, &ni->known.tree, &known_compare); - if (found == NULL) - /* This means out-of-memory. */ - result = NULL; -@@ -440,7 +481,7 @@ - #endif - /* Oops. We can't instantiate this node properly. - Remove it from the tree. */ -- __tdelete (&fct_name, &ni->known, &known_compare); -+ __tdelete (&fct_name, &ni->known.tree, &known_compare); - free (known); - result = NULL; - } -@@ -520,13 +561,43 @@ - } - - /* Remove the lock. */ -- __libc_lock_unlock (lock); -+ unlock_nsswitch; - - return result; - } - libc_hidden_def (__nss_lookup_function) - - -+#else /* below if ! __OPTION_EGLIBC_NSSWITCH */ -+ -+ -+int -+__nss_configure_lookup (const char *dbname, const char *service_line) -+{ -+ /* We can't dynamically configure lookup without -+ OPTION_EGLIBC_NSSWITCH. */ -+ __set_errno (EINVAL); -+ return -1; -+} -+ -+ -+void * -+__nss_lookup_function (service_user *ni, const char *fct_name) -+{ -+ int i; -+ const known_function **known = ni->known.array; -+ -+ for (i = 0; known[i]; i++) -+ if (strcmp (fct_name, known[i]->fct_name) == 0) -+ return known[i]->fct_ptr; -+ -+ return NULL; -+} -+libc_hidden_def (__nss_lookup_function) -+#endif -+ -+ -+#if __OPTION_EGLIBC_NSSWITCH - static name_database * - internal_function - nss_parse_file (const char *fname) -@@ -632,8 +703,10 @@ - + (line - name + 1)); - if (new_service == NULL) - return result; -+ new_service->name = (char *) (new_service + 1); - -- *((char *) __mempcpy (new_service->name, name, line - name)) = '\0'; -+ *((char *) __mempcpy ((char *) new_service->name, name, line - name)) -+ = '\0'; - - /* Set default actions. */ - new_service->actions[2 + NSS_STATUS_TRYAGAIN] = NSS_ACTION_CONTINUE; -@@ -642,7 +715,7 @@ - new_service->actions[2 + NSS_STATUS_SUCCESS] = NSS_ACTION_RETURN; - new_service->actions[2 + NSS_STATUS_RETURN] = NSS_ACTION_RETURN; - new_service->library = NULL; -- new_service->known = NULL; -+ new_service->known.tree = NULL; - new_service->next = NULL; - - while (isspace (line[0])) -@@ -778,9 +851,10 @@ - result = (name_database_entry *) malloc (sizeof (name_database_entry) + len); - if (result == NULL) - return NULL; -+ result->name = (char *) (result + 1); - - /* Save the database name. */ -- memcpy (result->name, name, len); -+ memcpy ((char *) result->name, name, len); - - /* Parse the list of services. */ - result->service = nss_parse_service_list (line); -@@ -816,6 +890,7 @@ - return *currentp; - } - #endif -+#endif /* __OPTION_EGLIBC_NSSWITCH */ - - - #if defined SHARED && defined USE_NSCD -@@ -834,6 +909,7 @@ - } - - -+#if __OPTION_EGLIBC_INET - /* Called by nscd and nscd alone. */ - void - __nss_disable_nscd (void (*cb) (size_t, struct traced_file *)) -@@ -857,8 +933,10 @@ - __nss_not_use_nscd_services = -1; - __nss_not_use_nscd_netgroup = -1; - } -+#endif /* __OPTION_EGLIBC_INET */ - #endif - -+#if __OPTION_EGLIBC_NSSWITCH - static void - free_database_entries (name_database_entry *entry) - { -@@ -871,8 +949,8 @@ - { - service_user *olds = service; - -- if (service->known != NULL) -- __tdestroy (service->known, free); -+ if (service->known.tree != NULL) -+ __tdestroy (service->known.tree, free); - - service = service->next; - free (olds); -@@ -926,3 +1004,4 @@ - - free (top); - } -+#endif /* __OPTION_EGLIBC_NSSWITCH */ -Index: git/nss/nsswitch.h -=================================================================== ---- git.orig/nss/nsswitch.h 2014-08-29 20:00:53.012070587 -0700 -+++ git/nss/nsswitch.h 2014-08-29 20:01:15.220070587 -0700 -@@ -65,10 +65,20 @@ - lookup_actions actions[5]; - /* Link to the underlying library object. */ - service_library *library; -- /* Collection of known functions. */ -- void *known; -+ /* Collection of known functions. -+ -+ With OPTION_EGLIBC_NSSWITCH enabled, this is the root of a -+ 'tsearch'-style tree. -+ -+ With OPTION_EGLIBC_NSSWITCH disabled, this is an array of -+ pointers to known_function structures, NULL-terminated. */ -+ union -+ { -+ void *tree; -+ const known_function **array; -+ } known; - /* Name of the service (`files', `dns', `nis', ...). */ -- char name[0]; -+ const char *name; - } service_user; - - /* To access the action based on the status value use this macro. */ -@@ -82,7 +92,7 @@ - /* List of service to be used. */ - service_user *service; - /* Name of the database. */ -- char name[0]; -+ const char *name; - } name_database_entry; - - -Index: git/posix/bug-regex1.c -=================================================================== ---- git.orig/posix/bug-regex1.c 2014-08-29 20:00:53.184070587 -0700 -+++ git/posix/bug-regex1.c 2014-08-29 20:01:15.220070587 -0700 -@@ -4,6 +4,7 @@ - #include <string.h> - #include <regex.h> - #include <wchar.h> -+#include <gnu/option-groups.h> - - int - main (void) -@@ -17,7 +18,9 @@ - memset (®ex, '\0', sizeof (regex)); - - setlocale (LC_ALL, "de_DE.ISO-8859-1"); -+#if __OPTION_POSIX_WIDE_CHAR_DEVICE_IO - fwide (stdout, -1); -+#endif - - re_set_syntax (RE_SYNTAX_POSIX_EGREP | RE_DEBUG); - -Index: git/posix/bug-regex6.c -=================================================================== ---- git.orig/posix/bug-regex6.c 2014-08-29 20:00:53.204070587 -0700 -+++ git/posix/bug-regex6.c 2014-08-29 20:01:15.220070587 -0700 -@@ -22,6 +22,7 @@ - #include <string.h> - #include <sys/types.h> - #include <regex.h> -+#include <gnu/option-groups.h> - - - int -@@ -30,7 +31,12 @@ - regex_t re; - regmatch_t mat[10]; - int i, j, ret = 0; -- const char *locales[] = { "C", "de_DE.UTF-8" }; -+ const char *locales[] = { -+ "C", -+#if __OPTION_EGLIBC_LOCALE_CODE -+ "de_DE.UTF-8" -+#endif -+ }; - const char *string = "http://www.regex.com/pattern/matching.html#intro"; - regmatch_t expect[10] = { - { 0, 48 }, { 0, 5 }, { 0, 4 }, { 5, 20 }, { 7, 20 }, { 20, 42 }, -Index: git/posix/fnmatch.c -=================================================================== ---- git.orig/posix/fnmatch.c 2014-08-29 20:00:53.208070587 -0700 -+++ git/posix/fnmatch.c 2014-08-29 20:01:15.220070587 -0700 -@@ -30,6 +30,10 @@ - #include <ctype.h> - #include <string.h> - -+#if defined _LIBC -+# include <gnu/option-groups.h> -+#endif -+ - #if defined STDC_HEADERS || defined _LIBC - # include <stdlib.h> - #endif -@@ -131,7 +135,7 @@ - # define ISWCTYPE(WC, WT) iswctype (WC, WT) - # endif - --# if (HAVE_MBSTATE_T && HAVE_MBSRTOWCS) || _LIBC -+# if (HAVE_MBSTATE_T && HAVE_MBSRTOWCS) || (_LIBC && __OPTION_EGLIBC_LOCALE_CODE) - /* In this case we are implementing the multibyte character handling. */ - # define HANDLE_MULTIBYTE 1 - # endif -Index: git/posix/fnmatch_loop.c -=================================================================== ---- git.orig/posix/fnmatch_loop.c 2014-08-29 20:00:53.220070587 -0700 -+++ git/posix/fnmatch_loop.c 2014-08-29 20:01:15.220070587 -0700 -@@ -15,6 +15,8 @@ - License along with the GNU C Library; if not, see - <http://www.gnu.org/licenses/>. */ - -+#include <gnu/option-groups.h> -+ - #include <stdint.h> - - struct STRUCT -@@ -54,10 +56,15 @@ - const char *collseq = (const char *) - _NL_CURRENT(LC_COLLATE, _NL_COLLATE_COLLSEQWC); - # else -+# if __OPTION_EGLIBC_LOCALE_CODE - const UCHAR *collseq = (const UCHAR *) - _NL_CURRENT(LC_COLLATE, _NL_COLLATE_COLLSEQMB); --# endif --#endif -+# define COLLSEQ_BYTE_LOOKUP(ix) (collseq[(ix)]) -+# else -+# define COLLSEQ_BYTE_LOOKUP(ix) (ix) -+# endif /* __OPTION_EGLIBC_LOCALE_CODE */ -+# endif /* WIDE_CHAR_VERSION */ -+#endif /* _LIBC */ - - while ((c = *p++) != L('\0')) - { -@@ -277,7 +284,7 @@ - /* Leave room for the null. */ - CHAR str[CHAR_CLASS_MAX_LENGTH + 1]; - size_t c1 = 0; --#if defined _LIBC || (defined HAVE_WCTYPE_H && defined HAVE_WCHAR_H) -+#if defined _LIBC ? __OPTION_POSIX_C_LANG_WIDE_CHAR : (defined HAVE_WCTYPE_H && defined HAVE_WCHAR_H) - wctype_t wt; - #endif - const CHAR *startp = p; -@@ -307,7 +314,7 @@ - } - str[c1] = L('\0'); - --#if defined _LIBC || (defined HAVE_WCTYPE_H && defined HAVE_WCHAR_H) -+#if defined _LIBC ? __OPTION_POSIX_C_LANG_WIDE_CHAR : (defined HAVE_WCTYPE_H && defined HAVE_WCHAR_H) - wt = IS_CHAR_CLASS (str); - if (wt == 0) - /* Invalid character class name. */ -@@ -681,8 +688,10 @@ - else - lcollseq = __collseq_table_lookup (collseq, cold); - # else -- fcollseq = collseq[fn]; -- lcollseq = is_seqval ? cold : collseq[(UCHAR) cold]; -+ fcollseq = COLLSEQ_BYTE_LOOKUP (fn); -+ lcollseq = (is_seqval -+ ? cold -+ : COLLSEQ_BYTE_LOOKUP ((UCHAR) cold)); - # endif - - is_seqval = 0; -@@ -858,7 +867,7 @@ - goto matched; - } - # else -- hcollseq = collseq[cend]; -+ hcollseq = COLLSEQ_BYTE_LOOKUP (cend); - # endif - } - -Index: git/posix/glob.c -=================================================================== ---- git.orig/posix/glob.c 2014-08-29 20:00:53.232070587 -0700 -+++ git/posix/glob.c 2014-08-29 20:01:15.220070587 -0700 -@@ -25,6 +25,9 @@ - #include <sys/types.h> - #include <sys/stat.h> - #include <stddef.h> -+#ifdef _LIBC -+# include <gnu/option-groups.h> -+#endif - - /* Outcomment the following line for production quality code. */ - /* #define NDEBUG 1 */ -@@ -607,6 +610,7 @@ - if (home_dir == NULL || home_dir[0] == '\0') - home_dir = "c:/users/default"; /* poor default */ - # else -+# if ! _LIBC || __OPTION_EGLIBC_GETLOGIN - if (home_dir == NULL || home_dir[0] == '\0') - { - int success; -@@ -623,19 +627,19 @@ - if (success) - { - struct passwd *p; --# if defined HAVE_GETPWNAM_R || defined _LIBC -+# if defined HAVE_GETPWNAM_R || defined _LIBC - long int pwbuflen = GETPW_R_SIZE_MAX (); - char *pwtmpbuf; - struct passwd pwbuf; - int malloc_pwtmpbuf = 0; - int save = errno; - --# ifndef _LIBC -+# ifndef _LIBC - if (pwbuflen == -1) - /* `sysconf' does not support _SC_GETPW_R_SIZE_MAX. - Try a moderate value. */ - pwbuflen = 1024; --# endif -+# endif - if (__libc_use_alloca (alloca_used + pwbuflen)) - pwtmpbuf = alloca_account (pwbuflen, alloca_used); - else -@@ -682,9 +686,9 @@ - } - __set_errno (save); - } --# else -+# else - p = getpwnam (name); --# endif -+# endif - if (p != NULL) - { - if (!malloc_pwtmpbuf) -@@ -713,6 +717,7 @@ - } - } - } -+# endif /* ! _LIBC || __OPTION_EGLIBC_GETLOGIN */ - if (home_dir == NULL || home_dir[0] == '\0') - { - if (flags & GLOB_TILDE_CHECK) -Index: git/posix/Makefile -=================================================================== ---- git.orig/posix/Makefile 2014-08-29 20:00:53.160070587 -0700 -+++ git/posix/Makefile 2014-08-29 20:01:15.220070587 -0700 -@@ -18,6 +18,8 @@ - # - # Sub-makefile for POSIX portion of the library. - # -+include ../option-groups.mak -+ - subdir := posix - - include ../Makeconfig -@@ -43,13 +45,24 @@ - getpgid setpgid getpgrp bsd-getpgrp setpgrp getsid setsid \ - getresuid getresgid setresuid setresgid \ - pathconf sysconf fpathconf \ -- glob glob64 fnmatch regex \ -+ glob glob64 fnmatch \ - confstr \ - getopt getopt1 getopt_init \ - sched_setp sched_getp sched_sets sched_gets sched_yield sched_primax \ - sched_primin sched_rr_gi sched_getaffinity sched_setaffinity \ -- getaddrinfo gai_strerror wordexp \ - pread pwrite pread64 pwrite64 \ -+ posix_madvise \ -+ get_child_max sched_cpucount sched_cpualloc sched_cpufree -+ -+routines-$(OPTION_EGLIBC_INET) += getaddrinfo gai_strerror -+ -+ifeq (y,$(OPTION_POSIX_REGEXP_GLIBC)) -+routines-$(OPTION_POSIX_REGEXP) += regex -+else -+routines-$(OPTION_POSIX_REGEXP) += xregex -+endif -+ -+routines-$(OPTION_EGLIBC_SPAWN) += \ - spawn_faction_init spawn_faction_destroy spawn_faction_addclose \ - spawn_faction_addopen spawn_faction_adddup2 \ - spawnattr_init spawnattr_destroy \ -@@ -57,41 +70,53 @@ - spawnattr_getflags spawnattr_setflags \ - spawnattr_getpgroup spawnattr_setpgroup spawn spawnp spawni \ - spawnattr_getsigmask spawnattr_getschedpolicy spawnattr_getschedparam \ -- spawnattr_setsigmask spawnattr_setschedpolicy spawnattr_setschedparam \ -- posix_madvise \ -- get_child_max sched_cpucount sched_cpualloc sched_cpufree -+ spawnattr_setsigmask spawnattr_setschedpolicy spawnattr_setschedparam -+routines-$(OPTION_EGLIBC_WORDEXP) += wordexp - - aux := init-posix environ --tests := tstgetopt testfnm runtests runptests \ -+tests := tstgetopt testfnm runtests \ - tst-preadwrite tst-preadwrite64 test-vfork regexbug1 \ -- tst-getlogin tst-mmap tst-getaddrinfo tst-truncate \ -- tst-truncate64 tst-fork tst-fnmatch tst-regexloc tst-dir \ -- tst-chmod bug-regex1 bug-regex2 bug-regex3 bug-regex4 \ -- tst-gnuglob tst-regex bug-regex5 bug-regex6 bug-regex7 \ -- bug-regex8 bug-regex9 bug-regex10 bug-regex11 bug-regex12 \ -- bug-regex13 bug-regex14 bug-regex15 bug-regex16 \ -- bug-regex17 bug-regex18 bug-regex19 bug-regex20 \ -- bug-regex21 bug-regex22 bug-regex23 bug-regex24 \ -- bug-regex25 bug-regex26 bug-regex27 bug-regex28 \ -- bug-regex29 bug-regex30 bug-regex31 bug-regex32 \ -- bug-regex33 tst-nice tst-nanosleep tst-regex2 \ -- transbug tst-rxspencer tst-pcre tst-boost \ -- bug-ga1 tst-vfork1 tst-vfork2 tst-vfork3 tst-waitid \ -- tst-getaddrinfo2 bug-glob1 bug-glob2 bug-glob3 tst-sysconf \ -+ tst-getlogin tst-mmap tst-truncate \ -+ tst-truncate64 tst-fork tst-dir \ -+ tst-chmod bug-regex2 bug-regex3 bug-regex4 \ -+ tst-gnuglob bug-regex6 bug-regex7 \ -+ bug-regex8 bug-regex9 bug-regex10 bug-regex12 \ -+ bug-regex14 bug-regex15 \ -+ bug-regex21 bug-regex24 \ -+ bug-regex27 bug-regex28 bug-regex29 bug-regex30 \ -+ bug-regex31 \ -+ tst-nice tst-nanosleep \ -+ transbug \ -+ tst-vfork1 tst-vfork2 tst-vfork3 tst-waitid \ -+ bug-glob1 bug-glob2 bug-glob3 tst-sysconf \ - tst-execvp1 tst-execvp2 tst-execlp1 tst-execlp2 \ - tst-execv1 tst-execv2 tst-execl1 tst-execl2 \ - tst-execve1 tst-execve2 tst-execle1 tst-execle2 \ -- tst-execvp3 tst-execvp4 tst-rfc3484 tst-rfc3484-2 \ -- tst-rfc3484-3 \ -- tst-getaddrinfo3 tst-fnmatch2 tst-cpucount tst-cpuset \ -+ tst-execvp3 tst-execvp4 \ -+ tst-fnmatch2 tst-cpucount tst-cpuset \ - bug-getopt1 bug-getopt2 bug-getopt3 bug-getopt4 \ - bug-getopt5 tst-getopt_long1 bug-regex34 bug-regex35 \ - tst-pathconf tst-getaddrinfo4 tst-rxspencer-no-utf8 \ - tst-fnmatch3 bug-regex36 --xtests := bug-ga2 -+tests-$(OPTION_EGLIBC_LOCALE_CODE) \ -+ += tst-fnmatch tst-regexloc bug-regex1 bug-regex5 \ -+ bug-regex23 bug-regex25 bug-regex32 bug-regex33 -+tests-$(OPTION_EGLIBC_INET) \ -+ += tst-getaddrinfo bug-ga1 tst-getaddrinfo2 \ -+ tst-rfc3484 tst-rfc3484-2 tst-rfc3484-3 tst-getaddrinfo3 -+tests-$(OPTION_POSIX_REGEXP_GLIBC) \ -+ += runptests bug-regex11 bug-regex13 bug-regex16 \ -+ tst-regex2 tst-rxspencer tst-pcre tst-boost -+ifeq (yy,$(OPTION_EGLIBC_LOCALE_CODE)$(OPTION_POSIX_REGEXP_GLIBC)) -+tests += tst-regex bug-regex17 bug-regex18 bug-regex19 bug-regex20 \ -+ bug-regex22 bug-regex26 -+endif -+xtests-$(OPTION_EGLIBC_INET) += bug-ga2 - ifeq (yes,$(build-shared)) - test-srcs := globtest --tests += wordexp-test tst-exec tst-spawn -+tests += tst-exec -+tests-$(OPTION_EGLIBC_SPAWN) += tst-spawn -+tests-$(OPTION_EGLIBC_WORDEXP) += wordexp-test - endif - tests-static = tst-exec-static tst-spawn-static - tests += $(tests-static) -@@ -117,7 +142,10 @@ - - ifeq ($(run-built-tests),yes) - ifeq (yes,$(build-shared)) --tests-special += $(objpfx)globtest.out $(objpfx)wordexp-tst.out -+tests-special += $(objpfx)globtest.out -+ifeq (y,$(OPTION_EGLIBC_WORDEXP)) -+tests-special += $(objpfx)wordexp-tst.out -+endif - endif - endif - -@@ -125,12 +153,16 @@ - # XXX Please note that for now we ignore the result of this test. - tests-special += $(objpfx)annexc.out - ifeq ($(run-built-tests),yes) --tests-special += $(objpfx)bug-regex2-mem.out $(objpfx)bug-regex14-mem.out \ -+tests-special += $(objpfx)bug-regex2-mem.out \ - $(objpfx)bug-regex21-mem.out $(objpfx)bug-regex31-mem.out \ -- $(objpfx)tst-rxspencer-no-utf8-mem.out $(objpfx)tst-pcre-mem.out \ -- $(objpfx)tst-boost-mem.out $(objpfx)tst-getconf.out \ -+ $(objpfx)tst-getconf.out \ - $(objpfx)bug-glob2-mem.out $(objpfx)tst-vfork3-mem.out \ - $(objpfx)tst-fnmatch-mem.out $(objpfx)bug-regex36-mem.out -+ifeq (y,$(OPTION_POSIX_REGEXP_GLIBC)) -+tests-special += $(objpfx)bug-regex14-mem $(objpfx)tst-rxspencer-no-utf8-mem \ -+ $(objpfx)tst-pcre-mem $(objpfx)tst-boost-mem -+endif -+ - xtests-special += $(objpfx)bug-ga2-mem.out - endif - -@@ -143,6 +175,8 @@ - $(SHELL) $< $(common-objpfx) '$(test-via-rtld-prefix)' \ - '$(test-program-prefix)' '$(test-wrapper-env)'; \ - $(evaluate-test) -+LDLIBS-globtest += $(shell cat $(common-objpfx)nss/fixed-nsswitch-libs) -+ - $(objpfx)wordexp-tst.out: wordexp-tst.sh $(objpfx)wordexp-test - $(SHELL) $< $(common-objpfx) '$(test-program-prefix-before-env)' \ - '$(run-program-env)' '$(test-program-prefix-after-env)'; \ -@@ -205,7 +239,10 @@ - tst-chmod-ARGS = $(objdir) - tst-vfork3-ARGS = --test-dir=$(objpfx) - --tst-rxspencer-ARGS = --utf8 rxspencer/tests -+tst-rxspencer-ARGS = rxspencer/tests -+ifeq (y,$(OPTION_EGLIBC_LOCALE_CODE)) -+tst-rxspencer-ARGS += --utf8 -+endif - tst-rxspencer-no-utf8-ARGS = rxspencer/tests - tst-pcre-ARGS = PCRE.tests - tst-boost-ARGS = BOOST.tests -Index: git/posix/regcomp.c -=================================================================== ---- git.orig/posix/regcomp.c 2014-08-29 20:00:53.264070587 -0700 -+++ git/posix/regcomp.c 2014-08-29 20:01:15.224070587 -0700 -@@ -18,6 +18,7 @@ - <http://www.gnu.org/licenses/>. */ - - #include <stdint.h> -+#include <gnu/option-groups.h> - - static reg_errcode_t re_compile_internal (regex_t *preg, const char * pattern, - size_t length, reg_syntax_t syntax); -@@ -305,7 +306,7 @@ - { - re_dfa_t *dfa = (re_dfa_t *) bufp->buffer; - int node_cnt; -- int icase = (dfa->mb_cur_max == 1 && (bufp->syntax & RE_ICASE)); -+ int icase = (dfa_mb_cur_max (dfa) == 1 && (bufp->syntax & RE_ICASE)); - for (node_cnt = 0; node_cnt < init_state->nodes.nelem; ++node_cnt) - { - int node = init_state->nodes.elems[node_cnt]; -@@ -315,9 +316,9 @@ - { - re_set_fastmap (fastmap, icase, dfa->nodes[node].opr.c); - #ifdef RE_ENABLE_I18N -- if ((bufp->syntax & RE_ICASE) && dfa->mb_cur_max > 1) -+ if ((bufp->syntax & RE_ICASE) && dfa_mb_cur_max (dfa) > 1) - { -- unsigned char *buf = alloca (dfa->mb_cur_max), *p; -+ unsigned char *buf = alloca (dfa_mb_cur_max (dfa)), *p; - wchar_t wc; - mbstate_t state; - -@@ -348,7 +349,11 @@ - re_set_fastmap (fastmap, icase, ch); - } - } --#ifdef RE_ENABLE_I18N -+ -+ /* When OPTION_EGLIBC_LOCALE_CODE is disabled, the current -+ locale is always C, which has no rules and no multi-byte -+ characters. */ -+#if defined RE_ENABLE_I18N && __OPTION_EGLIBC_LOCALE_CODE - else if (type == COMPLEX_BRACKET) - { - re_charset_t *cset = dfa->nodes[node].opr.mbcset; -@@ -376,7 +381,7 @@ - i.e. where we would not find an invalid sequence. This only - applies to multibyte character sets; for single byte character - sets, the SIMPLE_BRACKET again suffices. */ -- if (dfa->mb_cur_max > 1 -+ if (dfa_mb_cur_max (dfa) > 1 - && (cset->nchar_classes || cset->non_match || cset->nranges - # ifdef _LIBC - || cset->nequiv_classes -@@ -404,7 +409,7 @@ - memset (&state, '\0', sizeof (state)); - if (__wcrtomb (buf, cset->mbchars[i], &state) != (size_t) -1) - re_set_fastmap (fastmap, icase, *(unsigned char *) buf); -- if ((bufp->syntax & RE_ICASE) && dfa->mb_cur_max > 1) -+ if ((bufp->syntax & RE_ICASE) && dfa_mb_cur_max (dfa) > 1) - { - if (__wcrtomb (buf, towlower (cset->mbchars[i]), &state) - != (size_t) -1) -@@ -413,7 +418,7 @@ - } - } - } --#endif /* RE_ENABLE_I18N */ -+#endif /* RE_ENABLE_I18N && __OPTION_EGLIBC_LOCALE_CODE */ - else if (type == OP_PERIOD - #ifdef RE_ENABLE_I18N - || type == OP_UTF8_PERIOD -@@ -856,11 +861,15 @@ - - dfa->mb_cur_max = MB_CUR_MAX; - #ifdef _LIBC -- if (dfa->mb_cur_max == 6 -+ if (dfa_mb_cur_max (dfa) == 6 - && strcmp (_NL_CURRENT (LC_CTYPE, _NL_CTYPE_CODESET_NAME), "UTF-8") == 0) - dfa->is_utf8 = 1; -+# if __OPTION_EGLIBC_LOCALE_CODE - dfa->map_notascii = (_NL_CURRENT_WORD (LC_CTYPE, _NL_CTYPE_MAP_TO_NONASCII) - != 0); -+# else -+ dfa->map_notascii = 0; -+# endif - #else - # ifdef HAVE_LANGINFO_CODESET - codeset_name = nl_langinfo (CODESET); -@@ -886,7 +895,7 @@ - #endif - - #ifdef RE_ENABLE_I18N -- if (dfa->mb_cur_max > 1) -+ if (dfa_mb_cur_max (dfa) > 1) - { - if (dfa->is_utf8) - dfa->sb_char = (re_bitset_ptr_t) utf8_sb_map; -@@ -1784,7 +1793,7 @@ - token->word_char = 0; - #ifdef RE_ENABLE_I18N - token->mb_partial = 0; -- if (input->mb_cur_max > 1 && -+ if (string_mb_cur_max (input) > 1 && - !re_string_first_byte (input, re_string_cur_idx (input))) - { - token->type = CHARACTER; -@@ -1805,7 +1814,7 @@ - token->opr.c = c2; - token->type = CHARACTER; - #ifdef RE_ENABLE_I18N -- if (input->mb_cur_max > 1) -+ if (string_mb_cur_max (input) > 1) - { - wint_t wc = re_string_wchar_at (input, - re_string_cur_idx (input) + 1); -@@ -1919,7 +1928,7 @@ - - token->type = CHARACTER; - #ifdef RE_ENABLE_I18N -- if (input->mb_cur_max > 1) -+ if (string_mb_cur_max (input) > 1) - { - wint_t wc = re_string_wchar_at (input, re_string_cur_idx (input)); - token->word_char = IS_WIDE_WORD_CHAR (wc) != 0; -@@ -2019,7 +2028,7 @@ - token->opr.c = c; - - #ifdef RE_ENABLE_I18N -- if (input->mb_cur_max > 1 && -+ if (string_mb_cur_max (input) > 1 && - !re_string_first_byte (input, re_string_cur_idx (input))) - { - token->type = CHARACTER; -@@ -2242,7 +2251,7 @@ - return NULL; - } - #ifdef RE_ENABLE_I18N -- if (dfa->mb_cur_max > 1) -+ if (dfa_mb_cur_max (dfa) > 1) - { - while (!re_string_eoi (regexp) - && !re_string_first_byte (regexp, re_string_cur_idx (regexp))) -@@ -2380,7 +2389,7 @@ - *err = REG_ESPACE; - return NULL; - } -- if (dfa->mb_cur_max > 1) -+ if (dfa_mb_cur_max (dfa) > 1) - dfa->has_mb_node = 1; - break; - case OP_WORD: -@@ -2686,7 +2695,7 @@ - However, for !_LIBC we have no collation elements: if the - character set is single byte, the single byte character set - that we build below suffices. parse_bracket_exp passes -- no MBCSET if dfa->mb_cur_max == 1. */ -+ no MBCSET if dfa_mb_cur_max (dfa) == 1. */ - if (mbcset) - { - /* Check the space of the arrays. */ -@@ -2782,7 +2791,13 @@ - reg_syntax_t syntax, reg_errcode_t *err) - { - #ifdef _LIBC -+#if __OPTION_EGLIBC_LOCALE_CODE - const unsigned char *collseqmb; -+# define COLLSEQMB_LOOKUP(ix) (collseqmb[(ix)]) -+#else -+# define COLLSEQMB_LOOKUP(ix) (ix) -+#endif -+ - const char *collseqwc; - uint32_t nrules; - int32_t table_size; -@@ -2830,18 +2845,20 @@ - if (MB_CUR_MAX == 1) - */ - if (nrules == 0) -- return collseqmb[br_elem->opr.ch]; -+ return COLLSEQMB_LOOKUP (br_elem->opr.ch); - else - { - wint_t wc = __btowc (br_elem->opr.ch); - return __collseq_table_lookup (collseqwc, wc); - } - } -+#if __OPTION_EGLIBC_LOCALE_CODE - else if (br_elem->type == MB_CHAR) - { - if (nrules != 0) - return __collseq_table_lookup (collseqwc, br_elem->opr.wch); - } -+#endif - else if (br_elem->type == COLL_SYM) - { - size_t sym_name_len = strlen ((char *) br_elem->opr.name); -@@ -2872,11 +2889,11 @@ - { - /* No valid character. Match it as a single byte - character. */ -- return collseqmb[br_elem->opr.name[0]]; -+ return COLLSEQMB_LOOKUP (br_elem->opr.name[0]); - } - } - else if (sym_name_len == 1) -- return collseqmb[br_elem->opr.name[0]]; -+ return COLLSEQMB_LOOKUP (br_elem->opr.name[0]); - } - return UINT_MAX; - } -@@ -2916,7 +2933,7 @@ - However, if we have no collation elements, and the character set - is single byte, the single byte character set that we - build below suffices. */ -- if (nrules > 0 || dfa->mb_cur_max > 1) -+ if (nrules > 0 || dfa_mb_cur_max (dfa) > 1) - { - /* Check the space of the arrays. */ - if (BE (*range_alloc == mbcset->nranges, 0)) -@@ -2953,7 +2970,7 @@ - if (MB_CUR_MAX == 1) - */ - if (nrules == 0) -- ch_collseq = collseqmb[ch]; -+ ch_collseq = COLLSEQMB_LOOKUP (ch); - else - ch_collseq = __collseq_table_lookup (collseqwc, __btowc (ch)); - if (start_collseq <= ch_collseq && ch_collseq <= end_collseq) -@@ -3031,7 +3048,10 @@ - re_bitset_ptr_t sbcset; - #ifdef RE_ENABLE_I18N - re_charset_t *mbcset; -- int coll_sym_alloc = 0, range_alloc = 0, mbchar_alloc = 0; -+ int coll_sym_alloc = 0, range_alloc = 0; -+#if __OPTION_EGLIBC_LOCALE_CODE -+ int mbchar_alloc = 0; -+#endif - int equiv_class_alloc = 0, char_class_alloc = 0; - #endif /* not RE_ENABLE_I18N */ - int non_match = 0; -@@ -3039,9 +3059,15 @@ - int token_len; - int first_round = 1; - #ifdef _LIBC -+#if __OPTION_EGLIBC_LOCALE_CODE - collseqmb = (const unsigned char *) - _NL_CURRENT (LC_COLLATE, _NL_COLLATE_COLLSEQMB); - nrules = _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_NRULES); -+#else -+ /* This is true when OPTION_EGLIBC_LOCALE_CODE is disabled, but the -+ compiler can't figure that out. */ -+ nrules = 0; -+#endif - if (nrules) - { - /* -@@ -3169,7 +3195,7 @@ - #else - # ifdef RE_ENABLE_I18N - *err = build_range_exp (sbcset, -- dfa->mb_cur_max > 1 ? mbcset : NULL, -+ dfa_mb_cur_max (dfa) > 1 ? mbcset : NULL, - &range_alloc, &start_elem, &end_elem); - # else - *err = build_range_exp (sbcset, &start_elem, &end_elem); -@@ -3185,7 +3211,7 @@ - case SB_CHAR: - bitset_set (sbcset, start_elem.opr.ch); - break; --#ifdef RE_ENABLE_I18N -+#if defined RE_ENABLE_I18N && __OPTION_EGLIBC_LOCALE_CODE - case MB_CHAR: - /* Check whether the array has enough space. */ - if (BE (mbchar_alloc == mbcset->nmbchars, 0)) -@@ -3203,7 +3229,7 @@ - } - mbcset->mbchars[mbcset->nmbchars++] = start_elem.opr.wch; - break; --#endif /* RE_ENABLE_I18N */ -+#endif /* RE_ENABLE_I18N && __OPTION_EGLIBC_LOCALE_CODE */ - case EQUIV_CLASS: - *err = build_equiv_class (sbcset, - #ifdef RE_ENABLE_I18N -@@ -3253,11 +3279,11 @@ - - #ifdef RE_ENABLE_I18N - /* Ensure only single byte characters are set. */ -- if (dfa->mb_cur_max > 1) -+ if (dfa_mb_cur_max (dfa) > 1) - bitset_mask (sbcset, dfa->sb_char); - - if (mbcset->nmbchars || mbcset->ncoll_syms || mbcset->nequiv_classes -- || mbcset->nranges || (dfa->mb_cur_max > 1 && (mbcset->nchar_classes -+ || mbcset->nranges || (dfa_mb_cur_max (dfa) > 1 && (mbcset->nchar_classes - || mbcset->non_match))) - { - bin_tree_t *mbc_tree; -@@ -3326,7 +3352,7 @@ - re_token_t *token, int token_len, re_dfa_t *dfa, - reg_syntax_t syntax, int accept_hyphen) - { --#ifdef RE_ENABLE_I18N -+#if defined RE_ENABLE_I18N && __OPTION_EGLIBC_LOCALE_CODE - int cur_char_size; - cur_char_size = re_string_char_size_at (regexp, re_string_cur_idx (regexp)); - if (cur_char_size > 1) -@@ -3336,7 +3362,7 @@ - re_string_skip_bytes (regexp, cur_char_size); - return REG_NOERROR; - } --#endif /* RE_ENABLE_I18N */ -+#endif /* RE_ENABLE_I18N && __OPTION_EGLIBC_LOCALE_CODE */ - re_string_skip_bytes (regexp, token_len); /* Skip a token. */ - if (token->type == OP_OPEN_COLL_ELEM || token->type == OP_OPEN_CHAR_CLASS - || token->type == OP_OPEN_EQUIV_CLASS) -@@ -3416,7 +3442,9 @@ - build_equiv_class (bitset_t sbcset, const unsigned char *name) - #endif /* not RE_ENABLE_I18N */ - { --#ifdef _LIBC -+ /* When __OPTION_EGLIBC_LOCALE_CODE is disabled, only the C locale -+ is supported; it has no collation rules. */ -+#if defined _LIBC && __OPTION_EGLIBC_LOCALE_CODE - uint32_t nrules = _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_NRULES); - if (nrules != 0) - { -@@ -3488,7 +3516,7 @@ - mbcset->equiv_classes[mbcset->nequiv_classes++] = idx1; - } - else --#endif /* _LIBC */ -+#endif /* _LIBC && __OPTION_EGLIBC_LOCALE_CODE */ - { - if (BE (strlen ((const char *) name) != 1, 0)) - return REG_ECOLLATE; -@@ -3522,7 +3550,7 @@ - && (strcmp (name, "upper") == 0 || strcmp (name, "lower") == 0)) - name = "alpha"; - --#ifdef RE_ENABLE_I18N -+#if defined RE_ENABLE_I18N && __OPTION_EGLIBC_LOCALE_CODE - /* Check the space of the arrays. */ - if (BE (*char_class_alloc == mbcset->nchar_classes, 0)) - { -@@ -3538,7 +3566,7 @@ - *char_class_alloc = new_char_class_alloc; - } - mbcset->char_classes[mbcset->nchar_classes++] = __wctype (name); --#endif /* RE_ENABLE_I18N */ -+#endif /* RE_ENABLE_I18N && __OPTION_EGLIBC_LOCALE_CODE */ - - #define BUILD_CHARCLASS_LOOP(ctype_func) \ - do { \ -@@ -3649,7 +3677,7 @@ - - #ifdef RE_ENABLE_I18N - /* Ensure only single byte characters are set. */ -- if (dfa->mb_cur_max > 1) -+ if (dfa_mb_cur_max (dfa) > 1) - bitset_mask (sbcset, dfa->sb_char); - #endif - -@@ -3661,7 +3689,7 @@ - goto build_word_op_espace; - - #ifdef RE_ENABLE_I18N -- if (dfa->mb_cur_max > 1) -+ if (dfa_mb_cur_max (dfa) > 1) - { - bin_tree_t *mbc_tree; - /* Build a tree for complex bracket. */ -Index: git/posix/regexec.c -=================================================================== ---- git.orig/posix/regexec.c 2014-08-29 20:00:53.268070587 -0700 -+++ git/posix/regexec.c 2014-08-29 20:01:15.224070587 -0700 -@@ -18,6 +18,7 @@ - <http://www.gnu.org/licenses/>. */ - - #include <stdint.h> -+#include <gnu/option-groups.h> - - static reg_errcode_t match_ctx_init (re_match_context_t *cache, int eflags, - int n) internal_function; -@@ -186,11 +187,11 @@ - static int check_node_accept_bytes (const re_dfa_t *dfa, int node_idx, - const re_string_t *input, int idx) - internal_function; --# ifdef _LIBC -+# if defined _LIBC && __OPTION_EGLIBC_LOCALE_CODE - static unsigned int find_collation_sequence_value (const unsigned char *mbs, - size_t name_len) - internal_function; --# endif /* _LIBC */ -+# endif /* _LIBC && __OPTION_EGLIBC_LOCALE_CODE */ - #endif /* RE_ENABLE_I18N */ - static int group_nodes_into_DFAstates (const re_dfa_t *dfa, - const re_dfastate_t *state, -@@ -255,25 +256,9 @@ - return err != REG_NOERROR; - } - --#ifdef _LIBC --# include <shlib-compat.h> --versioned_symbol (libc, __regexec, regexec, GLIBC_2_3_4); -- --# if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_3_4) --__typeof__ (__regexec) __compat_regexec; -- --int --attribute_compat_text_section --__compat_regexec (const regex_t *__restrict preg, -- const char *__restrict string, size_t nmatch, -- regmatch_t pmatch[], int eflags) --{ -- return regexec (preg, string, nmatch, pmatch, -- eflags & (REG_NOTBOL | REG_NOTEOL)); --} --compat_symbol (libc, __compat_regexec, regexec, GLIBC_2_0); --# endif --#endif -+/* EGLIBC: The code that used to be here was move to a separate file -+ so that it can be shared with xregex.c. */ -+#include "regexec-compat.c" - - /* Entry points for GNU code. */ - -@@ -728,7 +713,7 @@ - incr = (range < 0) ? -1 : 1; - left_lim = (range < 0) ? start + range : start; - right_lim = (range < 0) ? start : start + range; -- sb = dfa->mb_cur_max == 1; -+ sb = dfa_mb_cur_max (dfa) == 1; - match_kind = - (fastmap - ? ((sb || !(preg->syntax & RE_ICASE || t) ? 4 : 0) -@@ -3448,7 +3433,7 @@ - if (BE (dest_states_word[i] == NULL && err != REG_NOERROR, 0)) - goto out_free; - -- if (dest_states[i] != dest_states_word[i] && dfa->mb_cur_max > 1) -+ if (dest_states[i] != dest_states_word[i] && dfa_mb_cur_max (dfa) > 1) - need_word_trtable = 1; - - dest_states_nl[i] = re_acquire_state_context (&err, dfa, &follows, -@@ -3590,7 +3575,7 @@ - else if (type == OP_PERIOD) - { - #ifdef RE_ENABLE_I18N -- if (dfa->mb_cur_max > 1) -+ if (dfa_mb_cur_max (dfa) > 1) - bitset_merge (accepts, dfa->sb_char); - else - #endif -@@ -3641,7 +3626,7 @@ - continue; - } - #ifdef RE_ENABLE_I18N -- if (dfa->mb_cur_max > 1) -+ if (dfa_mb_cur_max (dfa) > 1) - for (j = 0; j < BITSET_WORDS; ++j) - any_set |= (accepts[j] &= (dfa->word_char[j] | ~dfa->sb_char[j])); - else -@@ -3660,7 +3645,7 @@ - continue; - } - #ifdef RE_ENABLE_I18N -- if (dfa->mb_cur_max > 1) -+ if (dfa_mb_cur_max (dfa) > 1) - for (j = 0; j < BITSET_WORDS; ++j) - any_set |= (accepts[j] &= ~(dfa->word_char[j] & dfa->sb_char[j])); - else -@@ -3832,12 +3817,6 @@ - if (node->type == COMPLEX_BRACKET) - { - const re_charset_t *cset = node->opr.mbcset; --# ifdef _LIBC -- const unsigned char *pin -- = ((const unsigned char *) re_string_get_buffer (input) + str_idx); -- int j; -- uint32_t nrules; --# endif /* _LIBC */ - int match_len = 0; - wchar_t wc = ((cset->nranges || cset->nchar_classes || cset->nmbchars) - ? re_string_wchar_at (input, str_idx) : 0); -@@ -3849,6 +3828,7 @@ - match_len = char_len; - goto check_node_accept_bytes_match; - } -+#if __OPTION_EGLIBC_LOCALE_CODE - /* match with character_class? */ - for (i = 0; i < cset->nchar_classes; ++i) - { -@@ -3859,8 +3839,16 @@ - goto check_node_accept_bytes_match; - } - } -+#endif -+ -+ /* When __OPTION_EGLIBC_LOCALE_CODE is disabled, only the C -+ locale is supported; it has no collation rules. */ -+# if defined _LIBC && __OPTION_EGLIBC_LOCALE_CODE -+ const unsigned char *pin -+ = ((const unsigned char *) re_string_get_buffer (input) + str_idx); -+ int j; -+ uint32_t nrules; - --# ifdef _LIBC - nrules = _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_NRULES); - if (nrules != 0) - { -@@ -3953,8 +3941,12 @@ - } - } - else --# endif /* _LIBC */ -+# endif /* _LIBC && __OPTION_EGLIBC_LOCALE_CODE */ - { -+ /* In the _LIBC version, if OPTION_EGLIBC_LOCALE_CODE is -+ disabled, there can be no multibyte range endpoints, and -+ cset->nranges is always zero. */ -+#if __OPTION_EGLIBC_LOCALE_CODE - /* match with range expression? */ - #if __GNUC__ >= 2 - wchar_t cmp_buf[] = {L'\0', L'\0', wc, L'\0', L'\0', L'\0'}; -@@ -3973,6 +3965,7 @@ - goto check_node_accept_bytes_match; - } - } -+#endif /* __OPTION_EGLIBC_LOCALE_CODE */ - } - check_node_accept_bytes_match: - if (!cset->non_match) -@@ -3988,7 +3981,7 @@ - return 0; - } - --# ifdef _LIBC -+# if defined _LIBC && __OPTION_EGLIBC_LOCALE_CODE - static unsigned int - internal_function - find_collation_sequence_value (const unsigned char *mbs, size_t mbs_len) -@@ -4046,7 +4039,7 @@ - return UINT_MAX; - } - } --# endif /* _LIBC */ -+# endif /* _LIBC && __OPTION_EGLIBC_LOCALE_CODE */ - #endif /* RE_ENABLE_I18N */ - - /* Check whether the node accepts the byte which is IDX-th -@@ -4137,7 +4130,7 @@ - if (pstr->icase) - { - #ifdef RE_ENABLE_I18N -- if (pstr->mb_cur_max > 1) -+ if (string_mb_cur_max (pstr) > 1) - { - ret = build_wcs_upper_buffer (pstr); - if (BE (ret != REG_NOERROR, 0)) -@@ -4150,7 +4143,7 @@ - else - { - #ifdef RE_ENABLE_I18N -- if (pstr->mb_cur_max > 1) -+ if (string_mb_cur_max (pstr) > 1) - build_wcs_buffer (pstr); - else - #endif /* RE_ENABLE_I18N */ -Index: git/posix/regexec-compat.c -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ git/posix/regexec-compat.c 2014-08-29 20:01:15.224070587 -0700 -@@ -0,0 +1,39 @@ -+/* Extended regular expression matching and search library. -+ Copyright (C) 2008 Free Software Foundation, Inc. -+ This file is part of the GNU C Library. -+ Contributed by Isamu Hasegawa <isamu@yamato.ibm.com>. -+ -+ The GNU C Library is free software; you can redistribute it and/or -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 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 -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, write to the Free -+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -+ 02111-1307 USA. */ -+ -+#ifdef _LIBC -+# include <shlib-compat.h> -+versioned_symbol (libc, __regexec, regexec, GLIBC_2_3_4); -+ -+# if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_3_4) -+__typeof__ (__regexec) __compat_regexec; -+ -+int -+attribute_compat_text_section -+__compat_regexec (const regex_t *__restrict preg, -+ const char *__restrict string, size_t nmatch, -+ regmatch_t pmatch[], int eflags) -+{ -+ return regexec (preg, string, nmatch, pmatch, -+ eflags & (REG_NOTBOL | REG_NOTEOL)); -+} -+compat_symbol (libc, __compat_regexec, regexec, GLIBC_2_0); -+# endif -+#endif -Index: git/posix/regex.h -=================================================================== ---- git.orig/posix/regex.h 2014-08-29 20:00:53.264070587 -0700 -+++ git/posix/regex.h 2014-08-29 20:01:15.224070587 -0700 -@@ -21,6 +21,7 @@ - #define _REGEX_H 1 - - #include <sys/types.h> -+#include <gnu/option-groups.h> - - /* Allow the use in C++ code. */ - #ifdef __cplusplus -@@ -156,6 +157,8 @@ - treated as 'a\{1'. */ - # define RE_INVALID_INTERVAL_ORD (RE_DEBUG << 1) - -+/* EGLIBC: Old regex implementation does not support these. */ -+# ifdef __OPTION_POSIX_REGEXP_GLIBC - /* If this bit is set, then ignore case when matching. - If not set, then case is significant. */ - # define RE_ICASE (RE_INVALID_INTERVAL_ORD << 1) -@@ -172,6 +175,7 @@ - /* If this bit is set, then no_sub will be set to 1 during - re_compile_pattern. */ - # define RE_NO_SUB (RE_CONTEXT_INVALID_DUP << 1) -+# endif /* __OPTION_POSIX_REGEXP_GLIBC */ - #endif - - /* This global variable defines the particular regexp syntax to use (for -@@ -231,8 +235,13 @@ - (RE_CHAR_CLASSES | RE_DOT_NEWLINE | RE_DOT_NOT_NULL \ - | RE_INTERVALS | RE_NO_EMPTY_RANGES) - -+#ifdef __OPTION_POSIX_REGEXP_GLIBC - #define RE_SYNTAX_POSIX_BASIC \ - (_RE_SYNTAX_POSIX_COMMON | RE_BK_PLUS_QM | RE_CONTEXT_INVALID_DUP) -+#else -+#define RE_SYNTAX_POSIX_BASIC \ -+ (_RE_SYNTAX_POSIX_COMMON | RE_BK_PLUS_QM) -+#endif - - /* Differs from ..._POSIX_BASIC only in that RE_BK_PLUS_QM becomes - RE_LIMITED_OPS, i.e., \? \+ \| are not recognized. Actually, this -@@ -298,9 +307,11 @@ - /* Like REG_NOTBOL, except for the end-of-line. */ - #define REG_NOTEOL (1 << 1) - -+#ifdef __OPTION_POSIX_REGEXP_GLIBC - /* Use PMATCH[0] to delimit the start and end of the search in the - buffer. */ - #define REG_STARTEND (1 << 2) -+#endif - - - /* If any error codes are removed, changed, or added, update the -Index: git/posix/regex_internal.c -=================================================================== ---- git.orig/posix/regex_internal.c 2014-08-29 20:00:53.264070587 -0700 -+++ git/posix/regex_internal.c 2014-08-29 20:01:15.224070587 -0700 -@@ -43,8 +43,8 @@ - int init_buf_len; - - /* Ensure at least one character fits into the buffers. */ -- if (init_len < dfa->mb_cur_max) -- init_len = dfa->mb_cur_max; -+ if (init_len < dfa_mb_cur_max (dfa)) -+ init_len = dfa_mb_cur_max (dfa); - init_buf_len = (len + 1 < init_len) ? len + 1: init_len; - re_string_construct_common (str, len, pstr, trans, icase, dfa); - -@@ -55,7 +55,7 @@ - pstr->word_char = dfa->word_char; - pstr->word_ops_used = dfa->word_ops_used; - pstr->mbs = pstr->mbs_allocated ? pstr->mbs : (unsigned char *) str; -- pstr->valid_len = (pstr->mbs_allocated || dfa->mb_cur_max > 1) ? 0 : len; -+ pstr->valid_len = (pstr->mbs_allocated || dfa_mb_cur_max (dfa) > 1) ? 0 : len; - pstr->valid_raw_len = pstr->valid_len; - return REG_NOERROR; - } -@@ -82,7 +82,7 @@ - if (icase) - { - #ifdef RE_ENABLE_I18N -- if (dfa->mb_cur_max > 1) -+ if (dfa_mb_cur_max (dfa) > 1) - { - while (1) - { -@@ -91,7 +91,7 @@ - return ret; - if (pstr->valid_raw_len >= len) - break; -- if (pstr->bufs_len > pstr->valid_len + dfa->mb_cur_max) -+ if (pstr->bufs_len > pstr->valid_len + dfa_mb_cur_max (dfa)) - break; - ret = re_string_realloc_buffers (pstr, pstr->bufs_len * 2); - if (BE (ret != REG_NOERROR, 0)) -@@ -105,7 +105,7 @@ - else - { - #ifdef RE_ENABLE_I18N -- if (dfa->mb_cur_max > 1) -+ if (dfa_mb_cur_max (dfa) > 1) - build_wcs_buffer (pstr); - else - #endif /* RE_ENABLE_I18N */ -@@ -130,7 +130,7 @@ - re_string_realloc_buffers (re_string_t *pstr, int new_buf_len) - { - #ifdef RE_ENABLE_I18N -- if (pstr->mb_cur_max > 1) -+ if (string_mb_cur_max (pstr) > 1) - { - wint_t *new_wcs; - -@@ -177,7 +177,7 @@ - pstr->trans = trans; - pstr->icase = icase ? 1 : 0; - pstr->mbs_allocated = (trans != NULL || icase); -- pstr->mb_cur_max = dfa->mb_cur_max; -+ pstr->mb_cur_max = dfa_mb_cur_max (dfa); - pstr->is_utf8 = dfa->is_utf8; - pstr->map_notascii = dfa->map_notascii; - pstr->stop = pstr->len; -@@ -203,7 +203,7 @@ - { - #ifdef _LIBC - unsigned char buf[MB_LEN_MAX]; -- assert (MB_LEN_MAX >= pstr->mb_cur_max); -+ assert (MB_LEN_MAX >= string_mb_cur_max (pstr)); - #else - unsigned char buf[64]; - #endif -@@ -226,7 +226,7 @@ - { - int i, ch; - -- for (i = 0; i < pstr->mb_cur_max && i < remain_len; ++i) -+ for (i = 0; i < string_mb_cur_max (pstr) && i < remain_len; ++i) - { - ch = pstr->raw_mbs [pstr->raw_mbs_idx + byte_idx + i]; - buf[i] = pstr->mbs[byte_idx + i] = pstr->trans[ch]; -@@ -275,7 +275,7 @@ - size_t mbclen; - #ifdef _LIBC - char buf[MB_LEN_MAX]; -- assert (MB_LEN_MAX >= pstr->mb_cur_max); -+ assert (MB_LEN_MAX >= string_mb_cur_max (pstr)); - #else - char buf[64]; - #endif -@@ -369,7 +369,7 @@ - { - int i, ch; - -- for (i = 0; i < pstr->mb_cur_max && i < remain_len; ++i) -+ for (i = 0; i < string_mb_cur_max (pstr) && i < remain_len; ++i) - { - ch = pstr->raw_mbs [pstr->raw_mbs_idx + src_idx + i]; - buf[i] = pstr->trans[ch]; -@@ -567,8 +567,9 @@ - } - - /* This function re-construct the buffers. -- Concretely, convert to wide character in case of pstr->mb_cur_max > 1, -- convert to upper case in case of REG_ICASE, apply translation. */ -+ Concretely, convert to wide character in case of -+ string_mb_cur_max (pstr) > 1, convert to upper case in case of -+ REG_ICASE, apply translation. */ - - static reg_errcode_t - internal_function __attribute_warn_unused_result__ -@@ -579,7 +580,7 @@ - { - /* Reset buffer. */ - #ifdef RE_ENABLE_I18N -- if (pstr->mb_cur_max > 1) -+ if (string_mb_cur_max (pstr) > 1) - memset (&pstr->cur_state, '\0', sizeof (mbstate_t)); - #endif /* RE_ENABLE_I18N */ - pstr->len = pstr->raw_len; -@@ -670,7 +671,7 @@ - pstr->tip_context = re_string_context_at (pstr, offset - 1, - eflags); - #ifdef RE_ENABLE_I18N -- if (pstr->mb_cur_max > 1) -+ if (string_mb_cur_max (pstr) > 1) - memmove (pstr->wcs, pstr->wcs + offset, - (pstr->valid_len - offset) * sizeof (wint_t)); - #endif /* RE_ENABLE_I18N */ -@@ -699,7 +700,7 @@ - #endif - pstr->valid_len = 0; - #ifdef RE_ENABLE_I18N -- if (pstr->mb_cur_max > 1) -+ if (string_mb_cur_max (pstr) > 1) - { - int wcs_idx; - wint_t wc = WEOF; -@@ -711,7 +712,7 @@ - /* Special case UTF-8. Multi-byte chars start with any - byte other than 0x80 - 0xbf. */ - raw = pstr->raw_mbs + pstr->raw_mbs_idx; -- end = raw + (offset - pstr->mb_cur_max); -+ end = raw + (offset - string_mb_cur_max (pstr)); - if (end < pstr->raw_mbs) - end = pstr->raw_mbs; - p = raw + offset - 1; -@@ -803,7 +804,7 @@ - - /* Then build the buffers. */ - #ifdef RE_ENABLE_I18N -- if (pstr->mb_cur_max > 1) -+ if (string_mb_cur_max (pstr) > 1) - { - if (pstr->icase) - { -@@ -841,7 +842,7 @@ - return re_string_peek_byte (pstr, idx); - - #ifdef RE_ENABLE_I18N -- if (pstr->mb_cur_max > 1 -+ if (string_mb_cur_max (pstr) > 1 - && ! re_string_is_single_byte_char (pstr, pstr->cur_idx + idx)) - return re_string_peek_byte (pstr, idx); - #endif -@@ -930,7 +931,7 @@ - return ((eflags & REG_NOTEOL) ? CONTEXT_ENDBUF - : CONTEXT_NEWLINE | CONTEXT_ENDBUF); - #ifdef RE_ENABLE_I18N -- if (input->mb_cur_max > 1) -+ if (string_mb_cur_max (input) > 1) - { - wint_t wc; - int wc_idx = idx; -@@ -1444,7 +1445,7 @@ - dfa->nodes[dfa->nodes_len].constraint = 0; - #ifdef RE_ENABLE_I18N - dfa->nodes[dfa->nodes_len].accept_mb = -- (type == OP_PERIOD && dfa->mb_cur_max > 1) || type == COMPLEX_BRACKET; -+ (type == OP_PERIOD && dfa_mb_cur_max (dfa) > 1) || type == COMPLEX_BRACKET; - #endif - dfa->nexts[dfa->nodes_len] = -1; - re_node_set_init_empty (dfa->edests + dfa->nodes_len); -Index: git/posix/regex_internal.h -=================================================================== ---- git.orig/posix/regex_internal.h 2014-08-29 20:00:53.264070587 -0700 -+++ git/posix/regex_internal.h 2014-08-29 20:01:15.224070587 -0700 -@@ -26,6 +26,10 @@ - #include <stdlib.h> - #include <string.h> - -+#if defined _LIBC -+# include <gnu/option-groups.h> -+#endif -+ - #if defined HAVE_LANGINFO_H || defined HAVE_LANGINFO_CODESET || defined _LIBC - # include <langinfo.h> - #endif -@@ -370,6 +374,13 @@ - }; - typedef struct re_string_t re_string_t; - -+/* When OPTION_EGLIBC_LOCALE_CODE is disabled, this is always 1; -+ help the compiler make use of that fact. */ -+#if __OPTION_EGLIBC_LOCALE_CODE -+# define string_mb_cur_max(str) ((str)->mb_cur_max + 0) -+#else -+# define string_mb_cur_max(str) (1) -+#endif - - struct re_dfa_t; - typedef struct re_dfa_t re_dfa_t; -@@ -655,6 +666,14 @@ - __libc_lock_define (, lock) - }; - -+/* When OPTION_EGLIBC_LOCALE_CODE is disabled, this is always 1; -+ help the compiler make use of that fact. */ -+#if __OPTION_EGLIBC_LOCALE_CODE -+# define dfa_mb_cur_max(dfa) ((dfa)->mb_cur_max + 0) -+#else -+# define dfa_mb_cur_max(dfa) (1) -+#endif -+ - #define re_node_set_init_empty(set) memset (set, '\0', sizeof (re_node_set)) - #define re_node_set_remove(set,id) \ - (re_node_set_remove_at (set, re_node_set_contains (set, id) - 1)) -@@ -715,7 +734,7 @@ - re_string_char_size_at (const re_string_t *pstr, int idx) - { - int byte_idx; -- if (pstr->mb_cur_max == 1) -+ if (string_mb_cur_max (pstr) == 1) - return 1; - for (byte_idx = 1; idx + byte_idx < pstr->valid_len; ++byte_idx) - if (pstr->wcs[idx + byte_idx] != WEOF) -@@ -727,7 +746,7 @@ - internal_function __attribute__ ((pure, unused)) - re_string_wchar_at (const re_string_t *pstr, int idx) - { -- if (pstr->mb_cur_max == 1) -+ if (string_mb_cur_max (pstr) == 1) - return (wint_t) pstr->mbs[idx]; - return (wint_t) pstr->wcs[idx]; - } -Index: git/posix/xregex.c -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ git/posix/xregex.c 2014-08-29 20:01:15.228070587 -0700 -@@ -0,0 +1,8212 @@ -+/* Extended regular expression matching and search library, -+ version 0.12. -+ (Implements POSIX draft P1003.2/D11.2, except for some of the -+ internationalization features.) -+ -+ Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, -+ 2002, 2005 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 Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 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 -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, write to the Free -+ Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -+ 02110-1301 USA. */ -+ -+/* AIX requires this to be the first thing in the file. */ -+#if defined _AIX && !defined __GNUC__ && !defined REGEX_MALLOC -+ #pragma alloca -+#endif -+ -+#undef _GNU_SOURCE -+#define _GNU_SOURCE -+ -+#ifndef INSIDE_RECURSION -+# ifdef HAVE_CONFIG_H -+# include <config.h> -+# endif -+#endif -+ -+/*#include <ansidecl.h>*/ -+ -+#ifndef INSIDE_RECURSION -+ -+# if defined STDC_HEADERS && !defined emacs -+# include <stddef.h> -+# else -+/* We need this for `regex.h', and perhaps for the Emacs include files. */ -+# include <sys/types.h> -+# endif -+ -+# define WIDE_CHAR_SUPPORT (HAVE_WCTYPE_H && HAVE_WCHAR_H && HAVE_BTOWC) -+ -+/* For platform which support the ISO C amendement 1 functionality we -+ support user defined character classes. */ -+# if WIDE_CHAR_SUPPORT -+/* Solaris 2.5 has a bug: <wchar.h> must be included before <wctype.h>. */ -+# include <wchar.h> -+# include <wctype.h> -+# endif -+ -+# ifdef _LIBC -+/* We have to keep the namespace clean. */ -+# define regfree(preg) __regfree (preg) -+# define regexec(pr, st, nm, pm, ef) __regexec (pr, st, nm, pm, ef) -+# define regcomp(preg, pattern, cflags) __regcomp (preg, pattern, cflags) -+# define regerror(errcode, preg, errbuf, errbuf_size) \ -+ __regerror(errcode, preg, errbuf, errbuf_size) -+# define re_set_registers(bu, re, nu, st, en) \ -+ __re_set_registers (bu, re, nu, st, en) -+# define re_match_2(bufp, string1, size1, string2, size2, pos, regs, stop) \ -+ __re_match_2 (bufp, string1, size1, string2, size2, pos, regs, stop) -+# define re_match(bufp, string, size, pos, regs) \ -+ __re_match (bufp, string, size, pos, regs) -+# define re_search(bufp, string, size, startpos, range, regs) \ -+ __re_search (bufp, string, size, startpos, range, regs) -+# define re_compile_pattern(pattern, length, bufp) \ -+ __re_compile_pattern (pattern, length, bufp) -+# define re_set_syntax(syntax) __re_set_syntax (syntax) -+# define re_search_2(bufp, st1, s1, st2, s2, startpos, range, regs, stop) \ -+ __re_search_2 (bufp, st1, s1, st2, s2, startpos, range, regs, stop) -+# define re_compile_fastmap(bufp) __re_compile_fastmap (bufp) -+ -+# define btowc __btowc -+ -+/* We are also using some library internals. */ -+# include <locale/localeinfo.h> -+# include <locale/elem-hash.h> -+# include <langinfo.h> -+# include <locale/coll-lookup.h> -+# endif -+ -+/* This is for other GNU distributions with internationalized messages. */ -+# if (HAVE_LIBINTL_H && ENABLE_NLS) || defined _LIBC -+# include <libintl.h> -+# ifdef _LIBC -+# undef gettext -+# define gettext(msgid) __dcgettext ("libc", msgid, LC_MESSAGES) -+# endif -+# else -+# define gettext(msgid) (msgid) -+# endif -+ -+# ifndef gettext_noop -+/* This define is so xgettext can find the internationalizable -+ strings. */ -+# define gettext_noop(String) String -+# endif -+ -+/* The `emacs' switch turns on certain matching commands -+ that make sense only in Emacs. */ -+# ifdef emacs -+ -+# include "lisp.h" -+# include "buffer.h" -+# include "syntax.h" -+ -+# else /* not emacs */ -+ -+/* If we are not linking with Emacs proper, -+ we can't use the relocating allocator -+ even if config.h says that we can. */ -+# undef REL_ALLOC -+ -+# if defined STDC_HEADERS || defined _LIBC -+# include <stdlib.h> -+# else -+char *malloc (); -+char *realloc (); -+# endif -+ -+/* When used in Emacs's lib-src, we need to get bzero and bcopy somehow. -+ If nothing else has been done, use the method below. */ -+# ifdef INHIBIT_STRING_HEADER -+# if !(defined HAVE_BZERO && defined HAVE_BCOPY) -+# if !defined bzero && !defined bcopy -+# undef INHIBIT_STRING_HEADER -+# endif -+# endif -+# endif -+ -+/* This is the normal way of making sure we have a bcopy and a bzero. -+ This is used in most programs--a few other programs avoid this -+ by defining INHIBIT_STRING_HEADER. */ -+# ifndef INHIBIT_STRING_HEADER -+# if defined HAVE_STRING_H || defined STDC_HEADERS || defined _LIBC -+# include <string.h> -+# ifndef bzero -+# ifndef _LIBC -+# define bzero(s, n) (memset (s, '\0', n), (s)) -+# else -+# define bzero(s, n) __bzero (s, n) -+# endif -+# endif -+# else -+# include <strings.h> -+# ifndef memcmp -+# define memcmp(s1, s2, n) bcmp (s1, s2, n) -+# endif -+# ifndef memcpy -+# define memcpy(d, s, n) (bcopy (s, d, n), (d)) -+# endif -+# endif -+# endif -+ -+/* Define the syntax stuff for \<, \>, etc. */ -+ -+/* This must be nonzero for the wordchar and notwordchar pattern -+ commands in re_match_2. */ -+# ifndef Sword -+# define Sword 1 -+# endif -+ -+# ifdef SWITCH_ENUM_BUG -+# define SWITCH_ENUM_CAST(x) ((int)(x)) -+# else -+# define SWITCH_ENUM_CAST(x) (x) -+# endif -+ -+# endif /* not emacs */ -+ -+# if defined _LIBC || HAVE_LIMITS_H -+# include <limits.h> -+# endif -+ -+# ifndef MB_LEN_MAX -+# define MB_LEN_MAX 1 -+# endif -+ -+/* Get the interface, including the syntax bits. */ -+# include "regex.h" -+ -+/* isalpha etc. are used for the character classes. */ -+# include <ctype.h> -+ -+/* Jim Meyering writes: -+ -+ "... Some ctype macros are valid only for character codes that -+ isascii says are ASCII (SGI's IRIX-4.0.5 is one such system --when -+ using /bin/cc or gcc but without giving an ansi option). So, all -+ ctype uses should be through macros like ISPRINT... If -+ STDC_HEADERS is defined, then autoconf has verified that the ctype -+ macros don't need to be guarded with references to isascii. ... -+ Defining isascii to 1 should let any compiler worth its salt -+ eliminate the && through constant folding." -+ Solaris defines some of these symbols so we must undefine them first. */ -+ -+# undef ISASCII -+# if defined STDC_HEADERS || (!defined isascii && !defined HAVE_ISASCII) -+# define ISASCII(c) 1 -+# else -+# define ISASCII(c) isascii(c) -+# endif -+ -+# ifdef isblank -+# define ISBLANK(c) (ISASCII (c) && isblank (c)) -+# else -+# define ISBLANK(c) ((c) == ' ' || (c) == '\t') -+# endif -+# ifdef isgraph -+# define ISGRAPH(c) (ISASCII (c) && isgraph (c)) -+# else -+# define ISGRAPH(c) (ISASCII (c) && isprint (c) && !isspace (c)) -+# endif -+ -+# undef ISPRINT -+# define ISPRINT(c) (ISASCII (c) && isprint (c)) -+# define ISDIGIT(c) (ISASCII (c) && isdigit (c)) -+# define ISALNUM(c) (ISASCII (c) && isalnum (c)) -+# define ISALPHA(c) (ISASCII (c) && isalpha (c)) -+# define ISCNTRL(c) (ISASCII (c) && iscntrl (c)) -+# define ISLOWER(c) (ISASCII (c) && islower (c)) -+# define ISPUNCT(c) (ISASCII (c) && ispunct (c)) -+# define ISSPACE(c) (ISASCII (c) && isspace (c)) -+# define ISUPPER(c) (ISASCII (c) && isupper (c)) -+# define ISXDIGIT(c) (ISASCII (c) && isxdigit (c)) -+ -+# ifdef _tolower -+# define TOLOWER(c) _tolower(c) -+# else -+# define TOLOWER(c) tolower(c) -+# endif -+ -+# ifndef NULL -+# define NULL (void *)0 -+# endif -+ -+/* We remove any previous definition of `SIGN_EXTEND_CHAR', -+ since ours (we hope) works properly with all combinations of -+ machines, compilers, `char' and `unsigned char' argument types. -+ (Per Bothner suggested the basic approach.) */ -+# undef SIGN_EXTEND_CHAR -+# if __STDC__ -+# define SIGN_EXTEND_CHAR(c) ((signed char) (c)) -+# else /* not __STDC__ */ -+/* As in Harbison and Steele. */ -+# define SIGN_EXTEND_CHAR(c) ((((unsigned char) (c)) ^ 128) - 128) -+# endif -+ -+# ifndef emacs -+/* How many characters in the character set. */ -+# define CHAR_SET_SIZE 256 -+ -+# ifdef SYNTAX_TABLE -+ -+extern char *re_syntax_table; -+ -+# else /* not SYNTAX_TABLE */ -+ -+static char re_syntax_table[CHAR_SET_SIZE]; -+ -+static void init_syntax_once (void); -+ -+static void -+init_syntax_once (void) -+{ -+ register int c; -+ static int done = 0; -+ -+ if (done) -+ return; -+ bzero (re_syntax_table, sizeof re_syntax_table); -+ -+ for (c = 0; c < CHAR_SET_SIZE; ++c) -+ if (ISALNUM (c)) -+ re_syntax_table[c] = Sword; -+ -+ re_syntax_table['_'] = Sword; -+ -+ done = 1; -+} -+ -+# endif /* not SYNTAX_TABLE */ -+ -+# define SYNTAX(c) re_syntax_table[(unsigned char) (c)] -+ -+# endif /* emacs */ -+ -+/* Integer type for pointers. */ -+# if !defined _LIBC && !defined HAVE_UINTPTR_T -+typedef unsigned long int uintptr_t; -+# endif -+ -+/* Should we use malloc or alloca? If REGEX_MALLOC is not defined, we -+ use `alloca' instead of `malloc'. This is because using malloc in -+ re_search* or re_match* could cause memory leaks when C-g is used in -+ Emacs; also, malloc is slower and causes storage fragmentation. On -+ the other hand, malloc is more portable, and easier to debug. -+ -+ Because we sometimes use alloca, some routines have to be macros, -+ not functions -- `alloca'-allocated space disappears at the end of the -+ function it is called in. */ -+ -+# ifdef REGEX_MALLOC -+ -+# define REGEX_ALLOCATE malloc -+# define REGEX_REALLOCATE(source, osize, nsize) realloc (source, nsize) -+# define REGEX_FREE free -+ -+# else /* not REGEX_MALLOC */ -+ -+/* Emacs already defines alloca, sometimes. */ -+# ifndef alloca -+ -+/* Make alloca work the best possible way. */ -+# ifdef __GNUC__ -+# define alloca __builtin_alloca -+# else /* not __GNUC__ */ -+# if HAVE_ALLOCA_H -+# include <alloca.h> -+# endif /* HAVE_ALLOCA_H */ -+# endif /* not __GNUC__ */ -+ -+# endif /* not alloca */ -+ -+# define REGEX_ALLOCATE alloca -+ -+/* Assumes a `char *destination' variable. */ -+# define REGEX_REALLOCATE(source, osize, nsize) \ -+ (destination = (char *) alloca (nsize), \ -+ memcpy (destination, source, osize)) -+ -+/* No need to do anything to free, after alloca. */ -+# define REGEX_FREE(arg) ((void)0) /* Do nothing! But inhibit gcc warning. */ -+ -+# endif /* not REGEX_MALLOC */ -+ -+/* Define how to allocate the failure stack. */ -+ -+# if defined REL_ALLOC && defined REGEX_MALLOC -+ -+# define REGEX_ALLOCATE_STACK(size) \ -+ r_alloc (&failure_stack_ptr, (size)) -+# define REGEX_REALLOCATE_STACK(source, osize, nsize) \ -+ r_re_alloc (&failure_stack_ptr, (nsize)) -+# define REGEX_FREE_STACK(ptr) \ -+ r_alloc_free (&failure_stack_ptr) -+ -+# else /* not using relocating allocator */ -+ -+# ifdef REGEX_MALLOC -+ -+# define REGEX_ALLOCATE_STACK malloc -+# define REGEX_REALLOCATE_STACK(source, osize, nsize) realloc (source, nsize) -+# define REGEX_FREE_STACK free -+ -+# else /* not REGEX_MALLOC */ -+ -+# define REGEX_ALLOCATE_STACK alloca -+ -+# define REGEX_REALLOCATE_STACK(source, osize, nsize) \ -+ REGEX_REALLOCATE (source, osize, nsize) -+/* No need to explicitly free anything. */ -+# define REGEX_FREE_STACK(arg) -+ -+# endif /* not REGEX_MALLOC */ -+# endif /* not using relocating allocator */ -+ -+ -+/* True if `size1' is non-NULL and PTR is pointing anywhere inside -+ `string1' or just past its end. This works if PTR is NULL, which is -+ a good thing. */ -+# define FIRST_STRING_P(ptr) \ -+ (size1 && string1 <= (ptr) && (ptr) <= string1 + size1) -+ -+/* (Re)Allocate N items of type T using malloc, or fail. */ -+# define TALLOC(n, t) ((t *) malloc ((n) * sizeof (t))) -+# define RETALLOC(addr, n, t) ((addr) = (t *) realloc (addr, (n) * sizeof (t))) -+# define RETALLOC_IF(addr, n, t) \ -+ if (addr) RETALLOC((addr), (n), t); else (addr) = TALLOC ((n), t) -+# define REGEX_TALLOC(n, t) ((t *) REGEX_ALLOCATE ((n) * sizeof (t))) -+ -+# define BYTEWIDTH 8 /* In bits. */ -+ -+# define STREQ(s1, s2) ((strcmp (s1, s2) == 0)) -+ -+# undef MAX -+# undef MIN -+# define MAX(a, b) ((a) > (b) ? (a) : (b)) -+# define MIN(a, b) ((a) < (b) ? (a) : (b)) -+ -+typedef char boolean; -+# define false 0 -+# define true 1 -+ -+static reg_errcode_t byte_regex_compile (const char *pattern, size_t size, -+ reg_syntax_t syntax, -+ struct re_pattern_buffer *bufp); -+ -+static int byte_re_match_2_internal (struct re_pattern_buffer *bufp, -+ const char *string1, int size1, -+ const char *string2, int size2, -+ int pos, -+ struct re_registers *regs, -+ int stop); -+static int byte_re_search_2 (struct re_pattern_buffer *bufp, -+ const char *string1, int size1, -+ const char *string2, int size2, -+ int startpos, int range, -+ struct re_registers *regs, int stop); -+static int byte_re_compile_fastmap (struct re_pattern_buffer *bufp); -+ -+#ifdef MBS_SUPPORT -+static reg_errcode_t wcs_regex_compile (const char *pattern, size_t size, -+ reg_syntax_t syntax, -+ struct re_pattern_buffer *bufp); -+ -+ -+static int wcs_re_match_2_internal (struct re_pattern_buffer *bufp, -+ const char *cstring1, int csize1, -+ const char *cstring2, int csize2, -+ int pos, -+ struct re_registers *regs, -+ int stop, -+ wchar_t *string1, int size1, -+ wchar_t *string2, int size2, -+ int *mbs_offset1, int *mbs_offset2); -+static int wcs_re_search_2 (struct re_pattern_buffer *bufp, -+ const char *string1, int size1, -+ const char *string2, int size2, -+ int startpos, int range, -+ struct re_registers *regs, int stop); -+static int wcs_re_compile_fastmap (struct re_pattern_buffer *bufp); -+#endif -+ -+/* These are the command codes that appear in compiled regular -+ expressions. Some opcodes are followed by argument bytes. A -+ command code can specify any interpretation whatsoever for its -+ arguments. Zero bytes may appear in the compiled regular expression. */ -+ -+typedef enum -+{ -+ no_op = 0, -+ -+ /* Succeed right away--no more backtracking. */ -+ succeed, -+ -+ /* Followed by one byte giving n, then by n literal bytes. */ -+ exactn, -+ -+# ifdef MBS_SUPPORT -+ /* Same as exactn, but contains binary data. */ -+ exactn_bin, -+# endif -+ -+ /* Matches any (more or less) character. */ -+ anychar, -+ -+ /* Matches any one char belonging to specified set. First -+ following byte is number of bitmap bytes. Then come bytes -+ for a bitmap saying which chars are in. Bits in each byte -+ are ordered low-bit-first. A character is in the set if its -+ bit is 1. A character too large to have a bit in the map is -+ automatically not in the set. */ -+ /* ifdef MBS_SUPPORT, following element is length of character -+ classes, length of collating symbols, length of equivalence -+ classes, length of character ranges, and length of characters. -+ Next, character class element, collating symbols elements, -+ equivalence class elements, range elements, and character -+ elements follow. -+ See regex_compile function. */ -+ charset, -+ -+ /* Same parameters as charset, but match any character that is -+ not one of those specified. */ -+ charset_not, -+ -+ /* Start remembering the text that is matched, for storing in a -+ register. Followed by one byte with the register number, in -+ the range 0 to one less than the pattern buffer's re_nsub -+ field. Then followed by one byte with the number of groups -+ inner to this one. (This last has to be part of the -+ start_memory only because we need it in the on_failure_jump -+ of re_match_2.) */ -+ start_memory, -+ -+ /* Stop remembering the text that is matched and store it in a -+ memory register. Followed by one byte with the register -+ number, in the range 0 to one less than `re_nsub' in the -+ pattern buffer, and one byte with the number of inner groups, -+ just like `start_memory'. (We need the number of inner -+ groups here because we don't have any easy way of finding the -+ corresponding start_memory when we're at a stop_memory.) */ -+ stop_memory, -+ -+ /* Match a duplicate of something remembered. Followed by one -+ byte containing the register number. */ -+ duplicate, -+ -+ /* Fail unless at beginning of line. */ -+ begline, -+ -+ /* Fail unless at end of line. */ -+ endline, -+ -+ /* Succeeds if at beginning of buffer (if emacs) or at beginning -+ of string to be matched (if not). */ -+ begbuf, -+ -+ /* Analogously, for end of buffer/string. */ -+ endbuf, -+ -+ /* Followed by two byte relative address to which to jump. */ -+ jump, -+ -+ /* Same as jump, but marks the end of an alternative. */ -+ jump_past_alt, -+ -+ /* Followed by two-byte relative address of place to resume at -+ in case of failure. */ -+ /* ifdef MBS_SUPPORT, the size of address is 1. */ -+ on_failure_jump, -+ -+ /* Like on_failure_jump, but pushes a placeholder instead of the -+ current string position when executed. */ -+ on_failure_keep_string_jump, -+ -+ /* Throw away latest failure point and then jump to following -+ two-byte relative address. */ -+ /* ifdef MBS_SUPPORT, the size of address is 1. */ -+ pop_failure_jump, -+ -+ /* Change to pop_failure_jump if know won't have to backtrack to -+ match; otherwise change to jump. This is used to jump -+ back to the beginning of a repeat. If what follows this jump -+ clearly won't match what the repeat does, such that we can be -+ sure that there is no use backtracking out of repetitions -+ already matched, then we change it to a pop_failure_jump. -+ Followed by two-byte address. */ -+ /* ifdef MBS_SUPPORT, the size of address is 1. */ -+ maybe_pop_jump, -+ -+ /* Jump to following two-byte address, and push a dummy failure -+ point. This failure point will be thrown away if an attempt -+ is made to use it for a failure. A `+' construct makes this -+ before the first repeat. Also used as an intermediary kind -+ of jump when compiling an alternative. */ -+ /* ifdef MBS_SUPPORT, the size of address is 1. */ -+ dummy_failure_jump, -+ -+ /* Push a dummy failure point and continue. Used at the end of -+ alternatives. */ -+ push_dummy_failure, -+ -+ /* Followed by two-byte relative address and two-byte number n. -+ After matching N times, jump to the address upon failure. */ -+ /* ifdef MBS_SUPPORT, the size of address is 1. */ -+ succeed_n, -+ -+ /* Followed by two-byte relative address, and two-byte number n. -+ Jump to the address N times, then fail. */ -+ /* ifdef MBS_SUPPORT, the size of address is 1. */ -+ jump_n, -+ -+ /* Set the following two-byte relative address to the -+ subsequent two-byte number. The address *includes* the two -+ bytes of number. */ -+ /* ifdef MBS_SUPPORT, the size of address is 1. */ -+ set_number_at, -+ -+ wordchar, /* Matches any word-constituent character. */ -+ notwordchar, /* Matches any char that is not a word-constituent. */ -+ -+ wordbeg, /* Succeeds if at word beginning. */ -+ wordend, /* Succeeds if at word end. */ -+ -+ wordbound, /* Succeeds if at a word boundary. */ -+ notwordbound /* Succeeds if not at a word boundary. */ -+ -+# ifdef emacs -+ ,before_dot, /* Succeeds if before point. */ -+ at_dot, /* Succeeds if at point. */ -+ after_dot, /* Succeeds if after point. */ -+ -+ /* Matches any character whose syntax is specified. Followed by -+ a byte which contains a syntax code, e.g., Sword. */ -+ syntaxspec, -+ -+ /* Matches any character whose syntax is not that specified. */ -+ notsyntaxspec -+# endif /* emacs */ -+} re_opcode_t; -+#endif /* not INSIDE_RECURSION */ -+ -+ -+#ifdef BYTE -+# define CHAR_T char -+# define UCHAR_T unsigned char -+# define COMPILED_BUFFER_VAR bufp->buffer -+# define OFFSET_ADDRESS_SIZE 2 -+# define PREFIX(name) byte_##name -+# define ARG_PREFIX(name) name -+# define PUT_CHAR(c) putchar (c) -+#else -+# ifdef WCHAR -+# define CHAR_T wchar_t -+# define UCHAR_T wchar_t -+# define COMPILED_BUFFER_VAR wc_buffer -+# define OFFSET_ADDRESS_SIZE 1 /* the size which STORE_NUMBER macro use */ -+# define CHAR_CLASS_SIZE ((__alignof__(wctype_t)+sizeof(wctype_t))/sizeof(CHAR_T)+1) -+# define PREFIX(name) wcs_##name -+# define ARG_PREFIX(name) c##name -+/* Should we use wide stream?? */ -+# define PUT_CHAR(c) printf ("%C", c); -+# define TRUE 1 -+# define FALSE 0 -+# else -+# ifdef MBS_SUPPORT -+# define WCHAR -+# define INSIDE_RECURSION -+# include "xregex.c" -+# undef INSIDE_RECURSION -+# endif -+# define BYTE -+# define INSIDE_RECURSION -+# include "xregex.c" -+# undef INSIDE_RECURSION -+# endif -+#endif -+ -+#ifdef INSIDE_RECURSION -+/* Common operations on the compiled pattern. */ -+ -+/* Store NUMBER in two contiguous bytes starting at DESTINATION. */ -+/* ifdef MBS_SUPPORT, we store NUMBER in 1 element. */ -+ -+# ifdef WCHAR -+# define STORE_NUMBER(destination, number) \ -+ do { \ -+ *(destination) = (UCHAR_T)(number); \ -+ } while (0) -+# else /* BYTE */ -+# define STORE_NUMBER(destination, number) \ -+ do { \ -+ (destination)[0] = (number) & 0377; \ -+ (destination)[1] = (number) >> 8; \ -+ } while (0) -+# endif /* WCHAR */ -+ -+/* Same as STORE_NUMBER, except increment DESTINATION to -+ the byte after where the number is stored. Therefore, DESTINATION -+ must be an lvalue. */ -+/* ifdef MBS_SUPPORT, we store NUMBER in 1 element. */ -+ -+# define STORE_NUMBER_AND_INCR(destination, number) \ -+ do { \ -+ STORE_NUMBER (destination, number); \ -+ (destination) += OFFSET_ADDRESS_SIZE; \ -+ } while (0) -+ -+/* Put into DESTINATION a number stored in two contiguous bytes starting -+ at SOURCE. */ -+/* ifdef MBS_SUPPORT, we store NUMBER in 1 element. */ -+ -+# ifdef WCHAR -+# define EXTRACT_NUMBER(destination, source) \ -+ do { \ -+ (destination) = *(source); \ -+ } while (0) -+# else /* BYTE */ -+# define EXTRACT_NUMBER(destination, source) \ -+ do { \ -+ (destination) = *(source) & 0377; \ -+ (destination) += SIGN_EXTEND_CHAR (*((source) + 1)) << 8; \ -+ } while (0) -+# endif -+ -+# ifdef DEBUG -+static void PREFIX(extract_number) (int *dest, UCHAR_T *source); -+static void -+PREFIX(extract_number) (int *dest, UCHAR_T *source) -+{ -+# ifdef WCHAR -+ *dest = *source; -+# else /* BYTE */ -+ int temp = SIGN_EXTEND_CHAR (*(source + 1)); -+ *dest = *source & 0377; -+ *dest += temp << 8; -+# endif -+} -+ -+# ifndef EXTRACT_MACROS /* To debug the macros. */ -+# undef EXTRACT_NUMBER -+# define EXTRACT_NUMBER(dest, src) PREFIX(extract_number) (&dest, src) -+# endif /* not EXTRACT_MACROS */ -+ -+# endif /* DEBUG */ -+ -+/* Same as EXTRACT_NUMBER, except increment SOURCE to after the number. -+ SOURCE must be an lvalue. */ -+ -+# define EXTRACT_NUMBER_AND_INCR(destination, source) \ -+ do { \ -+ EXTRACT_NUMBER (destination, source); \ -+ (source) += OFFSET_ADDRESS_SIZE; \ -+ } while (0) -+ -+# ifdef DEBUG -+static void PREFIX(extract_number_and_incr) (int *destination, -+ UCHAR_T **source); -+static void -+PREFIX(extract_number_and_incr) (int *destination, UCHAR_T **source) -+{ -+ PREFIX(extract_number) (destination, *source); -+ *source += OFFSET_ADDRESS_SIZE; -+} -+ -+# ifndef EXTRACT_MACROS -+# undef EXTRACT_NUMBER_AND_INCR -+# define EXTRACT_NUMBER_AND_INCR(dest, src) \ -+ PREFIX(extract_number_and_incr) (&dest, &src) -+# endif /* not EXTRACT_MACROS */ -+ -+# endif /* DEBUG */ -+ -+ -+ -+/* If DEBUG is defined, Regex prints many voluminous messages about what -+ it is doing (if the variable `debug' is nonzero). If linked with the -+ main program in `iregex.c', you can enter patterns and strings -+ interactively. And if linked with the main program in `main.c' and -+ the other test files, you can run the already-written tests. */ -+ -+# ifdef DEBUG -+ -+# ifndef DEFINED_ONCE -+ -+/* We use standard I/O for debugging. */ -+# include <stdio.h> -+ -+/* It is useful to test things that ``must'' be true when debugging. */ -+# include <assert.h> -+ -+static int debug; -+ -+# define DEBUG_STATEMENT(e) e -+# define DEBUG_PRINT1(x) if (debug) printf (x) -+# define DEBUG_PRINT2(x1, x2) if (debug) printf (x1, x2) -+# define DEBUG_PRINT3(x1, x2, x3) if (debug) printf (x1, x2, x3) -+# define DEBUG_PRINT4(x1, x2, x3, x4) if (debug) printf (x1, x2, x3, x4) -+# endif /* not DEFINED_ONCE */ -+ -+# define DEBUG_PRINT_COMPILED_PATTERN(p, s, e) \ -+ if (debug) PREFIX(print_partial_compiled_pattern) (s, e) -+# define DEBUG_PRINT_DOUBLE_STRING(w, s1, sz1, s2, sz2) \ -+ if (debug) PREFIX(print_double_string) (w, s1, sz1, s2, sz2) -+ -+ -+/* Print the fastmap in human-readable form. */ -+ -+# ifndef DEFINED_ONCE -+void -+print_fastmap (char *fastmap) -+{ -+ unsigned was_a_range = 0; -+ unsigned i = 0; -+ -+ while (i < (1 << BYTEWIDTH)) -+ { -+ if (fastmap[i++]) -+ { -+ was_a_range = 0; -+ putchar (i - 1); -+ while (i < (1 << BYTEWIDTH) && fastmap[i]) -+ { -+ was_a_range = 1; -+ i++; -+ } -+ if (was_a_range) -+ { -+ printf ("-"); -+ putchar (i - 1); -+ } -+ } -+ } -+ putchar ('\n'); -+} -+# endif /* not DEFINED_ONCE */ -+ -+ -+/* Print a compiled pattern string in human-readable form, starting at -+ the START pointer into it and ending just before the pointer END. */ -+ -+void -+PREFIX(print_partial_compiled_pattern) (UCHAR_T *start, UCHAR_T *end) -+{ -+ int mcnt, mcnt2; -+ UCHAR_T *p1; -+ UCHAR_T *p = start; -+ UCHAR_T *pend = end; -+ -+ if (start == NULL) -+ { -+ printf ("(null)\n"); -+ return; -+ } -+ -+ /* Loop over pattern commands. */ -+ while (p < pend) -+ { -+# ifdef _LIBC -+ printf ("%td:\t", p - start); -+# else -+ printf ("%ld:\t", (long int) (p - start)); -+# endif -+ -+ switch ((re_opcode_t) *p++) -+ { -+ case no_op: -+ printf ("/no_op"); -+ break; -+ -+ case exactn: -+ mcnt = *p++; -+ printf ("/exactn/%d", mcnt); -+ do -+ { -+ putchar ('/'); -+ PUT_CHAR (*p++); -+ } -+ while (--mcnt); -+ break; -+ -+# ifdef MBS_SUPPORT -+ case exactn_bin: -+ mcnt = *p++; -+ printf ("/exactn_bin/%d", mcnt); -+ do -+ { -+ printf("/%lx", (long int) *p++); -+ } -+ while (--mcnt); -+ break; -+# endif /* MBS_SUPPORT */ -+ -+ case start_memory: -+ mcnt = *p++; -+ printf ("/start_memory/%d/%ld", mcnt, (long int) *p++); -+ break; -+ -+ case stop_memory: -+ mcnt = *p++; -+ printf ("/stop_memory/%d/%ld", mcnt, (long int) *p++); -+ break; -+ -+ case duplicate: -+ printf ("/duplicate/%ld", (long int) *p++); -+ break; -+ -+ case anychar: -+ printf ("/anychar"); -+ break; -+ -+ case charset: -+ case charset_not: -+ { -+# ifdef WCHAR -+ int i, length; -+ wchar_t *workp = p; -+ printf ("/charset [%s", -+ (re_opcode_t) *(workp - 1) == charset_not ? "^" : ""); -+ p += 5; -+ length = *workp++; /* the length of char_classes */ -+ for (i=0 ; i<length ; i++) -+ printf("[:%lx:]", (long int) *p++); -+ length = *workp++; /* the length of collating_symbol */ -+ for (i=0 ; i<length ;) -+ { -+ printf("[."); -+ while(*p != 0) -+ PUT_CHAR((i++,*p++)); -+ i++,p++; -+ printf(".]"); -+ } -+ length = *workp++; /* the length of equivalence_class */ -+ for (i=0 ; i<length ;) -+ { -+ printf("[="); -+ while(*p != 0) -+ PUT_CHAR((i++,*p++)); -+ i++,p++; -+ printf("=]"); -+ } -+ length = *workp++; /* the length of char_range */ -+ for (i=0 ; i<length ; i++) -+ { -+ wchar_t range_start = *p++; -+ wchar_t range_end = *p++; -+ printf("%C-%C", range_start, range_end); -+ } -+ length = *workp++; /* the length of char */ -+ for (i=0 ; i<length ; i++) -+ printf("%C", *p++); -+ putchar (']'); -+# else -+ register int c, last = -100; -+ register int in_range = 0; -+ -+ printf ("/charset [%s", -+ (re_opcode_t) *(p - 1) == charset_not ? "^" : ""); -+ -+ assert (p + *p < pend); -+ -+ for (c = 0; c < 256; c++) -+ if (c / 8 < *p -+ && (p[1 + (c/8)] & (1 << (c % 8)))) -+ { -+ /* Are we starting a range? */ -+ if (last + 1 == c && ! in_range) -+ { -+ putchar ('-'); -+ in_range = 1; -+ } -+ /* Have we broken a range? */ -+ else if (last + 1 != c && in_range) -+ { -+ putchar (last); -+ in_range = 0; -+ } -+ -+ if (! in_range) -+ putchar (c); -+ -+ last = c; -+ } -+ -+ if (in_range) -+ putchar (last); -+ -+ putchar (']'); -+ -+ p += 1 + *p; -+# endif /* WCHAR */ -+ } -+ break; -+ -+ case begline: -+ printf ("/begline"); -+ break; -+ -+ case endline: -+ printf ("/endline"); -+ break; -+ -+ case on_failure_jump: -+ PREFIX(extract_number_and_incr) (&mcnt, &p); -+# ifdef _LIBC -+ printf ("/on_failure_jump to %td", p + mcnt - start); -+# else -+ printf ("/on_failure_jump to %ld", (long int) (p + mcnt - start)); -+# endif -+ break; -+ -+ case on_failure_keep_string_jump: -+ PREFIX(extract_number_and_incr) (&mcnt, &p); -+# ifdef _LIBC -+ printf ("/on_failure_keep_string_jump to %td", p + mcnt - start); -+# else -+ printf ("/on_failure_keep_string_jump to %ld", -+ (long int) (p + mcnt - start)); -+# endif -+ break; -+ -+ case dummy_failure_jump: -+ PREFIX(extract_number_and_incr) (&mcnt, &p); -+# ifdef _LIBC -+ printf ("/dummy_failure_jump to %td", p + mcnt - start); -+# else -+ printf ("/dummy_failure_jump to %ld", (long int) (p + mcnt - start)); -+# endif -+ break; -+ -+ case push_dummy_failure: -+ printf ("/push_dummy_failure"); -+ break; -+ -+ case maybe_pop_jump: -+ PREFIX(extract_number_and_incr) (&mcnt, &p); -+# ifdef _LIBC -+ printf ("/maybe_pop_jump to %td", p + mcnt - start); -+# else -+ printf ("/maybe_pop_jump to %ld", (long int) (p + mcnt - start)); -+# endif -+ break; -+ -+ case pop_failure_jump: -+ PREFIX(extract_number_and_incr) (&mcnt, &p); -+# ifdef _LIBC -+ printf ("/pop_failure_jump to %td", p + mcnt - start); -+# else -+ printf ("/pop_failure_jump to %ld", (long int) (p + mcnt - start)); -+# endif -+ break; -+ -+ case jump_past_alt: -+ PREFIX(extract_number_and_incr) (&mcnt, &p); -+# ifdef _LIBC -+ printf ("/jump_past_alt to %td", p + mcnt - start); -+# else -+ printf ("/jump_past_alt to %ld", (long int) (p + mcnt - start)); -+# endif -+ break; -+ -+ case jump: -+ PREFIX(extract_number_and_incr) (&mcnt, &p); -+# ifdef _LIBC -+ printf ("/jump to %td", p + mcnt - start); -+# else -+ printf ("/jump to %ld", (long int) (p + mcnt - start)); -+# endif -+ break; -+ -+ case succeed_n: -+ PREFIX(extract_number_and_incr) (&mcnt, &p); -+ p1 = p + mcnt; -+ PREFIX(extract_number_and_incr) (&mcnt2, &p); -+# ifdef _LIBC -+ printf ("/succeed_n to %td, %d times", p1 - start, mcnt2); -+# else -+ printf ("/succeed_n to %ld, %d times", -+ (long int) (p1 - start), mcnt2); -+# endif -+ break; -+ -+ case jump_n: -+ PREFIX(extract_number_and_incr) (&mcnt, &p); -+ p1 = p + mcnt; -+ PREFIX(extract_number_and_incr) (&mcnt2, &p); -+ printf ("/jump_n to %d, %d times", p1 - start, mcnt2); -+ break; -+ -+ case set_number_at: -+ PREFIX(extract_number_and_incr) (&mcnt, &p); -+ p1 = p + mcnt; -+ PREFIX(extract_number_and_incr) (&mcnt2, &p); -+# ifdef _LIBC -+ printf ("/set_number_at location %td to %d", p1 - start, mcnt2); -+# else -+ printf ("/set_number_at location %ld to %d", -+ (long int) (p1 - start), mcnt2); -+# endif -+ break; -+ -+ case wordbound: -+ printf ("/wordbound"); -+ break; -+ -+ case notwordbound: -+ printf ("/notwordbound"); -+ break; -+ -+ case wordbeg: -+ printf ("/wordbeg"); -+ break; -+ -+ case wordend: -+ printf ("/wordend"); -+ break; -+ -+# ifdef emacs -+ case before_dot: -+ printf ("/before_dot"); -+ break; -+ -+ case at_dot: -+ printf ("/at_dot"); -+ break; -+ -+ case after_dot: -+ printf ("/after_dot"); -+ break; -+ -+ case syntaxspec: -+ printf ("/syntaxspec"); -+ mcnt = *p++; -+ printf ("/%d", mcnt); -+ break; -+ -+ case notsyntaxspec: -+ printf ("/notsyntaxspec"); -+ mcnt = *p++; -+ printf ("/%d", mcnt); -+ break; -+# endif /* emacs */ -+ -+ case wordchar: -+ printf ("/wordchar"); -+ break; -+ -+ case notwordchar: -+ printf ("/notwordchar"); -+ break; -+ -+ case begbuf: -+ printf ("/begbuf"); -+ break; -+ -+ case endbuf: -+ printf ("/endbuf"); -+ break; -+ -+ default: -+ printf ("?%ld", (long int) *(p-1)); -+ } -+ -+ putchar ('\n'); -+ } -+ -+# ifdef _LIBC -+ printf ("%td:\tend of pattern.\n", p - start); -+# else -+ printf ("%ld:\tend of pattern.\n", (long int) (p - start)); -+# endif -+} -+ -+ -+void -+PREFIX(print_compiled_pattern) (struct re_pattern_buffer *bufp) -+{ -+ UCHAR_T *buffer = (UCHAR_T*) bufp->buffer; -+ -+ PREFIX(print_partial_compiled_pattern) (buffer, buffer -+ + bufp->used / sizeof(UCHAR_T)); -+ printf ("%ld bytes used/%ld bytes allocated.\n", -+ bufp->used, bufp->allocated); -+ -+ if (bufp->fastmap_accurate && bufp->fastmap) -+ { -+ printf ("fastmap: "); -+ print_fastmap (bufp->fastmap); -+ } -+ -+# ifdef _LIBC -+ printf ("re_nsub: %Zd\t", bufp->re_nsub); -+# else -+ printf ("re_nsub: %ld\t", (long int) bufp->re_nsub); -+# endif -+ printf ("regs_alloc: %d\t", bufp->regs_allocated); -+ printf ("can_be_null: %d\t", bufp->can_be_null); -+ printf ("newline_anchor: %d\n", bufp->newline_anchor); -+ printf ("no_sub: %d\t", bufp->no_sub); -+ printf ("not_bol: %d\t", bufp->not_bol); -+ printf ("not_eol: %d\t", bufp->not_eol); -+ printf ("syntax: %lx\n", bufp->syntax); -+ /* Perhaps we should print the translate table? */ -+} -+ -+ -+void -+PREFIX(print_double_string) (const CHAR_T *where, const CHAR_T *string1, -+ int size1, const CHAR_T *string2, int size2) -+{ -+ int this_char; -+ -+ if (where == NULL) -+ printf ("(null)"); -+ else -+ { -+ int cnt; -+ -+ if (FIRST_STRING_P (where)) -+ { -+ for (this_char = where - string1; this_char < size1; this_char++) -+ PUT_CHAR (string1[this_char]); -+ -+ where = string2; -+ } -+ -+ cnt = 0; -+ for (this_char = where - string2; this_char < size2; this_char++) -+ { -+ PUT_CHAR (string2[this_char]); -+ if (++cnt > 100) -+ { -+ fputs ("...", stdout); -+ break; -+ } -+ } -+ } -+} -+ -+# ifndef DEFINED_ONCE -+void -+printchar (int c) -+{ -+ putc (c, stderr); -+} -+# endif -+ -+# else /* not DEBUG */ -+ -+# ifndef DEFINED_ONCE -+# undef assert -+# define assert(e) -+ -+# define DEBUG_STATEMENT(e) -+# define DEBUG_PRINT1(x) -+# define DEBUG_PRINT2(x1, x2) -+# define DEBUG_PRINT3(x1, x2, x3) -+# define DEBUG_PRINT4(x1, x2, x3, x4) -+# endif /* not DEFINED_ONCE */ -+# define DEBUG_PRINT_COMPILED_PATTERN(p, s, e) -+# define DEBUG_PRINT_DOUBLE_STRING(w, s1, sz1, s2, sz2) -+ -+# endif /* not DEBUG */ -+ -+ -+ -+# ifdef WCHAR -+/* This convert a multibyte string to a wide character string. -+ And write their correspondances to offset_buffer(see below) -+ and write whether each wchar_t is binary data to is_binary. -+ This assume invalid multibyte sequences as binary data. -+ We assume offset_buffer and is_binary is already allocated -+ enough space. */ -+ -+static size_t convert_mbs_to_wcs (CHAR_T *dest, const unsigned char* src, -+ size_t len, int *offset_buffer, -+ char *is_binary); -+static size_t -+convert_mbs_to_wcs (CHAR_T *dest, const unsigned char*src, size_t len, -+ int *offset_buffer, char *is_binary) -+ /* It hold correspondances between src(char string) and -+ dest(wchar_t string) for optimization. -+ e.g. src = "xxxyzz" -+ dest = {'X', 'Y', 'Z'} -+ (each "xxx", "y" and "zz" represent one multibyte character -+ corresponding to 'X', 'Y' and 'Z'.) -+ offset_buffer = {0, 0+3("xxx"), 0+3+1("y"), 0+3+1+2("zz")} -+ = {0, 3, 4, 6} -+ */ -+{ -+ wchar_t *pdest = dest; -+ const unsigned char *psrc = src; -+ size_t wc_count = 0; -+ -+ mbstate_t mbs; -+ int i, consumed; -+ size_t mb_remain = len; -+ size_t mb_count = 0; -+ -+ /* Initialize the conversion state. */ -+ memset (&mbs, 0, sizeof (mbstate_t)); -+ -+ offset_buffer[0] = 0; -+ for( ; mb_remain > 0 ; ++wc_count, ++pdest, mb_remain -= consumed, -+ psrc += consumed) -+ { -+#ifdef _LIBC -+ consumed = __mbrtowc (pdest, psrc, mb_remain, &mbs); -+#else -+ consumed = mbrtowc (pdest, psrc, mb_remain, &mbs); -+#endif -+ -+ if (consumed <= 0) -+ /* failed to convert. maybe src contains binary data. -+ So we consume 1 byte manualy. */ -+ { -+ *pdest = *psrc; -+ consumed = 1; -+ is_binary[wc_count] = TRUE; -+ } -+ else -+ is_binary[wc_count] = FALSE; -+ /* In sjis encoding, we use yen sign as escape character in -+ place of reverse solidus. So we convert 0x5c(yen sign in -+ sjis) to not 0xa5(yen sign in UCS2) but 0x5c(reverse -+ solidus in UCS2). */ -+ if (consumed == 1 && (int) *psrc == 0x5c && (int) *pdest == 0xa5) -+ *pdest = (wchar_t) *psrc; -+ -+ offset_buffer[wc_count + 1] = mb_count += consumed; -+ } -+ -+ /* Fill remain of the buffer with sentinel. */ -+ for (i = wc_count + 1 ; i <= len ; i++) -+ offset_buffer[i] = mb_count + 1; -+ -+ return wc_count; -+} -+ -+# endif /* WCHAR */ -+ -+#else /* not INSIDE_RECURSION */ -+ -+/* Set by `re_set_syntax' to the current regexp syntax to recognize. Can -+ also be assigned to arbitrarily: each pattern buffer stores its own -+ syntax, so it can be changed between regex compilations. */ -+/* This has no initializer because initialized variables in Emacs -+ become read-only after dumping. */ -+reg_syntax_t re_syntax_options; -+ -+ -+/* Specify the precise syntax of regexps for compilation. This provides -+ for compatibility for various utilities which historically have -+ different, incompatible syntaxes. -+ -+ The argument SYNTAX is a bit mask comprised of the various bits -+ defined in regex.h. We return the old syntax. */ -+ -+reg_syntax_t -+re_set_syntax (reg_syntax_t syntax) -+{ -+ reg_syntax_t ret = re_syntax_options; -+ -+ re_syntax_options = syntax; -+# ifdef DEBUG -+ if (syntax & RE_DEBUG) -+ debug = 1; -+ else if (debug) /* was on but now is not */ -+ debug = 0; -+# endif /* DEBUG */ -+ return ret; -+} -+# ifdef _LIBC -+weak_alias (__re_set_syntax, re_set_syntax) -+# endif -+ -+/* This table gives an error message for each of the error codes listed -+ in regex.h. Obviously the order here has to be same as there. -+ POSIX doesn't require that we do anything for REG_NOERROR, -+ but why not be nice? */ -+ -+static const char *re_error_msgid[] = -+ { -+ gettext_noop ("Success"), /* REG_NOERROR */ -+ gettext_noop ("No match"), /* REG_NOMATCH */ -+ gettext_noop ("Invalid regular expression"), /* REG_BADPAT */ -+ gettext_noop ("Invalid collation character"), /* REG_ECOLLATE */ -+ gettext_noop ("Invalid character class name"), /* REG_ECTYPE */ -+ gettext_noop ("Trailing backslash"), /* REG_EESCAPE */ -+ gettext_noop ("Invalid back reference"), /* REG_ESUBREG */ -+ gettext_noop ("Unmatched [ or [^"), /* REG_EBRACK */ -+ gettext_noop ("Unmatched ( or \\("), /* REG_EPAREN */ -+ gettext_noop ("Unmatched \\{"), /* REG_EBRACE */ -+ gettext_noop ("Invalid content of \\{\\}"), /* REG_BADBR */ -+ gettext_noop ("Invalid range end"), /* REG_ERANGE */ -+ gettext_noop ("Memory exhausted"), /* REG_ESPACE */ -+ gettext_noop ("Invalid preceding regular expression"), /* REG_BADRPT */ -+ gettext_noop ("Premature end of regular expression"), /* REG_EEND */ -+ gettext_noop ("Regular expression too big"), /* REG_ESIZE */ -+ gettext_noop ("Unmatched ) or \\)") /* REG_ERPAREN */ -+ }; -+ -+#endif /* INSIDE_RECURSION */ -+ -+#ifndef DEFINED_ONCE -+/* Avoiding alloca during matching, to placate r_alloc. */ -+ -+/* Define MATCH_MAY_ALLOCATE unless we need to make sure that the -+ searching and matching functions should not call alloca. On some -+ systems, alloca is implemented in terms of malloc, and if we're -+ using the relocating allocator routines, then malloc could cause a -+ relocation, which might (if the strings being searched are in the -+ ralloc heap) shift the data out from underneath the regexp -+ routines. -+ -+ Here's another reason to avoid allocation: Emacs -+ processes input from X in a signal handler; processing X input may -+ call malloc; if input arrives while a matching routine is calling -+ malloc, then we're scrod. But Emacs can't just block input while -+ calling matching routines; then we don't notice interrupts when -+ they come in. So, Emacs blocks input around all regexp calls -+ except the matching calls, which it leaves unprotected, in the -+ faith that they will not malloc. */ -+ -+/* Normally, this is fine. */ -+# define MATCH_MAY_ALLOCATE -+ -+/* When using GNU C, we are not REALLY using the C alloca, no matter -+ what config.h may say. So don't take precautions for it. */ -+# ifdef __GNUC__ -+# undef C_ALLOCA -+# endif -+ -+/* The match routines may not allocate if (1) they would do it with malloc -+ and (2) it's not safe for them to use malloc. -+ Note that if REL_ALLOC is defined, matching would not use malloc for the -+ failure stack, but we would still use it for the register vectors; -+ so REL_ALLOC should not affect this. */ -+# if (defined C_ALLOCA || defined REGEX_MALLOC) && defined emacs -+# undef MATCH_MAY_ALLOCATE -+# endif -+#endif /* not DEFINED_ONCE */ -+ -+#ifdef INSIDE_RECURSION -+/* Failure stack declarations and macros; both re_compile_fastmap and -+ re_match_2 use a failure stack. These have to be macros because of -+ REGEX_ALLOCATE_STACK. */ -+ -+ -+/* Number of failure points for which to initially allocate space -+ when matching. If this number is exceeded, we allocate more -+ space, so it is not a hard limit. */ -+# ifndef INIT_FAILURE_ALLOC -+# define INIT_FAILURE_ALLOC 5 -+# endif -+ -+/* Roughly the maximum number of failure points on the stack. Would be -+ exactly that if always used MAX_FAILURE_ITEMS items each time we failed. -+ This is a variable only so users of regex can assign to it; we never -+ change it ourselves. */ -+ -+ -+# ifndef DEFINED_ONCE -+ -+# ifdef INT_IS_16BIT -+# define RE_M_F_TYPE long int -+# else -+# define RE_M_F_TYPE int -+# endif /* INT_IS_16BIT */ -+ -+# ifdef MATCH_MAY_ALLOCATE -+/* 4400 was enough to cause a crash on Alpha OSF/1, -+ whose default stack limit is 2mb. */ -+# define RE_M_F_DEFAULT 4000 -+# else -+# define RE_M_F_DEFAULT 2000 -+# endif /* MATCH_MAY_ALLOCATE */ -+ -+# include <shlib-compat.h> -+ -+# if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_3) -+link_warning (re_max_failures, "the 're_max_failures' variable is obsolete and will go away.") -+RE_M_F_TYPE re_max_failures = RE_M_F_DEFAULT; -+# else -+RE_M_F_TYPE re_max_failures attribute_hidden = RE_M_F_DEFAULT; -+# endif /* SHLIB_COMPAT */ -+ -+# undef RE_M_F_TYPE -+# undef RE_M_F_DEFAULT -+ -+# endif /* DEFINED_ONCE */ -+ -+# ifdef INT_IS_16BIT -+ -+union PREFIX(fail_stack_elt) -+{ -+ UCHAR_T *pointer; -+ long int integer; -+}; -+ -+typedef union PREFIX(fail_stack_elt) PREFIX(fail_stack_elt_t); -+ -+typedef struct -+{ -+ PREFIX(fail_stack_elt_t) *stack; -+ unsigned long int size; -+ unsigned long int avail; /* Offset of next open position. */ -+} PREFIX(fail_stack_type); -+ -+# else /* not INT_IS_16BIT */ -+ -+union PREFIX(fail_stack_elt) -+{ -+ UCHAR_T *pointer; -+ int integer; -+}; -+ -+typedef union PREFIX(fail_stack_elt) PREFIX(fail_stack_elt_t); -+ -+typedef struct -+{ -+ PREFIX(fail_stack_elt_t) *stack; -+ unsigned size; -+ unsigned avail; /* Offset of next open position. */ -+} PREFIX(fail_stack_type); -+ -+# endif /* INT_IS_16BIT */ -+ -+# ifndef DEFINED_ONCE -+# define FAIL_STACK_EMPTY() (fail_stack.avail == 0) -+# define FAIL_STACK_PTR_EMPTY() (fail_stack_ptr->avail == 0) -+# define FAIL_STACK_FULL() (fail_stack.avail == fail_stack.size) -+# endif -+ -+ -+/* Define macros to initialize and free the failure stack. -+ Do `return -2' if the alloc fails. */ -+ -+# ifdef MATCH_MAY_ALLOCATE -+# define INIT_FAIL_STACK() \ -+ do { \ -+ fail_stack.stack = (PREFIX(fail_stack_elt_t) *) \ -+ REGEX_ALLOCATE_STACK (INIT_FAILURE_ALLOC * sizeof (PREFIX(fail_stack_elt_t))); \ -+ \ -+ if (fail_stack.stack == NULL) \ -+ return -2; \ -+ \ -+ fail_stack.size = INIT_FAILURE_ALLOC; \ -+ fail_stack.avail = 0; \ -+ } while (0) -+ -+# define RESET_FAIL_STACK() REGEX_FREE_STACK (fail_stack.stack) -+# else -+# define INIT_FAIL_STACK() \ -+ do { \ -+ fail_stack.avail = 0; \ -+ } while (0) -+ -+# define RESET_FAIL_STACK() -+# endif -+ -+ -+/* Double the size of FAIL_STACK, up to approximately `re_max_failures' items. -+ -+ Return 1 if succeeds, and 0 if either ran out of memory -+ allocating space for it or it was already too large. -+ -+ REGEX_REALLOCATE_STACK requires `destination' be declared. */ -+ -+# define DOUBLE_FAIL_STACK(fail_stack) \ -+ ((fail_stack).size > (unsigned) (re_max_failures * MAX_FAILURE_ITEMS) \ -+ ? 0 \ -+ : ((fail_stack).stack = (PREFIX(fail_stack_elt_t) *) \ -+ REGEX_REALLOCATE_STACK ((fail_stack).stack, \ -+ (fail_stack).size * sizeof (PREFIX(fail_stack_elt_t)), \ -+ ((fail_stack).size << 1) * sizeof (PREFIX(fail_stack_elt_t))),\ -+ \ -+ (fail_stack).stack == NULL \ -+ ? 0 \ -+ : ((fail_stack).size <<= 1, \ -+ 1))) -+ -+ -+/* Push pointer POINTER on FAIL_STACK. -+ Return 1 if was able to do so and 0 if ran out of memory allocating -+ space to do so. */ -+# define PUSH_PATTERN_OP(POINTER, FAIL_STACK) \ -+ ((FAIL_STACK_FULL () \ -+ && !DOUBLE_FAIL_STACK (FAIL_STACK)) \ -+ ? 0 \ -+ : ((FAIL_STACK).stack[(FAIL_STACK).avail++].pointer = POINTER, \ -+ 1)) -+ -+/* Push a pointer value onto the failure stack. -+ Assumes the variable `fail_stack'. Probably should only -+ be called from within `PUSH_FAILURE_POINT'. */ -+# define PUSH_FAILURE_POINTER(item) \ -+ fail_stack.stack[fail_stack.avail++].pointer = (UCHAR_T *) (item) -+ -+/* This pushes an integer-valued item onto the failure stack. -+ Assumes the variable `fail_stack'. Probably should only -+ be called from within `PUSH_FAILURE_POINT'. */ -+# define PUSH_FAILURE_INT(item) \ -+ fail_stack.stack[fail_stack.avail++].integer = (item) -+ -+/* Push a fail_stack_elt_t value onto the failure stack. -+ Assumes the variable `fail_stack'. Probably should only -+ be called from within `PUSH_FAILURE_POINT'. */ -+# define PUSH_FAILURE_ELT(item) \ -+ fail_stack.stack[fail_stack.avail++] = (item) -+ -+/* These three POP... operations complement the three PUSH... operations. -+ All assume that `fail_stack' is nonempty. */ -+# define POP_FAILURE_POINTER() fail_stack.stack[--fail_stack.avail].pointer -+# define POP_FAILURE_INT() fail_stack.stack[--fail_stack.avail].integer -+# define POP_FAILURE_ELT() fail_stack.stack[--fail_stack.avail] -+ -+/* Used to omit pushing failure point id's when we're not debugging. */ -+# ifdef DEBUG -+# define DEBUG_PUSH PUSH_FAILURE_INT -+# define DEBUG_POP(item_addr) *(item_addr) = POP_FAILURE_INT () -+# else -+# define DEBUG_PUSH(item) -+# define DEBUG_POP(item_addr) -+# endif -+ -+ -+/* Push the information about the state we will need -+ if we ever fail back to it. -+ -+ Requires variables fail_stack, regstart, regend, reg_info, and -+ num_regs_pushed be declared. DOUBLE_FAIL_STACK requires `destination' -+ be declared. -+ -+ Does `return FAILURE_CODE' if runs out of memory. */ -+ -+# define PUSH_FAILURE_POINT(pattern_place, string_place, failure_code) \ -+ do { \ -+ char *destination; \ -+ /* Must be int, so when we don't save any registers, the arithmetic \ -+ of 0 + -1 isn't done as unsigned. */ \ -+ /* Can't be int, since there is not a shred of a guarantee that int \ -+ is wide enough to hold a value of something to which pointer can \ -+ be assigned */ \ -+ active_reg_t this_reg; \ -+ \ -+ DEBUG_STATEMENT (failure_id++); \ -+ DEBUG_STATEMENT (nfailure_points_pushed++); \ -+ DEBUG_PRINT2 ("\nPUSH_FAILURE_POINT #%u:\n", failure_id); \ -+ DEBUG_PRINT2 (" Before push, next avail: %d\n", (fail_stack).avail);\ -+ DEBUG_PRINT2 (" size: %d\n", (fail_stack).size);\ -+ \ -+ DEBUG_PRINT2 (" slots needed: %ld\n", NUM_FAILURE_ITEMS); \ -+ DEBUG_PRINT2 (" available: %d\n", REMAINING_AVAIL_SLOTS); \ -+ \ -+ /* Ensure we have enough space allocated for what we will push. */ \ -+ while (REMAINING_AVAIL_SLOTS < NUM_FAILURE_ITEMS) \ -+ { \ -+ if (!DOUBLE_FAIL_STACK (fail_stack)) \ -+ return failure_code; \ -+ \ -+ DEBUG_PRINT2 ("\n Doubled stack; size now: %d\n", \ -+ (fail_stack).size); \ -+ DEBUG_PRINT2 (" slots available: %d\n", REMAINING_AVAIL_SLOTS);\ -+ } \ -+ \ -+ /* Push the info, starting with the registers. */ \ -+ DEBUG_PRINT1 ("\n"); \ -+ \ -+ if (1) \ -+ for (this_reg = lowest_active_reg; this_reg <= highest_active_reg; \ -+ this_reg++) \ -+ { \ -+ DEBUG_PRINT2 (" Pushing reg: %lu\n", this_reg); \ -+ DEBUG_STATEMENT (num_regs_pushed++); \ -+ \ -+ DEBUG_PRINT2 (" start: %p\n", regstart[this_reg]); \ -+ PUSH_FAILURE_POINTER (regstart[this_reg]); \ -+ \ -+ DEBUG_PRINT2 (" end: %p\n", regend[this_reg]); \ -+ PUSH_FAILURE_POINTER (regend[this_reg]); \ -+ \ -+ DEBUG_PRINT2 (" info: %p\n ", \ -+ reg_info[this_reg].word.pointer); \ -+ DEBUG_PRINT2 (" match_null=%d", \ -+ REG_MATCH_NULL_STRING_P (reg_info[this_reg])); \ -+ DEBUG_PRINT2 (" active=%d", IS_ACTIVE (reg_info[this_reg])); \ -+ DEBUG_PRINT2 (" matched_something=%d", \ -+ MATCHED_SOMETHING (reg_info[this_reg])); \ -+ DEBUG_PRINT2 (" ever_matched=%d", \ -+ EVER_MATCHED_SOMETHING (reg_info[this_reg])); \ -+ DEBUG_PRINT1 ("\n"); \ -+ PUSH_FAILURE_ELT (reg_info[this_reg].word); \ -+ } \ -+ \ -+ DEBUG_PRINT2 (" Pushing low active reg: %ld\n", lowest_active_reg);\ -+ PUSH_FAILURE_INT (lowest_active_reg); \ -+ \ -+ DEBUG_PRINT2 (" Pushing high active reg: %ld\n", highest_active_reg);\ -+ PUSH_FAILURE_INT (highest_active_reg); \ -+ \ -+ DEBUG_PRINT2 (" Pushing pattern %p:\n", pattern_place); \ -+ DEBUG_PRINT_COMPILED_PATTERN (bufp, pattern_place, pend); \ -+ PUSH_FAILURE_POINTER (pattern_place); \ -+ \ -+ DEBUG_PRINT2 (" Pushing string %p: `", string_place); \ -+ DEBUG_PRINT_DOUBLE_STRING (string_place, string1, size1, string2, \ -+ size2); \ -+ DEBUG_PRINT1 ("'\n"); \ -+ PUSH_FAILURE_POINTER (string_place); \ -+ \ -+ DEBUG_PRINT2 (" Pushing failure id: %u\n", failure_id); \ -+ DEBUG_PUSH (failure_id); \ -+ } while (0) -+ -+# ifndef DEFINED_ONCE -+/* This is the number of items that are pushed and popped on the stack -+ for each register. */ -+# define NUM_REG_ITEMS 3 -+ -+/* Individual items aside from the registers. */ -+# ifdef DEBUG -+# define NUM_NONREG_ITEMS 5 /* Includes failure point id. */ -+# else -+# define NUM_NONREG_ITEMS 4 -+# endif -+ -+/* We push at most this many items on the stack. */ -+/* We used to use (num_regs - 1), which is the number of registers -+ this regexp will save; but that was changed to 5 -+ to avoid stack overflow for a regexp with lots of parens. */ -+# define MAX_FAILURE_ITEMS (5 * NUM_REG_ITEMS + NUM_NONREG_ITEMS) -+ -+/* We actually push this many items. */ -+# define NUM_FAILURE_ITEMS \ -+ (((0 \ -+ ? 0 : highest_active_reg - lowest_active_reg + 1) \ -+ * NUM_REG_ITEMS) \ -+ + NUM_NONREG_ITEMS) -+ -+/* How many items can still be added to the stack without overflowing it. */ -+# define REMAINING_AVAIL_SLOTS ((fail_stack).size - (fail_stack).avail) -+# endif /* not DEFINED_ONCE */ -+ -+ -+/* Pops what PUSH_FAIL_STACK pushes. -+ -+ We restore into the parameters, all of which should be lvalues: -+ STR -- the saved data position. -+ PAT -- the saved pattern position. -+ LOW_REG, HIGH_REG -- the highest and lowest active registers. -+ REGSTART, REGEND -- arrays of string positions. -+ REG_INFO -- array of information about each subexpression. -+ -+ Also assumes the variables `fail_stack' and (if debugging), `bufp', -+ `pend', `string1', `size1', `string2', and `size2'. */ -+# define POP_FAILURE_POINT(str, pat, low_reg, high_reg, regstart, regend, reg_info)\ -+{ \ -+ DEBUG_STATEMENT (unsigned failure_id;) \ -+ active_reg_t this_reg; \ -+ const UCHAR_T *string_temp; \ -+ \ -+ assert (!FAIL_STACK_EMPTY ()); \ -+ \ -+ /* Remove failure points and point to how many regs pushed. */ \ -+ DEBUG_PRINT1 ("POP_FAILURE_POINT:\n"); \ -+ DEBUG_PRINT2 (" Before pop, next avail: %d\n", fail_stack.avail); \ -+ DEBUG_PRINT2 (" size: %d\n", fail_stack.size); \ -+ \ -+ assert (fail_stack.avail >= NUM_NONREG_ITEMS); \ -+ \ -+ DEBUG_POP (&failure_id); \ -+ DEBUG_PRINT2 (" Popping failure id: %u\n", failure_id); \ -+ \ -+ /* If the saved string location is NULL, it came from an \ -+ on_failure_keep_string_jump opcode, and we want to throw away the \ -+ saved NULL, thus retaining our current position in the string. */ \ -+ string_temp = POP_FAILURE_POINTER (); \ -+ if (string_temp != NULL) \ -+ str = (const CHAR_T *) string_temp; \ -+ \ -+ DEBUG_PRINT2 (" Popping string %p: `", str); \ -+ DEBUG_PRINT_DOUBLE_STRING (str, string1, size1, string2, size2); \ -+ DEBUG_PRINT1 ("'\n"); \ -+ \ -+ pat = (UCHAR_T *) POP_FAILURE_POINTER (); \ -+ DEBUG_PRINT2 (" Popping pattern %p:\n", pat); \ -+ DEBUG_PRINT_COMPILED_PATTERN (bufp, pat, pend); \ -+ \ -+ /* Restore register info. */ \ -+ high_reg = (active_reg_t) POP_FAILURE_INT (); \ -+ DEBUG_PRINT2 (" Popping high active reg: %ld\n", high_reg); \ -+ \ -+ low_reg = (active_reg_t) POP_FAILURE_INT (); \ -+ DEBUG_PRINT2 (" Popping low active reg: %ld\n", low_reg); \ -+ \ -+ if (1) \ -+ for (this_reg = high_reg; this_reg >= low_reg; this_reg--) \ -+ { \ -+ DEBUG_PRINT2 (" Popping reg: %ld\n", this_reg); \ -+ \ -+ reg_info[this_reg].word = POP_FAILURE_ELT (); \ -+ DEBUG_PRINT2 (" info: %p\n", \ -+ reg_info[this_reg].word.pointer); \ -+ \ -+ regend[this_reg] = (const CHAR_T *) POP_FAILURE_POINTER (); \ -+ DEBUG_PRINT2 (" end: %p\n", regend[this_reg]); \ -+ \ -+ regstart[this_reg] = (const CHAR_T *) POP_FAILURE_POINTER (); \ -+ DEBUG_PRINT2 (" start: %p\n", regstart[this_reg]); \ -+ } \ -+ else \ -+ { \ -+ for (this_reg = highest_active_reg; this_reg > high_reg; this_reg--) \ -+ { \ -+ reg_info[this_reg].word.integer = 0; \ -+ regend[this_reg] = 0; \ -+ regstart[this_reg] = 0; \ -+ } \ -+ highest_active_reg = high_reg; \ -+ } \ -+ \ -+ set_regs_matched_done = 0; \ -+ DEBUG_STATEMENT (nfailure_points_popped++); \ -+} /* POP_FAILURE_POINT */ -+ -+/* Structure for per-register (a.k.a. per-group) information. -+ Other register information, such as the -+ starting and ending positions (which are addresses), and the list of -+ inner groups (which is a bits list) are maintained in separate -+ variables. -+ -+ We are making a (strictly speaking) nonportable assumption here: that -+ the compiler will pack our bit fields into something that fits into -+ the type of `word', i.e., is something that fits into one item on the -+ failure stack. */ -+ -+ -+/* Declarations and macros for re_match_2. */ -+ -+typedef union -+{ -+ PREFIX(fail_stack_elt_t) word; -+ struct -+ { -+ /* This field is one if this group can match the empty string, -+ zero if not. If not yet determined, `MATCH_NULL_UNSET_VALUE'. */ -+# define MATCH_NULL_UNSET_VALUE 3 -+ unsigned match_null_string_p : 2; -+ unsigned is_active : 1; -+ unsigned matched_something : 1; -+ unsigned ever_matched_something : 1; -+ } bits; -+} PREFIX(register_info_type); -+ -+# ifndef DEFINED_ONCE -+# define REG_MATCH_NULL_STRING_P(R) ((R).bits.match_null_string_p) -+# define IS_ACTIVE(R) ((R).bits.is_active) -+# define MATCHED_SOMETHING(R) ((R).bits.matched_something) -+# define EVER_MATCHED_SOMETHING(R) ((R).bits.ever_matched_something) -+ -+ -+/* Call this when have matched a real character; it sets `matched' flags -+ for the subexpressions which we are currently inside. Also records -+ that those subexprs have matched. */ -+# define SET_REGS_MATCHED() \ -+ do \ -+ { \ -+ if (!set_regs_matched_done) \ -+ { \ -+ active_reg_t r; \ -+ set_regs_matched_done = 1; \ -+ for (r = lowest_active_reg; r <= highest_active_reg; r++) \ -+ { \ -+ MATCHED_SOMETHING (reg_info[r]) \ -+ = EVER_MATCHED_SOMETHING (reg_info[r]) \ -+ = 1; \ -+ } \ -+ } \ -+ } \ -+ while (0) -+# endif /* not DEFINED_ONCE */ -+ -+/* Registers are set to a sentinel when they haven't yet matched. */ -+static CHAR_T PREFIX(reg_unset_dummy); -+# define REG_UNSET_VALUE (&PREFIX(reg_unset_dummy)) -+# define REG_UNSET(e) ((e) == REG_UNSET_VALUE) -+ -+/* Subroutine declarations and macros for regex_compile. */ -+static void PREFIX(store_op1) (re_opcode_t op, UCHAR_T *loc, int arg); -+static void PREFIX(store_op2) (re_opcode_t op, UCHAR_T *loc, -+ int arg1, int arg2); -+static void PREFIX(insert_op1) (re_opcode_t op, UCHAR_T *loc, -+ int arg, UCHAR_T *end); -+static void PREFIX(insert_op2) (re_opcode_t op, UCHAR_T *loc, -+ int arg1, int arg2, UCHAR_T *end); -+static boolean PREFIX(at_begline_loc_p) (const CHAR_T *pattern, -+ const CHAR_T *p, -+ reg_syntax_t syntax); -+static boolean PREFIX(at_endline_loc_p) (const CHAR_T *p, -+ const CHAR_T *pend, -+ reg_syntax_t syntax); -+# ifdef WCHAR -+static reg_errcode_t wcs_compile_range (CHAR_T range_start, -+ const CHAR_T **p_ptr, -+ const CHAR_T *pend, -+ char *translate, -+ reg_syntax_t syntax, -+ UCHAR_T *b, -+ CHAR_T *char_set); -+static void insert_space (int num, CHAR_T *loc, CHAR_T *end); -+# else /* BYTE */ -+static reg_errcode_t byte_compile_range (unsigned int range_start, -+ const char **p_ptr, -+ const char *pend, -+ RE_TRANSLATE_TYPE translate, -+ reg_syntax_t syntax, -+ unsigned char *b); -+# endif /* WCHAR */ -+ -+/* Fetch the next character in the uncompiled pattern---translating it -+ if necessary. Also cast from a signed character in the constant -+ string passed to us by the user to an unsigned char that we can use -+ as an array index (in, e.g., `translate'). */ -+/* ifdef MBS_SUPPORT, we translate only if character <= 0xff, -+ because it is impossible to allocate 4GB array for some encodings -+ which have 4 byte character_set like UCS4. */ -+# ifndef PATFETCH -+# ifdef WCHAR -+# define PATFETCH(c) \ -+ do {if (p == pend) return REG_EEND; \ -+ c = (UCHAR_T) *p++; \ -+ if (translate && (c <= 0xff)) c = (UCHAR_T) translate[c]; \ -+ } while (0) -+# else /* BYTE */ -+# define PATFETCH(c) \ -+ do {if (p == pend) return REG_EEND; \ -+ c = (unsigned char) *p++; \ -+ if (translate) c = (unsigned char) translate[c]; \ -+ } while (0) -+# endif /* WCHAR */ -+# endif -+ -+/* Fetch the next character in the uncompiled pattern, with no -+ translation. */ -+# define PATFETCH_RAW(c) \ -+ do {if (p == pend) return REG_EEND; \ -+ c = (UCHAR_T) *p++; \ -+ } while (0) -+ -+/* Go backwards one character in the pattern. */ -+# define PATUNFETCH p-- -+ -+ -+/* If `translate' is non-null, return translate[D], else just D. We -+ cast the subscript to translate because some data is declared as -+ `char *', to avoid warnings when a string constant is passed. But -+ when we use a character as a subscript we must make it unsigned. */ -+/* ifdef MBS_SUPPORT, we translate only if character <= 0xff, -+ because it is impossible to allocate 4GB array for some encodings -+ which have 4 byte character_set like UCS4. */ -+ -+# ifndef TRANSLATE -+# ifdef WCHAR -+# define TRANSLATE(d) \ -+ ((translate && ((UCHAR_T) (d)) <= 0xff) \ -+ ? (char) translate[(unsigned char) (d)] : (d)) -+# else /* BYTE */ -+# define TRANSLATE(d) \ -+ (translate ? (char) translate[(unsigned char) (d)] : (char) (d)) -+# endif /* WCHAR */ -+# endif -+ -+ -+/* Macros for outputting the compiled pattern into `buffer'. */ -+ -+/* If the buffer isn't allocated when it comes in, use this. */ -+# define INIT_BUF_SIZE (32 * sizeof(UCHAR_T)) -+ -+/* Make sure we have at least N more bytes of space in buffer. */ -+# ifdef WCHAR -+# define GET_BUFFER_SPACE(n) \ -+ while (((unsigned long)b - (unsigned long)COMPILED_BUFFER_VAR \ -+ + (n)*sizeof(CHAR_T)) > bufp->allocated) \ -+ EXTEND_BUFFER () -+# else /* BYTE */ -+# define GET_BUFFER_SPACE(n) \ -+ while ((unsigned long) (b - bufp->buffer + (n)) > bufp->allocated) \ -+ EXTEND_BUFFER () -+# endif /* WCHAR */ -+ -+/* Make sure we have one more byte of buffer space and then add C to it. */ -+# define BUF_PUSH(c) \ -+ do { \ -+ GET_BUFFER_SPACE (1); \ -+ *b++ = (UCHAR_T) (c); \ -+ } while (0) -+ -+ -+/* Ensure we have two more bytes of buffer space and then append C1 and C2. */ -+# define BUF_PUSH_2(c1, c2) \ -+ do { \ -+ GET_BUFFER_SPACE (2); \ -+ *b++ = (UCHAR_T) (c1); \ -+ *b++ = (UCHAR_T) (c2); \ -+ } while (0) -+ -+ -+/* As with BUF_PUSH_2, except for three bytes. */ -+# define BUF_PUSH_3(c1, c2, c3) \ -+ do { \ -+ GET_BUFFER_SPACE (3); \ -+ *b++ = (UCHAR_T) (c1); \ -+ *b++ = (UCHAR_T) (c2); \ -+ *b++ = (UCHAR_T) (c3); \ -+ } while (0) -+ -+/* Store a jump with opcode OP at LOC to location TO. We store a -+ relative address offset by the three bytes the jump itself occupies. */ -+# define STORE_JUMP(op, loc, to) \ -+ PREFIX(store_op1) (op, loc, (int) ((to) - (loc) - (1 + OFFSET_ADDRESS_SIZE))) -+ -+/* Likewise, for a two-argument jump. */ -+# define STORE_JUMP2(op, loc, to, arg) \ -+ PREFIX(store_op2) (op, loc, (int) ((to) - (loc) - (1 + OFFSET_ADDRESS_SIZE)), arg) -+ -+/* Like `STORE_JUMP', but for inserting. Assume `b' is the buffer end. */ -+# define INSERT_JUMP(op, loc, to) \ -+ PREFIX(insert_op1) (op, loc, (int) ((to) - (loc) - (1 + OFFSET_ADDRESS_SIZE)), b) -+ -+/* Like `STORE_JUMP2', but for inserting. Assume `b' is the buffer end. */ -+# define INSERT_JUMP2(op, loc, to, arg) \ -+ PREFIX(insert_op2) (op, loc, (int) ((to) - (loc) - (1 + OFFSET_ADDRESS_SIZE)),\ -+ arg, b) -+ -+/* This is not an arbitrary limit: the arguments which represent offsets -+ into the pattern are two bytes long. So if 2^16 bytes turns out to -+ be too small, many things would have to change. */ -+/* Any other compiler which, like MSC, has allocation limit below 2^16 -+ bytes will have to use approach similar to what was done below for -+ MSC and drop MAX_BUF_SIZE a bit. Otherwise you may end up -+ reallocating to 0 bytes. Such thing is not going to work too well. -+ You have been warned!! */ -+# ifndef DEFINED_ONCE -+# if defined _MSC_VER && !defined WIN32 -+/* Microsoft C 16-bit versions limit malloc to approx 65512 bytes. -+ The REALLOC define eliminates a flurry of conversion warnings, -+ but is not required. */ -+# define MAX_BUF_SIZE 65500L -+# define REALLOC(p,s) realloc ((p), (size_t) (s)) -+# else -+# define MAX_BUF_SIZE (1L << 16) -+# define REALLOC(p,s) realloc ((p), (s)) -+# endif -+ -+/* Extend the buffer by twice its current size via realloc and -+ reset the pointers that pointed into the old block to point to the -+ correct places in the new one. If extending the buffer results in it -+ being larger than MAX_BUF_SIZE, then flag memory exhausted. */ -+# if __BOUNDED_POINTERS__ -+# define SET_HIGH_BOUND(P) (__ptrhigh (P) = __ptrlow (P) + bufp->allocated) -+# define MOVE_BUFFER_POINTER(P) \ -+ (__ptrlow (P) += incr, SET_HIGH_BOUND (P), __ptrvalue (P) += incr) -+# define ELSE_EXTEND_BUFFER_HIGH_BOUND \ -+ else \ -+ { \ -+ SET_HIGH_BOUND (b); \ -+ SET_HIGH_BOUND (begalt); \ -+ if (fixup_alt_jump) \ -+ SET_HIGH_BOUND (fixup_alt_jump); \ -+ if (laststart) \ -+ SET_HIGH_BOUND (laststart); \ -+ if (pending_exact) \ -+ SET_HIGH_BOUND (pending_exact); \ -+ } -+# else -+# define MOVE_BUFFER_POINTER(P) (P) += incr -+# define ELSE_EXTEND_BUFFER_HIGH_BOUND -+# endif -+# endif /* not DEFINED_ONCE */ -+ -+# ifdef WCHAR -+# define EXTEND_BUFFER() \ -+ do { \ -+ UCHAR_T *old_buffer = COMPILED_BUFFER_VAR; \ -+ int wchar_count; \ -+ if (bufp->allocated + sizeof(UCHAR_T) > MAX_BUF_SIZE) \ -+ return REG_ESIZE; \ -+ bufp->allocated <<= 1; \ -+ if (bufp->allocated > MAX_BUF_SIZE) \ -+ bufp->allocated = MAX_BUF_SIZE; \ -+ /* How many characters the new buffer can have? */ \ -+ wchar_count = bufp->allocated / sizeof(UCHAR_T); \ -+ if (wchar_count == 0) wchar_count = 1; \ -+ /* Truncate the buffer to CHAR_T align. */ \ -+ bufp->allocated = wchar_count * sizeof(UCHAR_T); \ -+ RETALLOC (COMPILED_BUFFER_VAR, wchar_count, UCHAR_T); \ -+ bufp->buffer = (char*)COMPILED_BUFFER_VAR; \ -+ if (COMPILED_BUFFER_VAR == NULL) \ -+ return REG_ESPACE; \ -+ /* If the buffer moved, move all the pointers into it. */ \ -+ if (old_buffer != COMPILED_BUFFER_VAR) \ -+ { \ -+ int incr = COMPILED_BUFFER_VAR - old_buffer; \ -+ MOVE_BUFFER_POINTER (b); \ -+ MOVE_BUFFER_POINTER (begalt); \ -+ if (fixup_alt_jump) \ -+ MOVE_BUFFER_POINTER (fixup_alt_jump); \ -+ if (laststart) \ -+ MOVE_BUFFER_POINTER (laststart); \ -+ if (pending_exact) \ -+ MOVE_BUFFER_POINTER (pending_exact); \ -+ } \ -+ ELSE_EXTEND_BUFFER_HIGH_BOUND \ -+ } while (0) -+# else /* BYTE */ -+# define EXTEND_BUFFER() \ -+ do { \ -+ UCHAR_T *old_buffer = COMPILED_BUFFER_VAR; \ -+ if (bufp->allocated == MAX_BUF_SIZE) \ -+ return REG_ESIZE; \ -+ bufp->allocated <<= 1; \ -+ if (bufp->allocated > MAX_BUF_SIZE) \ -+ bufp->allocated = MAX_BUF_SIZE; \ -+ bufp->buffer = (UCHAR_T *) REALLOC (COMPILED_BUFFER_VAR, \ -+ bufp->allocated); \ -+ if (COMPILED_BUFFER_VAR == NULL) \ -+ return REG_ESPACE; \ -+ /* If the buffer moved, move all the pointers into it. */ \ -+ if (old_buffer != COMPILED_BUFFER_VAR) \ -+ { \ -+ int incr = COMPILED_BUFFER_VAR - old_buffer; \ -+ MOVE_BUFFER_POINTER (b); \ -+ MOVE_BUFFER_POINTER (begalt); \ -+ if (fixup_alt_jump) \ -+ MOVE_BUFFER_POINTER (fixup_alt_jump); \ -+ if (laststart) \ -+ MOVE_BUFFER_POINTER (laststart); \ -+ if (pending_exact) \ -+ MOVE_BUFFER_POINTER (pending_exact); \ -+ } \ -+ ELSE_EXTEND_BUFFER_HIGH_BOUND \ -+ } while (0) -+# endif /* WCHAR */ -+ -+# ifndef DEFINED_ONCE -+/* Since we have one byte reserved for the register number argument to -+ {start,stop}_memory, the maximum number of groups we can report -+ things about is what fits in that byte. */ -+# define MAX_REGNUM 255 -+ -+/* But patterns can have more than `MAX_REGNUM' registers. We just -+ ignore the excess. */ -+typedef unsigned regnum_t; -+ -+ -+/* Macros for the compile stack. */ -+ -+/* Since offsets can go either forwards or backwards, this type needs to -+ be able to hold values from -(MAX_BUF_SIZE - 1) to MAX_BUF_SIZE - 1. */ -+/* int may be not enough when sizeof(int) == 2. */ -+typedef long pattern_offset_t; -+ -+typedef struct -+{ -+ pattern_offset_t begalt_offset; -+ pattern_offset_t fixup_alt_jump; -+ pattern_offset_t inner_group_offset; -+ pattern_offset_t laststart_offset; -+ regnum_t regnum; -+} compile_stack_elt_t; -+ -+ -+typedef struct -+{ -+ compile_stack_elt_t *stack; -+ unsigned size; -+ unsigned avail; /* Offset of next open position. */ -+} compile_stack_type; -+ -+ -+# define INIT_COMPILE_STACK_SIZE 32 -+ -+# define COMPILE_STACK_EMPTY (compile_stack.avail == 0) -+# define COMPILE_STACK_FULL (compile_stack.avail == compile_stack.size) -+ -+/* The next available element. */ -+# define COMPILE_STACK_TOP (compile_stack.stack[compile_stack.avail]) -+ -+# endif /* not DEFINED_ONCE */ -+ -+/* Set the bit for character C in a list. */ -+# ifndef DEFINED_ONCE -+# define SET_LIST_BIT(c) \ -+ (b[((unsigned char) (c)) / BYTEWIDTH] \ -+ |= 1 << (((unsigned char) c) % BYTEWIDTH)) -+# endif /* DEFINED_ONCE */ -+ -+/* Get the next unsigned number in the uncompiled pattern. */ -+# define GET_UNSIGNED_NUMBER(num) \ -+ { \ -+ while (p != pend) \ -+ { \ -+ PATFETCH (c); \ -+ if (c < '0' || c > '9') \ -+ break; \ -+ if (num <= RE_DUP_MAX) \ -+ { \ -+ if (num < 0) \ -+ num = 0; \ -+ num = num * 10 + c - '0'; \ -+ } \ -+ } \ -+ } -+ -+# ifndef DEFINED_ONCE -+# if WIDE_CHAR_SUPPORT -+/* The GNU C library provides support for user-defined character classes -+ and the functions from ISO C amendement 1. */ -+# ifdef CHARCLASS_NAME_MAX -+# define CHAR_CLASS_MAX_LENGTH CHARCLASS_NAME_MAX -+# else -+/* This shouldn't happen but some implementation might still have this -+ problem. Use a reasonable default value. */ -+# define CHAR_CLASS_MAX_LENGTH 256 -+# endif -+ -+# ifdef _LIBC -+# define IS_CHAR_CLASS(string) __wctype (string) -+# else -+# define IS_CHAR_CLASS(string) wctype (string) -+# endif -+# else -+# define CHAR_CLASS_MAX_LENGTH 6 /* Namely, `xdigit'. */ -+ -+# define IS_CHAR_CLASS(string) \ -+ (STREQ (string, "alpha") || STREQ (string, "upper") \ -+ || STREQ (string, "lower") || STREQ (string, "digit") \ -+ || STREQ (string, "alnum") || STREQ (string, "xdigit") \ -+ || STREQ (string, "space") || STREQ (string, "print") \ -+ || STREQ (string, "punct") || STREQ (string, "graph") \ -+ || STREQ (string, "cntrl") || STREQ (string, "blank")) -+# endif -+# endif /* DEFINED_ONCE */ -+ -+# ifndef MATCH_MAY_ALLOCATE -+ -+/* If we cannot allocate large objects within re_match_2_internal, -+ we make the fail stack and register vectors global. -+ The fail stack, we grow to the maximum size when a regexp -+ is compiled. -+ The register vectors, we adjust in size each time we -+ compile a regexp, according to the number of registers it needs. */ -+ -+static PREFIX(fail_stack_type) fail_stack; -+ -+/* Size with which the following vectors are currently allocated. -+ That is so we can make them bigger as needed, -+ but never make them smaller. */ -+# ifdef DEFINED_ONCE -+static int regs_allocated_size; -+ -+static const char ** regstart, ** regend; -+static const char ** old_regstart, ** old_regend; -+static const char **best_regstart, **best_regend; -+static const char **reg_dummy; -+# endif /* DEFINED_ONCE */ -+ -+static PREFIX(register_info_type) *PREFIX(reg_info); -+static PREFIX(register_info_type) *PREFIX(reg_info_dummy); -+ -+/* Make the register vectors big enough for NUM_REGS registers, -+ but don't make them smaller. */ -+ -+static void -+PREFIX(regex_grow_registers) (int num_regs) -+{ -+ if (num_regs > regs_allocated_size) -+ { -+ RETALLOC_IF (regstart, num_regs, const char *); -+ RETALLOC_IF (regend, num_regs, const char *); -+ RETALLOC_IF (old_regstart, num_regs, const char *); -+ RETALLOC_IF (old_regend, num_regs, const char *); -+ RETALLOC_IF (best_regstart, num_regs, const char *); -+ RETALLOC_IF (best_regend, num_regs, const char *); -+ RETALLOC_IF (PREFIX(reg_info), num_regs, PREFIX(register_info_type)); -+ RETALLOC_IF (reg_dummy, num_regs, const char *); -+ RETALLOC_IF (PREFIX(reg_info_dummy), num_regs, PREFIX(register_info_type)); -+ -+ regs_allocated_size = num_regs; -+ } -+} -+ -+# endif /* not MATCH_MAY_ALLOCATE */ -+ -+# ifndef DEFINED_ONCE -+static boolean group_in_compile_stack (compile_stack_type compile_stack, -+ regnum_t regnum); -+# endif /* not DEFINED_ONCE */ -+ -+/* `regex_compile' compiles PATTERN (of length SIZE) according to SYNTAX. -+ Returns one of error codes defined in `regex.h', or zero for success. -+ -+ Assumes the `allocated' (and perhaps `buffer') and `translate' -+ fields are set in BUFP on entry. -+ -+ If it succeeds, results are put in BUFP (if it returns an error, the -+ contents of BUFP are undefined): -+ `buffer' is the compiled pattern; -+ `syntax' is set to SYNTAX; -+ `used' is set to the length of the compiled pattern; -+ `fastmap_accurate' is zero; -+ `re_nsub' is the number of subexpressions in PATTERN; -+ `not_bol' and `not_eol' are zero; -+ -+ The `fastmap' and `newline_anchor' fields are neither -+ examined nor set. */ -+ -+/* Return, freeing storage we allocated. */ -+# ifdef WCHAR -+# define FREE_STACK_RETURN(value) \ -+ return (free(pattern), free(mbs_offset), free(is_binary), free (compile_stack.stack), value) -+# else -+# define FREE_STACK_RETURN(value) \ -+ return (free (compile_stack.stack), value) -+# endif /* WCHAR */ -+ -+static reg_errcode_t -+PREFIX(regex_compile) (const char *ARG_PREFIX(pattern), -+ size_t ARG_PREFIX(size), reg_syntax_t syntax, -+ struct re_pattern_buffer *bufp) -+{ -+ /* We fetch characters from PATTERN here. Even though PATTERN is -+ `char *' (i.e., signed), we declare these variables as unsigned, so -+ they can be reliably used as array indices. */ -+ register UCHAR_T c, c1; -+ -+#ifdef WCHAR -+ /* A temporary space to keep wchar_t pattern and compiled pattern. */ -+ CHAR_T *pattern, *COMPILED_BUFFER_VAR; -+ size_t size; -+ /* offset buffer for optimization. See convert_mbs_to_wc. */ -+ int *mbs_offset = NULL; -+ /* It hold whether each wchar_t is binary data or not. */ -+ char *is_binary = NULL; -+ /* A flag whether exactn is handling binary data or not. */ -+ char is_exactn_bin = FALSE; -+#endif /* WCHAR */ -+ -+ /* A random temporary spot in PATTERN. */ -+ const CHAR_T *p1; -+ -+ /* Points to the end of the buffer, where we should append. */ -+ register UCHAR_T *b; -+ -+ /* Keeps track of unclosed groups. */ -+ compile_stack_type compile_stack; -+ -+ /* Points to the current (ending) position in the pattern. */ -+#ifdef WCHAR -+ const CHAR_T *p; -+ const CHAR_T *pend; -+#else /* BYTE */ -+ const CHAR_T *p = pattern; -+ const CHAR_T *pend = pattern + size; -+#endif /* WCHAR */ -+ -+ /* How to translate the characters in the pattern. */ -+ RE_TRANSLATE_TYPE translate = bufp->translate; -+ -+ /* Address of the count-byte of the most recently inserted `exactn' -+ command. This makes it possible to tell if a new exact-match -+ character can be added to that command or if the character requires -+ a new `exactn' command. */ -+ UCHAR_T *pending_exact = 0; -+ -+ /* Address of start of the most recently finished expression. -+ This tells, e.g., postfix * where to find the start of its -+ operand. Reset at the beginning of groups and alternatives. */ -+ UCHAR_T *laststart = 0; -+ -+ /* Address of beginning of regexp, or inside of last group. */ -+ UCHAR_T *begalt; -+ -+ /* Address of the place where a forward jump should go to the end of -+ the containing expression. Each alternative of an `or' -- except the -+ last -- ends with a forward jump of this sort. */ -+ UCHAR_T *fixup_alt_jump = 0; -+ -+ /* Counts open-groups as they are encountered. Remembered for the -+ matching close-group on the compile stack, so the same register -+ number is put in the stop_memory as the start_memory. */ -+ regnum_t regnum = 0; -+ -+#ifdef WCHAR -+ /* Initialize the wchar_t PATTERN and offset_buffer. */ -+ p = pend = pattern = TALLOC(csize + 1, CHAR_T); -+ mbs_offset = TALLOC(csize + 1, int); -+ is_binary = TALLOC(csize + 1, char); -+ if (pattern == NULL || mbs_offset == NULL || is_binary == NULL) -+ { -+ free(pattern); -+ free(mbs_offset); -+ free(is_binary); -+ return REG_ESPACE; -+ } -+ pattern[csize] = L'\0'; /* sentinel */ -+ size = convert_mbs_to_wcs(pattern, cpattern, csize, mbs_offset, is_binary); -+ pend = p + size; -+ if (size < 0) -+ { -+ free(pattern); -+ free(mbs_offset); -+ free(is_binary); -+ return REG_BADPAT; -+ } -+#endif -+ -+#ifdef DEBUG -+ DEBUG_PRINT1 ("\nCompiling pattern: "); -+ if (debug) -+ { -+ unsigned debug_count; -+ -+ for (debug_count = 0; debug_count < size; debug_count++) -+ PUT_CHAR (pattern[debug_count]); -+ putchar ('\n'); -+ } -+#endif /* DEBUG */ -+ -+ /* Initialize the compile stack. */ -+ compile_stack.stack = TALLOC (INIT_COMPILE_STACK_SIZE, compile_stack_elt_t); -+ if (compile_stack.stack == NULL) -+ { -+#ifdef WCHAR -+ free(pattern); -+ free(mbs_offset); -+ free(is_binary); -+#endif -+ return REG_ESPACE; -+ } -+ -+ compile_stack.size = INIT_COMPILE_STACK_SIZE; -+ compile_stack.avail = 0; -+ -+ /* Initialize the pattern buffer. */ -+ bufp->syntax = syntax; -+ bufp->fastmap_accurate = 0; -+ bufp->not_bol = bufp->not_eol = 0; -+ -+ /* Set `used' to zero, so that if we return an error, the pattern -+ printer (for debugging) will think there's no pattern. We reset it -+ at the end. */ -+ bufp->used = 0; -+ -+ /* Always count groups, whether or not bufp->no_sub is set. */ -+ bufp->re_nsub = 0; -+ -+#if !defined emacs && !defined SYNTAX_TABLE -+ /* Initialize the syntax table. */ -+ init_syntax_once (); -+#endif -+ -+ if (bufp->allocated == 0) -+ { -+ if (bufp->buffer) -+ { /* If zero allocated, but buffer is non-null, try to realloc -+ enough space. This loses if buffer's address is bogus, but -+ that is the user's responsibility. */ -+#ifdef WCHAR -+ /* Free bufp->buffer and allocate an array for wchar_t pattern -+ buffer. */ -+ free(bufp->buffer); -+ COMPILED_BUFFER_VAR = TALLOC (INIT_BUF_SIZE/sizeof(UCHAR_T), -+ UCHAR_T); -+#else -+ RETALLOC (COMPILED_BUFFER_VAR, INIT_BUF_SIZE, UCHAR_T); -+#endif /* WCHAR */ -+ } -+ else -+ { /* Caller did not allocate a buffer. Do it for them. */ -+ COMPILED_BUFFER_VAR = TALLOC (INIT_BUF_SIZE / sizeof(UCHAR_T), -+ UCHAR_T); -+ } -+ -+ if (!COMPILED_BUFFER_VAR) FREE_STACK_RETURN (REG_ESPACE); -+#ifdef WCHAR -+ bufp->buffer = (char*)COMPILED_BUFFER_VAR; -+#endif /* WCHAR */ -+ bufp->allocated = INIT_BUF_SIZE; -+ } -+#ifdef WCHAR -+ else -+ COMPILED_BUFFER_VAR = (UCHAR_T*) bufp->buffer; -+#endif -+ -+ begalt = b = COMPILED_BUFFER_VAR; -+ -+ /* Loop through the uncompiled pattern until we're at the end. */ -+ while (p != pend) -+ { -+ PATFETCH (c); -+ -+ switch (c) -+ { -+ case '^': -+ { -+ if ( /* If at start of pattern, it's an operator. */ -+ p == pattern + 1 -+ /* If context independent, it's an operator. */ -+ || syntax & RE_CONTEXT_INDEP_ANCHORS -+ /* Otherwise, depends on what's come before. */ -+ || PREFIX(at_begline_loc_p) (pattern, p, syntax)) -+ BUF_PUSH (begline); -+ else -+ goto normal_char; -+ } -+ break; -+ -+ -+ case '$': -+ { -+ if ( /* If at end of pattern, it's an operator. */ -+ p == pend -+ /* If context independent, it's an operator. */ -+ || syntax & RE_CONTEXT_INDEP_ANCHORS -+ /* Otherwise, depends on what's next. */ -+ || PREFIX(at_endline_loc_p) (p, pend, syntax)) -+ BUF_PUSH (endline); -+ else -+ goto normal_char; -+ } -+ break; -+ -+ -+ case '+': -+ case '?': -+ if ((syntax & RE_BK_PLUS_QM) -+ || (syntax & RE_LIMITED_OPS)) -+ goto normal_char; -+ handle_plus: -+ case '*': -+ /* If there is no previous pattern... */ -+ if (!laststart) -+ { -+ if (syntax & RE_CONTEXT_INVALID_OPS) -+ FREE_STACK_RETURN (REG_BADRPT); -+ else if (!(syntax & RE_CONTEXT_INDEP_OPS)) -+ goto normal_char; -+ } -+ -+ { -+ /* Are we optimizing this jump? */ -+ boolean keep_string_p = false; -+ -+ /* 1 means zero (many) matches is allowed. */ -+ char zero_times_ok = 0, many_times_ok = 0; -+ -+ /* If there is a sequence of repetition chars, collapse it -+ down to just one (the right one). We can't combine -+ interval operators with these because of, e.g., `a{2}*', -+ which should only match an even number of `a's. */ -+ -+ for (;;) -+ { -+ zero_times_ok |= c != '+'; -+ many_times_ok |= c != '?'; -+ -+ if (p == pend) -+ break; -+ -+ PATFETCH (c); -+ -+ if (c == '*' -+ || (!(syntax & RE_BK_PLUS_QM) && (c == '+' || c == '?'))) -+ ; -+ -+ else if (syntax & RE_BK_PLUS_QM && c == '\\') -+ { -+ if (p == pend) FREE_STACK_RETURN (REG_EESCAPE); -+ -+ PATFETCH (c1); -+ if (!(c1 == '+' || c1 == '?')) -+ { -+ PATUNFETCH; -+ PATUNFETCH; -+ break; -+ } -+ -+ c = c1; -+ } -+ else -+ { -+ PATUNFETCH; -+ break; -+ } -+ -+ /* If we get here, we found another repeat character. */ -+ } -+ -+ /* Star, etc. applied to an empty pattern is equivalent -+ to an empty pattern. */ -+ if (!laststart) -+ break; -+ -+ /* Now we know whether or not zero matches is allowed -+ and also whether or not two or more matches is allowed. */ -+ if (many_times_ok) -+ { /* More than one repetition is allowed, so put in at the -+ end a backward relative jump from `b' to before the next -+ jump we're going to put in below (which jumps from -+ laststart to after this jump). -+ -+ But if we are at the `*' in the exact sequence `.*\n', -+ insert an unconditional jump backwards to the ., -+ instead of the beginning of the loop. This way we only -+ push a failure point once, instead of every time -+ through the loop. */ -+ assert (p - 1 > pattern); -+ -+ /* Allocate the space for the jump. */ -+ GET_BUFFER_SPACE (1 + OFFSET_ADDRESS_SIZE); -+ -+ /* We know we are not at the first character of the pattern, -+ because laststart was nonzero. And we've already -+ incremented `p', by the way, to be the character after -+ the `*'. Do we have to do something analogous here -+ for null bytes, because of RE_DOT_NOT_NULL? */ -+ if (TRANSLATE (*(p - 2)) == TRANSLATE ('.') -+ && zero_times_ok -+ && p < pend && TRANSLATE (*p) == TRANSLATE ('\n') -+ && !(syntax & RE_DOT_NEWLINE)) -+ { /* We have .*\n. */ -+ STORE_JUMP (jump, b, laststart); -+ keep_string_p = true; -+ } -+ else -+ /* Anything else. */ -+ STORE_JUMP (maybe_pop_jump, b, laststart - -+ (1 + OFFSET_ADDRESS_SIZE)); -+ -+ /* We've added more stuff to the buffer. */ -+ b += 1 + OFFSET_ADDRESS_SIZE; -+ } -+ -+ /* On failure, jump from laststart to b + 3, which will be the -+ end of the buffer after this jump is inserted. */ -+ /* ifdef WCHAR, 'b + 1 + OFFSET_ADDRESS_SIZE' instead of -+ 'b + 3'. */ -+ GET_BUFFER_SPACE (1 + OFFSET_ADDRESS_SIZE); -+ INSERT_JUMP (keep_string_p ? on_failure_keep_string_jump -+ : on_failure_jump, -+ laststart, b + 1 + OFFSET_ADDRESS_SIZE); -+ pending_exact = 0; -+ b += 1 + OFFSET_ADDRESS_SIZE; -+ -+ if (!zero_times_ok) -+ { -+ /* At least one repetition is required, so insert a -+ `dummy_failure_jump' before the initial -+ `on_failure_jump' instruction of the loop. This -+ effects a skip over that instruction the first time -+ we hit that loop. */ -+ GET_BUFFER_SPACE (1 + OFFSET_ADDRESS_SIZE); -+ INSERT_JUMP (dummy_failure_jump, laststart, laststart + -+ 2 + 2 * OFFSET_ADDRESS_SIZE); -+ b += 1 + OFFSET_ADDRESS_SIZE; -+ } -+ } -+ break; -+ -+ -+ case '.': -+ laststart = b; -+ BUF_PUSH (anychar); -+ break; -+ -+ -+ case '[': -+ { -+ boolean had_char_class = false; -+#ifdef WCHAR -+ CHAR_T range_start = 0xffffffff; -+#else -+ unsigned int range_start = 0xffffffff; -+#endif -+ if (p == pend) FREE_STACK_RETURN (REG_EBRACK); -+ -+#ifdef WCHAR -+ /* We assume a charset(_not) structure as a wchar_t array. -+ charset[0] = (re_opcode_t) charset(_not) -+ charset[1] = l (= length of char_classes) -+ charset[2] = m (= length of collating_symbols) -+ charset[3] = n (= length of equivalence_classes) -+ charset[4] = o (= length of char_ranges) -+ charset[5] = p (= length of chars) -+ -+ charset[6] = char_class (wctype_t) -+ charset[6+CHAR_CLASS_SIZE] = char_class (wctype_t) -+ ... -+ charset[l+5] = char_class (wctype_t) -+ -+ charset[l+6] = collating_symbol (wchar_t) -+ ... -+ charset[l+m+5] = collating_symbol (wchar_t) -+ ifdef _LIBC we use the index if -+ _NL_COLLATE_SYMB_EXTRAMB instead of -+ wchar_t string. -+ -+ charset[l+m+6] = equivalence_classes (wchar_t) -+ ... -+ charset[l+m+n+5] = equivalence_classes (wchar_t) -+ ifdef _LIBC we use the index in -+ _NL_COLLATE_WEIGHT instead of -+ wchar_t string. -+ -+ charset[l+m+n+6] = range_start -+ charset[l+m+n+7] = range_end -+ ... -+ charset[l+m+n+2o+4] = range_start -+ charset[l+m+n+2o+5] = range_end -+ ifdef _LIBC we use the value looked up -+ in _NL_COLLATE_COLLSEQ instead of -+ wchar_t character. -+ -+ charset[l+m+n+2o+6] = char -+ ... -+ charset[l+m+n+2o+p+5] = char -+ -+ */ -+ -+ /* We need at least 6 spaces: the opcode, the length of -+ char_classes, the length of collating_symbols, the length of -+ equivalence_classes, the length of char_ranges, the length of -+ chars. */ -+ GET_BUFFER_SPACE (6); -+ -+ /* Save b as laststart. And We use laststart as the pointer -+ to the first element of the charset here. -+ In other words, laststart[i] indicates charset[i]. */ -+ laststart = b; -+ -+ /* We test `*p == '^' twice, instead of using an if -+ statement, so we only need one BUF_PUSH. */ -+ BUF_PUSH (*p == '^' ? charset_not : charset); -+ if (*p == '^') -+ p++; -+ -+ /* Push the length of char_classes, the length of -+ collating_symbols, the length of equivalence_classes, the -+ length of char_ranges and the length of chars. */ -+ BUF_PUSH_3 (0, 0, 0); -+ BUF_PUSH_2 (0, 0); -+ -+ /* Remember the first position in the bracket expression. */ -+ p1 = p; -+ -+ /* charset_not matches newline according to a syntax bit. */ -+ if ((re_opcode_t) b[-6] == charset_not -+ && (syntax & RE_HAT_LISTS_NOT_NEWLINE)) -+ { -+ BUF_PUSH('\n'); -+ laststart[5]++; /* Update the length of characters */ -+ } -+ -+ /* Read in characters and ranges, setting map bits. */ -+ for (;;) -+ { -+ if (p == pend) FREE_STACK_RETURN (REG_EBRACK); -+ -+ PATFETCH (c); -+ -+ /* \ might escape characters inside [...] and [^...]. */ -+ if ((syntax & RE_BACKSLASH_ESCAPE_IN_LISTS) && c == '\\') -+ { -+ if (p == pend) FREE_STACK_RETURN (REG_EESCAPE); -+ -+ PATFETCH (c1); -+ BUF_PUSH(c1); -+ laststart[5]++; /* Update the length of chars */ -+ range_start = c1; -+ continue; -+ } -+ -+ /* Could be the end of the bracket expression. If it's -+ not (i.e., when the bracket expression is `[]' so -+ far), the ']' character bit gets set way below. */ -+ if (c == ']' && p != p1 + 1) -+ break; -+ -+ /* Look ahead to see if it's a range when the last thing -+ was a character class. */ -+ if (had_char_class && c == '-' && *p != ']') -+ FREE_STACK_RETURN (REG_ERANGE); -+ -+ /* Look ahead to see if it's a range when the last thing -+ was a character: if this is a hyphen not at the -+ beginning or the end of a list, then it's the range -+ operator. */ -+ if (c == '-' -+ && !(p - 2 >= pattern && p[-2] == '[') -+ && !(p - 3 >= pattern && p[-3] == '[' && p[-2] == '^') -+ && *p != ']') -+ { -+ reg_errcode_t ret; -+ /* Allocate the space for range_start and range_end. */ -+ GET_BUFFER_SPACE (2); -+ /* Update the pointer to indicate end of buffer. */ -+ b += 2; -+ ret = wcs_compile_range (range_start, &p, pend, translate, -+ syntax, b, laststart); -+ if (ret != REG_NOERROR) FREE_STACK_RETURN (ret); -+ range_start = 0xffffffff; -+ } -+ else if (p[0] == '-' && p[1] != ']') -+ { /* This handles ranges made up of characters only. */ -+ reg_errcode_t ret; -+ -+ /* Move past the `-'. */ -+ PATFETCH (c1); -+ /* Allocate the space for range_start and range_end. */ -+ GET_BUFFER_SPACE (2); -+ /* Update the pointer to indicate end of buffer. */ -+ b += 2; -+ ret = wcs_compile_range (c, &p, pend, translate, syntax, b, -+ laststart); -+ if (ret != REG_NOERROR) FREE_STACK_RETURN (ret); -+ range_start = 0xffffffff; -+ } -+ -+ /* See if we're at the beginning of a possible character -+ class. */ -+ else if (syntax & RE_CHAR_CLASSES && c == '[' && *p == ':') -+ { /* Leave room for the null. */ -+ char str[CHAR_CLASS_MAX_LENGTH + 1]; -+ -+ PATFETCH (c); -+ c1 = 0; -+ -+ /* If pattern is `[[:'. */ -+ if (p == pend) FREE_STACK_RETURN (REG_EBRACK); -+ -+ for (;;) -+ { -+ PATFETCH (c); -+ if ((c == ':' && *p == ']') || p == pend) -+ break; -+ if (c1 < CHAR_CLASS_MAX_LENGTH) -+ str[c1++] = c; -+ else -+ /* This is in any case an invalid class name. */ -+ str[0] = '\0'; -+ } -+ str[c1] = '\0'; -+ -+ /* If isn't a word bracketed by `[:' and `:]': -+ undo the ending character, the letters, and leave -+ the leading `:' and `[' (but store them as character). */ -+ if (c == ':' && *p == ']') -+ { -+ wctype_t wt; -+ uintptr_t alignedp; -+ -+ /* Query the character class as wctype_t. */ -+ wt = IS_CHAR_CLASS (str); -+ if (wt == 0) -+ FREE_STACK_RETURN (REG_ECTYPE); -+ -+ /* Throw away the ] at the end of the character -+ class. */ -+ PATFETCH (c); -+ -+ if (p == pend) FREE_STACK_RETURN (REG_EBRACK); -+ -+ /* Allocate the space for character class. */ -+ GET_BUFFER_SPACE(CHAR_CLASS_SIZE); -+ /* Update the pointer to indicate end of buffer. */ -+ b += CHAR_CLASS_SIZE; -+ /* Move data which follow character classes -+ not to violate the data. */ -+ insert_space(CHAR_CLASS_SIZE, -+ laststart + 6 + laststart[1], -+ b - 1); -+ alignedp = ((uintptr_t)(laststart + 6 + laststart[1]) -+ + __alignof__(wctype_t) - 1) -+ & ~(uintptr_t)(__alignof__(wctype_t) - 1); -+ /* Store the character class. */ -+ *((wctype_t*)alignedp) = wt; -+ /* Update length of char_classes */ -+ laststart[1] += CHAR_CLASS_SIZE; -+ -+ had_char_class = true; -+ } -+ else -+ { -+ c1++; -+ while (c1--) -+ PATUNFETCH; -+ BUF_PUSH ('['); -+ BUF_PUSH (':'); -+ laststart[5] += 2; /* Update the length of characters */ -+ range_start = ':'; -+ had_char_class = false; -+ } -+ } -+ else if (syntax & RE_CHAR_CLASSES && c == '[' && (*p == '=' -+ || *p == '.')) -+ { -+ CHAR_T str[128]; /* Should be large enough. */ -+ CHAR_T delim = *p; /* '=' or '.' */ -+# ifdef _LIBC -+ uint32_t nrules = -+ _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_NRULES); -+# endif -+ PATFETCH (c); -+ c1 = 0; -+ -+ /* If pattern is `[[=' or '[[.'. */ -+ if (p == pend) FREE_STACK_RETURN (REG_EBRACK); -+ -+ for (;;) -+ { -+ PATFETCH (c); -+ if ((c == delim && *p == ']') || p == pend) -+ break; -+ if (c1 < sizeof (str) - 1) -+ str[c1++] = c; -+ else -+ /* This is in any case an invalid class name. */ -+ str[0] = '\0'; -+ } -+ str[c1] = '\0'; -+ -+ if (c == delim && *p == ']' && str[0] != '\0') -+ { -+ unsigned int i, offset; -+ /* If we have no collation data we use the default -+ collation in which each character is in a class -+ by itself. It also means that ASCII is the -+ character set and therefore we cannot have character -+ with more than one byte in the multibyte -+ representation. */ -+ -+ /* If not defined _LIBC, we push the name and -+ `\0' for the sake of matching performance. */ -+ int datasize = c1 + 1; -+ -+# ifdef _LIBC -+ int32_t idx = 0; -+ if (nrules == 0) -+# endif -+ { -+ if (c1 != 1) -+ FREE_STACK_RETURN (REG_ECOLLATE); -+ } -+# ifdef _LIBC -+ else -+ { -+ const int32_t *table; -+ const int32_t *weights; -+ const int32_t *extra; -+ const int32_t *indirect; -+ wint_t *cp; -+ -+ /* This #include defines a local function! */ -+# include <locale/weightwc.h> -+ -+ if(delim == '=') -+ { -+ /* We push the index for equivalence class. */ -+ cp = (wint_t*)str; -+ -+ table = (const int32_t *) -+ _NL_CURRENT (LC_COLLATE, -+ _NL_COLLATE_TABLEWC); -+ weights = (const int32_t *) -+ _NL_CURRENT (LC_COLLATE, -+ _NL_COLLATE_WEIGHTWC); -+ extra = (const int32_t *) -+ _NL_CURRENT (LC_COLLATE, -+ _NL_COLLATE_EXTRAWC); -+ indirect = (const int32_t *) -+ _NL_CURRENT (LC_COLLATE, -+ _NL_COLLATE_INDIRECTWC); -+ -+ idx = findidx ((const wint_t**)&cp, c1); -+ if (idx == 0 || cp < (wint_t*) str + c1) -+ /* This is no valid character. */ -+ FREE_STACK_RETURN (REG_ECOLLATE); -+ -+ str[0] = (wchar_t)idx; -+ } -+ else /* delim == '.' */ -+ { -+ /* We push collation sequence value -+ for collating symbol. */ -+ int32_t table_size; -+ const int32_t *symb_table; -+ const unsigned char *extra; -+ int32_t idx; -+ int32_t elem; -+ int32_t second; -+ int32_t hash; -+ char char_str[c1]; -+ -+ /* We have to convert the name to a single-byte -+ string. This is possible since the names -+ consist of ASCII characters and the internal -+ representation is UCS4. */ -+ for (i = 0; i < c1; ++i) -+ char_str[i] = str[i]; -+ -+ table_size = -+ _NL_CURRENT_WORD (LC_COLLATE, -+ _NL_COLLATE_SYMB_HASH_SIZEMB); -+ symb_table = (const int32_t *) -+ _NL_CURRENT (LC_COLLATE, -+ _NL_COLLATE_SYMB_TABLEMB); -+ extra = (const unsigned char *) -+ _NL_CURRENT (LC_COLLATE, -+ _NL_COLLATE_SYMB_EXTRAMB); -+ -+ /* Locate the character in the hashing table. */ -+ hash = elem_hash (char_str, c1); -+ -+ idx = 0; -+ elem = hash % table_size; -+ second = hash % (table_size - 2); -+ while (symb_table[2 * elem] != 0) -+ { -+ /* First compare the hashing value. */ -+ if (symb_table[2 * elem] == hash -+ && c1 == extra[symb_table[2 * elem + 1]] -+ && memcmp (char_str, -+ &extra[symb_table[2 * elem + 1] -+ + 1], c1) == 0) -+ { -+ /* Yep, this is the entry. */ -+ idx = symb_table[2 * elem + 1]; -+ idx += 1 + extra[idx]; -+ break; -+ } -+ -+ /* Next entry. */ -+ elem += second; -+ } -+ -+ if (symb_table[2 * elem] != 0) -+ { -+ /* Compute the index of the byte sequence -+ in the table. */ -+ idx += 1 + extra[idx]; -+ /* Adjust for the alignment. */ -+ idx = (idx + 3) & ~3; -+ -+ str[0] = (wchar_t) idx + 4; -+ } -+ else if (symb_table[2 * elem] == 0 && c1 == 1) -+ { -+ /* No valid character. Match it as a -+ single byte character. */ -+ had_char_class = false; -+ BUF_PUSH(str[0]); -+ /* Update the length of characters */ -+ laststart[5]++; -+ range_start = str[0]; -+ -+ /* Throw away the ] at the end of the -+ collating symbol. */ -+ PATFETCH (c); -+ /* exit from the switch block. */ -+ continue; -+ } -+ else -+ FREE_STACK_RETURN (REG_ECOLLATE); -+ } -+ datasize = 1; -+ } -+# endif -+ /* Throw away the ] at the end of the equivalence -+ class (or collating symbol). */ -+ PATFETCH (c); -+ -+ /* Allocate the space for the equivalence class -+ (or collating symbol) (and '\0' if needed). */ -+ GET_BUFFER_SPACE(datasize); -+ /* Update the pointer to indicate end of buffer. */ -+ b += datasize; -+ -+ if (delim == '=') -+ { /* equivalence class */ -+ /* Calculate the offset of char_ranges, -+ which is next to equivalence_classes. */ -+ offset = laststart[1] + laststart[2] -+ + laststart[3] +6; -+ /* Insert space. */ -+ insert_space(datasize, laststart + offset, b - 1); -+ -+ /* Write the equivalence_class and \0. */ -+ for (i = 0 ; i < datasize ; i++) -+ laststart[offset + i] = str[i]; -+ -+ /* Update the length of equivalence_classes. */ -+ laststart[3] += datasize; -+ had_char_class = true; -+ } -+ else /* delim == '.' */ -+ { /* collating symbol */ -+ /* Calculate the offset of the equivalence_classes, -+ which is next to collating_symbols. */ -+ offset = laststart[1] + laststart[2] + 6; -+ /* Insert space and write the collationg_symbol -+ and \0. */ -+ insert_space(datasize, laststart + offset, b-1); -+ for (i = 0 ; i < datasize ; i++) -+ laststart[offset + i] = str[i]; -+ -+ /* In re_match_2_internal if range_start < -1, we -+ assume -range_start is the offset of the -+ collating symbol which is specified as -+ the character of the range start. So we assign -+ -(laststart[1] + laststart[2] + 6) to -+ range_start. */ -+ range_start = -(laststart[1] + laststart[2] + 6); -+ /* Update the length of collating_symbol. */ -+ laststart[2] += datasize; -+ had_char_class = false; -+ } -+ } -+ else -+ { -+ c1++; -+ while (c1--) -+ PATUNFETCH; -+ BUF_PUSH ('['); -+ BUF_PUSH (delim); -+ laststart[5] += 2; /* Update the length of characters */ -+ range_start = delim; -+ had_char_class = false; -+ } -+ } -+ else -+ { -+ had_char_class = false; -+ BUF_PUSH(c); -+ laststart[5]++; /* Update the length of characters */ -+ range_start = c; -+ } -+ } -+ -+#else /* BYTE */ -+ /* Ensure that we have enough space to push a charset: the -+ opcode, the length count, and the bitset; 34 bytes in all. */ -+ GET_BUFFER_SPACE (34); -+ -+ laststart = b; -+ -+ /* We test `*p == '^' twice, instead of using an if -+ statement, so we only need one BUF_PUSH. */ -+ BUF_PUSH (*p == '^' ? charset_not : charset); -+ if (*p == '^') -+ p++; -+ -+ /* Remember the first position in the bracket expression. */ -+ p1 = p; -+ -+ /* Push the number of bytes in the bitmap. */ -+ BUF_PUSH ((1 << BYTEWIDTH) / BYTEWIDTH); -+ -+ /* Clear the whole map. */ -+ bzero (b, (1 << BYTEWIDTH) / BYTEWIDTH); -+ -+ /* charset_not matches newline according to a syntax bit. */ -+ if ((re_opcode_t) b[-2] == charset_not -+ && (syntax & RE_HAT_LISTS_NOT_NEWLINE)) -+ SET_LIST_BIT ('\n'); -+ -+ /* Read in characters and ranges, setting map bits. */ -+ for (;;) -+ { -+ if (p == pend) FREE_STACK_RETURN (REG_EBRACK); -+ -+ PATFETCH (c); -+ -+ /* \ might escape characters inside [...] and [^...]. */ -+ if ((syntax & RE_BACKSLASH_ESCAPE_IN_LISTS) && c == '\\') -+ { -+ if (p == pend) FREE_STACK_RETURN (REG_EESCAPE); -+ -+ PATFETCH (c1); -+ SET_LIST_BIT (c1); -+ range_start = c1; -+ continue; -+ } -+ -+ /* Could be the end of the bracket expression. If it's -+ not (i.e., when the bracket expression is `[]' so -+ far), the ']' character bit gets set way below. */ -+ if (c == ']' && p != p1 + 1) -+ break; -+ -+ /* Look ahead to see if it's a range when the last thing -+ was a character class. */ -+ if (had_char_class && c == '-' && *p != ']') -+ FREE_STACK_RETURN (REG_ERANGE); -+ -+ /* Look ahead to see if it's a range when the last thing -+ was a character: if this is a hyphen not at the -+ beginning or the end of a list, then it's the range -+ operator. */ -+ if (c == '-' -+ && !(p - 2 >= pattern && p[-2] == '[') -+ && !(p - 3 >= pattern && p[-3] == '[' && p[-2] == '^') -+ && *p != ']') -+ { -+ reg_errcode_t ret -+ = byte_compile_range (range_start, &p, pend, translate, -+ syntax, b); -+ if (ret != REG_NOERROR) FREE_STACK_RETURN (ret); -+ range_start = 0xffffffff; -+ } -+ -+ else if (p[0] == '-' && p[1] != ']') -+ { /* This handles ranges made up of characters only. */ -+ reg_errcode_t ret; -+ -+ /* Move past the `-'. */ -+ PATFETCH (c1); -+ -+ ret = byte_compile_range (c, &p, pend, translate, syntax, b); -+ if (ret != REG_NOERROR) FREE_STACK_RETURN (ret); -+ range_start = 0xffffffff; -+ } -+ -+ /* See if we're at the beginning of a possible character -+ class. */ -+ -+ else if (syntax & RE_CHAR_CLASSES && c == '[' && *p == ':') -+ { /* Leave room for the null. */ -+ char str[CHAR_CLASS_MAX_LENGTH + 1]; -+ -+ PATFETCH (c); -+ c1 = 0; -+ -+ /* If pattern is `[[:'. */ -+ if (p == pend) FREE_STACK_RETURN (REG_EBRACK); -+ -+ for (;;) -+ { -+ PATFETCH (c); -+ if ((c == ':' && *p == ']') || p == pend) -+ break; -+ if (((int) c1) < CHAR_CLASS_MAX_LENGTH) -+ str[c1++] = c; -+ else -+ /* This is in any case an invalid class name. */ -+ str[0] = '\0'; -+ } -+ str[c1] = '\0'; -+ -+ /* If isn't a word bracketed by `[:' and `:]': -+ undo the ending character, the letters, and leave -+ the leading `:' and `[' (but set bits for them). */ -+ if (c == ':' && *p == ']') -+ { -+# if WIDE_CHAR_SUPPORT -+ boolean is_lower = STREQ (str, "lower"); -+ boolean is_upper = STREQ (str, "upper"); -+ wctype_t wt; -+ int ch; -+ -+ wt = IS_CHAR_CLASS (str); -+ if (wt == 0) -+ FREE_STACK_RETURN (REG_ECTYPE); -+ -+ /* Throw away the ] at the end of the character -+ class. */ -+ PATFETCH (c); -+ -+ if (p == pend) FREE_STACK_RETURN (REG_EBRACK); -+ -+ for (ch = 0; ch < 1 << BYTEWIDTH; ++ch) -+ { -+# ifdef _LIBC -+ if (__iswctype (__btowc (ch), wt)) -+ SET_LIST_BIT (ch); -+# else -+ if (iswctype (btowc (ch), wt)) -+ SET_LIST_BIT (ch); -+# endif -+ -+ if (translate && (is_upper || is_lower) -+ && (ISUPPER (ch) || ISLOWER (ch))) -+ SET_LIST_BIT (ch); -+ } -+ -+ had_char_class = true; -+# else -+ int ch; -+ boolean is_alnum = STREQ (str, "alnum"); -+ boolean is_alpha = STREQ (str, "alpha"); -+ boolean is_blank = STREQ (str, "blank"); -+ boolean is_cntrl = STREQ (str, "cntrl"); -+ boolean is_digit = STREQ (str, "digit"); -+ boolean is_graph = STREQ (str, "graph"); -+ boolean is_lower = STREQ (str, "lower"); -+ boolean is_print = STREQ (str, "print"); -+ boolean is_punct = STREQ (str, "punct"); -+ boolean is_space = STREQ (str, "space"); -+ boolean is_upper = STREQ (str, "upper"); -+ boolean is_xdigit = STREQ (str, "xdigit"); -+ -+ if (!IS_CHAR_CLASS (str)) -+ FREE_STACK_RETURN (REG_ECTYPE); -+ -+ /* Throw away the ] at the end of the character -+ class. */ -+ PATFETCH (c); -+ -+ if (p == pend) FREE_STACK_RETURN (REG_EBRACK); -+ -+ for (ch = 0; ch < 1 << BYTEWIDTH; ch++) -+ { -+ /* This was split into 3 if's to -+ avoid an arbitrary limit in some compiler. */ -+ if ( (is_alnum && ISALNUM (ch)) -+ || (is_alpha && ISALPHA (ch)) -+ || (is_blank && ISBLANK (ch)) -+ || (is_cntrl && ISCNTRL (ch))) -+ SET_LIST_BIT (ch); -+ if ( (is_digit && ISDIGIT (ch)) -+ || (is_graph && ISGRAPH (ch)) -+ || (is_lower && ISLOWER (ch)) -+ || (is_print && ISPRINT (ch))) -+ SET_LIST_BIT (ch); -+ if ( (is_punct && ISPUNCT (ch)) -+ || (is_space && ISSPACE (ch)) -+ || (is_upper && ISUPPER (ch)) -+ || (is_xdigit && ISXDIGIT (ch))) -+ SET_LIST_BIT (ch); -+ if ( translate && (is_upper || is_lower) -+ && (ISUPPER (ch) || ISLOWER (ch))) -+ SET_LIST_BIT (ch); -+ } -+ had_char_class = true; -+# endif /* libc || wctype.h */ -+ } -+ else -+ { -+ c1++; -+ while (c1--) -+ PATUNFETCH; -+ SET_LIST_BIT ('['); -+ SET_LIST_BIT (':'); -+ range_start = ':'; -+ had_char_class = false; -+ } -+ } -+ else if (syntax & RE_CHAR_CLASSES && c == '[' && *p == '=') -+ { -+ unsigned char str[MB_LEN_MAX + 1]; -+# ifdef _LIBC -+ uint32_t nrules = -+ _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_NRULES); -+# endif -+ -+ PATFETCH (c); -+ c1 = 0; -+ -+ /* If pattern is `[[='. */ -+ if (p == pend) FREE_STACK_RETURN (REG_EBRACK); -+ -+ for (;;) -+ { -+ PATFETCH (c); -+ if ((c == '=' && *p == ']') || p == pend) -+ break; -+ if (c1 < MB_LEN_MAX) -+ str[c1++] = c; -+ else -+ /* This is in any case an invalid class name. */ -+ str[0] = '\0'; -+ } -+ str[c1] = '\0'; -+ -+ if (c == '=' && *p == ']' && str[0] != '\0') -+ { -+ /* If we have no collation data we use the default -+ collation in which each character is in a class -+ by itself. It also means that ASCII is the -+ character set and therefore we cannot have character -+ with more than one byte in the multibyte -+ representation. */ -+# ifdef _LIBC -+ if (nrules == 0) -+# endif -+ { -+ if (c1 != 1) -+ FREE_STACK_RETURN (REG_ECOLLATE); -+ -+ /* Throw away the ] at the end of the equivalence -+ class. */ -+ PATFETCH (c); -+ -+ /* Set the bit for the character. */ -+ SET_LIST_BIT (str[0]); -+ } -+# ifdef _LIBC -+ else -+ { -+ /* Try to match the byte sequence in `str' against -+ those known to the collate implementation. -+ First find out whether the bytes in `str' are -+ actually from exactly one character. */ -+ const int32_t *table; -+ const unsigned char *weights; -+ const unsigned char *extra; -+ const int32_t *indirect; -+ int32_t idx; -+ const unsigned char *cp = str; -+ int ch; -+ -+ /* This #include defines a local function! */ -+# include <locale/weight.h> -+ -+ table = (const int32_t *) -+ _NL_CURRENT (LC_COLLATE, _NL_COLLATE_TABLEMB); -+ weights = (const unsigned char *) -+ _NL_CURRENT (LC_COLLATE, _NL_COLLATE_WEIGHTMB); -+ extra = (const unsigned char *) -+ _NL_CURRENT (LC_COLLATE, _NL_COLLATE_EXTRAMB); -+ indirect = (const int32_t *) -+ _NL_CURRENT (LC_COLLATE, _NL_COLLATE_INDIRECTMB); -+ -+ idx = findidx (&cp, c1); -+ if (idx == 0 || cp < str + c1) -+ /* This is no valid character. */ -+ FREE_STACK_RETURN (REG_ECOLLATE); -+ -+ /* Throw away the ] at the end of the equivalence -+ class. */ -+ PATFETCH (c); -+ -+ /* Now we have to go throught the whole table -+ and find all characters which have the same -+ first level weight. -+ -+ XXX Note that this is not entirely correct. -+ we would have to match multibyte sequences -+ but this is not possible with the current -+ implementation. */ -+ for (ch = 1; ch < 256; ++ch) -+ /* XXX This test would have to be changed if we -+ would allow matching multibyte sequences. */ -+ if (table[ch] > 0) -+ { -+ int32_t idx2 = table[ch]; -+ size_t len = weights[idx2]; -+ -+ /* Test whether the lenghts match. */ -+ if (weights[idx] == len) -+ { -+ /* They do. New compare the bytes of -+ the weight. */ -+ size_t cnt = 0; -+ -+ while (cnt < len -+ && (weights[idx + 1 + cnt] -+ == weights[idx2 + 1 + cnt])) -+ ++cnt; -+ -+ if (cnt == len) -+ /* They match. Mark the character as -+ acceptable. */ -+ SET_LIST_BIT (ch); -+ } -+ } -+ } -+# endif -+ had_char_class = true; -+ } -+ else -+ { -+ c1++; -+ while (c1--) -+ PATUNFETCH; -+ SET_LIST_BIT ('['); -+ SET_LIST_BIT ('='); -+ range_start = '='; -+ had_char_class = false; -+ } -+ } -+ else if (syntax & RE_CHAR_CLASSES && c == '[' && *p == '.') -+ { -+ unsigned char str[128]; /* Should be large enough. */ -+# ifdef _LIBC -+ uint32_t nrules = -+ _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_NRULES); -+# endif -+ -+ PATFETCH (c); -+ c1 = 0; -+ -+ /* If pattern is `[[.'. */ -+ if (p == pend) FREE_STACK_RETURN (REG_EBRACK); -+ -+ for (;;) -+ { -+ PATFETCH (c); -+ if ((c == '.' && *p == ']') || p == pend) -+ break; -+ if (c1 < sizeof (str)) -+ str[c1++] = c; -+ else -+ /* This is in any case an invalid class name. */ -+ str[0] = '\0'; -+ } -+ str[c1] = '\0'; -+ -+ if (c == '.' && *p == ']' && str[0] != '\0') -+ { -+ /* If we have no collation data we use the default -+ collation in which each character is the name -+ for its own class which contains only the one -+ character. It also means that ASCII is the -+ character set and therefore we cannot have character -+ with more than one byte in the multibyte -+ representation. */ -+# ifdef _LIBC -+ if (nrules == 0) -+# endif -+ { -+ if (c1 != 1) -+ FREE_STACK_RETURN (REG_ECOLLATE); -+ -+ /* Throw away the ] at the end of the equivalence -+ class. */ -+ PATFETCH (c); -+ -+ /* Set the bit for the character. */ -+ SET_LIST_BIT (str[0]); -+ range_start = ((const unsigned char *) str)[0]; -+ } -+# ifdef _LIBC -+ else -+ { -+ /* Try to match the byte sequence in `str' against -+ those known to the collate implementation. -+ First find out whether the bytes in `str' are -+ actually from exactly one character. */ -+ int32_t table_size; -+ const int32_t *symb_table; -+ const unsigned char *extra; -+ int32_t idx; -+ int32_t elem; -+ int32_t second; -+ int32_t hash; -+ -+ table_size = -+ _NL_CURRENT_WORD (LC_COLLATE, -+ _NL_COLLATE_SYMB_HASH_SIZEMB); -+ symb_table = (const int32_t *) -+ _NL_CURRENT (LC_COLLATE, -+ _NL_COLLATE_SYMB_TABLEMB); -+ extra = (const unsigned char *) -+ _NL_CURRENT (LC_COLLATE, -+ _NL_COLLATE_SYMB_EXTRAMB); -+ -+ /* Locate the character in the hashing table. */ -+ hash = elem_hash ((const char *) str, c1); -+ -+ idx = 0; -+ elem = hash % table_size; -+ second = hash % (table_size - 2); -+ while (symb_table[2 * elem] != 0) -+ { -+ /* First compare the hashing value. */ -+ if (symb_table[2 * elem] == hash -+ && c1 == extra[symb_table[2 * elem + 1]] -+ && memcmp (str, -+ &extra[symb_table[2 * elem + 1] -+ + 1], -+ c1) == 0) -+ { -+ /* Yep, this is the entry. */ -+ idx = symb_table[2 * elem + 1]; -+ idx += 1 + extra[idx]; -+ break; -+ } -+ -+ /* Next entry. */ -+ elem += second; -+ } -+ -+ if (symb_table[2 * elem] == 0) -+ /* This is no valid character. */ -+ FREE_STACK_RETURN (REG_ECOLLATE); -+ -+ /* Throw away the ] at the end of the equivalence -+ class. */ -+ PATFETCH (c); -+ -+ /* Now add the multibyte character(s) we found -+ to the accept list. -+ -+ XXX Note that this is not entirely correct. -+ we would have to match multibyte sequences -+ but this is not possible with the current -+ implementation. Also, we have to match -+ collating symbols, which expand to more than -+ one file, as a whole and not allow the -+ individual bytes. */ -+ c1 = extra[idx++]; -+ if (c1 == 1) -+ range_start = extra[idx]; -+ while (c1-- > 0) -+ { -+ SET_LIST_BIT (extra[idx]); -+ ++idx; -+ } -+ } -+# endif -+ had_char_class = false; -+ } -+ else -+ { -+ c1++; -+ while (c1--) -+ PATUNFETCH; -+ SET_LIST_BIT ('['); -+ SET_LIST_BIT ('.'); -+ range_start = '.'; -+ had_char_class = false; -+ } -+ } -+ else -+ { -+ had_char_class = false; -+ SET_LIST_BIT (c); -+ range_start = c; -+ } -+ } -+ -+ /* Discard any (non)matching list bytes that are all 0 at the -+ end of the map. Decrease the map-length byte too. */ -+ while ((int) b[-1] > 0 && b[b[-1] - 1] == 0) -+ b[-1]--; -+ b += b[-1]; -+#endif /* WCHAR */ -+ } -+ break; -+ -+ -+ case '(': -+ if (syntax & RE_NO_BK_PARENS) -+ goto handle_open; -+ else -+ goto normal_char; -+ -+ -+ case ')': -+ if (syntax & RE_NO_BK_PARENS) -+ goto handle_close; -+ else -+ goto normal_char; -+ -+ -+ case '\n': -+ if (syntax & RE_NEWLINE_ALT) -+ goto handle_alt; -+ else -+ goto normal_char; -+ -+ -+ case '|': -+ if (syntax & RE_NO_BK_VBAR) -+ goto handle_alt; -+ else -+ goto normal_char; -+ -+ -+ case '{': -+ if (syntax & RE_INTERVALS && syntax & RE_NO_BK_BRACES) -+ goto handle_interval; -+ else -+ goto normal_char; -+ -+ -+ case '\\': -+ if (p == pend) FREE_STACK_RETURN (REG_EESCAPE); -+ -+ /* Do not translate the character after the \, so that we can -+ distinguish, e.g., \B from \b, even if we normally would -+ translate, e.g., B to b. */ -+ PATFETCH_RAW (c); -+ -+ switch (c) -+ { -+ case '(': -+ if (syntax & RE_NO_BK_PARENS) -+ goto normal_backslash; -+ -+ handle_open: -+ bufp->re_nsub++; -+ regnum++; -+ -+ if (COMPILE_STACK_FULL) -+ { -+ RETALLOC (compile_stack.stack, compile_stack.size << 1, -+ compile_stack_elt_t); -+ if (compile_stack.stack == NULL) return REG_ESPACE; -+ -+ compile_stack.size <<= 1; -+ } -+ -+ /* These are the values to restore when we hit end of this -+ group. They are all relative offsets, so that if the -+ whole pattern moves because of realloc, they will still -+ be valid. */ -+ COMPILE_STACK_TOP.begalt_offset = begalt - COMPILED_BUFFER_VAR; -+ COMPILE_STACK_TOP.fixup_alt_jump -+ = fixup_alt_jump ? fixup_alt_jump - COMPILED_BUFFER_VAR + 1 : 0; -+ COMPILE_STACK_TOP.laststart_offset = b - COMPILED_BUFFER_VAR; -+ COMPILE_STACK_TOP.regnum = regnum; -+ -+ /* We will eventually replace the 0 with the number of -+ groups inner to this one. But do not push a -+ start_memory for groups beyond the last one we can -+ represent in the compiled pattern. */ -+ if (regnum <= MAX_REGNUM) -+ { -+ COMPILE_STACK_TOP.inner_group_offset = b -+ - COMPILED_BUFFER_VAR + 2; -+ BUF_PUSH_3 (start_memory, regnum, 0); -+ } -+ -+ compile_stack.avail++; -+ -+ fixup_alt_jump = 0; -+ laststart = 0; -+ begalt = b; -+ /* If we've reached MAX_REGNUM groups, then this open -+ won't actually generate any code, so we'll have to -+ clear pending_exact explicitly. */ -+ pending_exact = 0; -+ break; -+ -+ -+ case ')': -+ if (syntax & RE_NO_BK_PARENS) goto normal_backslash; -+ -+ if (COMPILE_STACK_EMPTY) -+ { -+ if (syntax & RE_UNMATCHED_RIGHT_PAREN_ORD) -+ goto normal_backslash; -+ else -+ FREE_STACK_RETURN (REG_ERPAREN); -+ } -+ -+ handle_close: -+ if (fixup_alt_jump) -+ { /* Push a dummy failure point at the end of the -+ alternative for a possible future -+ `pop_failure_jump' to pop. See comments at -+ `push_dummy_failure' in `re_match_2'. */ -+ BUF_PUSH (push_dummy_failure); -+ -+ /* We allocated space for this jump when we assigned -+ to `fixup_alt_jump', in the `handle_alt' case below. */ -+ STORE_JUMP (jump_past_alt, fixup_alt_jump, b - 1); -+ } -+ -+ /* See similar code for backslashed left paren above. */ -+ if (COMPILE_STACK_EMPTY) -+ { -+ if (syntax & RE_UNMATCHED_RIGHT_PAREN_ORD) -+ goto normal_char; -+ else -+ FREE_STACK_RETURN (REG_ERPAREN); -+ } -+ -+ /* Since we just checked for an empty stack above, this -+ ``can't happen''. */ -+ assert (compile_stack.avail != 0); -+ { -+ /* We don't just want to restore into `regnum', because -+ later groups should continue to be numbered higher, -+ as in `(ab)c(de)' -- the second group is #2. */ -+ regnum_t this_group_regnum; -+ -+ compile_stack.avail--; -+ begalt = COMPILED_BUFFER_VAR + COMPILE_STACK_TOP.begalt_offset; -+ fixup_alt_jump -+ = COMPILE_STACK_TOP.fixup_alt_jump -+ ? COMPILED_BUFFER_VAR + COMPILE_STACK_TOP.fixup_alt_jump - 1 -+ : 0; -+ laststart = COMPILED_BUFFER_VAR + COMPILE_STACK_TOP.laststart_offset; -+ this_group_regnum = COMPILE_STACK_TOP.regnum; -+ /* If we've reached MAX_REGNUM groups, then this open -+ won't actually generate any code, so we'll have to -+ clear pending_exact explicitly. */ -+ pending_exact = 0; -+ -+ /* We're at the end of the group, so now we know how many -+ groups were inside this one. */ -+ if (this_group_regnum <= MAX_REGNUM) -+ { -+ UCHAR_T *inner_group_loc -+ = COMPILED_BUFFER_VAR + COMPILE_STACK_TOP.inner_group_offset; -+ -+ *inner_group_loc = regnum - this_group_regnum; -+ BUF_PUSH_3 (stop_memory, this_group_regnum, -+ regnum - this_group_regnum); -+ } -+ } -+ break; -+ -+ -+ case '|': /* `\|'. */ -+ if (syntax & RE_LIMITED_OPS || syntax & RE_NO_BK_VBAR) -+ goto normal_backslash; -+ handle_alt: -+ if (syntax & RE_LIMITED_OPS) -+ goto normal_char; -+ -+ /* Insert before the previous alternative a jump which -+ jumps to this alternative if the former fails. */ -+ GET_BUFFER_SPACE (1 + OFFSET_ADDRESS_SIZE); -+ INSERT_JUMP (on_failure_jump, begalt, -+ b + 2 + 2 * OFFSET_ADDRESS_SIZE); -+ pending_exact = 0; -+ b += 1 + OFFSET_ADDRESS_SIZE; -+ -+ /* The alternative before this one has a jump after it -+ which gets executed if it gets matched. Adjust that -+ jump so it will jump to this alternative's analogous -+ jump (put in below, which in turn will jump to the next -+ (if any) alternative's such jump, etc.). The last such -+ jump jumps to the correct final destination. A picture: -+ _____ _____ -+ | | | | -+ | v | v -+ a | b | c -+ -+ If we are at `b', then fixup_alt_jump right now points to a -+ three-byte space after `a'. We'll put in the jump, set -+ fixup_alt_jump to right after `b', and leave behind three -+ bytes which we'll fill in when we get to after `c'. */ -+ -+ if (fixup_alt_jump) -+ STORE_JUMP (jump_past_alt, fixup_alt_jump, b); -+ -+ /* Mark and leave space for a jump after this alternative, -+ to be filled in later either by next alternative or -+ when know we're at the end of a series of alternatives. */ -+ fixup_alt_jump = b; -+ GET_BUFFER_SPACE (1 + OFFSET_ADDRESS_SIZE); -+ b += 1 + OFFSET_ADDRESS_SIZE; -+ -+ laststart = 0; -+ begalt = b; -+ break; -+ -+ -+ case '{': -+ /* If \{ is a literal. */ -+ if (!(syntax & RE_INTERVALS) -+ /* If we're at `\{' and it's not the open-interval -+ operator. */ -+ || (syntax & RE_NO_BK_BRACES)) -+ goto normal_backslash; -+ -+ handle_interval: -+ { -+ /* If got here, then the syntax allows intervals. */ -+ -+ /* At least (most) this many matches must be made. */ -+ int lower_bound = -1, upper_bound = -1; -+ -+ /* Place in the uncompiled pattern (i.e., just after -+ the '{') to go back to if the interval is invalid. */ -+ const CHAR_T *beg_interval = p; -+ -+ if (p == pend) -+ goto invalid_interval; -+ -+ GET_UNSIGNED_NUMBER (lower_bound); -+ -+ if (c == ',') -+ { -+ GET_UNSIGNED_NUMBER (upper_bound); -+ if (upper_bound < 0) -+ upper_bound = RE_DUP_MAX; -+ } -+ else -+ /* Interval such as `{1}' => match exactly once. */ -+ upper_bound = lower_bound; -+ -+ if (! (0 <= lower_bound && lower_bound <= upper_bound)) -+ goto invalid_interval; -+ -+ if (!(syntax & RE_NO_BK_BRACES)) -+ { -+ if (c != '\\' || p == pend) -+ goto invalid_interval; -+ PATFETCH (c); -+ } -+ -+ if (c != '}') -+ goto invalid_interval; -+ -+ /* If it's invalid to have no preceding re. */ -+ if (!laststart) -+ { -+ if (syntax & RE_CONTEXT_INVALID_OPS -+ && !(syntax & RE_INVALID_INTERVAL_ORD)) -+ FREE_STACK_RETURN (REG_BADRPT); -+ else if (syntax & RE_CONTEXT_INDEP_OPS) -+ laststart = b; -+ else -+ goto unfetch_interval; -+ } -+ -+ /* We just parsed a valid interval. */ -+ -+ if (RE_DUP_MAX < upper_bound) -+ FREE_STACK_RETURN (REG_BADBR); -+ -+ /* If the upper bound is zero, don't want to succeed at -+ all; jump from `laststart' to `b + 3', which will be -+ the end of the buffer after we insert the jump. */ -+ /* ifdef WCHAR, 'b + 1 + OFFSET_ADDRESS_SIZE' -+ instead of 'b + 3'. */ -+ if (upper_bound == 0) -+ { -+ GET_BUFFER_SPACE (1 + OFFSET_ADDRESS_SIZE); -+ INSERT_JUMP (jump, laststart, b + 1 -+ + OFFSET_ADDRESS_SIZE); -+ b += 1 + OFFSET_ADDRESS_SIZE; -+ } -+ -+ /* Otherwise, we have a nontrivial interval. When -+ we're all done, the pattern will look like: -+ set_number_at <jump count> <upper bound> -+ set_number_at <succeed_n count> <lower bound> -+ succeed_n <after jump addr> <succeed_n count> -+ <body of loop> -+ jump_n <succeed_n addr> <jump count> -+ (The upper bound and `jump_n' are omitted if -+ `upper_bound' is 1, though.) */ -+ else -+ { /* If the upper bound is > 1, we need to insert -+ more at the end of the loop. */ -+ unsigned nbytes = 2 + 4 * OFFSET_ADDRESS_SIZE + -+ (upper_bound > 1) * (2 + 4 * OFFSET_ADDRESS_SIZE); -+ -+ GET_BUFFER_SPACE (nbytes); -+ -+ /* Initialize lower bound of the `succeed_n', even -+ though it will be set during matching by its -+ attendant `set_number_at' (inserted next), -+ because `re_compile_fastmap' needs to know. -+ Jump to the `jump_n' we might insert below. */ -+ INSERT_JUMP2 (succeed_n, laststart, -+ b + 1 + 2 * OFFSET_ADDRESS_SIZE -+ + (upper_bound > 1) * (1 + 2 * OFFSET_ADDRESS_SIZE) -+ , lower_bound); -+ b += 1 + 2 * OFFSET_ADDRESS_SIZE; -+ -+ /* Code to initialize the lower bound. Insert -+ before the `succeed_n'. The `5' is the last two -+ bytes of this `set_number_at', plus 3 bytes of -+ the following `succeed_n'. */ -+ /* ifdef WCHAR, The '1+2*OFFSET_ADDRESS_SIZE' -+ is the 'set_number_at', plus '1+OFFSET_ADDRESS_SIZE' -+ of the following `succeed_n'. */ -+ PREFIX(insert_op2) (set_number_at, laststart, 1 -+ + 2 * OFFSET_ADDRESS_SIZE, lower_bound, b); -+ b += 1 + 2 * OFFSET_ADDRESS_SIZE; -+ -+ if (upper_bound > 1) -+ { /* More than one repetition is allowed, so -+ append a backward jump to the `succeed_n' -+ that starts this interval. -+ -+ When we've reached this during matching, -+ we'll have matched the interval once, so -+ jump back only `upper_bound - 1' times. */ -+ STORE_JUMP2 (jump_n, b, laststart -+ + 2 * OFFSET_ADDRESS_SIZE + 1, -+ upper_bound - 1); -+ b += 1 + 2 * OFFSET_ADDRESS_SIZE; -+ -+ /* The location we want to set is the second -+ parameter of the `jump_n'; that is `b-2' as -+ an absolute address. `laststart' will be -+ the `set_number_at' we're about to insert; -+ `laststart+3' the number to set, the source -+ for the relative address. But we are -+ inserting into the middle of the pattern -- -+ so everything is getting moved up by 5. -+ Conclusion: (b - 2) - (laststart + 3) + 5, -+ i.e., b - laststart. -+ -+ We insert this at the beginning of the loop -+ so that if we fail during matching, we'll -+ reinitialize the bounds. */ -+ PREFIX(insert_op2) (set_number_at, laststart, -+ b - laststart, -+ upper_bound - 1, b); -+ b += 1 + 2 * OFFSET_ADDRESS_SIZE; -+ } -+ } -+ pending_exact = 0; -+ break; -+ -+ invalid_interval: -+ if (!(syntax & RE_INVALID_INTERVAL_ORD)) -+ FREE_STACK_RETURN (p == pend ? REG_EBRACE : REG_BADBR); -+ unfetch_interval: -+ /* Match the characters as literals. */ -+ p = beg_interval; -+ c = '{'; -+ if (syntax & RE_NO_BK_BRACES) -+ goto normal_char; -+ else -+ goto normal_backslash; -+ } -+ -+#ifdef emacs -+ /* There is no way to specify the before_dot and after_dot -+ operators. rms says this is ok. --karl */ -+ case '=': -+ BUF_PUSH (at_dot); -+ break; -+ -+ case 's': -+ laststart = b; -+ PATFETCH (c); -+ BUF_PUSH_2 (syntaxspec, syntax_spec_code[c]); -+ break; -+ -+ case 'S': -+ laststart = b; -+ PATFETCH (c); -+ BUF_PUSH_2 (notsyntaxspec, syntax_spec_code[c]); -+ break; -+#endif /* emacs */ -+ -+ -+ case 'w': -+ if (syntax & RE_NO_GNU_OPS) -+ goto normal_char; -+ laststart = b; -+ BUF_PUSH (wordchar); -+ break; -+ -+ -+ case 'W': -+ if (syntax & RE_NO_GNU_OPS) -+ goto normal_char; -+ laststart = b; -+ BUF_PUSH (notwordchar); -+ break; -+ -+ -+ case '<': -+ if (syntax & RE_NO_GNU_OPS) -+ goto normal_char; -+ BUF_PUSH (wordbeg); -+ break; -+ -+ case '>': -+ if (syntax & RE_NO_GNU_OPS) -+ goto normal_char; -+ BUF_PUSH (wordend); -+ break; -+ -+ case 'b': -+ if (syntax & RE_NO_GNU_OPS) -+ goto normal_char; -+ BUF_PUSH (wordbound); -+ break; -+ -+ case 'B': -+ if (syntax & RE_NO_GNU_OPS) -+ goto normal_char; -+ BUF_PUSH (notwordbound); -+ break; -+ -+ case '`': -+ if (syntax & RE_NO_GNU_OPS) -+ goto normal_char; -+ BUF_PUSH (begbuf); -+ break; -+ -+ case '\'': -+ if (syntax & RE_NO_GNU_OPS) -+ goto normal_char; -+ BUF_PUSH (endbuf); -+ break; -+ -+ case '1': case '2': case '3': case '4': case '5': -+ case '6': case '7': case '8': case '9': -+ if (syntax & RE_NO_BK_REFS) -+ goto normal_char; -+ -+ c1 = c - '0'; -+ -+ if (c1 > regnum) -+ FREE_STACK_RETURN (REG_ESUBREG); -+ -+ /* Can't back reference to a subexpression if inside of it. */ -+ if (group_in_compile_stack (compile_stack, (regnum_t) c1)) -+ goto normal_char; -+ -+ laststart = b; -+ BUF_PUSH_2 (duplicate, c1); -+ break; -+ -+ -+ case '+': -+ case '?': -+ if (syntax & RE_BK_PLUS_QM) -+ goto handle_plus; -+ else -+ goto normal_backslash; -+ -+ default: -+ normal_backslash: -+ /* You might think it would be useful for \ to mean -+ not to translate; but if we don't translate it -+ it will never match anything. */ -+ c = TRANSLATE (c); -+ goto normal_char; -+ } -+ break; -+ -+ -+ default: -+ /* Expects the character in `c'. */ -+ normal_char: -+ /* If no exactn currently being built. */ -+ if (!pending_exact -+#ifdef WCHAR -+ /* If last exactn handle binary(or character) and -+ new exactn handle character(or binary). */ -+ || is_exactn_bin != is_binary[p - 1 - pattern] -+#endif /* WCHAR */ -+ -+ /* If last exactn not at current position. */ -+ || pending_exact + *pending_exact + 1 != b -+ -+ /* We have only one byte following the exactn for the count. */ -+ || *pending_exact == (1 << BYTEWIDTH) - 1 -+ -+ /* If followed by a repetition operator. */ -+ || *p == '*' || *p == '^' -+ || ((syntax & RE_BK_PLUS_QM) -+ ? *p == '\\' && (p[1] == '+' || p[1] == '?') -+ : (*p == '+' || *p == '?')) -+ || ((syntax & RE_INTERVALS) -+ && ((syntax & RE_NO_BK_BRACES) -+ ? *p == '{' -+ : (p[0] == '\\' && p[1] == '{')))) -+ { -+ /* Start building a new exactn. */ -+ -+ laststart = b; -+ -+#ifdef WCHAR -+ /* Is this exactn binary data or character? */ -+ is_exactn_bin = is_binary[p - 1 - pattern]; -+ if (is_exactn_bin) -+ BUF_PUSH_2 (exactn_bin, 0); -+ else -+ BUF_PUSH_2 (exactn, 0); -+#else -+ BUF_PUSH_2 (exactn, 0); -+#endif /* WCHAR */ -+ pending_exact = b - 1; -+ } -+ -+ BUF_PUSH (c); -+ (*pending_exact)++; -+ break; -+ } /* switch (c) */ -+ } /* while p != pend */ -+ -+ -+ /* Through the pattern now. */ -+ -+ if (fixup_alt_jump) -+ STORE_JUMP (jump_past_alt, fixup_alt_jump, b); -+ -+ if (!COMPILE_STACK_EMPTY) -+ FREE_STACK_RETURN (REG_EPAREN); -+ -+ /* If we don't want backtracking, force success -+ the first time we reach the end of the compiled pattern. */ -+ if (syntax & RE_NO_POSIX_BACKTRACKING) -+ BUF_PUSH (succeed); -+ -+#ifdef WCHAR -+ free (pattern); -+ free (mbs_offset); -+ free (is_binary); -+#endif -+ free (compile_stack.stack); -+ -+ /* We have succeeded; set the length of the buffer. */ -+#ifdef WCHAR -+ bufp->used = (uintptr_t) b - (uintptr_t) COMPILED_BUFFER_VAR; -+#else -+ bufp->used = b - bufp->buffer; -+#endif -+ -+#ifdef DEBUG -+ if (debug) -+ { -+ DEBUG_PRINT1 ("\nCompiled pattern: \n"); -+ PREFIX(print_compiled_pattern) (bufp); -+ } -+#endif /* DEBUG */ -+ -+#ifndef MATCH_MAY_ALLOCATE -+ /* Initialize the failure stack to the largest possible stack. This -+ isn't necessary unless we're trying to avoid calling alloca in -+ the search and match routines. */ -+ { -+ int num_regs = bufp->re_nsub + 1; -+ -+ /* Since DOUBLE_FAIL_STACK refuses to double only if the current size -+ is strictly greater than re_max_failures, the largest possible stack -+ is 2 * re_max_failures failure points. */ -+ if (fail_stack.size < (2 * re_max_failures * MAX_FAILURE_ITEMS)) -+ { -+ fail_stack.size = (2 * re_max_failures * MAX_FAILURE_ITEMS); -+ -+# ifdef emacs -+ if (! fail_stack.stack) -+ fail_stack.stack -+ = (PREFIX(fail_stack_elt_t) *) xmalloc (fail_stack.size -+ * sizeof (PREFIX(fail_stack_elt_t))); -+ else -+ fail_stack.stack -+ = (PREFIX(fail_stack_elt_t) *) xrealloc (fail_stack.stack, -+ (fail_stack.size -+ * sizeof (PREFIX(fail_stack_elt_t)))); -+# else /* not emacs */ -+ if (! fail_stack.stack) -+ fail_stack.stack -+ = (PREFIX(fail_stack_elt_t) *) malloc (fail_stack.size -+ * sizeof (PREFIX(fail_stack_elt_t))); -+ else -+ fail_stack.stack -+ = (PREFIX(fail_stack_elt_t) *) realloc (fail_stack.stack, -+ (fail_stack.size -+ * sizeof (PREFIX(fail_stack_elt_t)))); -+# endif /* not emacs */ -+ } -+ -+ PREFIX(regex_grow_registers) (num_regs); -+ } -+#endif /* not MATCH_MAY_ALLOCATE */ -+ -+ return REG_NOERROR; -+} /* regex_compile */ -+ -+/* Subroutines for `regex_compile'. */ -+ -+/* Store OP at LOC followed by two-byte integer parameter ARG. */ -+/* ifdef WCHAR, integer parameter is 1 wchar_t. */ -+ -+static void -+PREFIX(store_op1) (re_opcode_t op, UCHAR_T *loc, int arg) -+{ -+ *loc = (UCHAR_T) op; -+ STORE_NUMBER (loc + 1, arg); -+} -+ -+ -+/* Like `store_op1', but for two two-byte parameters ARG1 and ARG2. */ -+/* ifdef WCHAR, integer parameter is 1 wchar_t. */ -+ -+static void -+PREFIX(store_op2) (re_opcode_t op, UCHAR_T *loc, int arg1, int arg2) -+{ -+ *loc = (UCHAR_T) op; -+ STORE_NUMBER (loc + 1, arg1); -+ STORE_NUMBER (loc + 1 + OFFSET_ADDRESS_SIZE, arg2); -+} -+ -+ -+/* Copy the bytes from LOC to END to open up three bytes of space at LOC -+ for OP followed by two-byte integer parameter ARG. */ -+/* ifdef WCHAR, integer parameter is 1 wchar_t. */ -+ -+static void -+PREFIX(insert_op1) (re_opcode_t op, UCHAR_T *loc, int arg, UCHAR_T *end) -+{ -+ register UCHAR_T *pfrom = end; -+ register UCHAR_T *pto = end + 1 + OFFSET_ADDRESS_SIZE; -+ -+ while (pfrom != loc) -+ *--pto = *--pfrom; -+ -+ PREFIX(store_op1) (op, loc, arg); -+} -+ -+ -+/* Like `insert_op1', but for two two-byte parameters ARG1 and ARG2. */ -+/* ifdef WCHAR, integer parameter is 1 wchar_t. */ -+ -+static void -+PREFIX(insert_op2) (re_opcode_t op, UCHAR_T *loc, int arg1, -+ int arg2, UCHAR_T *end) -+{ -+ register UCHAR_T *pfrom = end; -+ register UCHAR_T *pto = end + 1 + 2 * OFFSET_ADDRESS_SIZE; -+ -+ while (pfrom != loc) -+ *--pto = *--pfrom; -+ -+ PREFIX(store_op2) (op, loc, arg1, arg2); -+} -+ -+ -+/* P points to just after a ^ in PATTERN. Return true if that ^ comes -+ after an alternative or a begin-subexpression. We assume there is at -+ least one character before the ^. */ -+ -+static boolean -+PREFIX(at_begline_loc_p) (const CHAR_T *pattern, const CHAR_T *p, -+ reg_syntax_t syntax) -+{ -+ const CHAR_T *prev = p - 2; -+ boolean prev_prev_backslash = prev > pattern && prev[-1] == '\\'; -+ -+ return -+ /* After a subexpression? */ -+ (*prev == '(' && (syntax & RE_NO_BK_PARENS || prev_prev_backslash)) -+ /* After an alternative? */ -+ || (*prev == '|' && (syntax & RE_NO_BK_VBAR || prev_prev_backslash)); -+} -+ -+ -+/* The dual of at_begline_loc_p. This one is for $. We assume there is -+ at least one character after the $, i.e., `P < PEND'. */ -+ -+static boolean -+PREFIX(at_endline_loc_p) (const CHAR_T *p, const CHAR_T *pend, -+ reg_syntax_t syntax) -+{ -+ const CHAR_T *next = p; -+ boolean next_backslash = *next == '\\'; -+ const CHAR_T *next_next = p + 1 < pend ? p + 1 : 0; -+ -+ return -+ /* Before a subexpression? */ -+ (syntax & RE_NO_BK_PARENS ? *next == ')' -+ : next_backslash && next_next && *next_next == ')') -+ /* Before an alternative? */ -+ || (syntax & RE_NO_BK_VBAR ? *next == '|' -+ : next_backslash && next_next && *next_next == '|'); -+} -+ -+#else /* not INSIDE_RECURSION */ -+ -+/* Returns true if REGNUM is in one of COMPILE_STACK's elements and -+ false if it's not. */ -+ -+static boolean -+group_in_compile_stack (compile_stack_type compile_stack, regnum_t regnum) -+{ -+ int this_element; -+ -+ for (this_element = compile_stack.avail - 1; -+ this_element >= 0; -+ this_element--) -+ if (compile_stack.stack[this_element].regnum == regnum) -+ return true; -+ -+ return false; -+} -+#endif /* not INSIDE_RECURSION */ -+ -+#ifdef INSIDE_RECURSION -+ -+#ifdef WCHAR -+/* This insert space, which size is "num", into the pattern at "loc". -+ "end" must point the end of the allocated buffer. */ -+static void -+insert_space (int num, CHAR_T *loc, CHAR_T *end) -+{ -+ register CHAR_T *pto = end; -+ register CHAR_T *pfrom = end - num; -+ -+ while (pfrom >= loc) -+ *pto-- = *pfrom--; -+} -+#endif /* WCHAR */ -+ -+#ifdef WCHAR -+static reg_errcode_t -+wcs_compile_range (CHAR_T range_start_char, const CHAR_T **p_ptr, -+ const CHAR_T *pend, RE_TRANSLATE_TYPE translate, -+ reg_syntax_t syntax, CHAR_T *b, CHAR_T *char_set) -+{ -+ const CHAR_T *p = *p_ptr; -+ CHAR_T range_start, range_end; -+ reg_errcode_t ret; -+# ifdef _LIBC -+ uint32_t nrules; -+ uint32_t start_val, end_val; -+# endif -+ if (p == pend) -+ return REG_ERANGE; -+ -+# ifdef _LIBC -+ nrules = _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_NRULES); -+ if (nrules != 0) -+ { -+ const char *collseq = (const char *) _NL_CURRENT(LC_COLLATE, -+ _NL_COLLATE_COLLSEQWC); -+ const unsigned char *extra = (const unsigned char *) -+ _NL_CURRENT (LC_COLLATE, _NL_COLLATE_SYMB_EXTRAMB); -+ -+ if (range_start_char < -1) -+ { -+ /* range_start is a collating symbol. */ -+ int32_t *wextra; -+ /* Retreive the index and get collation sequence value. */ -+ wextra = (int32_t*)(extra + char_set[-range_start_char]); -+ start_val = wextra[1 + *wextra]; -+ } -+ else -+ start_val = collseq_table_lookup(collseq, TRANSLATE(range_start_char)); -+ -+ end_val = collseq_table_lookup (collseq, TRANSLATE (p[0])); -+ -+ /* Report an error if the range is empty and the syntax prohibits -+ this. */ -+ ret = ((syntax & RE_NO_EMPTY_RANGES) -+ && (start_val > end_val))? REG_ERANGE : REG_NOERROR; -+ -+ /* Insert space to the end of the char_ranges. */ -+ insert_space(2, b - char_set[5] - 2, b - 1); -+ *(b - char_set[5] - 2) = (wchar_t)start_val; -+ *(b - char_set[5] - 1) = (wchar_t)end_val; -+ char_set[4]++; /* ranges_index */ -+ } -+ else -+# endif -+ { -+ range_start = (range_start_char >= 0)? TRANSLATE (range_start_char): -+ range_start_char; -+ range_end = TRANSLATE (p[0]); -+ /* Report an error if the range is empty and the syntax prohibits -+ this. */ -+ ret = ((syntax & RE_NO_EMPTY_RANGES) -+ && (range_start > range_end))? REG_ERANGE : REG_NOERROR; -+ -+ /* Insert space to the end of the char_ranges. */ -+ insert_space(2, b - char_set[5] - 2, b - 1); -+ *(b - char_set[5] - 2) = range_start; -+ *(b - char_set[5] - 1) = range_end; -+ char_set[4]++; /* ranges_index */ -+ } -+ /* Have to increment the pointer into the pattern string, so the -+ caller isn't still at the ending character. */ -+ (*p_ptr)++; -+ -+ return ret; -+} -+#else /* BYTE */ -+/* Read the ending character of a range (in a bracket expression) from the -+ uncompiled pattern *P_PTR (which ends at PEND). We assume the -+ starting character is in `P[-2]'. (`P[-1]' is the character `-'.) -+ Then we set the translation of all bits between the starting and -+ ending characters (inclusive) in the compiled pattern B. -+ -+ Return an error code. -+ -+ We use these short variable names so we can use the same macros as -+ `regex_compile' itself. */ -+ -+static reg_errcode_t -+byte_compile_range (unsigned int range_start_char, const char **p_ptr, -+ const char *pend, RE_TRANSLATE_TYPE translate, -+ reg_syntax_t syntax, unsigned char *b) -+{ -+ unsigned this_char; -+ const char *p = *p_ptr; -+ reg_errcode_t ret; -+# if _LIBC -+ const unsigned char *collseq; -+ unsigned int start_colseq; -+ unsigned int end_colseq; -+# else -+ unsigned end_char; -+# endif -+ -+ if (p == pend) -+ return REG_ERANGE; -+ -+ /* Have to increment the pointer into the pattern string, so the -+ caller isn't still at the ending character. */ -+ (*p_ptr)++; -+ -+ /* Report an error if the range is empty and the syntax prohibits this. */ -+ ret = syntax & RE_NO_EMPTY_RANGES ? REG_ERANGE : REG_NOERROR; -+ -+# if _LIBC -+ collseq = (const unsigned char *) _NL_CURRENT (LC_COLLATE, -+ _NL_COLLATE_COLLSEQMB); -+ -+ start_colseq = collseq[(unsigned char) TRANSLATE (range_start_char)]; -+ end_colseq = collseq[(unsigned char) TRANSLATE (p[0])]; -+ for (this_char = 0; this_char <= (unsigned char) -1; ++this_char) -+ { -+ unsigned int this_colseq = collseq[(unsigned char) TRANSLATE (this_char)]; -+ -+ if (start_colseq <= this_colseq && this_colseq <= end_colseq) -+ { -+ SET_LIST_BIT (TRANSLATE (this_char)); -+ ret = REG_NOERROR; -+ } -+ } -+# else -+ /* Here we see why `this_char' has to be larger than an `unsigned -+ char' -- we would otherwise go into an infinite loop, since all -+ characters <= 0xff. */ -+ range_start_char = TRANSLATE (range_start_char); -+ /* TRANSLATE(p[0]) is casted to char (not unsigned char) in TRANSLATE, -+ and some compilers cast it to int implicitly, so following for_loop -+ may fall to (almost) infinite loop. -+ e.g. If translate[p[0]] = 0xff, end_char may equals to 0xffffffff. -+ To avoid this, we cast p[0] to unsigned int and truncate it. */ -+ end_char = ((unsigned)TRANSLATE(p[0]) & ((1 << BYTEWIDTH) - 1)); -+ -+ for (this_char = range_start_char; this_char <= end_char; ++this_char) -+ { -+ SET_LIST_BIT (TRANSLATE (this_char)); -+ ret = REG_NOERROR; -+ } -+# endif -+ -+ return ret; -+} -+#endif /* WCHAR */ -+ -+/* re_compile_fastmap computes a ``fastmap'' for the compiled pattern in -+ BUFP. A fastmap records which of the (1 << BYTEWIDTH) possible -+ characters can start a string that matches the pattern. This fastmap -+ is used by re_search to skip quickly over impossible starting points. -+ -+ The caller must supply the address of a (1 << BYTEWIDTH)-byte data -+ area as BUFP->fastmap. -+ -+ We set the `fastmap', `fastmap_accurate', and `can_be_null' fields in -+ the pattern buffer. -+ -+ Returns 0 if we succeed, -2 if an internal error. */ -+ -+#ifdef WCHAR -+/* local function for re_compile_fastmap. -+ truncate wchar_t character to char. */ -+static unsigned char truncate_wchar (CHAR_T c); -+ -+static unsigned char -+truncate_wchar (CHAR_T c) -+{ -+ unsigned char buf[MB_CUR_MAX]; -+ mbstate_t state; -+ int retval; -+ memset (&state, '\0', sizeof (state)); -+# ifdef _LIBC -+ retval = __wcrtomb (buf, c, &state); -+# else -+ retval = wcrtomb (buf, c, &state); -+# endif -+ return retval > 0 ? buf[0] : (unsigned char) c; -+} -+#endif /* WCHAR */ -+ -+static int -+PREFIX(re_compile_fastmap) (struct re_pattern_buffer *bufp) -+{ -+ int j, k; -+#ifdef MATCH_MAY_ALLOCATE -+ PREFIX(fail_stack_type) fail_stack; -+#endif -+#ifndef REGEX_MALLOC -+ char *destination; -+#endif -+ -+ register char *fastmap = bufp->fastmap; -+ -+#ifdef WCHAR -+ /* We need to cast pattern to (wchar_t*), because we casted this compiled -+ pattern to (char*) in regex_compile. */ -+ UCHAR_T *pattern = (UCHAR_T*)bufp->buffer; -+ register UCHAR_T *pend = (UCHAR_T*) (bufp->buffer + bufp->used); -+#else /* BYTE */ -+ UCHAR_T *pattern = bufp->buffer; -+ register UCHAR_T *pend = pattern + bufp->used; -+#endif /* WCHAR */ -+ UCHAR_T *p = pattern; -+ -+#ifdef REL_ALLOC -+ /* This holds the pointer to the failure stack, when -+ it is allocated relocatably. */ -+ fail_stack_elt_t *failure_stack_ptr; -+#endif -+ -+ /* Assume that each path through the pattern can be null until -+ proven otherwise. We set this false at the bottom of switch -+ statement, to which we get only if a particular path doesn't -+ match the empty string. */ -+ boolean path_can_be_null = true; -+ -+ /* We aren't doing a `succeed_n' to begin with. */ -+ boolean succeed_n_p = false; -+ -+ assert (fastmap != NULL && p != NULL); -+ -+ INIT_FAIL_STACK (); -+ bzero (fastmap, 1 << BYTEWIDTH); /* Assume nothing's valid. */ -+ bufp->fastmap_accurate = 1; /* It will be when we're done. */ -+ bufp->can_be_null = 0; -+ -+ while (1) -+ { -+ if (p == pend || *p == (UCHAR_T) succeed) -+ { -+ /* We have reached the (effective) end of pattern. */ -+ if (!FAIL_STACK_EMPTY ()) -+ { -+ bufp->can_be_null |= path_can_be_null; -+ -+ /* Reset for next path. */ -+ path_can_be_null = true; -+ -+ p = fail_stack.stack[--fail_stack.avail].pointer; -+ -+ continue; -+ } -+ else -+ break; -+ } -+ -+ /* We should never be about to go beyond the end of the pattern. */ -+ assert (p < pend); -+ -+ switch (SWITCH_ENUM_CAST ((re_opcode_t) *p++)) -+ { -+ -+ /* I guess the idea here is to simply not bother with a fastmap -+ if a backreference is used, since it's too hard to figure out -+ the fastmap for the corresponding group. Setting -+ `can_be_null' stops `re_search_2' from using the fastmap, so -+ that is all we do. */ -+ case duplicate: -+ bufp->can_be_null = 1; -+ goto done; -+ -+ -+ /* Following are the cases which match a character. These end -+ with `break'. */ -+ -+#ifdef WCHAR -+ case exactn: -+ fastmap[truncate_wchar(p[1])] = 1; -+ break; -+#else /* BYTE */ -+ case exactn: -+ fastmap[p[1]] = 1; -+ break; -+#endif /* WCHAR */ -+#ifdef MBS_SUPPORT -+ case exactn_bin: -+ fastmap[p[1]] = 1; -+ break; -+#endif -+ -+#ifdef WCHAR -+ /* It is hard to distinguish fastmap from (multi byte) characters -+ which depends on current locale. */ -+ case charset: -+ case charset_not: -+ case wordchar: -+ case notwordchar: -+ bufp->can_be_null = 1; -+ goto done; -+#else /* BYTE */ -+ case charset: -+ for (j = *p++ * BYTEWIDTH - 1; j >= 0; j--) -+ if (p[j / BYTEWIDTH] & (1 << (j % BYTEWIDTH))) -+ fastmap[j] = 1; -+ break; -+ -+ -+ case charset_not: -+ /* Chars beyond end of map must be allowed. */ -+ for (j = *p * BYTEWIDTH; j < (1 << BYTEWIDTH); j++) -+ fastmap[j] = 1; -+ -+ for (j = *p++ * BYTEWIDTH - 1; j >= 0; j--) -+ if (!(p[j / BYTEWIDTH] & (1 << (j % BYTEWIDTH)))) -+ fastmap[j] = 1; -+ break; -+ -+ -+ case wordchar: -+ for (j = 0; j < (1 << BYTEWIDTH); j++) -+ if (SYNTAX (j) == Sword) -+ fastmap[j] = 1; -+ break; -+ -+ -+ case notwordchar: -+ for (j = 0; j < (1 << BYTEWIDTH); j++) -+ if (SYNTAX (j) != Sword) -+ fastmap[j] = 1; -+ break; -+#endif /* WCHAR */ -+ -+ case anychar: -+ { -+ int fastmap_newline = fastmap['\n']; -+ -+ /* `.' matches anything ... */ -+ for (j = 0; j < (1 << BYTEWIDTH); j++) -+ fastmap[j] = 1; -+ -+ /* ... except perhaps newline. */ -+ if (!(bufp->syntax & RE_DOT_NEWLINE)) -+ fastmap['\n'] = fastmap_newline; -+ -+ /* Return if we have already set `can_be_null'; if we have, -+ then the fastmap is irrelevant. Something's wrong here. */ -+ else if (bufp->can_be_null) -+ goto done; -+ -+ /* Otherwise, have to check alternative paths. */ -+ break; -+ } -+ -+#ifdef emacs -+ case syntaxspec: -+ k = *p++; -+ for (j = 0; j < (1 << BYTEWIDTH); j++) -+ if (SYNTAX (j) == (enum syntaxcode) k) -+ fastmap[j] = 1; -+ break; -+ -+ -+ case notsyntaxspec: -+ k = *p++; -+ for (j = 0; j < (1 << BYTEWIDTH); j++) -+ if (SYNTAX (j) != (enum syntaxcode) k) -+ fastmap[j] = 1; -+ break; -+ -+ -+ /* All cases after this match the empty string. These end with -+ `continue'. */ -+ -+ -+ case before_dot: -+ case at_dot: -+ case after_dot: -+ continue; -+#endif /* emacs */ -+ -+ -+ case no_op: -+ case begline: -+ case endline: -+ case begbuf: -+ case endbuf: -+ case wordbound: -+ case notwordbound: -+ case wordbeg: -+ case wordend: -+ case push_dummy_failure: -+ continue; -+ -+ -+ case jump_n: -+ case pop_failure_jump: -+ case maybe_pop_jump: -+ case jump: -+ case jump_past_alt: -+ case dummy_failure_jump: -+ EXTRACT_NUMBER_AND_INCR (j, p); -+ p += j; -+ if (j > 0) -+ continue; -+ -+ /* Jump backward implies we just went through the body of a -+ loop and matched nothing. Opcode jumped to should be -+ `on_failure_jump' or `succeed_n'. Just treat it like an -+ ordinary jump. For a * loop, it has pushed its failure -+ point already; if so, discard that as redundant. */ -+ if ((re_opcode_t) *p != on_failure_jump -+ && (re_opcode_t) *p != succeed_n) -+ continue; -+ -+ p++; -+ EXTRACT_NUMBER_AND_INCR (j, p); -+ p += j; -+ -+ /* If what's on the stack is where we are now, pop it. */ -+ if (!FAIL_STACK_EMPTY () -+ && fail_stack.stack[fail_stack.avail - 1].pointer == p) -+ fail_stack.avail--; -+ -+ continue; -+ -+ -+ case on_failure_jump: -+ case on_failure_keep_string_jump: -+ handle_on_failure_jump: -+ EXTRACT_NUMBER_AND_INCR (j, p); -+ -+ /* For some patterns, e.g., `(a?)?', `p+j' here points to the -+ end of the pattern. We don't want to push such a point, -+ since when we restore it above, entering the switch will -+ increment `p' past the end of the pattern. We don't need -+ to push such a point since we obviously won't find any more -+ fastmap entries beyond `pend'. Such a pattern can match -+ the null string, though. */ -+ if (p + j < pend) -+ { -+ if (!PUSH_PATTERN_OP (p + j, fail_stack)) -+ { -+ RESET_FAIL_STACK (); -+ return -2; -+ } -+ } -+ else -+ bufp->can_be_null = 1; -+ -+ if (succeed_n_p) -+ { -+ EXTRACT_NUMBER_AND_INCR (k, p); /* Skip the n. */ -+ succeed_n_p = false; -+ } -+ -+ continue; -+ -+ -+ case succeed_n: -+ /* Get to the number of times to succeed. */ -+ p += OFFSET_ADDRESS_SIZE; -+ -+ /* Increment p past the n for when k != 0. */ -+ EXTRACT_NUMBER_AND_INCR (k, p); -+ if (k == 0) -+ { -+ p -= 2 * OFFSET_ADDRESS_SIZE; -+ succeed_n_p = true; /* Spaghetti code alert. */ -+ goto handle_on_failure_jump; -+ } -+ continue; -+ -+ -+ case set_number_at: -+ p += 2 * OFFSET_ADDRESS_SIZE; -+ continue; -+ -+ -+ case start_memory: -+ case stop_memory: -+ p += 2; -+ continue; -+ -+ -+ default: -+ abort (); /* We have listed all the cases. */ -+ } /* switch *p++ */ -+ -+ /* Getting here means we have found the possible starting -+ characters for one path of the pattern -- and that the empty -+ string does not match. We need not follow this path further. -+ Instead, look at the next alternative (remembered on the -+ stack), or quit if no more. The test at the top of the loop -+ does these things. */ -+ path_can_be_null = false; -+ p = pend; -+ } /* while p */ -+ -+ /* Set `can_be_null' for the last path (also the first path, if the -+ pattern is empty). */ -+ bufp->can_be_null |= path_can_be_null; -+ -+ done: -+ RESET_FAIL_STACK (); -+ return 0; -+} -+ -+#else /* not INSIDE_RECURSION */ -+ -+int -+re_compile_fastmap (struct re_pattern_buffer *bufp) -+{ -+# ifdef MBS_SUPPORT -+ if (MB_CUR_MAX != 1) -+ return wcs_re_compile_fastmap(bufp); -+ else -+# endif -+ return byte_re_compile_fastmap(bufp); -+} /* re_compile_fastmap */ -+#ifdef _LIBC -+weak_alias (__re_compile_fastmap, re_compile_fastmap) -+#endif -+ -+ -+/* Set REGS to hold NUM_REGS registers, storing them in STARTS and -+ ENDS. Subsequent matches using PATTERN_BUFFER and REGS will use -+ this memory for recording register information. STARTS and ENDS -+ must be allocated using the malloc library routine, and must each -+ be at least NUM_REGS * sizeof (regoff_t) bytes long. -+ -+ If NUM_REGS == 0, then subsequent matches should allocate their own -+ register data. -+ -+ Unless this function is called, the first search or match using -+ PATTERN_BUFFER will allocate its own register data, without -+ freeing the old data. */ -+ -+void -+re_set_registers (struct re_pattern_buffer *bufp, -+ struct re_registers *regs, unsigned num_regs, -+ regoff_t *starts, regoff_t *ends) -+{ -+ if (num_regs) -+ { -+ bufp->regs_allocated = REGS_REALLOCATE; -+ regs->num_regs = num_regs; -+ regs->start = starts; -+ regs->end = ends; -+ } -+ else -+ { -+ bufp->regs_allocated = REGS_UNALLOCATED; -+ regs->num_regs = 0; -+ regs->start = regs->end = (regoff_t *) 0; -+ } -+} -+#ifdef _LIBC -+weak_alias (__re_set_registers, re_set_registers) -+#endif -+ -+/* Searching routines. */ -+ -+/* Like re_search_2, below, but only one string is specified, and -+ doesn't let you say where to stop matching. */ -+ -+int -+re_search (struct re_pattern_buffer *bufp, const char *string, int size, -+ int startpos, int range, struct re_registers *regs) -+{ -+ return re_search_2 (bufp, NULL, 0, string, size, startpos, range, -+ regs, size); -+} -+#ifdef _LIBC -+weak_alias (__re_search, re_search) -+#endif -+ -+ -+/* Using the compiled pattern in BUFP->buffer, first tries to match the -+ virtual concatenation of STRING1 and STRING2, starting first at index -+ STARTPOS, then at STARTPOS + 1, and so on. -+ -+ STRING1 and STRING2 have length SIZE1 and SIZE2, respectively. -+ -+ RANGE is how far to scan while trying to match. RANGE = 0 means try -+ only at STARTPOS; in general, the last start tried is STARTPOS + -+ RANGE. -+ -+ In REGS, return the indices of the virtual concatenation of STRING1 -+ and STRING2 that matched the entire BUFP->buffer and its contained -+ subexpressions. -+ -+ Do not consider matching one past the index STOP in the virtual -+ concatenation of STRING1 and STRING2. -+ -+ We return either the position in the strings at which the match was -+ found, -1 if no match, or -2 if error (such as failure -+ stack overflow). */ -+ -+int -+re_search_2 (struct re_pattern_buffer *bufp, const char *string1, int size1, -+ const char *string2, int size2, int startpos, int range, -+ struct re_registers *regs, int stop) -+{ -+# ifdef MBS_SUPPORT -+ if (MB_CUR_MAX != 1) -+ return wcs_re_search_2 (bufp, string1, size1, string2, size2, startpos, -+ range, regs, stop); -+ else -+# endif -+ return byte_re_search_2 (bufp, string1, size1, string2, size2, startpos, -+ range, regs, stop); -+} /* re_search_2 */ -+#ifdef _LIBC -+weak_alias (__re_search_2, re_search_2) -+#endif -+ -+#endif /* not INSIDE_RECURSION */ -+ -+#ifdef INSIDE_RECURSION -+ -+#ifdef MATCH_MAY_ALLOCATE -+# define FREE_VAR(var) if (var) REGEX_FREE (var); var = NULL -+#else -+# define FREE_VAR(var) if (var) free (var); var = NULL -+#endif -+ -+#ifdef WCHAR -+# define MAX_ALLOCA_SIZE 2000 -+ -+# define FREE_WCS_BUFFERS() \ -+ do { \ -+ if (size1 > MAX_ALLOCA_SIZE) \ -+ { \ -+ free (wcs_string1); \ -+ free (mbs_offset1); \ -+ } \ -+ else \ -+ { \ -+ FREE_VAR (wcs_string1); \ -+ FREE_VAR (mbs_offset1); \ -+ } \ -+ if (size2 > MAX_ALLOCA_SIZE) \ -+ { \ -+ free (wcs_string2); \ -+ free (mbs_offset2); \ -+ } \ -+ else \ -+ { \ -+ FREE_VAR (wcs_string2); \ -+ FREE_VAR (mbs_offset2); \ -+ } \ -+ } while (0) -+ -+#endif -+ -+ -+static int -+PREFIX(re_search_2) (struct re_pattern_buffer *bufp, const char *string1, -+ int size1, const char *string2, int size2, -+ int startpos, int range, -+ struct re_registers *regs, int stop) -+{ -+ int val; -+ register char *fastmap = bufp->fastmap; -+ register RE_TRANSLATE_TYPE translate = bufp->translate; -+ int total_size = size1 + size2; -+ int endpos = startpos + range; -+#ifdef WCHAR -+ /* We need wchar_t* buffers correspond to cstring1, cstring2. */ -+ wchar_t *wcs_string1 = NULL, *wcs_string2 = NULL; -+ /* We need the size of wchar_t buffers correspond to csize1, csize2. */ -+ int wcs_size1 = 0, wcs_size2 = 0; -+ /* offset buffer for optimizatoin. See convert_mbs_to_wc. */ -+ int *mbs_offset1 = NULL, *mbs_offset2 = NULL; -+ /* They hold whether each wchar_t is binary data or not. */ -+ char *is_binary = NULL; -+#endif /* WCHAR */ -+ -+ /* Check for out-of-range STARTPOS. */ -+ if (startpos < 0 || startpos > total_size) -+ return -1; -+ -+ /* Fix up RANGE if it might eventually take us outside -+ the virtual concatenation of STRING1 and STRING2. -+ Make sure we won't move STARTPOS below 0 or above TOTAL_SIZE. */ -+ if (endpos < 0) -+ range = 0 - startpos; -+ else if (endpos > total_size) -+ range = total_size - startpos; -+ -+ /* If the search isn't to be a backwards one, don't waste time in a -+ search for a pattern that must be anchored. */ -+ if (bufp->used > 0 && range > 0 -+ && ((re_opcode_t) bufp->buffer[0] == begbuf -+ /* `begline' is like `begbuf' if it cannot match at newlines. */ -+ || ((re_opcode_t) bufp->buffer[0] == begline -+ && !bufp->newline_anchor))) -+ { -+ if (startpos > 0) -+ return -1; -+ else -+ range = 1; -+ } -+ -+#ifdef emacs -+ /* In a forward search for something that starts with \=. -+ don't keep searching past point. */ -+ if (bufp->used > 0 && (re_opcode_t) bufp->buffer[0] == at_dot && range > 0) -+ { -+ range = PT - startpos; -+ if (range <= 0) -+ return -1; -+ } -+#endif /* emacs */ -+ -+ /* Update the fastmap now if not correct already. */ -+ if (fastmap && !bufp->fastmap_accurate) -+ if (re_compile_fastmap (bufp) == -2) -+ return -2; -+ -+#ifdef WCHAR -+ /* Allocate wchar_t array for wcs_string1 and wcs_string2 and -+ fill them with converted string. */ -+ if (size1 != 0) -+ { -+ if (size1 > MAX_ALLOCA_SIZE) -+ { -+ wcs_string1 = TALLOC (size1 + 1, CHAR_T); -+ mbs_offset1 = TALLOC (size1 + 1, int); -+ is_binary = TALLOC (size1 + 1, char); -+ } -+ else -+ { -+ wcs_string1 = REGEX_TALLOC (size1 + 1, CHAR_T); -+ mbs_offset1 = REGEX_TALLOC (size1 + 1, int); -+ is_binary = REGEX_TALLOC (size1 + 1, char); -+ } -+ if (!wcs_string1 || !mbs_offset1 || !is_binary) -+ { -+ if (size1 > MAX_ALLOCA_SIZE) -+ { -+ free (wcs_string1); -+ free (mbs_offset1); -+ free (is_binary); -+ } -+ else -+ { -+ FREE_VAR (wcs_string1); -+ FREE_VAR (mbs_offset1); -+ FREE_VAR (is_binary); -+ } -+ return -2; -+ } -+ wcs_size1 = convert_mbs_to_wcs(wcs_string1, string1, size1, -+ mbs_offset1, is_binary); -+ wcs_string1[wcs_size1] = L'\0'; /* for a sentinel */ -+ if (size1 > MAX_ALLOCA_SIZE) -+ free (is_binary); -+ else -+ FREE_VAR (is_binary); -+ } -+ if (size2 != 0) -+ { -+ if (size2 > MAX_ALLOCA_SIZE) -+ { -+ wcs_string2 = TALLOC (size2 + 1, CHAR_T); -+ mbs_offset2 = TALLOC (size2 + 1, int); -+ is_binary = TALLOC (size2 + 1, char); -+ } -+ else -+ { -+ wcs_string2 = REGEX_TALLOC (size2 + 1, CHAR_T); -+ mbs_offset2 = REGEX_TALLOC (size2 + 1, int); -+ is_binary = REGEX_TALLOC (size2 + 1, char); -+ } -+ if (!wcs_string2 || !mbs_offset2 || !is_binary) -+ { -+ FREE_WCS_BUFFERS (); -+ if (size2 > MAX_ALLOCA_SIZE) -+ free (is_binary); -+ else -+ FREE_VAR (is_binary); -+ return -2; -+ } -+ wcs_size2 = convert_mbs_to_wcs(wcs_string2, string2, size2, -+ mbs_offset2, is_binary); -+ wcs_string2[wcs_size2] = L'\0'; /* for a sentinel */ -+ if (size2 > MAX_ALLOCA_SIZE) -+ free (is_binary); -+ else -+ FREE_VAR (is_binary); -+ } -+#endif /* WCHAR */ -+ -+ -+ /* Loop through the string, looking for a place to start matching. */ -+ for (;;) -+ { -+ /* If a fastmap is supplied, skip quickly over characters that -+ cannot be the start of a match. If the pattern can match the -+ null string, however, we don't need to skip characters; we want -+ the first null string. */ -+ if (fastmap && startpos < total_size && !bufp->can_be_null) -+ { -+ if (range > 0) /* Searching forwards. */ -+ { -+ register const char *d; -+ register int lim = 0; -+ int irange = range; -+ -+ if (startpos < size1 && startpos + range >= size1) -+ lim = range - (size1 - startpos); -+ -+ d = (startpos >= size1 ? string2 - size1 : string1) + startpos; -+ -+ /* Written out as an if-else to avoid testing `translate' -+ inside the loop. */ -+ if (translate) -+ while (range > lim -+ && !fastmap[(unsigned char) -+ translate[(unsigned char) *d++]]) -+ range--; -+ else -+ while (range > lim && !fastmap[(unsigned char) *d++]) -+ range--; -+ -+ startpos += irange - range; -+ } -+ else /* Searching backwards. */ -+ { -+ register CHAR_T c = (size1 == 0 || startpos >= size1 -+ ? string2[startpos - size1] -+ : string1[startpos]); -+ -+ if (!fastmap[(unsigned char) TRANSLATE (c)]) -+ goto advance; -+ } -+ } -+ -+ /* If can't match the null string, and that's all we have left, fail. */ -+ if (range >= 0 && startpos == total_size && fastmap -+ && !bufp->can_be_null) -+ { -+#ifdef WCHAR -+ FREE_WCS_BUFFERS (); -+#endif -+ return -1; -+ } -+ -+#ifdef WCHAR -+ val = wcs_re_match_2_internal (bufp, string1, size1, string2, -+ size2, startpos, regs, stop, -+ wcs_string1, wcs_size1, -+ wcs_string2, wcs_size2, -+ mbs_offset1, mbs_offset2); -+#else /* BYTE */ -+ val = byte_re_match_2_internal (bufp, string1, size1, string2, -+ size2, startpos, regs, stop); -+#endif /* BYTE */ -+ -+#ifndef REGEX_MALLOC -+# ifdef C_ALLOCA -+ alloca (0); -+# endif -+#endif -+ -+ if (val >= 0) -+ { -+#ifdef WCHAR -+ FREE_WCS_BUFFERS (); -+#endif -+ return startpos; -+ } -+ -+ if (val == -2) -+ { -+#ifdef WCHAR -+ FREE_WCS_BUFFERS (); -+#endif -+ return -2; -+ } -+ -+ advance: -+ if (!range) -+ break; -+ else if (range > 0) -+ { -+ range--; -+ startpos++; -+ } -+ else -+ { -+ range++; -+ startpos--; -+ } -+ } -+#ifdef WCHAR -+ FREE_WCS_BUFFERS (); -+#endif -+ return -1; -+} -+ -+#ifdef WCHAR -+/* This converts PTR, a pointer into one of the search wchar_t strings -+ `string1' and `string2' into an multibyte string offset from the -+ beginning of that string. We use mbs_offset to optimize. -+ See convert_mbs_to_wcs. */ -+# define POINTER_TO_OFFSET(ptr) \ -+ (FIRST_STRING_P (ptr) \ -+ ? ((regoff_t)(mbs_offset1 != NULL? mbs_offset1[(ptr)-string1] : 0)) \ -+ : ((regoff_t)((mbs_offset2 != NULL? mbs_offset2[(ptr)-string2] : 0) \ -+ + csize1))) -+#else /* BYTE */ -+/* This converts PTR, a pointer into one of the search strings `string1' -+ and `string2' into an offset from the beginning of that string. */ -+# define POINTER_TO_OFFSET(ptr) \ -+ (FIRST_STRING_P (ptr) \ -+ ? ((regoff_t) ((ptr) - string1)) \ -+ : ((regoff_t) ((ptr) - string2 + size1))) -+#endif /* WCHAR */ -+ -+/* Macros for dealing with the split strings in re_match_2. */ -+ -+#define MATCHING_IN_FIRST_STRING (dend == end_match_1) -+ -+/* Call before fetching a character with *d. This switches over to -+ string2 if necessary. */ -+#define PREFETCH() \ -+ while (d == dend) \ -+ { \ -+ /* End of string2 => fail. */ \ -+ if (dend == end_match_2) \ -+ goto fail; \ -+ /* End of string1 => advance to string2. */ \ -+ d = string2; \ -+ dend = end_match_2; \ -+ } -+ -+/* Test if at very beginning or at very end of the virtual concatenation -+ of `string1' and `string2'. If only one string, it's `string2'. */ -+#define AT_STRINGS_BEG(d) ((d) == (size1 ? string1 : string2) || !size2) -+#define AT_STRINGS_END(d) ((d) == end2) -+ -+ -+/* Test if D points to a character which is word-constituent. We have -+ two special cases to check for: if past the end of string1, look at -+ the first character in string2; and if before the beginning of -+ string2, look at the last character in string1. */ -+#ifdef WCHAR -+/* Use internationalized API instead of SYNTAX. */ -+# define WORDCHAR_P(d) \ -+ (iswalnum ((wint_t)((d) == end1 ? *string2 \ -+ : (d) == string2 - 1 ? *(end1 - 1) : *(d))) != 0 \ -+ || ((d) == end1 ? *string2 \ -+ : (d) == string2 - 1 ? *(end1 - 1) : *(d)) == L'_') -+#else /* BYTE */ -+# define WORDCHAR_P(d) \ -+ (SYNTAX ((d) == end1 ? *string2 \ -+ : (d) == string2 - 1 ? *(end1 - 1) : *(d)) \ -+ == Sword) -+#endif /* WCHAR */ -+ -+/* Disabled due to a compiler bug -- see comment at case wordbound */ -+#if 0 -+/* Test if the character before D and the one at D differ with respect -+ to being word-constituent. */ -+#define AT_WORD_BOUNDARY(d) \ -+ (AT_STRINGS_BEG (d) || AT_STRINGS_END (d) \ -+ || WORDCHAR_P (d - 1) != WORDCHAR_P (d)) -+#endif -+ -+/* Free everything we malloc. */ -+#ifdef MATCH_MAY_ALLOCATE -+# ifdef WCHAR -+# define FREE_VARIABLES() \ -+ do { \ -+ REGEX_FREE_STACK (fail_stack.stack); \ -+ FREE_VAR (regstart); \ -+ FREE_VAR (regend); \ -+ FREE_VAR (old_regstart); \ -+ FREE_VAR (old_regend); \ -+ FREE_VAR (best_regstart); \ -+ FREE_VAR (best_regend); \ -+ FREE_VAR (reg_info); \ -+ FREE_VAR (reg_dummy); \ -+ FREE_VAR (reg_info_dummy); \ -+ if (!cant_free_wcs_buf) \ -+ { \ -+ FREE_VAR (string1); \ -+ FREE_VAR (string2); \ -+ FREE_VAR (mbs_offset1); \ -+ FREE_VAR (mbs_offset2); \ -+ } \ -+ } while (0) -+# else /* BYTE */ -+# define FREE_VARIABLES() \ -+ do { \ -+ REGEX_FREE_STACK (fail_stack.stack); \ -+ FREE_VAR (regstart); \ -+ FREE_VAR (regend); \ -+ FREE_VAR (old_regstart); \ -+ FREE_VAR (old_regend); \ -+ FREE_VAR (best_regstart); \ -+ FREE_VAR (best_regend); \ -+ FREE_VAR (reg_info); \ -+ FREE_VAR (reg_dummy); \ -+ FREE_VAR (reg_info_dummy); \ -+ } while (0) -+# endif /* WCHAR */ -+#else -+# ifdef WCHAR -+# define FREE_VARIABLES() \ -+ do { \ -+ if (!cant_free_wcs_buf) \ -+ { \ -+ FREE_VAR (string1); \ -+ FREE_VAR (string2); \ -+ FREE_VAR (mbs_offset1); \ -+ FREE_VAR (mbs_offset2); \ -+ } \ -+ } while (0) -+# else /* BYTE */ -+# define FREE_VARIABLES() ((void)0) /* Do nothing! But inhibit gcc warning. */ -+# endif /* WCHAR */ -+#endif /* not MATCH_MAY_ALLOCATE */ -+ -+/* These values must meet several constraints. They must not be valid -+ register values; since we have a limit of 255 registers (because -+ we use only one byte in the pattern for the register number), we can -+ use numbers larger than 255. They must differ by 1, because of -+ NUM_FAILURE_ITEMS above. And the value for the lowest register must -+ be larger than the value for the highest register, so we do not try -+ to actually save any registers when none are active. */ -+#define NO_HIGHEST_ACTIVE_REG (1 << BYTEWIDTH) -+#define NO_LOWEST_ACTIVE_REG (NO_HIGHEST_ACTIVE_REG + 1) -+ -+#else /* not INSIDE_RECURSION */ -+/* Matching routines. */ -+ -+#ifndef emacs /* Emacs never uses this. */ -+/* re_match is like re_match_2 except it takes only a single string. */ -+ -+int -+re_match (struct re_pattern_buffer *bufp, const char *string, -+ int size, int pos, struct re_registers *regs) -+{ -+ int result; -+# ifdef MBS_SUPPORT -+ if (MB_CUR_MAX != 1) -+ result = wcs_re_match_2_internal (bufp, NULL, 0, string, size, -+ pos, regs, size, -+ NULL, 0, NULL, 0, NULL, NULL); -+ else -+# endif -+ result = byte_re_match_2_internal (bufp, NULL, 0, string, size, -+ pos, regs, size); -+# ifndef REGEX_MALLOC -+# ifdef C_ALLOCA -+ alloca (0); -+# endif -+# endif -+ return result; -+} -+# ifdef _LIBC -+weak_alias (__re_match, re_match) -+# endif -+#endif /* not emacs */ -+ -+#endif /* not INSIDE_RECURSION */ -+ -+#ifdef INSIDE_RECURSION -+static boolean PREFIX(group_match_null_string_p) (UCHAR_T **p, -+ UCHAR_T *end, -+ PREFIX(register_info_type) *reg_info); -+static boolean PREFIX(alt_match_null_string_p) (UCHAR_T *p, -+ UCHAR_T *end, -+ PREFIX(register_info_type) *reg_info); -+static boolean PREFIX(common_op_match_null_string_p) (UCHAR_T **p, -+ UCHAR_T *end, -+ PREFIX(register_info_type) *reg_info); -+static int PREFIX(bcmp_translate) (const CHAR_T *s1, const CHAR_T *s2, -+ register int len, -+ RE_TRANSLATE_TYPE translate); -+#else /* not INSIDE_RECURSION */ -+ -+/* re_match_2 matches the compiled pattern in BUFP against the -+ the (virtual) concatenation of STRING1 and STRING2 (of length SIZE1 -+ and SIZE2, respectively). We start matching at POS, and stop -+ matching at STOP. -+ -+ If REGS is non-null and the `no_sub' field of BUFP is nonzero, we -+ store offsets for the substring each group matched in REGS. See the -+ documentation for exactly how many groups we fill. -+ -+ We return -1 if no match, -2 if an internal error (such as the -+ failure stack overflowing). Otherwise, we return the length of the -+ matched substring. */ -+ -+int -+re_match_2 (struct re_pattern_buffer *bufp, const char *string1, int size1, -+ const char *string2, int size2, int pos, -+ struct re_registers *regs, int stop) -+{ -+ int result; -+# ifdef MBS_SUPPORT -+ if (MB_CUR_MAX != 1) -+ result = wcs_re_match_2_internal (bufp, string1, size1, string2, size2, -+ pos, regs, stop, -+ NULL, 0, NULL, 0, NULL, NULL); -+ else -+# endif -+ result = byte_re_match_2_internal (bufp, string1, size1, string2, size2, -+ pos, regs, stop); -+ -+#ifndef REGEX_MALLOC -+# ifdef C_ALLOCA -+ alloca (0); -+# endif -+#endif -+ return result; -+} -+#ifdef _LIBC -+weak_alias (__re_match_2, re_match_2) -+#endif -+ -+#endif /* not INSIDE_RECURSION */ -+ -+#ifdef INSIDE_RECURSION -+ -+#ifdef WCHAR -+static int count_mbs_length (int *, int); -+ -+/* This check the substring (from 0, to length) of the multibyte string, -+ to which offset_buffer correspond. And count how many wchar_t_characters -+ the substring occupy. We use offset_buffer to optimization. -+ See convert_mbs_to_wcs. */ -+ -+static int -+count_mbs_length(int *offset_buffer, int length) -+{ -+ int upper, lower; -+ -+ /* Check whether the size is valid. */ -+ if (length < 0) -+ return -1; -+ -+ if (offset_buffer == NULL) -+ return 0; -+ -+ /* If there are no multibyte character, offset_buffer[i] == i. -+ Optmize for this case. */ -+ if (offset_buffer[length] == length) -+ return length; -+ -+ /* Set up upper with length. (because for all i, offset_buffer[i] >= i) */ -+ upper = length; -+ lower = 0; -+ -+ while (true) -+ { -+ int middle = (lower + upper) / 2; -+ if (middle == lower || middle == upper) -+ break; -+ if (offset_buffer[middle] > length) -+ upper = middle; -+ else if (offset_buffer[middle] < length) -+ lower = middle; -+ else -+ return middle; -+ } -+ -+ return -1; -+} -+#endif /* WCHAR */ -+ -+/* This is a separate function so that we can force an alloca cleanup -+ afterwards. */ -+#ifdef WCHAR -+static int -+wcs_re_match_2_internal (struct re_pattern_buffer *bufp, -+ const char *cstring1, int csize1, -+ const char *cstring2, int csize2, -+ int pos, -+ struct re_registers *regs, -+ int stop, -+ /* string1 == string2 == NULL means string1/2, size1/2 and -+ mbs_offset1/2 need seting up in this function. */ -+ /* We need wchar_t* buffers correspond to cstring1, cstring2. */ -+ wchar_t *string1, int size1, -+ wchar_t *string2, int size2, -+ /* offset buffer for optimizatoin. See convert_mbs_to_wc. */ -+ int *mbs_offset1, int *mbs_offset2) -+#else /* BYTE */ -+static int -+byte_re_match_2_internal (struct re_pattern_buffer *bufp, -+ const char *string1, int size1, -+ const char *string2, int size2, -+ int pos, -+ struct re_registers *regs, int stop) -+#endif /* BYTE */ -+{ -+ /* General temporaries. */ -+ int mcnt; -+ UCHAR_T *p1; -+#ifdef WCHAR -+ /* They hold whether each wchar_t is binary data or not. */ -+ char *is_binary = NULL; -+ /* If true, we can't free string1/2, mbs_offset1/2. */ -+ int cant_free_wcs_buf = 1; -+#endif /* WCHAR */ -+ -+ /* Just past the end of the corresponding string. */ -+ const CHAR_T *end1, *end2; -+ -+ /* Pointers into string1 and string2, just past the last characters in -+ each to consider matching. */ -+ const CHAR_T *end_match_1, *end_match_2; -+ -+ /* Where we are in the data, and the end of the current string. */ -+ const CHAR_T *d, *dend; -+ -+ /* Where we are in the pattern, and the end of the pattern. */ -+#ifdef WCHAR -+ UCHAR_T *pattern, *p; -+ register UCHAR_T *pend; -+#else /* BYTE */ -+ UCHAR_T *p = bufp->buffer; -+ register UCHAR_T *pend = p + bufp->used; -+#endif /* WCHAR */ -+ -+ /* Mark the opcode just after a start_memory, so we can test for an -+ empty subpattern when we get to the stop_memory. */ -+ UCHAR_T *just_past_start_mem = 0; -+ -+ /* We use this to map every character in the string. */ -+ RE_TRANSLATE_TYPE translate = bufp->translate; -+ -+ /* Failure point stack. Each place that can handle a failure further -+ down the line pushes a failure point on this stack. It consists of -+ restart, regend, and reg_info for all registers corresponding to -+ the subexpressions we're currently inside, plus the number of such -+ registers, and, finally, two char *'s. The first char * is where -+ to resume scanning the pattern; the second one is where to resume -+ scanning the strings. If the latter is zero, the failure point is -+ a ``dummy''; if a failure happens and the failure point is a dummy, -+ it gets discarded and the next next one is tried. */ -+#ifdef MATCH_MAY_ALLOCATE /* otherwise, this is global. */ -+ PREFIX(fail_stack_type) fail_stack; -+#endif -+#ifdef DEBUG -+ static unsigned failure_id; -+ unsigned nfailure_points_pushed = 0, nfailure_points_popped = 0; -+#endif -+ -+#ifdef REL_ALLOC -+ /* This holds the pointer to the failure stack, when -+ it is allocated relocatably. */ -+ fail_stack_elt_t *failure_stack_ptr; -+#endif -+ -+ /* We fill all the registers internally, independent of what we -+ return, for use in backreferences. The number here includes -+ an element for register zero. */ -+ size_t num_regs = bufp->re_nsub + 1; -+ -+ /* The currently active registers. */ -+ active_reg_t lowest_active_reg = NO_LOWEST_ACTIVE_REG; -+ active_reg_t highest_active_reg = NO_HIGHEST_ACTIVE_REG; -+ -+ /* Information on the contents of registers. These are pointers into -+ the input strings; they record just what was matched (on this -+ attempt) by a subexpression part of the pattern, that is, the -+ regnum-th regstart pointer points to where in the pattern we began -+ matching and the regnum-th regend points to right after where we -+ stopped matching the regnum-th subexpression. (The zeroth register -+ keeps track of what the whole pattern matches.) */ -+#ifdef MATCH_MAY_ALLOCATE /* otherwise, these are global. */ -+ const CHAR_T **regstart, **regend; -+#endif -+ -+ /* If a group that's operated upon by a repetition operator fails to -+ match anything, then the register for its start will need to be -+ restored because it will have been set to wherever in the string we -+ are when we last see its open-group operator. Similarly for a -+ register's end. */ -+#ifdef MATCH_MAY_ALLOCATE /* otherwise, these are global. */ -+ const CHAR_T **old_regstart, **old_regend; -+#endif -+ -+ /* The is_active field of reg_info helps us keep track of which (possibly -+ nested) subexpressions we are currently in. The matched_something -+ field of reg_info[reg_num] helps us tell whether or not we have -+ matched any of the pattern so far this time through the reg_num-th -+ subexpression. These two fields get reset each time through any -+ loop their register is in. */ -+#ifdef MATCH_MAY_ALLOCATE /* otherwise, this is global. */ -+ PREFIX(register_info_type) *reg_info; -+#endif -+ -+ /* The following record the register info as found in the above -+ variables when we find a match better than any we've seen before. -+ This happens as we backtrack through the failure points, which in -+ turn happens only if we have not yet matched the entire string. */ -+ unsigned best_regs_set = false; -+#ifdef MATCH_MAY_ALLOCATE /* otherwise, these are global. */ -+ const CHAR_T **best_regstart, **best_regend; -+#endif -+ -+ /* Logically, this is `best_regend[0]'. But we don't want to have to -+ allocate space for that if we're not allocating space for anything -+ else (see below). Also, we never need info about register 0 for -+ any of the other register vectors, and it seems rather a kludge to -+ treat `best_regend' differently than the rest. So we keep track of -+ the end of the best match so far in a separate variable. We -+ initialize this to NULL so that when we backtrack the first time -+ and need to test it, it's not garbage. */ -+ const CHAR_T *match_end = NULL; -+ -+ /* This helps SET_REGS_MATCHED avoid doing redundant work. */ -+ int set_regs_matched_done = 0; -+ -+ /* Used when we pop values we don't care about. */ -+#ifdef MATCH_MAY_ALLOCATE /* otherwise, these are global. */ -+ const CHAR_T **reg_dummy; -+ PREFIX(register_info_type) *reg_info_dummy; -+#endif -+ -+#ifdef DEBUG -+ /* Counts the total number of registers pushed. */ -+ unsigned num_regs_pushed = 0; -+#endif -+ -+ DEBUG_PRINT1 ("\n\nEntering re_match_2.\n"); -+ -+ INIT_FAIL_STACK (); -+ -+#ifdef MATCH_MAY_ALLOCATE -+ /* Do not bother to initialize all the register variables if there are -+ no groups in the pattern, as it takes a fair amount of time. If -+ there are groups, we include space for register 0 (the whole -+ pattern), even though we never use it, since it simplifies the -+ array indexing. We should fix this. */ -+ if (bufp->re_nsub) -+ { -+ regstart = REGEX_TALLOC (num_regs, const CHAR_T *); -+ regend = REGEX_TALLOC (num_regs, const CHAR_T *); -+ old_regstart = REGEX_TALLOC (num_regs, const CHAR_T *); -+ old_regend = REGEX_TALLOC (num_regs, const CHAR_T *); -+ best_regstart = REGEX_TALLOC (num_regs, const CHAR_T *); -+ best_regend = REGEX_TALLOC (num_regs, const CHAR_T *); -+ reg_info = REGEX_TALLOC (num_regs, PREFIX(register_info_type)); -+ reg_dummy = REGEX_TALLOC (num_regs, const CHAR_T *); -+ reg_info_dummy = REGEX_TALLOC (num_regs, PREFIX(register_info_type)); -+ -+ if (!(regstart && regend && old_regstart && old_regend && reg_info -+ && best_regstart && best_regend && reg_dummy && reg_info_dummy)) -+ { -+ FREE_VARIABLES (); -+ return -2; -+ } -+ } -+ else -+ { -+ /* We must initialize all our variables to NULL, so that -+ `FREE_VARIABLES' doesn't try to free them. */ -+ regstart = regend = old_regstart = old_regend = best_regstart -+ = best_regend = reg_dummy = NULL; -+ reg_info = reg_info_dummy = (PREFIX(register_info_type) *) NULL; -+ } -+#endif /* MATCH_MAY_ALLOCATE */ -+ -+ /* The starting position is bogus. */ -+#ifdef WCHAR -+ if (pos < 0 || pos > csize1 + csize2) -+#else /* BYTE */ -+ if (pos < 0 || pos > size1 + size2) -+#endif -+ { -+ FREE_VARIABLES (); -+ return -1; -+ } -+ -+#ifdef WCHAR -+ /* Allocate wchar_t array for string1 and string2 and -+ fill them with converted string. */ -+ if (string1 == NULL && string2 == NULL) -+ { -+ /* We need seting up buffers here. */ -+ -+ /* We must free wcs buffers in this function. */ -+ cant_free_wcs_buf = 0; -+ -+ if (csize1 != 0) -+ { -+ string1 = REGEX_TALLOC (csize1 + 1, CHAR_T); -+ mbs_offset1 = REGEX_TALLOC (csize1 + 1, int); -+ is_binary = REGEX_TALLOC (csize1 + 1, char); -+ if (!string1 || !mbs_offset1 || !is_binary) -+ { -+ FREE_VAR (string1); -+ FREE_VAR (mbs_offset1); -+ FREE_VAR (is_binary); -+ return -2; -+ } -+ } -+ if (csize2 != 0) -+ { -+ string2 = REGEX_TALLOC (csize2 + 1, CHAR_T); -+ mbs_offset2 = REGEX_TALLOC (csize2 + 1, int); -+ is_binary = REGEX_TALLOC (csize2 + 1, char); -+ if (!string2 || !mbs_offset2 || !is_binary) -+ { -+ FREE_VAR (string1); -+ FREE_VAR (mbs_offset1); -+ FREE_VAR (string2); -+ FREE_VAR (mbs_offset2); -+ FREE_VAR (is_binary); -+ return -2; -+ } -+ size2 = convert_mbs_to_wcs(string2, cstring2, csize2, -+ mbs_offset2, is_binary); -+ string2[size2] = L'\0'; /* for a sentinel */ -+ FREE_VAR (is_binary); -+ } -+ } -+ -+ /* We need to cast pattern to (wchar_t*), because we casted this compiled -+ pattern to (char*) in regex_compile. */ -+ p = pattern = (CHAR_T*)bufp->buffer; -+ pend = (CHAR_T*)(bufp->buffer + bufp->used); -+ -+#endif /* WCHAR */ -+ -+ /* Initialize subexpression text positions to -1 to mark ones that no -+ start_memory/stop_memory has been seen for. Also initialize the -+ register information struct. */ -+ for (mcnt = 1; (unsigned) mcnt < num_regs; mcnt++) -+ { -+ regstart[mcnt] = regend[mcnt] -+ = old_regstart[mcnt] = old_regend[mcnt] = REG_UNSET_VALUE; -+ -+ REG_MATCH_NULL_STRING_P (reg_info[mcnt]) = MATCH_NULL_UNSET_VALUE; -+ IS_ACTIVE (reg_info[mcnt]) = 0; -+ MATCHED_SOMETHING (reg_info[mcnt]) = 0; -+ EVER_MATCHED_SOMETHING (reg_info[mcnt]) = 0; -+ } -+ -+ /* We move `string1' into `string2' if the latter's empty -- but not if -+ `string1' is null. */ -+ if (size2 == 0 && string1 != NULL) -+ { -+ string2 = string1; -+ size2 = size1; -+ string1 = 0; -+ size1 = 0; -+#ifdef WCHAR -+ mbs_offset2 = mbs_offset1; -+ csize2 = csize1; -+ mbs_offset1 = NULL; -+ csize1 = 0; -+#endif -+ } -+ end1 = string1 + size1; -+ end2 = string2 + size2; -+ -+ /* Compute where to stop matching, within the two strings. */ -+#ifdef WCHAR -+ if (stop <= csize1) -+ { -+ mcnt = count_mbs_length(mbs_offset1, stop); -+ end_match_1 = string1 + mcnt; -+ end_match_2 = string2; -+ } -+ else -+ { -+ if (stop > csize1 + csize2) -+ stop = csize1 + csize2; -+ end_match_1 = end1; -+ mcnt = count_mbs_length(mbs_offset2, stop-csize1); -+ end_match_2 = string2 + mcnt; -+ } -+ if (mcnt < 0) -+ { /* count_mbs_length return error. */ -+ FREE_VARIABLES (); -+ return -1; -+ } -+#else -+ if (stop <= size1) -+ { -+ end_match_1 = string1 + stop; -+ end_match_2 = string2; -+ } -+ else -+ { -+ end_match_1 = end1; -+ end_match_2 = string2 + stop - size1; -+ } -+#endif /* WCHAR */ -+ -+ /* `p' scans through the pattern as `d' scans through the data. -+ `dend' is the end of the input string that `d' points within. `d' -+ is advanced into the following input string whenever necessary, but -+ this happens before fetching; therefore, at the beginning of the -+ loop, `d' can be pointing at the end of a string, but it cannot -+ equal `string2'. */ -+#ifdef WCHAR -+ if (size1 > 0 && pos <= csize1) -+ { -+ mcnt = count_mbs_length(mbs_offset1, pos); -+ d = string1 + mcnt; -+ dend = end_match_1; -+ } -+ else -+ { -+ mcnt = count_mbs_length(mbs_offset2, pos-csize1); -+ d = string2 + mcnt; -+ dend = end_match_2; -+ } -+ -+ if (mcnt < 0) -+ { /* count_mbs_length return error. */ -+ FREE_VARIABLES (); -+ return -1; -+ } -+#else -+ if (size1 > 0 && pos <= size1) -+ { -+ d = string1 + pos; -+ dend = end_match_1; -+ } -+ else -+ { -+ d = string2 + pos - size1; -+ dend = end_match_2; -+ } -+#endif /* WCHAR */ -+ -+ DEBUG_PRINT1 ("The compiled pattern is:\n"); -+ DEBUG_PRINT_COMPILED_PATTERN (bufp, p, pend); -+ DEBUG_PRINT1 ("The string to match is: `"); -+ DEBUG_PRINT_DOUBLE_STRING (d, string1, size1, string2, size2); -+ DEBUG_PRINT1 ("'\n"); -+ -+ /* This loops over pattern commands. It exits by returning from the -+ function if the match is complete, or it drops through if the match -+ fails at this starting point in the input data. */ -+ for (;;) -+ { -+#ifdef _LIBC -+ DEBUG_PRINT2 ("\n%p: ", p); -+#else -+ DEBUG_PRINT2 ("\n0x%x: ", p); -+#endif -+ -+ if (p == pend) -+ { /* End of pattern means we might have succeeded. */ -+ DEBUG_PRINT1 ("end of pattern ... "); -+ -+ /* If we haven't matched the entire string, and we want the -+ longest match, try backtracking. */ -+ if (d != end_match_2) -+ { -+ /* 1 if this match ends in the same string (string1 or string2) -+ as the best previous match. */ -+ boolean same_str_p = (FIRST_STRING_P (match_end) -+ == MATCHING_IN_FIRST_STRING); -+ /* 1 if this match is the best seen so far. */ -+ boolean best_match_p; -+ -+ /* AIX compiler got confused when this was combined -+ with the previous declaration. */ -+ if (same_str_p) -+ best_match_p = d > match_end; -+ else -+ best_match_p = !MATCHING_IN_FIRST_STRING; -+ -+ DEBUG_PRINT1 ("backtracking.\n"); -+ -+ if (!FAIL_STACK_EMPTY ()) -+ { /* More failure points to try. */ -+ -+ /* If exceeds best match so far, save it. */ -+ if (!best_regs_set || best_match_p) -+ { -+ best_regs_set = true; -+ match_end = d; -+ -+ DEBUG_PRINT1 ("\nSAVING match as best so far.\n"); -+ -+ for (mcnt = 1; (unsigned) mcnt < num_regs; mcnt++) -+ { -+ best_regstart[mcnt] = regstart[mcnt]; -+ best_regend[mcnt] = regend[mcnt]; -+ } -+ } -+ goto fail; -+ } -+ -+ /* If no failure points, don't restore garbage. And if -+ last match is real best match, don't restore second -+ best one. */ -+ else if (best_regs_set && !best_match_p) -+ { -+ restore_best_regs: -+ /* Restore best match. It may happen that `dend == -+ end_match_1' while the restored d is in string2. -+ For example, the pattern `x.*y.*z' against the -+ strings `x-' and `y-z-', if the two strings are -+ not consecutive in memory. */ -+ DEBUG_PRINT1 ("Restoring best registers.\n"); -+ -+ d = match_end; -+ dend = ((d >= string1 && d <= end1) -+ ? end_match_1 : end_match_2); -+ -+ for (mcnt = 1; (unsigned) mcnt < num_regs; mcnt++) -+ { -+ regstart[mcnt] = best_regstart[mcnt]; -+ regend[mcnt] = best_regend[mcnt]; -+ } -+ } -+ } /* d != end_match_2 */ -+ -+ succeed_label: -+ DEBUG_PRINT1 ("Accepting match.\n"); -+ /* If caller wants register contents data back, do it. */ -+ if (regs && !bufp->no_sub) -+ { -+ /* Have the register data arrays been allocated? */ -+ if (bufp->regs_allocated == REGS_UNALLOCATED) -+ { /* No. So allocate them with malloc. We need one -+ extra element beyond `num_regs' for the `-1' marker -+ GNU code uses. */ -+ regs->num_regs = MAX (RE_NREGS, num_regs + 1); -+ regs->start = TALLOC (regs->num_regs, regoff_t); -+ regs->end = TALLOC (regs->num_regs, regoff_t); -+ if (regs->start == NULL || regs->end == NULL) -+ { -+ FREE_VARIABLES (); -+ return -2; -+ } -+ bufp->regs_allocated = REGS_REALLOCATE; -+ } -+ else if (bufp->regs_allocated == REGS_REALLOCATE) -+ { /* Yes. If we need more elements than were already -+ allocated, reallocate them. If we need fewer, just -+ leave it alone. */ -+ if (regs->num_regs < num_regs + 1) -+ { -+ regs->num_regs = num_regs + 1; -+ RETALLOC (regs->start, regs->num_regs, regoff_t); -+ RETALLOC (regs->end, regs->num_regs, regoff_t); -+ if (regs->start == NULL || regs->end == NULL) -+ { -+ FREE_VARIABLES (); -+ return -2; -+ } -+ } -+ } -+ else -+ { -+ /* These braces fend off a "empty body in an else-statement" -+ warning under GCC when assert expands to nothing. */ -+ assert (bufp->regs_allocated == REGS_FIXED); -+ } -+ -+ /* Convert the pointer data in `regstart' and `regend' to -+ indices. Register zero has to be set differently, -+ since we haven't kept track of any info for it. */ -+ if (regs->num_regs > 0) -+ { -+ regs->start[0] = pos; -+#ifdef WCHAR -+ if (MATCHING_IN_FIRST_STRING) -+ regs->end[0] = mbs_offset1 != NULL ? -+ mbs_offset1[d-string1] : 0; -+ else -+ regs->end[0] = csize1 + (mbs_offset2 != NULL ? -+ mbs_offset2[d-string2] : 0); -+#else -+ regs->end[0] = (MATCHING_IN_FIRST_STRING -+ ? ((regoff_t) (d - string1)) -+ : ((regoff_t) (d - string2 + size1))); -+#endif /* WCHAR */ -+ } -+ -+ /* Go through the first `min (num_regs, regs->num_regs)' -+ registers, since that is all we initialized. */ -+ for (mcnt = 1; (unsigned) mcnt < MIN (num_regs, regs->num_regs); -+ mcnt++) -+ { -+ if (REG_UNSET (regstart[mcnt]) || REG_UNSET (regend[mcnt])) -+ regs->start[mcnt] = regs->end[mcnt] = -1; -+ else -+ { -+ regs->start[mcnt] -+ = (regoff_t) POINTER_TO_OFFSET (regstart[mcnt]); -+ regs->end[mcnt] -+ = (regoff_t) POINTER_TO_OFFSET (regend[mcnt]); -+ } -+ } -+ -+ /* If the regs structure we return has more elements than -+ were in the pattern, set the extra elements to -1. If -+ we (re)allocated the registers, this is the case, -+ because we always allocate enough to have at least one -+ -1 at the end. */ -+ for (mcnt = num_regs; (unsigned) mcnt < regs->num_regs; mcnt++) -+ regs->start[mcnt] = regs->end[mcnt] = -1; -+ } /* regs && !bufp->no_sub */ -+ -+ DEBUG_PRINT4 ("%u failure points pushed, %u popped (%u remain).\n", -+ nfailure_points_pushed, nfailure_points_popped, -+ nfailure_points_pushed - nfailure_points_popped); -+ DEBUG_PRINT2 ("%u registers pushed.\n", num_regs_pushed); -+ -+#ifdef WCHAR -+ if (MATCHING_IN_FIRST_STRING) -+ mcnt = mbs_offset1 != NULL ? mbs_offset1[d-string1] : 0; -+ else -+ mcnt = (mbs_offset2 != NULL ? mbs_offset2[d-string2] : 0) + -+ csize1; -+ mcnt -= pos; -+#else -+ mcnt = d - pos - (MATCHING_IN_FIRST_STRING -+ ? string1 -+ : string2 - size1); -+#endif /* WCHAR */ -+ -+ DEBUG_PRINT2 ("Returning %d from re_match_2.\n", mcnt); -+ -+ FREE_VARIABLES (); -+ return mcnt; -+ } -+ -+ /* Otherwise match next pattern command. */ -+ switch (SWITCH_ENUM_CAST ((re_opcode_t) *p++)) -+ { -+ /* Ignore these. Used to ignore the n of succeed_n's which -+ currently have n == 0. */ -+ case no_op: -+ DEBUG_PRINT1 ("EXECUTING no_op.\n"); -+ break; -+ -+ case succeed: -+ DEBUG_PRINT1 ("EXECUTING succeed.\n"); -+ goto succeed_label; -+ -+ /* Match the next n pattern characters exactly. The following -+ byte in the pattern defines n, and the n bytes after that -+ are the characters to match. */ -+ case exactn: -+#ifdef MBS_SUPPORT -+ case exactn_bin: -+#endif -+ mcnt = *p++; -+ DEBUG_PRINT2 ("EXECUTING exactn %d.\n", mcnt); -+ -+ /* This is written out as an if-else so we don't waste time -+ testing `translate' inside the loop. */ -+ if (translate) -+ { -+ do -+ { -+ PREFETCH (); -+#ifdef WCHAR -+ if (*d <= 0xff) -+ { -+ if ((UCHAR_T) translate[(unsigned char) *d++] -+ != (UCHAR_T) *p++) -+ goto fail; -+ } -+ else -+ { -+ if (*d++ != (CHAR_T) *p++) -+ goto fail; -+ } -+#else -+ if ((UCHAR_T) translate[(unsigned char) *d++] -+ != (UCHAR_T) *p++) -+ goto fail; -+#endif /* WCHAR */ -+ } -+ while (--mcnt); -+ } -+ else -+ { -+ do -+ { -+ PREFETCH (); -+ if (*d++ != (CHAR_T) *p++) goto fail; -+ } -+ while (--mcnt); -+ } -+ SET_REGS_MATCHED (); -+ break; -+ -+ -+ /* Match any character except possibly a newline or a null. */ -+ case anychar: -+ DEBUG_PRINT1 ("EXECUTING anychar.\n"); -+ -+ PREFETCH (); -+ -+ if ((!(bufp->syntax & RE_DOT_NEWLINE) && TRANSLATE (*d) == '\n') -+ || (bufp->syntax & RE_DOT_NOT_NULL && TRANSLATE (*d) == '\000')) -+ goto fail; -+ -+ SET_REGS_MATCHED (); -+ DEBUG_PRINT2 (" Matched `%ld'.\n", (long int) *d); -+ d++; -+ break; -+ -+ -+ case charset: -+ case charset_not: -+ { -+ register UCHAR_T c; -+#ifdef WCHAR -+ unsigned int i, char_class_length, coll_symbol_length, -+ equiv_class_length, ranges_length, chars_length, length; -+ CHAR_T *workp, *workp2, *charset_top; -+#define WORK_BUFFER_SIZE 128 -+ CHAR_T str_buf[WORK_BUFFER_SIZE]; -+# ifdef _LIBC -+ uint32_t nrules; -+# endif /* _LIBC */ -+#endif /* WCHAR */ -+ boolean negate = (re_opcode_t) *(p - 1) == charset_not; -+ -+ DEBUG_PRINT2 ("EXECUTING charset%s.\n", negate ? "_not" : ""); -+ PREFETCH (); -+ c = TRANSLATE (*d); /* The character to match. */ -+#ifdef WCHAR -+# ifdef _LIBC -+ nrules = _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_NRULES); -+# endif /* _LIBC */ -+ charset_top = p - 1; -+ char_class_length = *p++; -+ coll_symbol_length = *p++; -+ equiv_class_length = *p++; -+ ranges_length = *p++; -+ chars_length = *p++; -+ /* p points charset[6], so the address of the next instruction -+ (charset[l+m+n+2o+k+p']) equals p[l+m+n+2*o+p'], -+ where l=length of char_classes, m=length of collating_symbol, -+ n=equivalence_class, o=length of char_range, -+ p'=length of character. */ -+ workp = p; -+ /* Update p to indicate the next instruction. */ -+ p += char_class_length + coll_symbol_length+ equiv_class_length + -+ 2*ranges_length + chars_length; -+ -+ /* match with char_class? */ -+ for (i = 0; i < char_class_length ; i += CHAR_CLASS_SIZE) -+ { -+ wctype_t wctype; -+ uintptr_t alignedp = ((uintptr_t)workp -+ + __alignof__(wctype_t) - 1) -+ & ~(uintptr_t)(__alignof__(wctype_t) - 1); -+ wctype = *((wctype_t*)alignedp); -+ workp += CHAR_CLASS_SIZE; -+# ifdef _LIBC -+ if (__iswctype((wint_t)c, wctype)) -+ goto char_set_matched; -+# else -+ if (iswctype((wint_t)c, wctype)) -+ goto char_set_matched; -+# endif -+ } -+ -+ /* match with collating_symbol? */ -+# ifdef _LIBC -+ if (nrules != 0) -+ { -+ const unsigned char *extra = (const unsigned char *) -+ _NL_CURRENT (LC_COLLATE, _NL_COLLATE_SYMB_EXTRAMB); -+ -+ for (workp2 = workp + coll_symbol_length ; workp < workp2 ; -+ workp++) -+ { -+ int32_t *wextra; -+ wextra = (int32_t*)(extra + *workp++); -+ for (i = 0; i < *wextra; ++i) -+ if (TRANSLATE(d[i]) != wextra[1 + i]) -+ break; -+ -+ if (i == *wextra) -+ { -+ /* Update d, however d will be incremented at -+ char_set_matched:, we decrement d here. */ -+ d += i - 1; -+ goto char_set_matched; -+ } -+ } -+ } -+ else /* (nrules == 0) */ -+# endif -+ /* If we can't look up collation data, we use wcscoll -+ instead. */ -+ { -+ for (workp2 = workp + coll_symbol_length ; workp < workp2 ;) -+ { -+ const CHAR_T *backup_d = d, *backup_dend = dend; -+# ifdef _LIBC -+ length = __wcslen (workp); -+# else -+ length = wcslen (workp); -+# endif -+ -+ /* If wcscoll(the collating symbol, whole string) > 0, -+ any substring of the string never match with the -+ collating symbol. */ -+# ifdef _LIBC -+ if (__wcscoll (workp, d) > 0) -+# else -+ if (wcscoll (workp, d) > 0) -+# endif -+ { -+ workp += length + 1; -+ continue; -+ } -+ -+ /* First, we compare the collating symbol with -+ the first character of the string. -+ If it don't match, we add the next character to -+ the compare buffer in turn. */ -+ for (i = 0 ; i < WORK_BUFFER_SIZE-1 ; i++, d++) -+ { -+ int match; -+ if (d == dend) -+ { -+ if (dend == end_match_2) -+ break; -+ d = string2; -+ dend = end_match_2; -+ } -+ -+ /* add next character to the compare buffer. */ -+ str_buf[i] = TRANSLATE(*d); -+ str_buf[i+1] = '\0'; -+ -+# ifdef _LIBC -+ match = __wcscoll (workp, str_buf); -+# else -+ match = wcscoll (workp, str_buf); -+# endif -+ if (match == 0) -+ goto char_set_matched; -+ -+ if (match < 0) -+ /* (str_buf > workp) indicate (str_buf + X > workp), -+ because for all X (str_buf + X > str_buf). -+ So we don't need continue this loop. */ -+ break; -+ -+ /* Otherwise(str_buf < workp), -+ (str_buf+next_character) may equals (workp). -+ So we continue this loop. */ -+ } -+ /* not matched */ -+ d = backup_d; -+ dend = backup_dend; -+ workp += length + 1; -+ } -+ } -+ /* match with equivalence_class? */ -+# ifdef _LIBC -+ if (nrules != 0) -+ { -+ const CHAR_T *backup_d = d, *backup_dend = dend; -+ /* Try to match the equivalence class against -+ those known to the collate implementation. */ -+ const int32_t *table; -+ const int32_t *weights; -+ const int32_t *extra; -+ const int32_t *indirect; -+ int32_t idx, idx2; -+ wint_t *cp; -+ size_t len; -+ -+ /* This #include defines a local function! */ -+# include <locale/weightwc.h> -+ -+ table = (const int32_t *) -+ _NL_CURRENT (LC_COLLATE, _NL_COLLATE_TABLEWC); -+ weights = (const wint_t *) -+ _NL_CURRENT (LC_COLLATE, _NL_COLLATE_WEIGHTWC); -+ extra = (const wint_t *) -+ _NL_CURRENT (LC_COLLATE, _NL_COLLATE_EXTRAWC); -+ indirect = (const int32_t *) -+ _NL_CURRENT (LC_COLLATE, _NL_COLLATE_INDIRECTWC); -+ -+ /* Write 1 collating element to str_buf, and -+ get its index. */ -+ idx2 = 0; -+ -+ for (i = 0 ; idx2 == 0 && i < WORK_BUFFER_SIZE - 1; i++) -+ { -+ cp = (wint_t*)str_buf; -+ if (d == dend) -+ { -+ if (dend == end_match_2) -+ break; -+ d = string2; -+ dend = end_match_2; -+ } -+ str_buf[i] = TRANSLATE(*(d+i)); -+ str_buf[i+1] = '\0'; /* sentinel */ -+ idx2 = findidx ((const wint_t**)&cp, i); -+ } -+ -+ /* Update d, however d will be incremented at -+ char_set_matched:, we decrement d here. */ -+ d = backup_d + ((wchar_t*)cp - (wchar_t*)str_buf - 1); -+ if (d >= dend) -+ { -+ if (dend == end_match_2) -+ d = dend; -+ else -+ { -+ d = string2; -+ dend = end_match_2; -+ } -+ } -+ -+ len = weights[idx2]; -+ -+ for (workp2 = workp + equiv_class_length ; workp < workp2 ; -+ workp++) -+ { -+ idx = (int32_t)*workp; -+ /* We already checked idx != 0 in regex_compile. */ -+ -+ if (idx2 != 0 && len == weights[idx]) -+ { -+ int cnt = 0; -+ while (cnt < len && (weights[idx + 1 + cnt] -+ == weights[idx2 + 1 + cnt])) -+ ++cnt; -+ -+ if (cnt == len) -+ goto char_set_matched; -+ } -+ } -+ /* not matched */ -+ d = backup_d; -+ dend = backup_dend; -+ } -+ else /* (nrules == 0) */ -+# endif -+ /* If we can't look up collation data, we use wcscoll -+ instead. */ -+ { -+ for (workp2 = workp + equiv_class_length ; workp < workp2 ;) -+ { -+ const CHAR_T *backup_d = d, *backup_dend = dend; -+# ifdef _LIBC -+ length = __wcslen (workp); -+# else -+ length = wcslen (workp); -+# endif -+ -+ /* If wcscoll(the collating symbol, whole string) > 0, -+ any substring of the string never match with the -+ collating symbol. */ -+# ifdef _LIBC -+ if (__wcscoll (workp, d) > 0) -+# else -+ if (wcscoll (workp, d) > 0) -+# endif -+ { -+ workp += length + 1; -+ break; -+ } -+ -+ /* First, we compare the equivalence class with -+ the first character of the string. -+ If it don't match, we add the next character to -+ the compare buffer in turn. */ -+ for (i = 0 ; i < WORK_BUFFER_SIZE - 1 ; i++, d++) -+ { -+ int match; -+ if (d == dend) -+ { -+ if (dend == end_match_2) -+ break; -+ d = string2; -+ dend = end_match_2; -+ } -+ -+ /* add next character to the compare buffer. */ -+ str_buf[i] = TRANSLATE(*d); -+ str_buf[i+1] = '\0'; -+ -+# ifdef _LIBC -+ match = __wcscoll (workp, str_buf); -+# else -+ match = wcscoll (workp, str_buf); -+# endif -+ -+ if (match == 0) -+ goto char_set_matched; -+ -+ if (match < 0) -+ /* (str_buf > workp) indicate (str_buf + X > workp), -+ because for all X (str_buf + X > str_buf). -+ So we don't need continue this loop. */ -+ break; -+ -+ /* Otherwise(str_buf < workp), -+ (str_buf+next_character) may equals (workp). -+ So we continue this loop. */ -+ } -+ /* not matched */ -+ d = backup_d; -+ dend = backup_dend; -+ workp += length + 1; -+ } -+ } -+ -+ /* match with char_range? */ -+# ifdef _LIBC -+ if (nrules != 0) -+ { -+ uint32_t collseqval; -+ const char *collseq = (const char *) -+ _NL_CURRENT(LC_COLLATE, _NL_COLLATE_COLLSEQWC); -+ -+ collseqval = collseq_table_lookup (collseq, c); -+ -+ for (; workp < p - chars_length ;) -+ { -+ uint32_t start_val, end_val; -+ -+ /* We already compute the collation sequence value -+ of the characters (or collating symbols). */ -+ start_val = (uint32_t) *workp++; /* range_start */ -+ end_val = (uint32_t) *workp++; /* range_end */ -+ -+ if (start_val <= collseqval && collseqval <= end_val) -+ goto char_set_matched; -+ } -+ } -+ else -+# endif -+ { -+ /* We set range_start_char at str_buf[0], range_end_char -+ at str_buf[4], and compared char at str_buf[2]. */ -+ str_buf[1] = 0; -+ str_buf[2] = c; -+ str_buf[3] = 0; -+ str_buf[5] = 0; -+ for (; workp < p - chars_length ;) -+ { -+ wchar_t *range_start_char, *range_end_char; -+ -+ /* match if (range_start_char <= c <= range_end_char). */ -+ -+ /* If range_start(or end) < 0, we assume -range_start(end) -+ is the offset of the collating symbol which is specified -+ as the character of the range start(end). */ -+ -+ /* range_start */ -+ if (*workp < 0) -+ range_start_char = charset_top - (*workp++); -+ else -+ { -+ str_buf[0] = *workp++; -+ range_start_char = str_buf; -+ } -+ -+ /* range_end */ -+ if (*workp < 0) -+ range_end_char = charset_top - (*workp++); -+ else -+ { -+ str_buf[4] = *workp++; -+ range_end_char = str_buf + 4; -+ } -+ -+# ifdef _LIBC -+ if (__wcscoll (range_start_char, str_buf+2) <= 0 -+ && __wcscoll (str_buf+2, range_end_char) <= 0) -+# else -+ if (wcscoll (range_start_char, str_buf+2) <= 0 -+ && wcscoll (str_buf+2, range_end_char) <= 0) -+# endif -+ goto char_set_matched; -+ } -+ } -+ -+ /* match with char? */ -+ for (; workp < p ; workp++) -+ if (c == *workp) -+ goto char_set_matched; -+ -+ negate = !negate; -+ -+ char_set_matched: -+ if (negate) goto fail; -+#else -+ /* Cast to `unsigned' instead of `unsigned char' in case the -+ bit list is a full 32 bytes long. */ -+ if (c < (unsigned) (*p * BYTEWIDTH) -+ && p[1 + c / BYTEWIDTH] & (1 << (c % BYTEWIDTH))) -+ negate = !negate; -+ -+ p += 1 + *p; -+ -+ if (!negate) goto fail; -+#undef WORK_BUFFER_SIZE -+#endif /* WCHAR */ -+ SET_REGS_MATCHED (); -+ d++; -+ break; -+ } -+ -+ -+ /* The beginning of a group is represented by start_memory. -+ The arguments are the register number in the next byte, and the -+ number of groups inner to this one in the next. The text -+ matched within the group is recorded (in the internal -+ registers data structure) under the register number. */ -+ case start_memory: -+ DEBUG_PRINT3 ("EXECUTING start_memory %ld (%ld):\n", -+ (long int) *p, (long int) p[1]); -+ -+ /* Find out if this group can match the empty string. */ -+ p1 = p; /* To send to group_match_null_string_p. */ -+ -+ if (REG_MATCH_NULL_STRING_P (reg_info[*p]) == MATCH_NULL_UNSET_VALUE) -+ REG_MATCH_NULL_STRING_P (reg_info[*p]) -+ = PREFIX(group_match_null_string_p) (&p1, pend, reg_info); -+ -+ /* Save the position in the string where we were the last time -+ we were at this open-group operator in case the group is -+ operated upon by a repetition operator, e.g., with `(a*)*b' -+ against `ab'; then we want to ignore where we are now in -+ the string in case this attempt to match fails. */ -+ old_regstart[*p] = REG_MATCH_NULL_STRING_P (reg_info[*p]) -+ ? REG_UNSET (regstart[*p]) ? d : regstart[*p] -+ : regstart[*p]; -+ DEBUG_PRINT2 (" old_regstart: %d\n", -+ POINTER_TO_OFFSET (old_regstart[*p])); -+ -+ regstart[*p] = d; -+ DEBUG_PRINT2 (" regstart: %d\n", POINTER_TO_OFFSET (regstart[*p])); -+ -+ IS_ACTIVE (reg_info[*p]) = 1; -+ MATCHED_SOMETHING (reg_info[*p]) = 0; -+ -+ /* Clear this whenever we change the register activity status. */ -+ set_regs_matched_done = 0; -+ -+ /* This is the new highest active register. */ -+ highest_active_reg = *p; -+ -+ /* If nothing was active before, this is the new lowest active -+ register. */ -+ if (lowest_active_reg == NO_LOWEST_ACTIVE_REG) -+ lowest_active_reg = *p; -+ -+ /* Move past the register number and inner group count. */ -+ p += 2; -+ just_past_start_mem = p; -+ -+ break; -+ -+ -+ /* The stop_memory opcode represents the end of a group. Its -+ arguments are the same as start_memory's: the register -+ number, and the number of inner groups. */ -+ case stop_memory: -+ DEBUG_PRINT3 ("EXECUTING stop_memory %ld (%ld):\n", -+ (long int) *p, (long int) p[1]); -+ -+ /* We need to save the string position the last time we were at -+ this close-group operator in case the group is operated -+ upon by a repetition operator, e.g., with `((a*)*(b*)*)*' -+ against `aba'; then we want to ignore where we are now in -+ the string in case this attempt to match fails. */ -+ old_regend[*p] = REG_MATCH_NULL_STRING_P (reg_info[*p]) -+ ? REG_UNSET (regend[*p]) ? d : regend[*p] -+ : regend[*p]; -+ DEBUG_PRINT2 (" old_regend: %d\n", -+ POINTER_TO_OFFSET (old_regend[*p])); -+ -+ regend[*p] = d; -+ DEBUG_PRINT2 (" regend: %d\n", POINTER_TO_OFFSET (regend[*p])); -+ -+ /* This register isn't active anymore. */ -+ IS_ACTIVE (reg_info[*p]) = 0; -+ -+ /* Clear this whenever we change the register activity status. */ -+ set_regs_matched_done = 0; -+ -+ /* If this was the only register active, nothing is active -+ anymore. */ -+ if (lowest_active_reg == highest_active_reg) -+ { -+ lowest_active_reg = NO_LOWEST_ACTIVE_REG; -+ highest_active_reg = NO_HIGHEST_ACTIVE_REG; -+ } -+ else -+ { /* We must scan for the new highest active register, since -+ it isn't necessarily one less than now: consider -+ (a(b)c(d(e)f)g). When group 3 ends, after the f), the -+ new highest active register is 1. */ -+ UCHAR_T r = *p - 1; -+ while (r > 0 && !IS_ACTIVE (reg_info[r])) -+ r--; -+ -+ /* If we end up at register zero, that means that we saved -+ the registers as the result of an `on_failure_jump', not -+ a `start_memory', and we jumped to past the innermost -+ `stop_memory'. For example, in ((.)*) we save -+ registers 1 and 2 as a result of the *, but when we pop -+ back to the second ), we are at the stop_memory 1. -+ Thus, nothing is active. */ -+ if (r == 0) -+ { -+ lowest_active_reg = NO_LOWEST_ACTIVE_REG; -+ highest_active_reg = NO_HIGHEST_ACTIVE_REG; -+ } -+ else -+ highest_active_reg = r; -+ } -+ -+ /* If just failed to match something this time around with a -+ group that's operated on by a repetition operator, try to -+ force exit from the ``loop'', and restore the register -+ information for this group that we had before trying this -+ last match. */ -+ if ((!MATCHED_SOMETHING (reg_info[*p]) -+ || just_past_start_mem == p - 1) -+ && (p + 2) < pend) -+ { -+ boolean is_a_jump_n = false; -+ -+ p1 = p + 2; -+ mcnt = 0; -+ switch ((re_opcode_t) *p1++) -+ { -+ case jump_n: -+ is_a_jump_n = true; -+ case pop_failure_jump: -+ case maybe_pop_jump: -+ case jump: -+ case dummy_failure_jump: -+ EXTRACT_NUMBER_AND_INCR (mcnt, p1); -+ if (is_a_jump_n) -+ p1 += OFFSET_ADDRESS_SIZE; -+ break; -+ -+ default: -+ /* do nothing */ ; -+ } -+ p1 += mcnt; -+ -+ /* If the next operation is a jump backwards in the pattern -+ to an on_failure_jump right before the start_memory -+ corresponding to this stop_memory, exit from the loop -+ by forcing a failure after pushing on the stack the -+ on_failure_jump's jump in the pattern, and d. */ -+ if (mcnt < 0 && (re_opcode_t) *p1 == on_failure_jump -+ && (re_opcode_t) p1[1+OFFSET_ADDRESS_SIZE] == start_memory -+ && p1[2+OFFSET_ADDRESS_SIZE] == *p) -+ { -+ /* If this group ever matched anything, then restore -+ what its registers were before trying this last -+ failed match, e.g., with `(a*)*b' against `ab' for -+ regstart[1], and, e.g., with `((a*)*(b*)*)*' -+ against `aba' for regend[3]. -+ -+ Also restore the registers for inner groups for, -+ e.g., `((a*)(b*))*' against `aba' (register 3 would -+ otherwise get trashed). */ -+ -+ if (EVER_MATCHED_SOMETHING (reg_info[*p])) -+ { -+ unsigned r; -+ -+ EVER_MATCHED_SOMETHING (reg_info[*p]) = 0; -+ -+ /* Restore this and inner groups' (if any) registers. */ -+ for (r = *p; r < (unsigned) *p + (unsigned) *(p + 1); -+ r++) -+ { -+ regstart[r] = old_regstart[r]; -+ -+ /* xx why this test? */ -+ if (old_regend[r] >= regstart[r]) -+ regend[r] = old_regend[r]; -+ } -+ } -+ p1++; -+ EXTRACT_NUMBER_AND_INCR (mcnt, p1); -+ PUSH_FAILURE_POINT (p1 + mcnt, d, -2); -+ -+ goto fail; -+ } -+ } -+ -+ /* Move past the register number and the inner group count. */ -+ p += 2; -+ break; -+ -+ -+ /* \<digit> has been turned into a `duplicate' command which is -+ followed by the numeric value of <digit> as the register number. */ -+ case duplicate: -+ { -+ register const CHAR_T *d2, *dend2; -+ int regno = *p++; /* Get which register to match against. */ -+ DEBUG_PRINT2 ("EXECUTING duplicate %d.\n", regno); -+ -+ /* Can't back reference a group which we've never matched. */ -+ if (REG_UNSET (regstart[regno]) || REG_UNSET (regend[regno])) -+ goto fail; -+ -+ /* Where in input to try to start matching. */ -+ d2 = regstart[regno]; -+ -+ /* Where to stop matching; if both the place to start and -+ the place to stop matching are in the same string, then -+ set to the place to stop, otherwise, for now have to use -+ the end of the first string. */ -+ -+ dend2 = ((FIRST_STRING_P (regstart[regno]) -+ == FIRST_STRING_P (regend[regno])) -+ ? regend[regno] : end_match_1); -+ for (;;) -+ { -+ /* If necessary, advance to next segment in register -+ contents. */ -+ while (d2 == dend2) -+ { -+ if (dend2 == end_match_2) break; -+ if (dend2 == regend[regno]) break; -+ -+ /* End of string1 => advance to string2. */ -+ d2 = string2; -+ dend2 = regend[regno]; -+ } -+ /* At end of register contents => success */ -+ if (d2 == dend2) break; -+ -+ /* If necessary, advance to next segment in data. */ -+ PREFETCH (); -+ -+ /* How many characters left in this segment to match. */ -+ mcnt = dend - d; -+ -+ /* Want how many consecutive characters we can match in -+ one shot, so, if necessary, adjust the count. */ -+ if (mcnt > dend2 - d2) -+ mcnt = dend2 - d2; -+ -+ /* Compare that many; failure if mismatch, else move -+ past them. */ -+ if (translate -+ ? PREFIX(bcmp_translate) (d, d2, mcnt, translate) -+ : memcmp (d, d2, mcnt*sizeof(UCHAR_T))) -+ goto fail; -+ d += mcnt, d2 += mcnt; -+ -+ /* Do this because we've match some characters. */ -+ SET_REGS_MATCHED (); -+ } -+ } -+ break; -+ -+ -+ /* begline matches the empty string at the beginning of the string -+ (unless `not_bol' is set in `bufp'), and, if -+ `newline_anchor' is set, after newlines. */ -+ case begline: -+ DEBUG_PRINT1 ("EXECUTING begline.\n"); -+ -+ if (AT_STRINGS_BEG (d)) -+ { -+ if (!bufp->not_bol) break; -+ } -+ else if (d[-1] == '\n' && bufp->newline_anchor) -+ { -+ break; -+ } -+ /* In all other cases, we fail. */ -+ goto fail; -+ -+ -+ /* endline is the dual of begline. */ -+ case endline: -+ DEBUG_PRINT1 ("EXECUTING endline.\n"); -+ -+ if (AT_STRINGS_END (d)) -+ { -+ if (!bufp->not_eol) break; -+ } -+ -+ /* We have to ``prefetch'' the next character. */ -+ else if ((d == end1 ? *string2 : *d) == '\n' -+ && bufp->newline_anchor) -+ { -+ break; -+ } -+ goto fail; -+ -+ -+ /* Match at the very beginning of the data. */ -+ case begbuf: -+ DEBUG_PRINT1 ("EXECUTING begbuf.\n"); -+ if (AT_STRINGS_BEG (d)) -+ break; -+ goto fail; -+ -+ -+ /* Match at the very end of the data. */ -+ case endbuf: -+ DEBUG_PRINT1 ("EXECUTING endbuf.\n"); -+ if (AT_STRINGS_END (d)) -+ break; -+ goto fail; -+ -+ -+ /* on_failure_keep_string_jump is used to optimize `.*\n'. It -+ pushes NULL as the value for the string on the stack. Then -+ `pop_failure_point' will keep the current value for the -+ string, instead of restoring it. To see why, consider -+ matching `foo\nbar' against `.*\n'. The .* matches the foo; -+ then the . fails against the \n. But the next thing we want -+ to do is match the \n against the \n; if we restored the -+ string value, we would be back at the foo. -+ -+ Because this is used only in specific cases, we don't need to -+ check all the things that `on_failure_jump' does, to make -+ sure the right things get saved on the stack. Hence we don't -+ share its code. The only reason to push anything on the -+ stack at all is that otherwise we would have to change -+ `anychar's code to do something besides goto fail in this -+ case; that seems worse than this. */ -+ case on_failure_keep_string_jump: -+ DEBUG_PRINT1 ("EXECUTING on_failure_keep_string_jump"); -+ -+ EXTRACT_NUMBER_AND_INCR (mcnt, p); -+#ifdef _LIBC -+ DEBUG_PRINT3 (" %d (to %p):\n", mcnt, p + mcnt); -+#else -+ DEBUG_PRINT3 (" %d (to 0x%x):\n", mcnt, p + mcnt); -+#endif -+ -+ PUSH_FAILURE_POINT (p + mcnt, NULL, -2); -+ break; -+ -+ -+ /* Uses of on_failure_jump: -+ -+ Each alternative starts with an on_failure_jump that points -+ to the beginning of the next alternative. Each alternative -+ except the last ends with a jump that in effect jumps past -+ the rest of the alternatives. (They really jump to the -+ ending jump of the following alternative, because tensioning -+ these jumps is a hassle.) -+ -+ Repeats start with an on_failure_jump that points past both -+ the repetition text and either the following jump or -+ pop_failure_jump back to this on_failure_jump. */ -+ case on_failure_jump: -+ on_failure: -+ DEBUG_PRINT1 ("EXECUTING on_failure_jump"); -+ -+ EXTRACT_NUMBER_AND_INCR (mcnt, p); -+#ifdef _LIBC -+ DEBUG_PRINT3 (" %d (to %p)", mcnt, p + mcnt); -+#else -+ DEBUG_PRINT3 (" %d (to 0x%x)", mcnt, p + mcnt); -+#endif -+ -+ /* If this on_failure_jump comes right before a group (i.e., -+ the original * applied to a group), save the information -+ for that group and all inner ones, so that if we fail back -+ to this point, the group's information will be correct. -+ For example, in \(a*\)*\1, we need the preceding group, -+ and in \(zz\(a*\)b*\)\2, we need the inner group. */ -+ -+ /* We can't use `p' to check ahead because we push -+ a failure point to `p + mcnt' after we do this. */ -+ p1 = p; -+ -+ /* We need to skip no_op's before we look for the -+ start_memory in case this on_failure_jump is happening as -+ the result of a completed succeed_n, as in \(a\)\{1,3\}b\1 -+ against aba. */ -+ while (p1 < pend && (re_opcode_t) *p1 == no_op) -+ p1++; -+ -+ if (p1 < pend && (re_opcode_t) *p1 == start_memory) -+ { -+ /* We have a new highest active register now. This will -+ get reset at the start_memory we are about to get to, -+ but we will have saved all the registers relevant to -+ this repetition op, as described above. */ -+ highest_active_reg = *(p1 + 1) + *(p1 + 2); -+ if (lowest_active_reg == NO_LOWEST_ACTIVE_REG) -+ lowest_active_reg = *(p1 + 1); -+ } -+ -+ DEBUG_PRINT1 (":\n"); -+ PUSH_FAILURE_POINT (p + mcnt, d, -2); -+ break; -+ -+ -+ /* A smart repeat ends with `maybe_pop_jump'. -+ We change it to either `pop_failure_jump' or `jump'. */ -+ case maybe_pop_jump: -+ EXTRACT_NUMBER_AND_INCR (mcnt, p); -+ DEBUG_PRINT2 ("EXECUTING maybe_pop_jump %d.\n", mcnt); -+ { -+ register UCHAR_T *p2 = p; -+ -+ /* Compare the beginning of the repeat with what in the -+ pattern follows its end. If we can establish that there -+ is nothing that they would both match, i.e., that we -+ would have to backtrack because of (as in, e.g., `a*a') -+ then we can change to pop_failure_jump, because we'll -+ never have to backtrack. -+ -+ This is not true in the case of alternatives: in -+ `(a|ab)*' we do need to backtrack to the `ab' alternative -+ (e.g., if the string was `ab'). But instead of trying to -+ detect that here, the alternative has put on a dummy -+ failure point which is what we will end up popping. */ -+ -+ /* Skip over open/close-group commands. -+ If what follows this loop is a ...+ construct, -+ look at what begins its body, since we will have to -+ match at least one of that. */ -+ while (1) -+ { -+ if (p2 + 2 < pend -+ && ((re_opcode_t) *p2 == stop_memory -+ || (re_opcode_t) *p2 == start_memory)) -+ p2 += 3; -+ else if (p2 + 2 + 2 * OFFSET_ADDRESS_SIZE < pend -+ && (re_opcode_t) *p2 == dummy_failure_jump) -+ p2 += 2 + 2 * OFFSET_ADDRESS_SIZE; -+ else -+ break; -+ } -+ -+ p1 = p + mcnt; -+ /* p1[0] ... p1[2] are the `on_failure_jump' corresponding -+ to the `maybe_finalize_jump' of this case. Examine what -+ follows. */ -+ -+ /* If we're at the end of the pattern, we can change. */ -+ if (p2 == pend) -+ { -+ /* Consider what happens when matching ":\(.*\)" -+ against ":/". I don't really understand this code -+ yet. */ -+ p[-(1+OFFSET_ADDRESS_SIZE)] = (UCHAR_T) -+ pop_failure_jump; -+ DEBUG_PRINT1 -+ (" End of pattern: change to `pop_failure_jump'.\n"); -+ } -+ -+ else if ((re_opcode_t) *p2 == exactn -+#ifdef MBS_SUPPORT -+ || (re_opcode_t) *p2 == exactn_bin -+#endif -+ || (bufp->newline_anchor && (re_opcode_t) *p2 == endline)) -+ { -+ register UCHAR_T c -+ = *p2 == (UCHAR_T) endline ? '\n' : p2[2]; -+ -+ if (((re_opcode_t) p1[1+OFFSET_ADDRESS_SIZE] == exactn -+#ifdef MBS_SUPPORT -+ || (re_opcode_t) p1[1+OFFSET_ADDRESS_SIZE] == exactn_bin -+#endif -+ ) && p1[3+OFFSET_ADDRESS_SIZE] != c) -+ { -+ p[-(1+OFFSET_ADDRESS_SIZE)] = (UCHAR_T) -+ pop_failure_jump; -+#ifdef WCHAR -+ DEBUG_PRINT3 (" %C != %C => pop_failure_jump.\n", -+ (wint_t) c, -+ (wint_t) p1[3+OFFSET_ADDRESS_SIZE]); -+#else -+ DEBUG_PRINT3 (" %c != %c => pop_failure_jump.\n", -+ (char) c, -+ (char) p1[3+OFFSET_ADDRESS_SIZE]); -+#endif -+ } -+ -+#ifndef WCHAR -+ else if ((re_opcode_t) p1[3] == charset -+ || (re_opcode_t) p1[3] == charset_not) -+ { -+ int negate = (re_opcode_t) p1[3] == charset_not; -+ -+ if (c < (unsigned) (p1[4] * BYTEWIDTH) -+ && p1[5 + c / BYTEWIDTH] & (1 << (c % BYTEWIDTH))) -+ negate = !negate; -+ -+ /* `negate' is equal to 1 if c would match, which means -+ that we can't change to pop_failure_jump. */ -+ if (!negate) -+ { -+ p[-3] = (unsigned char) pop_failure_jump; -+ DEBUG_PRINT1 (" No match => pop_failure_jump.\n"); -+ } -+ } -+#endif /* not WCHAR */ -+ } -+#ifndef WCHAR -+ else if ((re_opcode_t) *p2 == charset) -+ { -+ /* We win if the first character of the loop is not part -+ of the charset. */ -+ if ((re_opcode_t) p1[3] == exactn -+ && ! ((int) p2[1] * BYTEWIDTH > (int) p1[5] -+ && (p2[2 + p1[5] / BYTEWIDTH] -+ & (1 << (p1[5] % BYTEWIDTH))))) -+ { -+ p[-3] = (unsigned char) pop_failure_jump; -+ DEBUG_PRINT1 (" No match => pop_failure_jump.\n"); -+ } -+ -+ else if ((re_opcode_t) p1[3] == charset_not) -+ { -+ int idx; -+ /* We win if the charset_not inside the loop -+ lists every character listed in the charset after. */ -+ for (idx = 0; idx < (int) p2[1]; idx++) -+ if (! (p2[2 + idx] == 0 -+ || (idx < (int) p1[4] -+ && ((p2[2 + idx] & ~ p1[5 + idx]) == 0)))) -+ break; -+ -+ if (idx == p2[1]) -+ { -+ p[-3] = (unsigned char) pop_failure_jump; -+ DEBUG_PRINT1 (" No match => pop_failure_jump.\n"); -+ } -+ } -+ else if ((re_opcode_t) p1[3] == charset) -+ { -+ int idx; -+ /* We win if the charset inside the loop -+ has no overlap with the one after the loop. */ -+ for (idx = 0; -+ idx < (int) p2[1] && idx < (int) p1[4]; -+ idx++) -+ if ((p2[2 + idx] & p1[5 + idx]) != 0) -+ break; -+ -+ if (idx == p2[1] || idx == p1[4]) -+ { -+ p[-3] = (unsigned char) pop_failure_jump; -+ DEBUG_PRINT1 (" No match => pop_failure_jump.\n"); -+ } -+ } -+ } -+#endif /* not WCHAR */ -+ } -+ p -= OFFSET_ADDRESS_SIZE; /* Point at relative address again. */ -+ if ((re_opcode_t) p[-1] != pop_failure_jump) -+ { -+ p[-1] = (UCHAR_T) jump; -+ DEBUG_PRINT1 (" Match => jump.\n"); -+ goto unconditional_jump; -+ } -+ /* Note fall through. */ -+ -+ -+ /* The end of a simple repeat has a pop_failure_jump back to -+ its matching on_failure_jump, where the latter will push a -+ failure point. The pop_failure_jump takes off failure -+ points put on by this pop_failure_jump's matching -+ on_failure_jump; we got through the pattern to here from the -+ matching on_failure_jump, so didn't fail. */ -+ case pop_failure_jump: -+ { -+ /* We need to pass separate storage for the lowest and -+ highest registers, even though we don't care about the -+ actual values. Otherwise, we will restore only one -+ register from the stack, since lowest will == highest in -+ `pop_failure_point'. */ -+ active_reg_t dummy_low_reg, dummy_high_reg; -+ UCHAR_T *pdummy = NULL; -+ const CHAR_T *sdummy = NULL; -+ -+ DEBUG_PRINT1 ("EXECUTING pop_failure_jump.\n"); -+ POP_FAILURE_POINT (sdummy, pdummy, -+ dummy_low_reg, dummy_high_reg, -+ reg_dummy, reg_dummy, reg_info_dummy); -+ } -+ /* Note fall through. */ -+ -+ unconditional_jump: -+#ifdef _LIBC -+ DEBUG_PRINT2 ("\n%p: ", p); -+#else -+ DEBUG_PRINT2 ("\n0x%x: ", p); -+#endif -+ /* Note fall through. */ -+ -+ /* Unconditionally jump (without popping any failure points). */ -+ case jump: -+ EXTRACT_NUMBER_AND_INCR (mcnt, p); /* Get the amount to jump. */ -+ DEBUG_PRINT2 ("EXECUTING jump %d ", mcnt); -+ p += mcnt; /* Do the jump. */ -+#ifdef _LIBC -+ DEBUG_PRINT2 ("(to %p).\n", p); -+#else -+ DEBUG_PRINT2 ("(to 0x%x).\n", p); -+#endif -+ break; -+ -+ -+ /* We need this opcode so we can detect where alternatives end -+ in `group_match_null_string_p' et al. */ -+ case jump_past_alt: -+ DEBUG_PRINT1 ("EXECUTING jump_past_alt.\n"); -+ goto unconditional_jump; -+ -+ -+ /* Normally, the on_failure_jump pushes a failure point, which -+ then gets popped at pop_failure_jump. We will end up at -+ pop_failure_jump, also, and with a pattern of, say, `a+', we -+ are skipping over the on_failure_jump, so we have to push -+ something meaningless for pop_failure_jump to pop. */ -+ case dummy_failure_jump: -+ DEBUG_PRINT1 ("EXECUTING dummy_failure_jump.\n"); -+ /* It doesn't matter what we push for the string here. What -+ the code at `fail' tests is the value for the pattern. */ -+ PUSH_FAILURE_POINT (NULL, NULL, -2); -+ goto unconditional_jump; -+ -+ -+ /* At the end of an alternative, we need to push a dummy failure -+ point in case we are followed by a `pop_failure_jump', because -+ we don't want the failure point for the alternative to be -+ popped. For example, matching `(a|ab)*' against `aab' -+ requires that we match the `ab' alternative. */ -+ case push_dummy_failure: -+ DEBUG_PRINT1 ("EXECUTING push_dummy_failure.\n"); -+ /* See comments just above at `dummy_failure_jump' about the -+ two zeroes. */ -+ PUSH_FAILURE_POINT (NULL, NULL, -2); -+ break; -+ -+ /* Have to succeed matching what follows at least n times. -+ After that, handle like `on_failure_jump'. */ -+ case succeed_n: -+ EXTRACT_NUMBER (mcnt, p + OFFSET_ADDRESS_SIZE); -+ DEBUG_PRINT2 ("EXECUTING succeed_n %d.\n", mcnt); -+ -+ assert (mcnt >= 0); -+ /* Originally, this is how many times we HAVE to succeed. */ -+ if (mcnt > 0) -+ { -+ mcnt--; -+ p += OFFSET_ADDRESS_SIZE; -+ STORE_NUMBER_AND_INCR (p, mcnt); -+#ifdef _LIBC -+ DEBUG_PRINT3 (" Setting %p to %d.\n", p - OFFSET_ADDRESS_SIZE -+ , mcnt); -+#else -+ DEBUG_PRINT3 (" Setting 0x%x to %d.\n", p - OFFSET_ADDRESS_SIZE -+ , mcnt); -+#endif -+ } -+ else if (mcnt == 0) -+ { -+#ifdef _LIBC -+ DEBUG_PRINT2 (" Setting two bytes from %p to no_op.\n", -+ p + OFFSET_ADDRESS_SIZE); -+#else -+ DEBUG_PRINT2 (" Setting two bytes from 0x%x to no_op.\n", -+ p + OFFSET_ADDRESS_SIZE); -+#endif /* _LIBC */ -+ -+#ifdef WCHAR -+ p[1] = (UCHAR_T) no_op; -+#else -+ p[2] = (UCHAR_T) no_op; -+ p[3] = (UCHAR_T) no_op; -+#endif /* WCHAR */ -+ goto on_failure; -+ } -+ break; -+ -+ case jump_n: -+ EXTRACT_NUMBER (mcnt, p + OFFSET_ADDRESS_SIZE); -+ DEBUG_PRINT2 ("EXECUTING jump_n %d.\n", mcnt); -+ -+ /* Originally, this is how many times we CAN jump. */ -+ if (mcnt) -+ { -+ mcnt--; -+ STORE_NUMBER (p + OFFSET_ADDRESS_SIZE, mcnt); -+ -+#ifdef _LIBC -+ DEBUG_PRINT3 (" Setting %p to %d.\n", p + OFFSET_ADDRESS_SIZE, -+ mcnt); -+#else -+ DEBUG_PRINT3 (" Setting 0x%x to %d.\n", p + OFFSET_ADDRESS_SIZE, -+ mcnt); -+#endif /* _LIBC */ -+ goto unconditional_jump; -+ } -+ /* If don't have to jump any more, skip over the rest of command. */ -+ else -+ p += 2 * OFFSET_ADDRESS_SIZE; -+ break; -+ -+ case set_number_at: -+ { -+ DEBUG_PRINT1 ("EXECUTING set_number_at.\n"); -+ -+ EXTRACT_NUMBER_AND_INCR (mcnt, p); -+ p1 = p + mcnt; -+ EXTRACT_NUMBER_AND_INCR (mcnt, p); -+#ifdef _LIBC -+ DEBUG_PRINT3 (" Setting %p to %d.\n", p1, mcnt); -+#else -+ DEBUG_PRINT3 (" Setting 0x%x to %d.\n", p1, mcnt); -+#endif -+ STORE_NUMBER (p1, mcnt); -+ break; -+ } -+ -+#if 0 -+ /* The DEC Alpha C compiler 3.x generates incorrect code for the -+ test WORDCHAR_P (d - 1) != WORDCHAR_P (d) in the expansion of -+ AT_WORD_BOUNDARY, so this code is disabled. Expanding the -+ macro and introducing temporary variables works around the bug. */ -+ -+ case wordbound: -+ DEBUG_PRINT1 ("EXECUTING wordbound.\n"); -+ if (AT_WORD_BOUNDARY (d)) -+ break; -+ goto fail; -+ -+ case notwordbound: -+ DEBUG_PRINT1 ("EXECUTING notwordbound.\n"); -+ if (AT_WORD_BOUNDARY (d)) -+ goto fail; -+ break; -+#else -+ case wordbound: -+ { -+ boolean prevchar, thischar; -+ -+ DEBUG_PRINT1 ("EXECUTING wordbound.\n"); -+ if (AT_STRINGS_BEG (d) || AT_STRINGS_END (d)) -+ break; -+ -+ prevchar = WORDCHAR_P (d - 1); -+ thischar = WORDCHAR_P (d); -+ if (prevchar != thischar) -+ break; -+ goto fail; -+ } -+ -+ case notwordbound: -+ { -+ boolean prevchar, thischar; -+ -+ DEBUG_PRINT1 ("EXECUTING notwordbound.\n"); -+ if (AT_STRINGS_BEG (d) || AT_STRINGS_END (d)) -+ goto fail; -+ -+ prevchar = WORDCHAR_P (d - 1); -+ thischar = WORDCHAR_P (d); -+ if (prevchar != thischar) -+ goto fail; -+ break; -+ } -+#endif -+ -+ case wordbeg: -+ DEBUG_PRINT1 ("EXECUTING wordbeg.\n"); -+ if (!AT_STRINGS_END (d) && WORDCHAR_P (d) -+ && (AT_STRINGS_BEG (d) || !WORDCHAR_P (d - 1))) -+ break; -+ goto fail; -+ -+ case wordend: -+ DEBUG_PRINT1 ("EXECUTING wordend.\n"); -+ if (!AT_STRINGS_BEG (d) && WORDCHAR_P (d - 1) -+ && (AT_STRINGS_END (d) || !WORDCHAR_P (d))) -+ break; -+ goto fail; -+ -+#ifdef emacs -+ case before_dot: -+ DEBUG_PRINT1 ("EXECUTING before_dot.\n"); -+ if (PTR_CHAR_POS ((unsigned char *) d) >= point) -+ goto fail; -+ break; -+ -+ case at_dot: -+ DEBUG_PRINT1 ("EXECUTING at_dot.\n"); -+ if (PTR_CHAR_POS ((unsigned char *) d) != point) -+ goto fail; -+ break; -+ -+ case after_dot: -+ DEBUG_PRINT1 ("EXECUTING after_dot.\n"); -+ if (PTR_CHAR_POS ((unsigned char *) d) <= point) -+ goto fail; -+ break; -+ -+ case syntaxspec: -+ DEBUG_PRINT2 ("EXECUTING syntaxspec %d.\n", mcnt); -+ mcnt = *p++; -+ goto matchsyntax; -+ -+ case wordchar: -+ DEBUG_PRINT1 ("EXECUTING Emacs wordchar.\n"); -+ mcnt = (int) Sword; -+ matchsyntax: -+ PREFETCH (); -+ /* Can't use *d++ here; SYNTAX may be an unsafe macro. */ -+ d++; -+ if (SYNTAX (d[-1]) != (enum syntaxcode) mcnt) -+ goto fail; -+ SET_REGS_MATCHED (); -+ break; -+ -+ case notsyntaxspec: -+ DEBUG_PRINT2 ("EXECUTING notsyntaxspec %d.\n", mcnt); -+ mcnt = *p++; -+ goto matchnotsyntax; -+ -+ case notwordchar: -+ DEBUG_PRINT1 ("EXECUTING Emacs notwordchar.\n"); -+ mcnt = (int) Sword; -+ matchnotsyntax: -+ PREFETCH (); -+ /* Can't use *d++ here; SYNTAX may be an unsafe macro. */ -+ d++; -+ if (SYNTAX (d[-1]) == (enum syntaxcode) mcnt) -+ goto fail; -+ SET_REGS_MATCHED (); -+ break; -+ -+#else /* not emacs */ -+ case wordchar: -+ DEBUG_PRINT1 ("EXECUTING non-Emacs wordchar.\n"); -+ PREFETCH (); -+ if (!WORDCHAR_P (d)) -+ goto fail; -+ SET_REGS_MATCHED (); -+ d++; -+ break; -+ -+ case notwordchar: -+ DEBUG_PRINT1 ("EXECUTING non-Emacs notwordchar.\n"); -+ PREFETCH (); -+ if (WORDCHAR_P (d)) -+ goto fail; -+ SET_REGS_MATCHED (); -+ d++; -+ break; -+#endif /* not emacs */ -+ -+ default: -+ abort (); -+ } -+ continue; /* Successfully executed one pattern command; keep going. */ -+ -+ -+ /* We goto here if a matching operation fails. */ -+ fail: -+ if (!FAIL_STACK_EMPTY ()) -+ { /* A restart point is known. Restore to that state. */ -+ DEBUG_PRINT1 ("\nFAIL:\n"); -+ POP_FAILURE_POINT (d, p, -+ lowest_active_reg, highest_active_reg, -+ regstart, regend, reg_info); -+ -+ /* If this failure point is a dummy, try the next one. */ -+ if (!p) -+ goto fail; -+ -+ /* If we failed to the end of the pattern, don't examine *p. */ -+ assert (p <= pend); -+ if (p < pend) -+ { -+ boolean is_a_jump_n = false; -+ -+ /* If failed to a backwards jump that's part of a repetition -+ loop, need to pop this failure point and use the next one. */ -+ switch ((re_opcode_t) *p) -+ { -+ case jump_n: -+ is_a_jump_n = true; -+ case maybe_pop_jump: -+ case pop_failure_jump: -+ case jump: -+ p1 = p + 1; -+ EXTRACT_NUMBER_AND_INCR (mcnt, p1); -+ p1 += mcnt; -+ -+ if ((is_a_jump_n && (re_opcode_t) *p1 == succeed_n) -+ || (!is_a_jump_n -+ && (re_opcode_t) *p1 == on_failure_jump)) -+ goto fail; -+ break; -+ default: -+ /* do nothing */ ; -+ } -+ } -+ -+ if (d >= string1 && d <= end1) -+ dend = end_match_1; -+ } -+ else -+ break; /* Matching at this starting point really fails. */ -+ } /* for (;;) */ -+ -+ if (best_regs_set) -+ goto restore_best_regs; -+ -+ FREE_VARIABLES (); -+ -+ return -1; /* Failure to match. */ -+} /* re_match_2 */ -+ -+/* Subroutine definitions for re_match_2. */ -+ -+ -+/* We are passed P pointing to a register number after a start_memory. -+ -+ Return true if the pattern up to the corresponding stop_memory can -+ match the empty string, and false otherwise. -+ -+ If we find the matching stop_memory, sets P to point to one past its number. -+ Otherwise, sets P to an undefined byte less than or equal to END. -+ -+ We don't handle duplicates properly (yet). */ -+ -+static boolean -+PREFIX(group_match_null_string_p) (UCHAR_T **p, UCHAR_T *end, -+ PREFIX(register_info_type) *reg_info) -+{ -+ int mcnt; -+ /* Point to after the args to the start_memory. */ -+ UCHAR_T *p1 = *p + 2; -+ -+ while (p1 < end) -+ { -+ /* Skip over opcodes that can match nothing, and return true or -+ false, as appropriate, when we get to one that can't, or to the -+ matching stop_memory. */ -+ -+ switch ((re_opcode_t) *p1) -+ { -+ /* Could be either a loop or a series of alternatives. */ -+ case on_failure_jump: -+ p1++; -+ EXTRACT_NUMBER_AND_INCR (mcnt, p1); -+ -+ /* If the next operation is not a jump backwards in the -+ pattern. */ -+ -+ if (mcnt >= 0) -+ { -+ /* Go through the on_failure_jumps of the alternatives, -+ seeing if any of the alternatives cannot match nothing. -+ The last alternative starts with only a jump, -+ whereas the rest start with on_failure_jump and end -+ with a jump, e.g., here is the pattern for `a|b|c': -+ -+ /on_failure_jump/0/6/exactn/1/a/jump_past_alt/0/6 -+ /on_failure_jump/0/6/exactn/1/b/jump_past_alt/0/3 -+ /exactn/1/c -+ -+ So, we have to first go through the first (n-1) -+ alternatives and then deal with the last one separately. */ -+ -+ -+ /* Deal with the first (n-1) alternatives, which start -+ with an on_failure_jump (see above) that jumps to right -+ past a jump_past_alt. */ -+ -+ while ((re_opcode_t) p1[mcnt-(1+OFFSET_ADDRESS_SIZE)] == -+ jump_past_alt) -+ { -+ /* `mcnt' holds how many bytes long the alternative -+ is, including the ending `jump_past_alt' and -+ its number. */ -+ -+ if (!PREFIX(alt_match_null_string_p) (p1, p1 + mcnt - -+ (1 + OFFSET_ADDRESS_SIZE), -+ reg_info)) -+ return false; -+ -+ /* Move to right after this alternative, including the -+ jump_past_alt. */ -+ p1 += mcnt; -+ -+ /* Break if it's the beginning of an n-th alternative -+ that doesn't begin with an on_failure_jump. */ -+ if ((re_opcode_t) *p1 != on_failure_jump) -+ break; -+ -+ /* Still have to check that it's not an n-th -+ alternative that starts with an on_failure_jump. */ -+ p1++; -+ EXTRACT_NUMBER_AND_INCR (mcnt, p1); -+ if ((re_opcode_t) p1[mcnt-(1+OFFSET_ADDRESS_SIZE)] != -+ jump_past_alt) -+ { -+ /* Get to the beginning of the n-th alternative. */ -+ p1 -= 1 + OFFSET_ADDRESS_SIZE; -+ break; -+ } -+ } -+ -+ /* Deal with the last alternative: go back and get number -+ of the `jump_past_alt' just before it. `mcnt' contains -+ the length of the alternative. */ -+ EXTRACT_NUMBER (mcnt, p1 - OFFSET_ADDRESS_SIZE); -+ -+ if (!PREFIX(alt_match_null_string_p) (p1, p1 + mcnt, reg_info)) -+ return false; -+ -+ p1 += mcnt; /* Get past the n-th alternative. */ -+ } /* if mcnt > 0 */ -+ break; -+ -+ -+ case stop_memory: -+ assert (p1[1] == **p); -+ *p = p1 + 2; -+ return true; -+ -+ -+ default: -+ if (!PREFIX(common_op_match_null_string_p) (&p1, end, reg_info)) -+ return false; -+ } -+ } /* while p1 < end */ -+ -+ return false; -+} /* group_match_null_string_p */ -+ -+ -+/* Similar to group_match_null_string_p, but doesn't deal with alternatives: -+ It expects P to be the first byte of a single alternative and END one -+ byte past the last. The alternative can contain groups. */ -+ -+static boolean -+PREFIX(alt_match_null_string_p) (UCHAR_T *p, UCHAR_T *end, -+ PREFIX(register_info_type) *reg_info) -+{ -+ int mcnt; -+ UCHAR_T *p1 = p; -+ -+ while (p1 < end) -+ { -+ /* Skip over opcodes that can match nothing, and break when we get -+ to one that can't. */ -+ -+ switch ((re_opcode_t) *p1) -+ { -+ /* It's a loop. */ -+ case on_failure_jump: -+ p1++; -+ EXTRACT_NUMBER_AND_INCR (mcnt, p1); -+ p1 += mcnt; -+ break; -+ -+ default: -+ if (!PREFIX(common_op_match_null_string_p) (&p1, end, reg_info)) -+ return false; -+ } -+ } /* while p1 < end */ -+ -+ return true; -+} /* alt_match_null_string_p */ -+ -+ -+/* Deals with the ops common to group_match_null_string_p and -+ alt_match_null_string_p. -+ -+ Sets P to one after the op and its arguments, if any. */ -+ -+static boolean -+PREFIX(common_op_match_null_string_p) (UCHAR_T **p, UCHAR_T *end, -+ PREFIX(register_info_type) *reg_info) -+{ -+ int mcnt; -+ boolean ret; -+ int reg_no; -+ UCHAR_T *p1 = *p; -+ -+ switch ((re_opcode_t) *p1++) -+ { -+ case no_op: -+ case begline: -+ case endline: -+ case begbuf: -+ case endbuf: -+ case wordbeg: -+ case wordend: -+ case wordbound: -+ case notwordbound: -+#ifdef emacs -+ case before_dot: -+ case at_dot: -+ case after_dot: -+#endif -+ break; -+ -+ case start_memory: -+ reg_no = *p1; -+ assert (reg_no > 0 && reg_no <= MAX_REGNUM); -+ ret = PREFIX(group_match_null_string_p) (&p1, end, reg_info); -+ -+ /* Have to set this here in case we're checking a group which -+ contains a group and a back reference to it. */ -+ -+ if (REG_MATCH_NULL_STRING_P (reg_info[reg_no]) == MATCH_NULL_UNSET_VALUE) -+ REG_MATCH_NULL_STRING_P (reg_info[reg_no]) = ret; -+ -+ if (!ret) -+ return false; -+ break; -+ -+ /* If this is an optimized succeed_n for zero times, make the jump. */ -+ case jump: -+ EXTRACT_NUMBER_AND_INCR (mcnt, p1); -+ if (mcnt >= 0) -+ p1 += mcnt; -+ else -+ return false; -+ break; -+ -+ case succeed_n: -+ /* Get to the number of times to succeed. */ -+ p1 += OFFSET_ADDRESS_SIZE; -+ EXTRACT_NUMBER_AND_INCR (mcnt, p1); -+ -+ if (mcnt == 0) -+ { -+ p1 -= 2 * OFFSET_ADDRESS_SIZE; -+ EXTRACT_NUMBER_AND_INCR (mcnt, p1); -+ p1 += mcnt; -+ } -+ else -+ return false; -+ break; -+ -+ case duplicate: -+ if (!REG_MATCH_NULL_STRING_P (reg_info[*p1])) -+ return false; -+ break; -+ -+ case set_number_at: -+ p1 += 2 * OFFSET_ADDRESS_SIZE; -+ -+ default: -+ /* All other opcodes mean we cannot match the empty string. */ -+ return false; -+ } -+ -+ *p = p1; -+ return true; -+} /* common_op_match_null_string_p */ -+ -+ -+/* Return zero if TRANSLATE[S1] and TRANSLATE[S2] are identical for LEN -+ bytes; nonzero otherwise. */ -+ -+static int -+PREFIX(bcmp_translate) (const CHAR_T *s1, const CHAR_T *s2, register int len, -+ RE_TRANSLATE_TYPE translate) -+{ -+ register const UCHAR_T *p1 = (const UCHAR_T *) s1; -+ register const UCHAR_T *p2 = (const UCHAR_T *) s2; -+ while (len) -+ { -+#ifdef WCHAR -+ if (((*p1<=0xff)?translate[*p1++]:*p1++) -+ != ((*p2<=0xff)?translate[*p2++]:*p2++)) -+ return 1; -+#else /* BYTE */ -+ if (translate[*p1++] != translate[*p2++]) return 1; -+#endif /* WCHAR */ -+ len--; -+ } -+ return 0; -+} -+ -+ -+#else /* not INSIDE_RECURSION */ -+ -+/* Entry points for GNU code. */ -+ -+/* re_compile_pattern is the GNU regular expression compiler: it -+ compiles PATTERN (of length SIZE) and puts the result in BUFP. -+ Returns 0 if the pattern was valid, otherwise an error string. -+ -+ Assumes the `allocated' (and perhaps `buffer') and `translate' fields -+ are set in BUFP on entry. -+ -+ We call regex_compile to do the actual compilation. */ -+ -+const char * -+re_compile_pattern (const char *pattern, size_t length, -+ struct re_pattern_buffer *bufp) -+{ -+ reg_errcode_t ret; -+ -+ /* GNU code is written to assume at least RE_NREGS registers will be set -+ (and at least one extra will be -1). */ -+ bufp->regs_allocated = REGS_UNALLOCATED; -+ -+ /* And GNU code determines whether or not to get register information -+ by passing null for the REGS argument to re_match, etc., not by -+ setting no_sub. */ -+ bufp->no_sub = 0; -+ -+ /* Match anchors at newline. */ -+ bufp->newline_anchor = 1; -+ -+# ifdef MBS_SUPPORT -+ if (MB_CUR_MAX != 1) -+ ret = wcs_regex_compile (pattern, length, re_syntax_options, bufp); -+ else -+# endif -+ ret = byte_regex_compile (pattern, length, re_syntax_options, bufp); -+ -+ if (!ret) -+ return NULL; -+ return gettext (re_error_msgid[(int) ret]); -+} -+#ifdef _LIBC -+weak_alias (__re_compile_pattern, re_compile_pattern) -+#endif -+ -+/* Entry points compatible with 4.2 BSD regex library. We don't define -+ them unless specifically requested. */ -+ -+#if defined _REGEX_RE_COMP || defined _LIBC -+ -+/* BSD has one and only one pattern buffer. */ -+static struct re_pattern_buffer re_comp_buf; -+ -+char * -+#ifdef _LIBC -+/* Make these definitions weak in libc, so POSIX programs can redefine -+ these names if they don't use our functions, and still use -+ regcomp/regexec below without link errors. */ -+weak_function -+#endif -+re_comp (const char *s) -+{ -+ reg_errcode_t ret; -+ -+ if (!s) -+ { -+ if (!re_comp_buf.buffer) -+ return (char *) gettext ("No previous regular expression"); -+ return 0; -+ } -+ -+ if (!re_comp_buf.buffer) -+ { -+ re_comp_buf.buffer = (unsigned char *) malloc (200); -+ if (re_comp_buf.buffer == NULL) -+ return (char *) gettext (re_error_msgid[(int) REG_ESPACE]); -+ re_comp_buf.allocated = 200; -+ -+ re_comp_buf.fastmap = (char *) malloc (1 << BYTEWIDTH); -+ if (re_comp_buf.fastmap == NULL) -+ return (char *) gettext (re_error_msgid[(int) REG_ESPACE]); -+ } -+ -+ /* Since `re_exec' always passes NULL for the `regs' argument, we -+ don't need to initialize the pattern buffer fields which affect it. */ -+ -+ /* Match anchors at newlines. */ -+ re_comp_buf.newline_anchor = 1; -+ -+# ifdef MBS_SUPPORT -+ if (MB_CUR_MAX != 1) -+ ret = wcs_regex_compile (s, strlen (s), re_syntax_options, &re_comp_buf); -+ else -+# endif -+ ret = byte_regex_compile (s, strlen (s), re_syntax_options, &re_comp_buf); -+ -+ if (!ret) -+ return NULL; -+ -+ /* Yes, we're discarding `const' here if !HAVE_LIBINTL. */ -+ return (char *) gettext (re_error_msgid[(int) ret]); -+} -+ -+ -+int -+#ifdef _LIBC -+weak_function -+#endif -+re_exec (const char *s) -+{ -+ const int len = strlen (s); -+ return -+ 0 <= re_search (&re_comp_buf, s, len, 0, len, (struct re_registers *) 0); -+} -+ -+#endif /* _REGEX_RE_COMP */ -+ -+/* POSIX.2 functions. Don't define these for Emacs. */ -+ -+#ifndef emacs -+ -+/* regcomp takes a regular expression as a string and compiles it. -+ -+ PREG is a regex_t *. We do not expect any fields to be initialized, -+ since POSIX says we shouldn't. Thus, we set -+ -+ `buffer' to the compiled pattern; -+ `used' to the length of the compiled pattern; -+ `syntax' to RE_SYNTAX_POSIX_EXTENDED if the -+ REG_EXTENDED bit in CFLAGS is set; otherwise, to -+ RE_SYNTAX_POSIX_BASIC; -+ `newline_anchor' to REG_NEWLINE being set in CFLAGS; -+ `fastmap' to an allocated space for the fastmap; -+ `fastmap_accurate' to zero; -+ `re_nsub' to the number of subexpressions in PATTERN. -+ -+ PATTERN is the address of the pattern string. -+ -+ CFLAGS is a series of bits which affect compilation. -+ -+ If REG_EXTENDED is set, we use POSIX extended syntax; otherwise, we -+ use POSIX basic syntax. -+ -+ If REG_NEWLINE is set, then . and [^...] don't match newline. -+ Also, regexec will try a match beginning after every newline. -+ -+ If REG_ICASE is set, then we considers upper- and lowercase -+ versions of letters to be equivalent when matching. -+ -+ If REG_NOSUB is set, then when PREG is passed to regexec, that -+ routine will report only success or failure, and nothing about the -+ registers. -+ -+ It returns 0 if it succeeds, nonzero if it doesn't. (See regex.h for -+ the return codes and their meanings.) */ -+ -+int -+regcomp (regex_t *preg, const char *pattern, int cflags) -+{ -+ reg_errcode_t ret; -+ reg_syntax_t syntax -+ = (cflags & REG_EXTENDED) ? -+ RE_SYNTAX_POSIX_EXTENDED : RE_SYNTAX_POSIX_BASIC; -+ -+ /* regex_compile will allocate the space for the compiled pattern. */ -+ preg->buffer = 0; -+ preg->allocated = 0; -+ preg->used = 0; -+ -+ /* Try to allocate space for the fastmap. */ -+ preg->fastmap = (char *) malloc (1 << BYTEWIDTH); -+ -+ if (cflags & REG_ICASE) -+ { -+ int i; -+ -+ preg->translate -+ = (RE_TRANSLATE_TYPE) malloc (CHAR_SET_SIZE -+ * sizeof (*(RE_TRANSLATE_TYPE)0)); -+ if (preg->translate == NULL) -+ return (int) REG_ESPACE; -+ -+ /* Map uppercase characters to corresponding lowercase ones. */ -+ for (i = 0; i < CHAR_SET_SIZE; i++) -+ preg->translate[i] = ISUPPER (i) ? TOLOWER (i) : i; -+ } -+ else -+ preg->translate = NULL; -+ -+ /* If REG_NEWLINE is set, newlines are treated differently. */ -+ if (cflags & REG_NEWLINE) -+ { /* REG_NEWLINE implies neither . nor [^...] match newline. */ -+ syntax &= ~RE_DOT_NEWLINE; -+ syntax |= RE_HAT_LISTS_NOT_NEWLINE; -+ /* It also changes the matching behavior. */ -+ preg->newline_anchor = 1; -+ } -+ else -+ preg->newline_anchor = 0; -+ -+ preg->no_sub = !!(cflags & REG_NOSUB); -+ -+ /* POSIX says a null character in the pattern terminates it, so we -+ can use strlen here in compiling the pattern. */ -+# ifdef MBS_SUPPORT -+ if (MB_CUR_MAX != 1) -+ ret = wcs_regex_compile (pattern, strlen (pattern), syntax, preg); -+ else -+# endif -+ ret = byte_regex_compile (pattern, strlen (pattern), syntax, preg); -+ -+ /* POSIX doesn't distinguish between an unmatched open-group and an -+ unmatched close-group: both are REG_EPAREN. */ -+ if (ret == REG_ERPAREN) ret = REG_EPAREN; -+ -+ if (ret == REG_NOERROR && preg->fastmap) -+ { -+ /* Compute the fastmap now, since regexec cannot modify the pattern -+ buffer. */ -+ if (re_compile_fastmap (preg) == -2) -+ { -+ /* Some error occurred while computing the fastmap, just forget -+ about it. */ -+ free (preg->fastmap); -+ preg->fastmap = NULL; -+ } -+ } -+ -+ return (int) ret; -+} -+#ifdef _LIBC -+weak_alias (__regcomp, regcomp) -+#endif -+ -+ -+/* regexec searches for a given pattern, specified by PREG, in the -+ string STRING. -+ -+ If NMATCH is zero or REG_NOSUB was set in the cflags argument to -+ `regcomp', we ignore PMATCH. Otherwise, we assume PMATCH has at -+ least NMATCH elements, and we set them to the offsets of the -+ corresponding matched substrings. -+ -+ EFLAGS specifies `execution flags' which affect matching: if -+ REG_NOTBOL is set, then ^ does not match at the beginning of the -+ string; if REG_NOTEOL is set, then $ does not match at the end. -+ -+ We return 0 if we find a match and REG_NOMATCH if not. */ -+ -+int -+regexec (const regex_t *preg, const char *string, size_t nmatch, -+ regmatch_t pmatch[], int eflags) -+{ -+ int ret; -+ struct re_registers regs; -+ regex_t private_preg; -+ int len = strlen (string); -+ boolean want_reg_info = !preg->no_sub && nmatch > 0; -+ -+ private_preg = *preg; -+ -+ private_preg.not_bol = !!(eflags & REG_NOTBOL); -+ private_preg.not_eol = !!(eflags & REG_NOTEOL); -+ -+ /* The user has told us exactly how many registers to return -+ information about, via `nmatch'. We have to pass that on to the -+ matching routines. */ -+ private_preg.regs_allocated = REGS_FIXED; -+ -+ if (want_reg_info) -+ { -+ regs.num_regs = nmatch; -+ regs.start = TALLOC (nmatch * 2, regoff_t); -+ if (regs.start == NULL) -+ return (int) REG_NOMATCH; -+ regs.end = regs.start + nmatch; -+ } -+ -+ /* Perform the searching operation. */ -+ ret = re_search (&private_preg, string, len, -+ /* start: */ 0, /* range: */ len, -+ want_reg_info ? ®s : (struct re_registers *) 0); -+ -+ /* Copy the register information to the POSIX structure. */ -+ if (want_reg_info) -+ { -+ if (ret >= 0) -+ { -+ unsigned r; -+ -+ for (r = 0; r < nmatch; r++) -+ { -+ pmatch[r].rm_so = regs.start[r]; -+ pmatch[r].rm_eo = regs.end[r]; -+ } -+ } -+ -+ /* If we needed the temporary register info, free the space now. */ -+ free (regs.start); -+ } -+ -+ /* We want zero return to mean success, unlike `re_search'. */ -+ return ret >= 0 ? (int) REG_NOERROR : (int) REG_NOMATCH; -+} -+#ifdef _LIBC -+/* EGLIBC: This is handled in regexec-compat.c. */ -+/*weak_alias (__regexec, regexec)*/ -+#include "regexec-compat.c" -+#endif -+ -+ -+/* Returns a message corresponding to an error code, ERRCODE, returned -+ from either regcomp or regexec. We don't use PREG here. */ -+ -+size_t -+regerror (int errcode, const regex_t *preg __attribute__ ((unused)), -+ char *errbuf, size_t errbuf_size) -+{ -+ const char *msg; -+ size_t msg_size; -+ -+ if (errcode < 0 -+ || errcode >= (int) (sizeof (re_error_msgid) -+ / sizeof (re_error_msgid[0]))) -+ /* Only error codes returned by the rest of the code should be passed -+ to this routine. If we are given anything else, or if other regex -+ code generates an invalid error code, then the program has a bug. -+ Dump core so we can fix it. */ -+ abort (); -+ -+ msg = gettext (re_error_msgid[errcode]); -+ -+ msg_size = strlen (msg) + 1; /* Includes the null. */ -+ -+ if (errbuf_size != 0) -+ { -+ if (msg_size > errbuf_size) -+ { -+#if defined HAVE_MEMPCPY || defined _LIBC -+ *((char *) mempcpy (errbuf, msg, errbuf_size - 1)) = '\0'; -+#else -+ memcpy (errbuf, msg, errbuf_size - 1); -+ errbuf[errbuf_size - 1] = 0; -+#endif -+ } -+ else -+ memcpy (errbuf, msg, msg_size); -+ } -+ -+ return msg_size; -+} -+#ifdef _LIBC -+weak_alias (__regerror, regerror) -+#endif -+ -+ -+/* Free dynamically allocated space used by PREG. */ -+ -+void -+regfree (regex_t *preg) -+{ -+ if (preg->buffer != NULL) -+ free (preg->buffer); -+ preg->buffer = NULL; -+ -+ preg->allocated = 0; -+ preg->used = 0; -+ -+ if (preg->fastmap != NULL) -+ free (preg->fastmap); -+ preg->fastmap = NULL; -+ preg->fastmap_accurate = 0; -+ -+ if (preg->translate != NULL) -+ free (preg->translate); -+ preg->translate = NULL; -+} -+#ifdef _LIBC -+weak_alias (__regfree, regfree) -+#endif -+ -+#endif /* not emacs */ -+ -+#endif /* not INSIDE_RECURSION */ -+ -+ -+#undef STORE_NUMBER -+#undef STORE_NUMBER_AND_INCR -+#undef EXTRACT_NUMBER -+#undef EXTRACT_NUMBER_AND_INCR -+ -+#undef DEBUG_PRINT_COMPILED_PATTERN -+#undef DEBUG_PRINT_DOUBLE_STRING -+ -+#undef INIT_FAIL_STACK -+#undef RESET_FAIL_STACK -+#undef DOUBLE_FAIL_STACK -+#undef PUSH_PATTERN_OP -+#undef PUSH_FAILURE_POINTER -+#undef PUSH_FAILURE_INT -+#undef PUSH_FAILURE_ELT -+#undef POP_FAILURE_POINTER -+#undef POP_FAILURE_INT -+#undef POP_FAILURE_ELT -+#undef DEBUG_PUSH -+#undef DEBUG_POP -+#undef PUSH_FAILURE_POINT -+#undef POP_FAILURE_POINT -+ -+#undef REG_UNSET_VALUE -+#undef REG_UNSET -+ -+#undef PATFETCH -+#undef PATFETCH_RAW -+#undef PATUNFETCH -+#undef TRANSLATE -+ -+#undef INIT_BUF_SIZE -+#undef GET_BUFFER_SPACE -+#undef BUF_PUSH -+#undef BUF_PUSH_2 -+#undef BUF_PUSH_3 -+#undef STORE_JUMP -+#undef STORE_JUMP2 -+#undef INSERT_JUMP -+#undef INSERT_JUMP2 -+#undef EXTEND_BUFFER -+#undef GET_UNSIGNED_NUMBER -+#undef FREE_STACK_RETURN -+ -+# undef POINTER_TO_OFFSET -+# undef MATCHING_IN_FRST_STRING -+# undef PREFETCH -+# undef AT_STRINGS_BEG -+# undef AT_STRINGS_END -+# undef WORDCHAR_P -+# undef FREE_VAR -+# undef FREE_VARIABLES -+# undef NO_HIGHEST_ACTIVE_REG -+# undef NO_LOWEST_ACTIVE_REG -+ -+# undef CHAR_T -+# undef UCHAR_T -+# undef COMPILED_BUFFER_VAR -+# undef OFFSET_ADDRESS_SIZE -+# undef CHAR_CLASS_SIZE -+# undef PREFIX -+# undef ARG_PREFIX -+# undef PUT_CHAR -+# undef BYTE -+# undef WCHAR -+ -+# define DEFINED_ONCE -Index: git/pwd/Makefile -=================================================================== ---- git.orig/pwd/Makefile 2014-08-29 20:00:53.316070587 -0700 -+++ git/pwd/Makefile 2014-08-29 20:01:15.232070587 -0700 -@@ -18,6 +18,8 @@ - # - # Sub-makefile for pwd portion of the library. - # -+include ../option-groups.mak -+ - subdir := pwd - - include ../Makeconfig -Index: git/resolv/Makefile -=================================================================== ---- git.orig/resolv/Makefile 2014-08-29 20:00:53.320070587 -0700 -+++ git/resolv/Makefile 2014-08-29 20:01:15.232070587 -0700 -@@ -18,6 +18,8 @@ - # - # Sub-makefile for resolv portion of the library. - # -+include ../option-groups.mak -+ - subdir := resolv - - include ../Makeconfig -@@ -27,20 +29,21 @@ - arpa/nameser.h arpa/nameser_compat.h \ - sys/bitypes.h - --routines := herror inet_addr inet_ntop inet_pton nsap_addr res_init \ -- res_hconf res_libc res-state -+routines-$(OPTION_EGLIBC_INET) \ -+ += herror inet_addr inet_ntop inet_pton nsap_addr res_init \ -+ res_hconf res_libc res-state - --tests = tst-aton tst-leaks tst-inet_ntop --xtests = tst-leaks2 -+tests-$(OPTION_EGLIBC_INET) += tst-aton tst-leaks tst-inet_ntop -+xtests-$(OPTION_EGLIBC_INET) += tst-leaks2 - - generate := mtrace-tst-leaks.out tst-leaks.mtrace tst-leaks2.mtrace - --extra-libs := libresolv libnss_dns -+extra-libs-$(OPTION_EGLIBC_INET) += libresolv libnss_dns - ifeq ($(have-thread-library),yes) --extra-libs += libanl --routines += gai_sigqueue -+extra-libs-$(OPTION_EGLIBC_INET_ANL) += libanl -+routines-$(OPTION_EGLIBC_INET) += gai_sigqueue - endif --extra-libs-others = $(extra-libs) -+extra-libs-others-y += $(extra-libs-y) - libresolv-routines := gethnamaddr res_comp res_debug \ - res_data res_mkquery res_query res_send \ - inet_net_ntop inet_net_pton inet_neta base64 \ -@@ -60,7 +63,7 @@ - static-only-routines += $(libnss_dns-routines) $(libresolv-routines) - endif - --ifeq (yesyes,$(build-shared)$(have-thread-library)) -+ifeq (yesyesy,$(build-shared)$(have-thread-library)$(OPTION_EGLIBC_INET_ANL)) - tests: $(objpfx)ga_test - endif - -Index: git/stdio-common/fxprintf.c -=================================================================== ---- git.orig/stdio-common/fxprintf.c 2014-08-29 20:00:53.544070587 -0700 -+++ git/stdio-common/fxprintf.c 2014-08-29 20:01:15.232070587 -0700 -@@ -23,6 +23,7 @@ - #include <wchar.h> - #include <string.h> - #include <libioP.h> -+#include <gnu/option-groups.h> - - - int -@@ -37,6 +38,7 @@ - int res; - if (_IO_fwide (fp, 0) > 0) - { -+#if __OPTION_POSIX_WIDE_CHAR_DEVICE_IO - size_t len = strlen (fmt) + 1; - wchar_t wfmt[len]; - for (size_t i = 0; i < len; ++i) -@@ -45,6 +47,9 @@ - wfmt[i] = fmt[i]; - } - res = __vfwprintf (fp, wfmt, ap); -+#else -+ abort(); -+#endif - } - else - res = _IO_vfprintf (fp, fmt, ap); -Index: git/stdio-common/_i18n_number.h -=================================================================== ---- git.orig/stdio-common/_i18n_number.h 2014-08-29 20:00:53.500070587 -0700 -+++ git/stdio-common/_i18n_number.h 2014-08-29 20:01:15.232070587 -0700 -@@ -19,10 +19,13 @@ - #include <stdbool.h> - #include <wchar.h> - #include <wctype.h> -+#include <gnu/option-groups.h> - - #include "../locale/outdigits.h" - #include "../locale/outdigitswc.h" - -+#if __OPTION_EGLIBC_LOCALE_CODE -+ - static CHAR_T * - _i18n_number_rewrite (CHAR_T *w, CHAR_T *rear_ptr, CHAR_T *end) - { -@@ -115,3 +118,13 @@ - - return w; - } -+ -+#else -+ -+static CHAR_T * -+_i18n_number_rewrite (CHAR_T *w, CHAR_T *rear_ptr, CHAR_T *end) -+{ -+ return w; -+} -+ -+#endif -Index: git/stdio-common/Makefile -=================================================================== ---- git.orig/stdio-common/Makefile 2014-08-29 20:00:53.500070587 -0700 -+++ git/stdio-common/Makefile 2014-08-29 20:01:15.232070587 -0700 -@@ -18,6 +18,8 @@ - # - # Specific makefile for stdio-common. - # -+include ../option-groups.mak -+ - subdir := stdio-common - - include ../Makeconfig -@@ -30,7 +32,7 @@ - vfprintf vprintf printf_fp reg-printf printf-prs printf_fphex \ - reg-modifier reg-type \ - printf_size fprintf printf snprintf sprintf asprintf dprintf \ -- vfwprintf vfscanf vfwscanf \ -+ vfscanf \ - fscanf scanf sscanf \ - perror psignal \ - tmpfile tmpfile64 tmpnam tmpnam_r tempnam tempname \ -@@ -41,23 +43,37 @@ - isoc99_vsscanf \ - psiginfo - --aux := errlist siglist printf-parsemb printf-parsewc fxprintf -+# Ideally, _itowa and itowa-digits would be in this option group as -+# well, but it is used unconditionally by printf_fp and printf_fphex, -+# and it didn't seem straightforward to disentangle it. -+routines-$(OPTION_POSIX_C_LANG_WIDE_CHAR) += \ -+ vfwprintf vfwscanf -+ -+aux := errlist siglist printf-parsemb fxprintf -+aux-$(OPTION_POSIX_C_LANG_WIDE_CHAR) += printf-parsewc - - tests := tstscanf test_rdwr test-popen tstgetln test-fseek \ - temptest tst-fileno test-fwrite tst-ungetc tst-ferror \ - xbug errnobug \ - bug1 bug2 bug3 bug4 bug5 bug6 bug7 bug8 bug9 bug10 bug11 bug12 bug13 \ -- tfformat tiformat tllformat tstdiomisc tst-printfsz tst-wc-printf \ -+ tfformat tiformat tllformat tstdiomisc tst-printfsz \ - scanf1 scanf2 scanf3 scanf4 scanf5 scanf7 scanf8 scanf9 scanf10 \ -- scanf11 scanf12 tst-tmpnam tst-cookie tst-obprintf tst-sscanf \ -- tst-swprintf tst-fseek tst-fmemopen test-vfprintf tst-gets \ -- tst-perror tst-sprintf tst-rndseek tst-fdopen tst-fphex bug14 \ -+ scanf11 scanf12 tst-tmpnam tst-cookie tst-obprintf \ -+ scanf11 scanf12 tst-tmpnam tst-cookie tst-obprintf \ -+ tst-fseek tst-fmemopen tst-gets \ -+ tst-sprintf tst-rndseek tst-fdopen tst-fphex \ - tst-popen tst-unlockedio tst-fmemopen2 tst-put-error tst-fgets \ -- tst-fwrite bug16 bug17 tst-swscanf tst-sprintf2 bug18 bug18a \ -- bug19 bug19a tst-popen2 scanf13 scanf14 scanf15 bug20 bug21 bug22 \ -- scanf16 scanf17 tst-setvbuf1 tst-grouping bug23 bug24 \ -- bug-vfprintf-nargs tst-long-dbl-fphex tst-fphex-wide tst-sprintf3 \ -- bug25 tst-printf-round bug26 -+ tst-fwrite bug16 bug17 tst-sprintf2 bug18 \ -+ bug19 tst-popen2 scanf14 scanf15 bug21 bug22 scanf16 scanf17 \ -+ tst-setvbuf1 bug23 bug24 bug-vfprintf-nargs tst-sprintf3 bug25 \ -+ tst-printf-round bug26 -+ -+tests-$(OPTION_EGLIBC_LOCALE_CODE) \ -+ += tst-sscanf tst-swprintf test-vfprintf bug14 scanf13 tst-grouping -+tests-$(OPTION_POSIX_WIDE_CHAR_DEVICE_IO) \ -+ += tst-perror bug19a bug20 tst-long-dbl-fphex tst-fphex-wide -+tests-$(OPTION_POSIX_C_LANG_WIDE_CHAR) \ -+ += bug18a tst-swscanf tst-wc-printf - - test-srcs = tst-unbputc tst-printf - -Index: git/stdio-common/printf_fp.c -=================================================================== ---- git.orig/stdio-common/printf_fp.c 2014-08-29 20:00:53.548070587 -0700 -+++ git/stdio-common/printf_fp.c 2014-08-29 20:01:15.232070587 -0700 -@@ -39,6 +39,7 @@ - #include <unistd.h> - #include <stdlib.h> - #include <wchar.h> -+#include <gnu/option-groups.h> - #include <stdbool.h> - #include <rounding-mode.h> - -@@ -148,6 +149,10 @@ - wchar_t thousands_sep, int ngroups) - internal_function; - -+/* Ideally, when OPTION_EGLIBC_LOCALE_CODE is disabled, this should do -+ all its work in ordinary characters, rather than doing it in wide -+ characters and then converting at the end. But that is a challenge -+ for another day. */ - - int - ___printf_fp (FILE *fp, -@@ -206,7 +211,14 @@ - mp_limb_t cy; - - /* Nonzero if this is output on a wide character stream. */ -+#if __OPTION_POSIX_C_LANG_WIDE_CHAR - int wide = info->wide; -+#else -+ /* This should never be called on a wide-oriented stream when -+ OPTION_POSIX_C_LANG_WIDE_CHAR is disabled, but the compiler can't -+ be trusted to figure that out. */ -+ const int wide = 0; -+#endif - - /* Buffer in which we produce the output. */ - wchar_t *wbuffer = NULL; -@@ -258,6 +270,7 @@ - - - /* Figure out the decimal point character. */ -+#if __OPTION_EGLIBC_LOCALE_CODE - if (info->extra == 0) - { - decimal = _NL_CURRENT (LC_NUMERIC, DECIMAL_POINT); -@@ -277,7 +290,13 @@ - /* The decimal point character must not be zero. */ - assert (*decimal != '\0'); - assert (decimalwc != L'\0'); -+#else -+ /* Hard-code values from 'C' locale. */ -+ decimal = "."; -+ decimalwc = L'.'; -+#endif - -+#if __OPTION_EGLIBC_LOCALE_CODE - if (info->group) - { - if (info->extra == 0) -@@ -321,6 +340,9 @@ - } - else - grouping = NULL; -+#else -+ grouping = NULL; -+#endif - - /* Fetch the argument value. */ - #ifndef __NO_LONG_DOUBLE_MATH -Index: git/stdio-common/printf_fphex.c -=================================================================== ---- git.orig/stdio-common/printf_fphex.c 2014-08-29 20:00:53.548070587 -0700 -+++ git/stdio-common/printf_fphex.c 2014-08-29 20:01:15.232070587 -0700 -@@ -28,6 +28,7 @@ - #include <_itoa.h> - #include <_itowa.h> - #include <locale/localeinfo.h> -+#include <gnu/option-groups.h> - #include <stdbool.h> - #include <rounding-mode.h> - -@@ -139,10 +140,18 @@ - int done = 0; - - /* Nonzero if this is output on a wide character stream. */ -+#if __OPTION_POSIX_C_LANG_WIDE_CHAR - int wide = info->wide; -+#else -+ /* This should never be called on a wide-oriented stream when -+ OPTION_POSIX_C_LANG_WIDE_CHAR is disabled, but the compiler can't -+ be trusted to figure that out. */ -+ const int wide = 0; -+#endif - - - /* Figure out the decimal point character. */ -+#if __OPTION_EGLIBC_LOCALE_CODE - if (info->extra == 0) - { - decimal = _NL_CURRENT (LC_NUMERIC, DECIMAL_POINT); -@@ -156,6 +165,10 @@ - } - /* The decimal point character must never be zero. */ - assert (*decimal != '\0' && decimalwc != L'\0'); -+#else -+ decimal = "."; -+ decimalwc = L'.'; -+#endif - - - /* Fetch the argument value. */ -Index: git/stdio-common/printf_size.c -=================================================================== ---- git.orig/stdio-common/printf_size.c 2014-08-29 20:00:53.548070587 -0700 -+++ git/stdio-common/printf_size.c 2014-08-29 20:01:15.232070587 -0700 -@@ -23,6 +23,7 @@ - #include <math.h> - #include <printf.h> - #include <libioP.h> -+#include <gnu/option-groups.h> - - - /* This defines make it possible to use the same code for GNU C library and -@@ -116,7 +117,14 @@ - - struct printf_info fp_info; - int done = 0; -+#if __OPTION_POSIX_C_LANG_WIDE_CHAR - int wide = info->wide; -+#else -+ /* This should never be called on a wide-oriented stream when -+ OPTION_POSIX_C_LANG_WIDE_CHAR is disabled, but the compiler can't -+ be trusted to figure that out. */ -+ const int wide = 0; -+#endif - int res; - - /* Fetch the argument value. */ -Index: git/stdio-common/scanf14.c -=================================================================== ---- git.orig/stdio-common/scanf14.c 2014-08-29 20:00:53.548070587 -0700 -+++ git/stdio-common/scanf14.c 2014-08-29 20:01:15.232070587 -0700 -@@ -2,6 +2,7 @@ - #include <stdlib.h> - #include <string.h> - #include <wchar.h> -+#include <gnu/option-groups.h> - - #define FAIL() \ - do { \ -@@ -36,6 +37,7 @@ - FAIL (); - else if (d != 2.25 || memcmp (c, " x", 2) != 0) - FAIL (); -+#if __OPTION_EGLIBC_LOCALE_CODE - if (sscanf (" 3.25S x", "%4aS%3c", &lsp, c) != 2) - FAIL (); - else -@@ -45,6 +47,7 @@ - memset (lsp, 'x', sizeof L"3.25"); - free (lsp); - } -+#endif - if (sscanf ("4.25[0-9.] x", "%a[0-9.]%8c", &sp, c) != 2) - FAIL (); - else -Index: git/stdio-common/tstdiomisc.c -=================================================================== ---- git.orig/stdio-common/tstdiomisc.c 2014-08-29 20:00:53.584070587 -0700 -+++ git/stdio-common/tstdiomisc.c 2014-08-29 20:01:15.232070587 -0700 -@@ -3,6 +3,7 @@ - #include <stdio.h> - #include <string.h> - #include <wchar.h> -+#include <gnu/option-groups.h> - - static int - t1 (void) -@@ -125,6 +126,7 @@ - printf ("expected \"-inf -INF -inf -INF -inf -INF -inf -INF\", got \"%s\"\n", - buf); - -+#if __OPTION_POSIX_C_LANG_WIDE_CHAR - swprintf (wbuf, sizeof wbuf / sizeof (wbuf[0]), L"%a %A %e %E %f %F %g %G", - qnanval, qnanval, qnanval, qnanval, - qnanval, qnanval, qnanval, qnanval); -@@ -162,6 +164,7 @@ - result |= wcscmp (wbuf, L"-inf -INF -inf -INF -inf -INF -inf -INF") != 0; - printf ("expected L\"-inf -INF -inf -INF -inf -INF -inf -INF\", got L\"%S\"\n", - wbuf); -+#endif /* __OPTION_POSIX_C_LANG_WIDE_CHAR */ - - lqnanval = NAN; - -@@ -206,6 +209,7 @@ - printf ("expected \"-inf -INF -inf -INF -inf -INF -inf -INF\", got \"%s\"\n", - buf); - -+#if __OPTION_POSIX_C_LANG_WIDE_CHAR - swprintf (wbuf, sizeof wbuf / sizeof (wbuf[0]), - L"%La %LA %Le %LE %Lf %LF %Lg %LG", - lqnanval, lqnanval, lqnanval, lqnanval, -@@ -250,6 +254,7 @@ - result |= wcscmp (wbuf, L"-inf -INF -inf -INF -inf -INF -inf -INF") != 0; - printf ("expected L\"-inf -INF -inf -INF -inf -INF -inf -INF\", got L\"%S\"\n", - wbuf); -+#endif /* __OPTION_POSIX_C_LANG_WIDE_CHAR */ - - return result; - } -Index: git/stdio-common/tst-popen.c -=================================================================== ---- git.orig/stdio-common/tst-popen.c 2014-08-29 20:00:53.576070587 -0700 -+++ git/stdio-common/tst-popen.c 2014-08-29 20:01:15.232070587 -0700 -@@ -19,6 +19,7 @@ - #include <stdio.h> - #include <string.h> - #include <wchar.h> -+#include <gnu/option-groups.h> - - static int - do_test (void) -@@ -34,12 +35,14 @@ - return 1; - } - -+#if __OPTION_POSIX_WIDE_CHAR_DEVICE_IO - /* POSIX says that pipe streams are byte-oriented. */ - if (fwide (f, 0) >= 0) - { - puts ("popen did not return byte-oriented stream"); - result = 1; - } -+#endif - - if (getline (&line, &len, f) != 5) - { -Index: git/stdio-common/tst-sprintf.c -=================================================================== ---- git.orig/stdio-common/tst-sprintf.c 2014-08-29 20:00:53.580070587 -0700 -+++ git/stdio-common/tst-sprintf.c 2014-08-29 20:01:15.236070587 -0700 -@@ -2,6 +2,7 @@ - #include <stdlib.h> - #include <locale.h> - #include <string.h> -+#include <gnu/option-groups.h> - - - int -@@ -10,12 +11,14 @@ - char buf[100]; - int result = 0; - -+#if __OPTION_POSIX_C_LANG_WIDE_CHAR - if (sprintf (buf, "%.0ls", L"foo") != 0 - || strlen (buf) != 0) - { - puts ("sprintf (buf, \"%.0ls\", L\"foo\") produced some output"); - result = 1; - } -+#endif /* __OPTION_POSIX_C_LANG_WIDE_CHAR */ - - #define SIZE (1024*70000) - #define STR(x) #x -Index: git/stdio-common/vfprintf.c -=================================================================== ---- git.orig/stdio-common/vfprintf.c 2014-08-29 20:00:53.588070587 -0700 -+++ git/stdio-common/vfprintf.c 2014-08-29 20:01:15.236070587 -0700 -@@ -29,6 +29,7 @@ - #include <_itoa.h> - #include <locale/localeinfo.h> - #include <stdio.h> -+#include <gnu/option-groups.h> - - /* This code is shared between the standard stdio implementation found - in GNU C library and the libio implementation originally found in -@@ -138,6 +139,18 @@ - # define EOF WEOF - #endif - -+#if __OPTION_POSIX_C_LANG_WIDE_CHAR -+# define MULTIBYTE_SUPPORT (1) -+#else -+# define MULTIBYTE_SUPPORT (0) -+#endif -+ -+#if __OPTION_EGLIBC_LOCALE_CODE -+# define LOCALE_SUPPORT (1) -+#else -+# define LOCALE_SUPPORT (0) -+#endif -+ - #include "_i18n_number.h" - - /* Include the shared code for parsing the format string. */ -@@ -1123,8 +1136,11 @@ - # define process_string_arg(fspec) \ - LABEL (form_character): \ - /* Character. */ \ -- if (is_long) \ -- goto LABEL (form_wcharacter); \ -+ if (is_long) \ -+ { \ -+ assert (MULTIBYTE_SUPPORT); \ -+ goto LABEL (form_wcharacter); \ -+ } \ - --width; /* Account for the character itself. */ \ - if (!left) \ - PAD (' '); \ -@@ -1137,6 +1153,7 @@ - break; \ - \ - LABEL (form_wcharacter): \ -+ assert (MULTIBYTE_SUPPORT); \ - { \ - /* Wide character. */ \ - char buf[MB_CUR_MAX]; \ -@@ -1203,6 +1220,7 @@ - } \ - else \ - { \ -+ assert (MULTIBYTE_SUPPORT); \ - const wchar_t *s2 = (const wchar_t *) string; \ - mbstate_t mbstate; \ - \ -@@ -1403,7 +1421,9 @@ - LABEL (flag_quote): - group = 1; - -- if (grouping == (const char *) -1) -+ if (! LOCALE_SUPPORT) -+ grouping = NULL; -+ else if (grouping == (const char *) -1) - { - #ifdef COMPILE_WPRINTF - thousands_sep = _NL_CURRENT_WORD (LC_NUMERIC, -@@ -1702,7 +1722,9 @@ - free (workstart); - workstart = NULL; - -- if (grouping == (const char *) -1) -+ if (! LOCALE_SUPPORT) -+ grouping = NULL; -+ else if (grouping == (const char *) -1) - { - #ifdef COMPILE_WPRINTF - thousands_sep = _NL_CURRENT_WORD (LC_NUMERIC, -Index: git/stdio-common/vfscanf.c -=================================================================== ---- git.orig/stdio-common/vfscanf.c 2014-08-29 20:00:53.588070587 -0700 -+++ git/stdio-common/vfscanf.c 2014-08-29 20:01:15.236070587 -0700 -@@ -29,6 +29,7 @@ - #include <wctype.h> - #include <bits/libc-lock.h> - #include <locale/localeinfo.h> -+#include <gnu/option-groups.h> - - #ifdef __GNUC__ - # define HAVE_LONGLONG -@@ -133,6 +134,12 @@ - # define WINT_T int - #endif - -+#if __OPTION_POSIX_C_LANG_WIDE_CHAR -+# define MULTIBYTE_SUPPORT (1) -+#else -+# define MULTIBYTE_SUPPORT (0) -+#endif -+ - #define encode_error() do { \ - errval = 4; \ - __set_errno (EILSEQ); \ -@@ -316,24 +323,35 @@ - ARGCHECK (s, format); - - { --#ifndef COMPILE_WSCANF -+#if __OPTION_EGLIBC_LOCALE_CODE && !defined (COMPILE_WSCANF) - struct __locale_data *const curnumeric = loc->__locales[LC_NUMERIC]; - #endif - -+#if __OPTION_EGLIBC_LOCALE_CODE - /* Figure out the decimal point character. */ --#ifdef COMPILE_WSCANF -+# ifdef COMPILE_WSCANF - decimal = _NL_CURRENT_WORD (LC_NUMERIC, _NL_NUMERIC_DECIMAL_POINT_WC); --#else -+# else - decimal = curnumeric->values[_NL_ITEM_INDEX (DECIMAL_POINT)].string; --#endif -+# endif - /* Figure out the thousands separator character. */ --#ifdef COMPILE_WSCANF -+# ifdef COMPILE_WSCANF - thousands = _NL_CURRENT_WORD (LC_NUMERIC, _NL_NUMERIC_THOUSANDS_SEP_WC); --#else -+# else - thousands = curnumeric->values[_NL_ITEM_INDEX (THOUSANDS_SEP)].string; - if (*thousands == '\0') - thousands = NULL; --#endif -+# endif -+#else /* if ! __OPTION_EGLIBC_LOCALE_CODE */ -+ /* Hard-code values from the C locale. */ -+# ifdef COMPILE_WSCANF -+ decimal = L'.'; -+ thousands = L'\0'; -+# else -+ decimal = "."; -+ thousands = NULL; -+# endif -+#endif /* __OPTION_EGLIBC_LOCALE_CODE */ - } - - /* Lock the stream. */ -@@ -385,6 +403,8 @@ - #ifndef COMPILE_WSCANF - if (!isascii ((unsigned char) *f)) - { -+ assert (MULTIBYTE_SUPPORT); -+ - /* Non-ASCII, may be a multibyte. */ - int len = __mbrlen (f, strlen (f), &state); - if (len > 0) -@@ -830,6 +850,8 @@ - } - /* FALLTHROUGH */ - case L_('C'): -+ assert (MULTIBYTE_SUPPORT); -+ - if (width == -1) - width = 1; - -@@ -1172,6 +1194,8 @@ - /* FALLTHROUGH */ - - case L_('S'): -+ assert (MULTIBYTE_SUPPORT); -+ - { - #ifndef COMPILE_WSCANF - mbstate_t cstate; -@@ -1419,10 +1443,17 @@ - const char *mbdigits[10]; - const char *mbdigits_extended[10]; - #endif -+#if __OPTION_EGLIBC_LOCALE_CODE - /* "to_inpunct" is a map from ASCII digits to their - equivalent in locale. This is defined for locales - which use an extra digits set. */ - wctrans_t map = __wctrans ("to_inpunct"); -+#else -+ /* This will always be the case when -+ OPTION_EGLIBC_LOCALE_CODE is disabled, but the -+ compiler can't figure that out. */ -+ wctrans_t map = NULL; -+#endif - int n; - - from_level = 0; -@@ -2088,6 +2119,7 @@ - --width; - } - -+#if __OPTION_EGLIBC_LOCALE_CODE - wctrans_t map; - if (__builtin_expect ((flags & I18N) != 0, 0) - /* Hexadecimal floats make no sense, fixing localized -@@ -2304,6 +2336,7 @@ - ; - #endif - } -+#endif /* __OPTION_EGLIBC_LOCALE_CODE */ - - /* Have we read any character? If we try to read a number - in hexadecimal notation and we have read only the `0x' -@@ -2343,7 +2376,10 @@ - - case L_('['): /* Character class. */ - if (flags & LONG) -- STRING_ARG (wstr, wchar_t, 100); -+ { -+ assert (MULTIBYTE_SUPPORT); -+ STRING_ARG (wstr, wchar_t, 100); -+ } - else - STRING_ARG (str, char, 100); - -@@ -2417,6 +2453,7 @@ - if (flags & LONG) - { - size_t now = read_in; -+ assert (MULTIBYTE_SUPPORT); - #ifdef COMPILE_WSCANF - if (__glibc_unlikely (inchar () == WEOF)) - input_error (); -Index: git/stdlib/Makefile -=================================================================== ---- git.orig/stdlib/Makefile 2014-08-29 20:00:53.588070587 -0700 -+++ git/stdlib/Makefile 2014-08-29 20:01:15.236070587 -0700 -@@ -18,6 +18,8 @@ - # - # Makefile for stdlib routines - # -+include ../option-groups.mak -+ - subdir := stdlib - - include ../Makeconfig -@@ -30,7 +32,7 @@ - alloca.h fmtmsg.h \ - bits/stdlib-bsearch.h - --routines := \ -+routines-y := \ - atof atoi atol atoll \ - abort \ - bsearch qsort msort \ -@@ -39,7 +41,6 @@ - quick_exit at_quick_exit cxa_at_quick_exit cxa_thread_atexit_impl \ - abs labs llabs \ - div ldiv lldiv \ -- mblen mbstowcs mbtowc wcstombs wctomb \ - random random_r rand rand_r \ - drand48 erand48 lrand48 nrand48 mrand48 jrand48 \ - srand48 seed48 lcong48 \ -@@ -52,9 +53,18 @@ - strtof_l strtod_l strtold_l \ - system canonicalize \ - a64l l64a \ -- rpmatch strfmon strfmon_l getsubopt xpg_basename fmtmsg \ -- strtoimax strtoumax wcstoimax wcstoumax \ -+ getsubopt xpg_basename \ -+ strtoimax strtoumax \ - getcontext setcontext makecontext swapcontext -+routines-$(OPTION_EGLIBC_LOCALE_CODE) += \ -+ strfmon strfmon_l -+routines-$(OPTION_POSIX_C_LANG_WIDE_CHAR) += \ -+ mblen mbstowcs mbtowc wcstombs wctomb \ -+ wcstoimax wcstoumax -+ifeq (yy,$(OPTION_EGLIBC_LOCALE_CODE)$(OPTION_POSIX_REGEXP)) -+routines-y += rpmatch -+endif -+routines-$(OPTION_EGLIBC_FMTMSG) += fmtmsg - aux = grouping groupingwc tens_in_limb - - # These routines will be omitted from the libc shared object. -@@ -62,20 +72,22 @@ - # linked against when the shared library will be used. - static-only-routines = atexit at_quick_exit - --test-srcs := tst-fmtmsg --tests := tst-strtol tst-strtod testmb testrand testsort testdiv \ -+test-srcs-$(OPTION_EGLIBC_FMTMSG) := tst-fmtmsg -+tests := tst-strtol tst-strtod testrand testsort testdiv \ - test-canon test-canon2 tst-strtoll tst-environ \ - tst-xpg-basename tst-random tst-random2 tst-bsearch \ - tst-limits tst-rand48 bug-strtod tst-setcontext \ -- test-a64l tst-qsort tst-system testmb2 bug-strtod2 \ -- tst-atof1 tst-atof2 tst-strtod2 tst-strtod3 tst-rand48-2 \ -- tst-makecontext tst-strtod4 tst-strtod5 tst-qsort2 \ -- tst-makecontext2 tst-strtod6 tst-unsetenv1 \ -- tst-makecontext3 bug-getcontext bug-fmtmsg1 \ -+ test-a64l tst-qsort tst-system bug-strtod2 \ -+ tst-atof1 tst-atof2 tst-strtod2 tst-rand48-2 \ -+ tst-makecontext tst-qsort2 tst-makecontext2 tst-strtod6 \ -+ tst-unsetenv1 tst-makecontext3 bug-getcontext bug-fmtmsg1 \ - tst-secure-getenv tst-strtod-overflow tst-strtod-round \ - tst-tininess tst-strtod-underflow tst-tls-atexit - tests-static := tst-secure-getenv -- -+tests-$(OPTION_EGLIBC_LOCALE_CODE) \ -+ += tst-strtod3 tst-strtod4 tst-strtod5 testmb2 -+tests-$(OPTION_POSIX_C_LANG_WIDE_CHAR) \ -+ += testmb - modules-names = tst-tls-atexit-lib - - ifeq ($(build-shared),yes) -@@ -115,8 +127,10 @@ - tests-special += $(objpfx)isomac.out - - ifeq ($(run-built-tests),yes) -+ifeq (y,$(OPTION_EGLIBC_FMTMSG)) - tests-special += $(objpfx)tst-fmtmsg.out - endif -+endif - - include ../Rules - -Index: git/stdlib/strtod_l.c -=================================================================== ---- git.orig/stdlib/strtod_l.c 2014-08-29 20:00:53.648070587 -0700 -+++ git/stdlib/strtod_l.c 2014-08-29 20:01:15.236070587 -0700 -@@ -17,6 +17,7 @@ - License along with the GNU C Library; if not, see - <http://www.gnu.org/licenses/>. */ - -+#include <gnu/option-groups.h> - #include <xlocale.h> - - extern double ____strtod_l_internal (const char *, char **, int, __locale_t); -@@ -548,6 +549,7 @@ - /* Used in several places. */ - int cnt; - -+#if __OPTION_EGLIBC_LOCALE_CODE - struct __locale_data *current = loc->__locales[LC_NUMERIC]; - - if (__glibc_unlikely (group)) -@@ -586,6 +588,17 @@ - decimal_len = strlen (decimal); - assert (decimal_len > 0); - #endif -+#else /* if ! __OPTION_EGLIBC_LOCALE_CODE */ -+ /* Hard-code values from the 'C' locale. */ -+ grouping = NULL; -+#ifdef USE_WIDE_CHAR -+ decimal = L'.'; -+# define decimal_len 1 -+#else -+ decimal = "."; -+ decimal_len = 1; -+#endif -+#endif /* __OPTION_EGLIBC_LOCALE_CODE */ - - /* Prepare number representation. */ - exponent = 0; -Index: git/stdlib/tst-strtod.c -=================================================================== ---- git.orig/stdlib/tst-strtod.c 2014-08-29 20:00:53.700070587 -0700 -+++ git/stdlib/tst-strtod.c 2014-08-29 20:01:15.236070587 -0700 -@@ -23,6 +23,7 @@ - #include <errno.h> - #include <string.h> - #include <math.h> -+#include <gnu/option-groups.h> - - struct ltest - { -@@ -176,7 +177,9 @@ - - status |= long_dbl (); - -+#if __OPTION_EGLIBC_LOCALE_CODE - status |= locale_test (); -+#endif - - return status ? EXIT_FAILURE : EXIT_SUCCESS; - } -@@ -219,6 +222,7 @@ - return 0; - } - -+#if __OPTION_EGLIBC_LOCALE_CODE - /* Perform a few tests in a locale with thousands separators. */ - static int - locale_test (void) -@@ -276,3 +280,4 @@ - - return result; - } -+#endif /* __OPTION_EGLIBC_LOCALE_CODE */ -Index: git/streams/Makefile -=================================================================== ---- git.orig/streams/Makefile 2014-08-29 20:00:53.712070587 -0700 -+++ git/streams/Makefile 2014-08-29 20:01:15.236070587 -0700 -@@ -18,11 +18,14 @@ - # - # Makefile for streams. - # -+include ../option-groups.mak -+ - subdir := streams - - include ../Makeconfig - - headers = stropts.h sys/stropts.h bits/stropts.h bits/xtitypes.h --routines = isastream getmsg getpmsg putmsg putpmsg fattach fdetach -+routines-$(OPTION_EGLIBC_STREAMS) \ -+ += isastream getmsg getpmsg putmsg putpmsg fattach fdetach - - include ../Rules -Index: git/string/Makefile -=================================================================== ---- git.orig/string/Makefile 2014-08-29 20:00:53.716070587 -0700 -+++ git/string/Makefile 2014-08-29 20:01:15.236070587 -0700 -@@ -18,6 +18,8 @@ - # - # Sub-makefile for string portion of library. - # -+include ../option-groups.mak -+ - subdir := string - - include ../Makeconfig -@@ -39,10 +41,12 @@ - $(addprefix argz-,append count create ctsep next \ - delete extract insert stringify \ - addsep replace) \ -- envz basename \ -+ basename \ - strcoll_l strxfrm_l string-inlines memrchr \ - xpg-strerror strerror_l - -+routines-$(OPTION_EGLIBC_ENVZ) += envz -+ - strop-tests := memchr memcmp memcpy memmove mempcpy memset memccpy \ - stpcpy stpncpy strcat strchr strcmp strcpy strcspn \ - strlen strncmp strncpy strpbrk strrchr strspn memmem \ -@@ -51,10 +55,12 @@ - tests := tester inl-tester noinl-tester testcopy test-ffs \ - tst-strlen stratcliff tst-svc tst-inlcall \ - bug-strncat1 bug-strspn1 bug-strpbrk1 tst-bswap \ -- tst-strtok tst-strxfrm bug-strcoll1 tst-strfry \ -+ tst-strtok tst-strfry \ - bug-strtok1 $(addprefix test-,$(strop-tests)) \ -- bug-envz1 tst-strxfrm2 tst-endian tst-svc2 \ -- tst-strtok_r -+ tst-strxfrm2 tst-endian tst-svc2 tst-strtok_r -+tests-$(OPTION_EGLIBC_ENVZ) += bug-envz1 -+tests-$(OPTION_EGLIBC_LOCALE_CODE) \ -+ += tst-strxfrm bug-strcoll1 - - xtests = tst-strcoll-overflow - -Index: git/string/strcoll_l.c -=================================================================== ---- git.orig/string/strcoll_l.c 2014-08-29 20:00:53.744070587 -0700 -+++ git/string/strcoll_l.c 2014-08-29 20:01:15.240070587 -0700 -@@ -25,6 +25,7 @@ - #include <stdlib.h> - #include <string.h> - #include <sys/param.h> -+#include <gnu/option-groups.h> - - #ifndef STRING_TYPE - # define STRING_TYPE char -@@ -472,7 +473,11 @@ - STRCOLL (const STRING_TYPE *s1, const STRING_TYPE *s2, __locale_t l) - { - struct __locale_data *current = l->__locales[LC_COLLATE]; -+#if __OPTION_EGLIBC_LOCALE_CODE - uint_fast32_t nrules = current->values[_NL_ITEM_INDEX (_NL_COLLATE_NRULES)].word; -+#else -+ const uint_fast32_t nrules = 0; -+#endif - /* We don't assign the following values right away since it might be - unnecessary in case there are no rules. */ - const unsigned char *rulesets; -Index: git/string/strerror_l.c -=================================================================== ---- git.orig/string/strerror_l.c 2014-08-29 20:00:53.744070587 -0700 -+++ git/string/strerror_l.c 2014-08-29 20:01:15.240070587 -0700 -@@ -21,6 +21,7 @@ - #include <stdlib.h> - #include <string.h> - #include <sys/param.h> -+#include <gnu/option-groups.h> - - - static __thread char *last_value; -@@ -29,10 +30,14 @@ - static const char * - translate (const char *str, locale_t loc) - { -+#if __OPTION_EGLIBC_LOCALE_CODE - locale_t oldloc = __uselocale (loc); - const char *res = _(str); - __uselocale (oldloc); - return res; -+#else -+ return str; -+#endif - } - - -Index: git/string/strxfrm_l.c -=================================================================== ---- git.orig/string/strxfrm_l.c 2014-08-29 20:00:53.748070587 -0700 -+++ git/string/strxfrm_l.c 2014-08-29 20:01:15.240070587 -0700 -@@ -24,6 +24,7 @@ - #include <stdlib.h> - #include <string.h> - #include <sys/param.h> -+#include <gnu/option-groups.h> - - #ifndef STRING_TYPE - # define STRING_TYPE char -@@ -85,7 +86,11 @@ - STRXFRM (STRING_TYPE *dest, const STRING_TYPE *src, size_t n, __locale_t l) - { - struct __locale_data *current = l->__locales[LC_COLLATE]; -+#if __OPTION_EGLIBC_LOCALE_CODE - uint_fast32_t nrules = current->values[_NL_ITEM_INDEX (_NL_COLLATE_NRULES)].word; -+#else -+ const uint_fast32_t nrules = 0; -+#endif - /* We don't assign the following values right away since it might be - unnecessary in case there are no rules. */ - const unsigned char *rulesets; -Index: git/string/test-strcmp.c -=================================================================== ---- git.orig/string/test-strcmp.c 2014-08-29 20:00:53.752070587 -0700 -+++ git/string/test-strcmp.c 2014-08-29 20:01:15.240070587 -0700 -@@ -329,34 +329,6 @@ - FOR_EACH_IMPL (impl, 0) - check_result (impl, s1 + i1, s2 + i2, exp_result); - } -- -- /* Test cases where there are multiple zero bytes after the first. */ -- -- for (size_t i = 0; i < 16 + 1; i++) -- { -- s1[i] = 0x00; -- s2[i] = 0x00; -- } -- -- for (size_t i = 0; i < 16; i++) -- { -- int exp_result; -- -- for (int val = 0x01; val < 0x100; val++) -- { -- for (size_t j = 0; j < i; j++) -- { -- s1[j] = val; -- s2[j] = val; -- } -- -- s2[i] = val; -- -- exp_result = SIMPLE_STRCMP (s1, s2); -- FOR_EACH_IMPL (impl, 0) -- check_result (impl, s1, s2, exp_result); -- } -- } - } - - -Index: git/string/tst-strxfrm2.c -=================================================================== ---- git.orig/string/tst-strxfrm2.c 2014-08-29 20:00:53.756070587 -0700 -+++ git/string/tst-strxfrm2.c 2014-08-29 20:01:15.240070587 -0700 -@@ -1,6 +1,7 @@ - #include <locale.h> - #include <stdio.h> - #include <string.h> -+#include <gnu/option-groups.h> - - static int - do_test (void) -@@ -38,6 +39,7 @@ - res = 1; - } - -+#if __OPTION_EGLIBC_LOCALE_CODE - if (setlocale (LC_ALL, "de_DE.UTF-8") == NULL) - { - puts ("setlocale failed"); -@@ -75,6 +77,7 @@ - res = 1; - } - } -+#endif - - return res; - } -Index: git/string/tst-strxfrm.c -=================================================================== ---- git.orig/string/tst-strxfrm.c 2014-08-29 20:00:53.756070587 -0700 -+++ git/string/tst-strxfrm.c 2014-08-29 20:01:15.240070587 -0700 -@@ -3,6 +3,7 @@ - #include <stdio.h> - #include <stdlib.h> - #include <string.h> -+#include <gnu/option-groups.h> - - - char const string[] = ""; -@@ -64,8 +65,10 @@ - int result = 0; - - result |= test ("C"); -+#if __OPTION_EGLIBC_LOCALE_CODE - result |= test ("en_US.ISO-8859-1"); - result |= test ("de_DE.UTF-8"); -+#endif - - return result; - } -Index: git/sunrpc/Makefile -=================================================================== ---- git.orig/sunrpc/Makefile 2014-08-29 20:00:53.760070587 -0700 -+++ git/sunrpc/Makefile 2014-08-29 20:01:15.240070587 -0700 -@@ -18,6 +18,8 @@ - # - # Sub-makefile for sunrpc portion of the library. - # -+include ../option-groups.mak -+ - subdir := sunrpc - - include ../Makeconfig -@@ -55,7 +57,6 @@ - headers-not-in-tirpc = $(addprefix rpc/,key_prot.h rpc_des.h) \ - $(rpcsvc:%=rpcsvc/%) rpcsvc/bootparam.h - headers = rpc/netdb.h --install-others = $(inst_sysconfdir)/rpc - generated += $(rpcsvc:%.x=rpcsvc/%.h) $(rpcsvc:%.x=x%.c) $(rpcsvc:%.x=x%.stmp) \ - $(rpcsvc:%.x=rpcsvc/%.stmp) rpcgen - generated-dirs += rpcsvc -@@ -65,18 +66,28 @@ - endif - - ifeq ($(build-shared),yes) --need-export-routines := auth_des auth_unix clnt_gen clnt_perr clnt_tcp \ -+need-export-routines-$(OPTION_EGLIBC_SUNRPC) += \ -+ auth_des auth_unix clnt_gen clnt_perr clnt_tcp \ - clnt_udp get_myaddr key_call netname pm_getport \ -- rpc_thread svc svc_tcp svc_udp xcrypt xdr_array xdr \ -+ rpc_thread svc svc_tcp svc_udp xdr_array xdr \ - xdr_intXX_t xdr_mem xdr_ref xdr_sizeof xdr_stdio \ - svc_run - --routines := auth_none authuxprot bindrsvprt clnt_raw clnt_simp \ -+need-export-routines-y += xcrypt -+ -+need-export-routines := $(need-export-routines-y) -+ -+routines-$(OPTION_EGLIBC_SUNRPC) \ -+ += auth_none authuxprot bindrsvprt clnt_raw clnt_simp \ - rpc_dtable getrpcport pmap_clnt pm_getmaps pmap_prot pmap_prot2 \ - pmap_rmt rpc_prot rpc_common rpc_cmsg svc_auth svc_authux svc_raw \ - svc_simple xdr_float xdr_rec publickey authdes_prot \ -- des_crypt des_impl des_soft key_prot openchild rtime svcauth_des \ -- clnt_unix svc_unix create_xid $(need-export-routines) -+ key_prot openchild rtime svcauth_des \ -+ clnt_unix svc_unix create_xid -+ -+# xdecrypt is also used by nss/nss_files/files-key.c. -+routines-y += des_crypt des_impl des_soft $(need-export-routines) -+ - ifneq ($(link-obsolete-rpc),yes) - # We only add the RPC for compatibility to libc.so. - shared-only-routines = $(routines) -@@ -85,25 +96,28 @@ - - # We do not build rpcinfo anymore. It is not needed for a bootstrap - # and not wanted on complete systems. --# others := rpcinfo --# install-sbin := rpcinfo --install-bin := rpcgen -+# others-$(OPTION_EGLIBC_SUNRPC) += rpcinfo -+# install-sbin-$(OPTION_EGLIBC_SUNRPC) += rpcinfo -+install-bin-$(OPTION_EGLIBC_SUNRPC) += rpcgen - rpcgen-objs = rpc_main.o rpc_hout.o rpc_cout.o rpc_parse.o \ - rpc_scan.o rpc_util.o rpc_svcout.o rpc_clntout.o \ - rpc_tblout.o rpc_sample.o --extra-objs = $(rpcgen-objs) $(addprefix cross-,$(rpcgen-objs)) --others += rpcgen -+extra-objs-$(OPTION_EGLIBC_SUNRPC) = $(rpcgen-objs) $(addprefix cross-,$(rpcgen-objs)) -+others-$(OPTION_EGLIBC_SUNRPC) += rpcgen -+ -+install-others-$(OPTION_EGLIBC_SUNRPC) += $(inst_sysconfdir)/rpc - --tests = tst-xdrmem tst-xdrmem2 --xtests := tst-getmyaddr -+tests-$(OPTION_EGLIBC_SUNRPC) = tst-xdrmem tst-xdrmem2 -+xtests-$(OPTION_EGLIBC_SUNRPC) := tst-getmyaddr - - ifeq ($(have-thread-library),yes) --xtests += thrsvc -+xtests-$(OPTION_EGLIBC_SUNRPC) += thrsvc - endif - - headers += $(rpcsvc:%.x=rpcsvc/%.h) --extra-libs := librpcsvc --extra-libs-others := librpcsvc # Make it in `others' pass, not `lib' pass. -+extra-libs-$(OPTION_EGLIBC_SUNRPC) += librpcsvc -+# Make it in `others' pass, not `lib' pass. -+extra-libs-others-y += $(extra-libs-y) - librpcsvc-routines = $(rpcsvc:%.x=x%) - librpcsvc-inhibit-o = .os # Build no shared rpcsvc library. - omit-deps = $(librpcsvc-routines) -Index: git/sysdeps/generic/ldsodefs.h -=================================================================== ---- git.orig/sysdeps/generic/ldsodefs.h 2014-08-29 20:00:53.904070587 -0700 -+++ git/sysdeps/generic/ldsodefs.h 2014-08-29 20:01:15.240070587 -0700 -@@ -425,6 +425,12 @@ - # undef __rtld_global_attribute__ - #endif - -+#if __OPTION_EGLIBC_RTLD_DEBUG -+# define GLRO_dl_debug_mask GLRO(dl_debug_mask) -+#else -+# define GLRO_dl_debug_mask 0 -+#endif -+ - #ifndef SHARED - # define GLRO(name) _##name - #else -@@ -437,8 +443,10 @@ - { - #endif - -+#if __OPTION_EGLIBC_RTLD_DEBUG - /* If nonzero the appropriate debug information is printed. */ - EXTERN int _dl_debug_mask; -+#endif - #define DL_DEBUG_LIBS (1 << 0) - #define DL_DEBUG_IMPCALLS (1 << 1) - #define DL_DEBUG_BINDINGS (1 << 2) -Index: git/sysdeps/gnu/Makefile -=================================================================== ---- git.orig/sysdeps/gnu/Makefile 2014-08-29 20:00:53.924070587 -0700 -+++ git/sysdeps/gnu/Makefile 2014-08-29 20:01:15.240070587 -0700 -@@ -57,7 +57,8 @@ - endif - - ifeq ($(subdir),login) --sysdep_routines += setutxent getutxent endutxent getutxid getutxline \ -+sysdep_routines-$(OPTION_EGLIBC_UTMPX) \ -+ += setutxent getutxent endutxent getutxid getutxline \ - pututxline utmpxname updwtmpx getutmpx getutmp - - sysdep_headers += utmpx.h bits/utmpx.h -Index: git/sysdeps/ieee754/ldbl-opt/Makefile -=================================================================== ---- git.orig/sysdeps/ieee754/ldbl-opt/Makefile 2014-08-29 20:00:54.452070587 -0700 -+++ git/sysdeps/ieee754/ldbl-opt/Makefile 2014-08-29 20:01:15.244070587 -0700 -@@ -11,19 +11,18 @@ - routines += math_ldbl_opt nldbl-compat - - extra-libs += libnldbl --libnldbl-calls = asprintf dprintf fprintf fscanf fwprintf fwscanf iovfscanf \ -+libnldbl-calls = asprintf dprintf fprintf fscanf iovfscanf \ - obstack_printf obstack_vprintf printf scanf snprintf \ -- sprintf sscanf swprintf swscanf vasprintf vdprintf vfprintf \ -- vfscanf vfwprintf vfwscanf vprintf vscanf vsnprintf \ -- vsprintf vsscanf vswprintf vswscanf vwprintf vwscanf \ -- wprintf wscanf printf_fp printf_size \ -- fprintf_chk fwprintf_chk printf_chk snprintf_chk sprintf_chk \ -- swprintf_chk vfprintf_chk vfwprintf_chk vprintf_chk \ -- vsnprintf_chk vsprintf_chk vswprintf_chk vwprintf_chk \ -- wprintf_chk asprintf_chk vasprintf_chk dprintf_chk \ -+ sprintf sscanf vasprintf vdprintf vfprintf \ -+ vfscanf vprintf vscanf vsnprintf \ -+ vsprintf vsscanf \ -+ printf_fp printf_size \ -+ fprintf_chk printf_chk snprintf_chk sprintf_chk \ -+ vfprintf_chk vprintf_chk \ -+ vsnprintf_chk vsprintf_chk \ -+ asprintf_chk vasprintf_chk dprintf_chk \ - vdprintf_chk obstack_printf_chk obstack_vprintf_chk \ - syslog syslog_chk vsyslog vsyslog_chk \ -- strfmon strfmon_l \ - strtold strtold_l strtoldint wcstold wcstold_l wcstoldint \ - qecvt qfcvt qgcvt qecvt_r qfcvt_r \ - isinf isnan finite signbit scalb log2 lgamma_r ceil \ -@@ -38,9 +37,15 @@ - casinh cexp clog cproj csin csinh csqrt ctan ctanh cpow \ - cabs carg cimag creal clog10 \ - isoc99_scanf isoc99_fscanf isoc99_sscanf \ -- isoc99_vscanf isoc99_vfscanf isoc99_vsscanf \ -+ isoc99_vscanf isoc99_vfscanf isoc99_vsscanf -+libnldbl-calls-$(OPTION_EGLIBC_LOCALE_CODE) += strfmon strfmon_l -+libnldbl-calls-$(OPTION_POSIX_WIDE_CHAR_DEVICE_IO) += fwprintf fwscanf \ -+ swprintf swscanf vfwprintf vfwscanf vswprintf vswscanf \ -+ vwprintf vwscanf wprintf wscanf fwprintf_chk swprintf_chk \ -+ vfwprintf_chk vswprintf_chk vwprintf_chk wprintf_chk \ - isoc99_wscanf isoc99_fwscanf isoc99_swscanf \ - isoc99_vwscanf isoc99_vfwscanf isoc99_vswscanf -+libnldbl-calls += $(libnldbl-calls-y) - libnldbl-routines = $(libnldbl-calls:%=nldbl-%) - libnldbl-inhibit-o = $(object-suffixes) - libnldbl-static-only-routines = $(libnldbl-routines) -Index: git/sysdeps/ieee754/ldbl-opt/nldbl-compat.c -=================================================================== ---- git.orig/sysdeps/ieee754/ldbl-opt/nldbl-compat.c 2014-08-29 20:00:54.468070587 -0700 -+++ git/sysdeps/ieee754/ldbl-opt/nldbl-compat.c 2014-08-29 20:01:15.244070587 -0700 -@@ -26,6 +26,7 @@ - #include <locale/localeinfo.h> - #include <sys/syslog.h> - #include <bits/libc-lock.h> -+#include <gnu/option-groups.h> - - #include "nldbl-compat.h" - -@@ -33,20 +34,14 @@ - libc_hidden_proto (__nldbl_vsscanf) - libc_hidden_proto (__nldbl_vsprintf) - libc_hidden_proto (__nldbl_vfscanf) --libc_hidden_proto (__nldbl_vfwscanf) - libc_hidden_proto (__nldbl_vdprintf) --libc_hidden_proto (__nldbl_vswscanf) --libc_hidden_proto (__nldbl_vfwprintf) --libc_hidden_proto (__nldbl_vswprintf) - libc_hidden_proto (__nldbl_vsnprintf) - libc_hidden_proto (__nldbl_vasprintf) - libc_hidden_proto (__nldbl_obstack_vprintf) --libc_hidden_proto (__nldbl___vfwprintf_chk) - libc_hidden_proto (__nldbl___vsnprintf_chk) - libc_hidden_proto (__nldbl___vfprintf_chk) - libc_hidden_proto (__nldbl___vsyslog_chk) - libc_hidden_proto (__nldbl___vsprintf_chk) --libc_hidden_proto (__nldbl___vswprintf_chk) - libc_hidden_proto (__nldbl___vasprintf_chk) - libc_hidden_proto (__nldbl___vdprintf_chk) - libc_hidden_proto (__nldbl___obstack_vprintf_chk) -@@ -54,8 +49,17 @@ - libc_hidden_proto (__nldbl___vstrfmon_l) - libc_hidden_proto (__nldbl___isoc99_vsscanf) - libc_hidden_proto (__nldbl___isoc99_vfscanf) -+ -+#ifdef __OPTION_POSIX_WIDE_CHAR_DEVICE_IO -+libc_hidden_proto (__nldbl_vfwscanf) -+libc_hidden_proto (__nldbl_vswscanf) -+libc_hidden_proto (__nldbl_vfwprintf) -+libc_hidden_proto (__nldbl_vswprintf) -+libc_hidden_proto (__nldbl___vfwprintf_chk) -+libc_hidden_proto (__nldbl___vswprintf_chk) - libc_hidden_proto (__nldbl___isoc99_vswscanf) - libc_hidden_proto (__nldbl___isoc99_vfwscanf) -+#endif - - static void - __nldbl_cleanup (void *arg) -@@ -117,6 +121,7 @@ - } - weak_alias (__nldbl_fprintf, __nldbl__IO_fprintf) - -+#ifdef __OPTION_POSIX_WIDE_CHAR_DEVICE_IO - int - attribute_compat_text_section weak_function - __nldbl_fwprintf (FILE *stream, const wchar_t *fmt, ...) -@@ -130,6 +135,7 @@ - - return done; - } -+#endif - - int - attribute_compat_text_section -@@ -226,6 +232,7 @@ - return done; - } - -+#ifdef __OPTION_POSIX_WIDE_CHAR_DEVICE_IO - int - attribute_compat_text_section - __nldbl_swprintf (wchar_t *s, size_t n, const wchar_t *fmt, ...) -@@ -239,6 +246,7 @@ - - return done; - } -+#endif - - int - attribute_compat_text_section weak_function -@@ -264,6 +272,7 @@ - } - libc_hidden_def (__nldbl_vdprintf) - -+#ifdef __OPTION_POSIX_WIDE_CHAR_DEVICE_IO - int - attribute_compat_text_section weak_function - __nldbl_vfwprintf (FILE *s, const wchar_t *fmt, va_list ap) -@@ -275,6 +284,7 @@ - return res; - } - libc_hidden_def (__nldbl_vfwprintf) -+#endif - - int - attribute_compat_text_section -@@ -297,6 +307,7 @@ - libc_hidden_def (__nldbl_vsnprintf) - weak_alias (__nldbl_vsnprintf, __nldbl___vsnprintf) - -+#ifdef __OPTION_POSIX_WIDE_CHAR_DEVICE_IO - int - attribute_compat_text_section weak_function - __nldbl_vswprintf (wchar_t *string, size_t maxlen, const wchar_t *fmt, -@@ -330,6 +341,7 @@ - - return done; - } -+#endif - - int - attribute_compat_text_section -@@ -419,6 +431,7 @@ - return done; - } - -+#ifdef __OPTION_POSIX_WIDE_CHAR_DEVICE_IO - int - attribute_compat_text_section - __nldbl_vfwscanf (FILE *s, const wchar_t *fmt, va_list ap) -@@ -491,6 +504,7 @@ - - return done; - } -+#endif - - int - attribute_compat_text_section -@@ -506,6 +520,7 @@ - return done; - } - -+#ifdef __OPTION_POSIX_WIDE_CHAR_DEVICE_IO - int - attribute_compat_text_section - __nldbl___fwprintf_chk (FILE *stream, int flag, const wchar_t *fmt, ...) -@@ -519,6 +534,7 @@ - - return done; - } -+#endif - - int - attribute_compat_text_section -@@ -563,6 +579,7 @@ - return done; - } - -+#ifdef __OPTION_POSIX_WIDE_CHAR_DEVICE_IO - int - attribute_compat_text_section - __nldbl___swprintf_chk (wchar_t *s, size_t n, int flag, size_t slen, -@@ -577,6 +594,7 @@ - - return done; - } -+#endif - - int - attribute_compat_text_section -@@ -590,6 +608,7 @@ - } - libc_hidden_def (__nldbl___vfprintf_chk) - -+#ifdef __OPTION_POSIX_WIDE_CHAR_DEVICE_IO - int - attribute_compat_text_section - __nldbl___vfwprintf_chk (FILE *s, int flag, const wchar_t *fmt, va_list ap) -@@ -601,6 +620,7 @@ - return res; - } - libc_hidden_def (__nldbl___vfwprintf_chk) -+#endif - - int - attribute_compat_text_section -@@ -635,6 +655,7 @@ - } - libc_hidden_def (__nldbl___vsprintf_chk) - -+#ifdef __OPTION_POSIX_WIDE_CHAR_DEVICE_IO - int - attribute_compat_text_section - __nldbl___vswprintf_chk (wchar_t *string, size_t maxlen, int flag, size_t slen, -@@ -668,6 +689,7 @@ - - return done; - } -+#endif - - int - attribute_compat_text_section -@@ -775,6 +797,7 @@ - return ___printf_fp (fp, &info_no_ldbl, args); - } - -+#if __OPTION_EGLIBC_LOCALE_CODE - ssize_t - attribute_compat_text_section - __nldbl_strfmon (char *s, size_t maxsize, const char *format, ...) -@@ -829,6 +852,7 @@ - return res; - } - libc_hidden_def (__nldbl___vstrfmon_l) -+#endif - - void - attribute_compat_text_section -@@ -941,6 +965,7 @@ - return done; - } - -+#ifdef __OPTION_POSIX_WIDE_CHAR_DEVICE_IO - int - attribute_compat_text_section - __nldbl___isoc99_vfwscanf (FILE *s, const wchar_t *fmt, va_list ap) -@@ -1014,6 +1039,7 @@ - - return done; - } -+#endif - - #if LONG_DOUBLE_COMPAT(libc, GLIBC_2_0) - compat_symbol (libc, __nldbl__IO_printf, _IO_printf, GLIBC_2_0); -@@ -1057,6 +1083,7 @@ - compat_symbol (libc, __nldbl___strfmon_l, __strfmon_l, GLIBC_2_1); - #endif - #if LONG_DOUBLE_COMPAT(libc, GLIBC_2_2) -+# ifdef __OPTION_POSIX_WIDE_CHAR_DEVICE_IO - compat_symbol (libc, __nldbl_swprintf, swprintf, GLIBC_2_2); - compat_symbol (libc, __nldbl_vwprintf, vwprintf, GLIBC_2_2); - compat_symbol (libc, __nldbl_wprintf, wprintf, GLIBC_2_2); -@@ -1069,6 +1096,7 @@ - compat_symbol (libc, __nldbl_vswscanf, vswscanf, GLIBC_2_2); - compat_symbol (libc, __nldbl_vwscanf, vwscanf, GLIBC_2_2); - compat_symbol (libc, __nldbl_wscanf, wscanf, GLIBC_2_2); -+# endif - #endif - #if LONG_DOUBLE_COMPAT(libc, GLIBC_2_3) - compat_symbol (libc, __nldbl_strfmon_l, strfmon_l, GLIBC_2_3); -Index: git/sysdeps/ieee754/ldbl-opt/nldbl-compat.h -=================================================================== ---- git.orig/sysdeps/ieee754/ldbl-opt/nldbl-compat.h 2014-08-29 20:00:54.468070587 -0700 -+++ git/sysdeps/ieee754/ldbl-opt/nldbl-compat.h 2014-08-29 20:01:15.244070587 -0700 -@@ -30,6 +30,7 @@ - #include <math.h> - #include <monetary.h> - #include <sys/syslog.h> -+#include <gnu/option-groups.h> - - - /* Declare the __nldbl_NAME function the wrappers call that's in libc.so. */ -@@ -37,19 +38,15 @@ - - NLDBL_DECL (_IO_vfscanf); - NLDBL_DECL (vfscanf); --NLDBL_DECL (vfwscanf); - NLDBL_DECL (obstack_vprintf); - NLDBL_DECL (vasprintf); - NLDBL_DECL (dprintf); - NLDBL_DECL (vdprintf); - NLDBL_DECL (fprintf); - NLDBL_DECL (vfprintf); --NLDBL_DECL (vfwprintf); - NLDBL_DECL (vsnprintf); - NLDBL_DECL (vsprintf); - NLDBL_DECL (vsscanf); --NLDBL_DECL (vswprintf); --NLDBL_DECL (vswscanf); - NLDBL_DECL (__asprintf); - NLDBL_DECL (asprintf); - NLDBL_DECL (__printf_fp); -@@ -66,12 +63,18 @@ - NLDBL_DECL (__isoc99_vscanf); - NLDBL_DECL (__isoc99_vfscanf); - NLDBL_DECL (__isoc99_vsscanf); -+#ifdef __OPTION_POSIX_WIDE_CHAR_DEVICE_IO -+NLDBL_DECL (vfwscanf); -+NLDBL_DECL (vfwprintf); -+NLDBL_DECL (vswprintf); -+NLDBL_DECL (vswscanf); - NLDBL_DECL (__isoc99_wscanf); - NLDBL_DECL (__isoc99_fwscanf); - NLDBL_DECL (__isoc99_swscanf); - NLDBL_DECL (__isoc99_vwscanf); - NLDBL_DECL (__isoc99_vfwscanf); - NLDBL_DECL (__isoc99_vswscanf); -+#endif - - /* This one does not exist in the normal interface, only - __nldbl___vstrfmon really exists. */ -@@ -82,22 +85,23 @@ - since we don't compile with _FORTIFY_SOURCE. */ - extern int __nldbl___vfprintf_chk (FILE *__restrict, int, - const char *__restrict, _G_va_list); --extern int __nldbl___vfwprintf_chk (FILE *__restrict, int, -- const wchar_t *__restrict, __gnuc_va_list); - extern int __nldbl___vsprintf_chk (char *__restrict, int, size_t, - const char *__restrict, _G_va_list) __THROW; - extern int __nldbl___vsnprintf_chk (char *__restrict, size_t, int, size_t, - const char *__restrict, _G_va_list) - __THROW; --extern int __nldbl___vswprintf_chk (wchar_t *__restrict, size_t, int, size_t, -- const wchar_t *__restrict, __gnuc_va_list) -- __THROW; - extern int __nldbl___vasprintf_chk (char **, int, const char *, _G_va_list) - __THROW; - extern int __nldbl___vdprintf_chk (int, int, const char *, _G_va_list); - extern int __nldbl___obstack_vprintf_chk (struct obstack *, int, const char *, - _G_va_list) __THROW; - extern void __nldbl___vsyslog_chk (int, int, const char *, va_list); -- -+#ifdef __OPTION_POSIX_WIDE_CHAR_DEVICE_IO -+extern int __nldbl___vfwprintf_chk (FILE *__restrict, int, -+ const wchar_t *__restrict, __gnuc_va_list); -+extern int __nldbl___vswprintf_chk (wchar_t *__restrict, size_t, int, size_t, -+ const wchar_t *__restrict, __gnuc_va_list) -+ __THROW; -+#endif - - #endif /* __NLDBL_COMPAT_H */ -Index: git/sysdeps/unix/sysv/linux/gethostid.c -=================================================================== ---- git.orig/sysdeps/unix/sysv/linux/gethostid.c 2014-08-29 20:00:58.840070587 -0700 -+++ git/sysdeps/unix/sysv/linux/gethostid.c 2014-08-29 20:01:15.244070587 -0700 -@@ -21,6 +21,7 @@ - #include <unistd.h> - #include <netdb.h> - #include <not-cancel.h> -+#include <gnu/option-groups.h> - - #define HOSTIDFILE "/etc/hostid" - -@@ -89,6 +90,7 @@ - return id; - } - -+#if __OPTION_EGLIBC_INET - /* Getting from the file was not successful. An intelligent guess for - a unique number of a host is its IP address. Return this. */ - if (__gethostname (hostname, MAXHOSTNAMELEN) < 0 || hostname[0] == '\0') -@@ -115,5 +117,9 @@ - /* For the return value to be not exactly the IP address we do some - bit fiddling. */ - return (int32_t) (in.s_addr << 16 | in.s_addr >> 16); -+#else -+ /* Return an arbitrary value. */ -+ return 0; -+#endif - } - #endif -Index: git/sysdeps/unix/sysv/linux/libc_fatal.c -=================================================================== ---- git.orig/sysdeps/unix/sysv/linux/libc_fatal.c 2014-08-29 20:00:58.980070587 -0700 -+++ git/sysdeps/unix/sysv/linux/libc_fatal.c 2014-08-29 20:01:15.244070587 -0700 -@@ -23,6 +23,7 @@ - #include <string.h> - #include <sys/mman.h> - #include <sys/uio.h> -+#include <gnu/option-groups.h> - - static bool - writev_for_fatal (int fd, const struct iovec *iov, size_t niov, size_t total) -@@ -40,6 +41,7 @@ - static void - backtrace_and_maps (int do_abort, bool written, int fd) - { -+#if __OPTION_EGLIBC_BACKTRACE - if (do_abort > 1 && written) - { - void *addrs[64]; -@@ -62,6 +64,7 @@ - close_not_cancel_no_status (fd2); - } - } -+#endif /* __OPTION_EGLIBC_BACKTRACE */ - } - #define BEFORE_ABORT backtrace_and_maps - -Index: git/time/Makefile -=================================================================== ---- git.orig/time/Makefile 2014-08-29 20:00:59.504070587 -0700 -+++ git/time/Makefile 2014-08-29 20:01:15.244070587 -0700 -@@ -18,6 +18,8 @@ - # - # Makefile for time routines - # -+include ../option-groups.mak -+ - subdir := time - - include ../Makeconfig -@@ -30,14 +32,20 @@ - tzfile getitimer setitimer \ - stime dysize timegm ftime \ - getdate strptime strptime_l \ -- strftime wcsftime strftime_l wcsftime_l \ -+ strftime strftime_l \ - timespec_get --aux := era alt_digit lc-time-cleanup -+routines-$(OPTION_POSIX_C_LANG_WIDE_CHAR) \ -+ := wcsftime wcsftime_l -+aux-$(OPTION_EGLIBC_LOCALE_CODE) += alt_digit era lc-time-cleanup - --tests := test_time clocktest tst-posixtz tst-strptime tst_wcsftime \ -- tst-getdate tst-mktime tst-mktime2 tst-ftime_l tst-strftime \ -+tests := test_time clocktest tst-posixtz \ -+ tst-getdate tst-mktime tst-mktime2 tst-strftime \ - tst-mktime3 tst-strptime2 bug-asctime bug-asctime_r bug-mktime1 \ - tst-strptime3 bug-getdate1 tst-strptime-whitespace -+tests-$(OPTION_EGLIBC_LOCALE_CODE) \ -+ += tst-strptime tst-ftime_l -+tests-$(OPTION_POSIX_WIDE_CHAR_DEVICE_IO) \ -+ += tst_wcsftime - - include ../Rules - -Index: git/time/strftime_l.c -=================================================================== ---- git.orig/time/strftime_l.c 2014-08-29 20:00:59.528070587 -0700 -+++ git/time/strftime_l.c 2014-08-29 20:01:15.244070587 -0700 -@@ -35,6 +35,10 @@ - # include "../locale/localeinfo.h" - #endif - -+#ifdef _LIBC -+# include <gnu/option-groups.h> -+#endif -+ - #if defined emacs && !defined HAVE_BCOPY - # define HAVE_MEMCPY 1 - #endif -@@ -882,7 +886,7 @@ - case L_('C'): - if (modifier == L_('E')) - { --#if HAVE_STRUCT_ERA_ENTRY -+#if (! _LIBC || __OPTION_EGLIBC_LOCALE_CODE) && HAVE_STRUCT_ERA_ENTRY - struct era_entry *era = _nl_get_era_entry (tp HELPER_LOCALE_ARG); - if (era) - { -@@ -955,7 +959,7 @@ - - if (modifier == L_('O') && 0 <= number_value) - { --#ifdef _NL_CURRENT -+#if (! _LIBC || __OPTION_EGLIBC_LOCALE_CODE) && defined (_NL_CURRENT) - /* Get the locale specific alternate representation of - the number NUMBER_VALUE. If none exist NULL is returned. */ - const CHAR_T *cp = nl_get_alt_digit (number_value -@@ -1260,7 +1264,7 @@ - case L_('Y'): - if (modifier == 'E') - { --#if HAVE_STRUCT_ERA_ENTRY -+#if (! _LIBC || __OPTION_EGLIBC_LOCALE_CODE) && HAVE_STRUCT_ERA_ENTRY - struct era_entry *era = _nl_get_era_entry (tp HELPER_LOCALE_ARG); - if (era) - { -@@ -1285,7 +1289,7 @@ - case L_('y'): - if (modifier == L_('E')) - { --#if HAVE_STRUCT_ERA_ENTRY -+#if (! _LIBC || __OPTION_EGLIBC_LOCALE_CODE) && HAVE_STRUCT_ERA_ENTRY - struct era_entry *era = _nl_get_era_entry (tp HELPER_LOCALE_ARG); - if (era) - { -Index: git/time/strptime_l.c -=================================================================== ---- git.orig/time/strptime_l.c 2014-08-29 20:00:59.528070587 -0700 -+++ git/time/strptime_l.c 2014-08-29 20:01:15.244070587 -0700 -@@ -29,6 +29,7 @@ - - #ifdef _LIBC - # define HAVE_LOCALTIME_R 0 -+# include <gnu/option-groups.h> - # include "../locale/localeinfo.h" - #endif - -@@ -84,7 +85,7 @@ - if (val < from || val > to) \ - return NULL; \ - } while (0) --#ifdef _NL_CURRENT -+#if (! _LIBC || __OPTION_EGLIBC_LOCALE_CODE) && defined (_NL_CURRENT) - # define get_alt_number(from, to, n) \ - ({ \ - __label__ do_normal; \ -@@ -820,6 +821,7 @@ - s.want_xday = 1; - break; - case 'C': -+#if ! _LIBC || __OPTION_EGLIBC_LOCALE_CODE - if (s.decided != raw) - { - if (s.era_cnt >= 0) -@@ -856,10 +858,12 @@ - - s.decided = raw; - } -+#endif - /* The C locale has no era information, so use the - normal representation. */ - goto match_century; - case 'y': -+#if ! _LIBC || __OPTION_EGLIBC_LOCALE_CODE - if (s.decided != raw) - { - get_number(0, 9999, 4); -@@ -918,9 +922,10 @@ - - s.decided = raw; - } -- -+#endif - goto match_year_in_century; - case 'Y': -+#if ! _LIBC || __OPTION_EGLIBC_LOCALE_CODE - if (s.decided != raw) - { - num_eras = _NL_CURRENT_WORD (LC_TIME, -@@ -948,6 +953,7 @@ - - s.decided = raw; - } -+#endif - get_number (0, 9999, 4); - tm->tm_year = val - 1900; - s.want_century = 0; -@@ -1118,6 +1124,7 @@ - tm->tm_year = (s.century - 19) * 100; - } - -+#if ! _LIBC || __OPTION_EGLIBC_LOCALE_CODE - if (s.era_cnt != -1) - { - era = _nl_select_era_entry (s.era_cnt HELPER_LOCALE_ARG); -@@ -1132,6 +1139,7 @@ - tm->tm_year = era->start_date[0]; - } - else -+#endif - if (s.want_era) - { - /* No era found but we have seen an E modifier. Rectify some -Index: git/timezone/Makefile -=================================================================== ---- git.orig/timezone/Makefile 2014-08-29 20:01:14.044070587 -0700 -+++ git/timezone/Makefile 2014-08-29 20:01:15.244070587 -0700 -@@ -115,7 +115,7 @@ - - $(objpfx)tzselect: tzselect.ksh $(common-objpfx)config.make - sed -e 's|/bin/bash|/bin/sh|' \ -- -e 's|TZDIR=[^}]*|TZDIR=$(zonedir)|' \ -+ -e '/TZDIR=/s|\$$(pwd)|$(zonedir)|' \ - -e '/TZVERSION=/s|see_Makefile|"$(version)"|' \ - -e '/PKGVERSION=/s|=.*|="$(PKGVERSION)"|' \ - -e '/REPORT_BUGS_TO=/s|=.*|="$(REPORT_BUGS_TO)"|' \ -Index: git/wcsmbs/Makefile -=================================================================== ---- git.orig/wcsmbs/Makefile 2014-08-29 20:00:59.548070587 -0700 -+++ git/wcsmbs/Makefile 2014-08-29 20:01:15.244070587 -0700 -@@ -18,15 +18,21 @@ - # - # Sub-makefile for wcsmbs portion of the library. - # -+include ../option-groups.mak -+ - subdir := wcsmbs - - include ../Makeconfig - - headers := wchar.h bits/wchar.h bits/wchar2.h bits/wchar-ldbl.h uchar.h - --routines := wcscat wcschr wcscmp wcscpy wcscspn wcsdup wcslen wcsncat \ -+# These functions are used by printf_fp.c, even in the plain case; see -+# comments there for OPTION_EGLIBC_LOCALE_CODE. -+routines := wmemcpy wmemset -+routines-$(OPTION_POSIX_C_LANG_WIDE_CHAR) \ -+ := wcscat wcschr wcscmp wcscpy wcscspn wcsdup wcslen wcsncat \ - wcsncmp wcsncpy wcspbrk wcsrchr wcsspn wcstok wcsstr wmemchr \ -- wmemcmp wmemcpy wmemmove wmemset wcpcpy wcpncpy wmempcpy \ -+ wmemcmp wmemmove wcpcpy wcpncpy wmempcpy \ - btowc wctob mbsinit \ - mbrlen mbrtowc wcrtomb mbsrtowcs wcsrtombs \ - mbsnrtowcs wcsnrtombs wcsnlen wcschrnul \ -@@ -38,14 +44,19 @@ - wcscoll_l wcsxfrm_l \ - wcscasecmp wcsncase wcscasecmp_l wcsncase_l \ - wcsmbsload mbsrtowcs_l \ -- isoc99_wscanf isoc99_vwscanf isoc99_fwscanf isoc99_vfwscanf \ - isoc99_swscanf isoc99_vswscanf \ - mbrtoc16 c16rtomb -+routines-$(OPTION_POSIX_WIDE_CHAR_DEVICE_IO) \ -+ += isoc99_wscanf isoc99_vwscanf isoc99_fwscanf isoc99_vfwscanf - - strop-tests := wcscmp wmemcmp wcslen wcschr wcsrchr wcscpy --tests := tst-wcstof wcsmbs-tst1 tst-wcsnlen tst-btowc tst-mbrtowc \ -- tst-wcrtomb tst-wcpncpy tst-mbsrtowcs tst-wchar-h tst-mbrtowc2 \ -- tst-c16c32-1 wcsatcliff $(addprefix test-,$(strop-tests)) -+tests := tst-wchar-h -+tests-$(OPTION_EGLIBC_LOCALE_CODE) \ -+ += tst-btowc tst-mbrtowc tst-mbrtowc2 tst-wcrtomb tst-c16c32-1 -+tests-$(OPTION_POSIX_C_LANG_WIDE_CHAR) \ -+ += tst-wcstof wcsmbs-tst1 tst-wcsnlen \ -+ tst-wcpncpy tst-mbsrtowcs \ -+ wcsatcliff $(addprefix test-,$(strop-tests)) - tests-ifunc := $(strop-tests:%=test-%-ifunc) - tests += $(tests-ifunc) - -Index: git/wcsmbs/wcsmbsload.c -=================================================================== ---- git.orig/wcsmbs/wcsmbsload.c 2014-08-29 20:00:59.580070587 -0700 -+++ git/wcsmbs/wcsmbsload.c 2014-08-29 20:01:15.248070587 -0700 -@@ -21,6 +21,7 @@ - #include <limits.h> - #include <stdlib.h> - #include <string.h> -+#include <gnu/option-groups.h> - - #include <locale/localeinfo.h> - #include <wcsmbsload.h> -@@ -143,6 +144,7 @@ - }) - - -+#if __OPTION_EGLIBC_LOCALE_CODE - /* Some of the functions here must not be used while setlocale is called. */ - __libc_rwlock_define (extern, __libc_setlocale_lock attribute_hidden) - -@@ -211,6 +213,17 @@ - - __libc_rwlock_unlock (__libc_setlocale_lock); - } -+#else -+void -+internal_function -+__wcsmbs_load_conv (struct __locale_data *new_category) -+{ -+ /* When OPTION_EGLIBC_LOCALE_CODE is disabled, we should never reach -+ this point: there is no way to change locales, so every locale -+ passed to get_gconv_fcts should be _nl_C_LC_CTYPE. */ -+ abort (); -+} -+#endif - - - /* Clone the current conversion function set. */ -Index: git/wctype/Makefile -=================================================================== ---- git.orig/wctype/Makefile 2014-08-29 20:00:59.584070587 -0700 -+++ git/wctype/Makefile 2014-08-29 20:01:15.248070587 -0700 -@@ -18,14 +18,20 @@ - # - # Sub-makefile for wctype portion of the library. - # -+include ../option-groups.mak -+ - subdir := wctype - - include ../Makeconfig - - headers := wctype.h --routines := wcfuncs wctype iswctype wctrans towctrans \ -- wcfuncs_l wctype_l iswctype_l wctrans_l towctrans_l -+routines := wctrans towctrans towctrans_l -+routines-$(OPTION_POSIX_C_LANG_WIDE_CHAR) \ -+ := wcfuncs wctype iswctype \ -+ wcfuncs_l wctype_l iswctype_l wctrans_l - --tests := test_wctype test_wcfuncs bug-wctypeh -+tests := -+tests-$(OPTION_POSIX_C_LANG_WIDE_CHAR) \ -+ += test_wctype test_wcfuncs bug-wctypeh - - include ../Rules -Index: git/sysdeps/nptl/Makefile -=================================================================== ---- git.orig/sysdeps/nptl/Makefile 2014-08-29 20:00:58.036070587 -0700 -+++ git/sysdeps/nptl/Makefile 2014-08-29 20:01:15.248070587 -0700 -@@ -18,6 +18,9 @@ - - ifeq ($(subdir),nptl) - libpthread-sysdep_routines += errno-loc -+ifeq ($(OPTION_EGLIBC_BIG_MACROS),n) -+sysdep_routines += small-macros-fns -+endif - endif - - ifeq ($(subdir),rt) -Index: git/sysdeps/nptl/bits/libc-lock.h -=================================================================== ---- git.orig/sysdeps/nptl/bits/libc-lock.h 2014-08-29 20:00:58.036070587 -0700 -+++ git/sysdeps/nptl/bits/libc-lock.h 2014-08-29 20:01:15.248070587 -0700 -@@ -24,6 +24,14 @@ - #include <stddef.h> - - -+#ifdef _LIBC -+# include <lowlevellock.h> -+# include <tls.h> -+# include <pthread-functions.h> -+# include <errno.h> /* For EBUSY. */ -+# include <gnu/option-groups.h> /* For __OPTION_EGLIBC_BIG_MACROS. */ -+#endif -+ - /* Mutex type. */ - #if defined _LIBC || defined _IO_MTSAFE_IO - # if (defined NOT_IN_libc && !defined IS_IN_libpthread) || !defined _LIBC -@@ -87,6 +95,14 @@ - - /* Lock the recursive named lock variable. */ - #if defined _LIBC && (!defined NOT_IN_libc || defined IS_IN_libpthread) -+# if __OPTION_EGLIBC_BIG_MACROS != 1 -+/* EGLIBC: Declare wrapper function for a big macro if either -+ !__OPTION_EGLIBC_BIG_MACROS or we are using a back door from -+ small-macros-fns.c (__OPTION_EGLIBC_BIG_MACROS == 2). */ -+extern void __libc_lock_lock_recursive_fn (__libc_lock_recursive_t *); -+libc_hidden_proto (__libc_lock_lock_recursive_fn); -+# endif /* __OPTION_EGLIBC_BIG_MACROS != 1 */ -+# if __OPTION_EGLIBC_BIG_MACROS - # define __libc_lock_lock_recursive(NAME) \ - do { \ - void *self = THREAD_SELF; \ -@@ -97,6 +113,10 @@ - } \ - ++(NAME).cnt; \ - } while (0) -+# else -+# define __libc_lock_lock_recursive(NAME) \ -+ __libc_lock_lock_recursive_fn (&(NAME)) -+# endif /* __OPTION_EGLIBC_BIG_MACROS */ - #else - # define __libc_lock_lock_recursive(NAME) \ - __libc_maybe_call (__pthread_mutex_lock, (&(NAME).mutex), 0) -@@ -104,6 +124,14 @@ - - /* Try to lock the recursive named lock variable. */ - #if defined _LIBC && (!defined NOT_IN_libc || defined IS_IN_libpthread) -+# if __OPTION_EGLIBC_BIG_MACROS != 1 -+/* EGLIBC: Declare wrapper function for a big macro if either -+ !__OPTION_EGLIBC_BIG_MACROS or we are using a back door from -+ small-macros-fns.c (__OPTION_EGLIBC_BIG_MACROS == 2). */ -+extern int __libc_lock_trylock_recursive_fn (__libc_lock_recursive_t *); -+libc_hidden_proto (__libc_lock_trylock_recursive_fn); -+# endif /* __OPTION_EGLIBC_BIG_MACROS != 1 */ -+# if __OPTION_EGLIBC_BIG_MACROS - # define __libc_lock_trylock_recursive(NAME) \ - ({ \ - int result = 0; \ -@@ -122,6 +150,10 @@ - ++(NAME).cnt; \ - result; \ - }) -+# else -+# define __libc_lock_trylock_recursive(NAME) \ -+ __libc_lock_trylock_recursive_fn (&(NAME)) -+# endif /* __OPTION_EGLIBC_BIG_MACROS */ - #else - # define __libc_lock_trylock_recursive(NAME) \ - __libc_maybe_call (__pthread_mutex_trylock, (&(NAME).mutex), 0) -@@ -129,6 +161,14 @@ - - /* Unlock the recursive named lock variable. */ - #if defined _LIBC && (!defined NOT_IN_libc || defined IS_IN_libpthread) -+# if __OPTION_EGLIBC_BIG_MACROS != 1 -+/* EGLIBC: Declare wrapper function for a big macro if either -+ !__OPTION_EGLIBC_BIG_MACROS, or we are using a back door from -+ small-macros-fns.c (__OPTION_EGLIBC_BIG_MACROS == 2). */ -+extern void __libc_lock_unlock_recursive_fn (__libc_lock_recursive_t *); -+libc_hidden_proto (__libc_lock_unlock_recursive_fn); -+# endif /* __OPTION_EGLIBC_BIG_MACROS != 1 */ -+# if __OPTION_EGLIBC_BIG_MACROS - /* We do no error checking here. */ - # define __libc_lock_unlock_recursive(NAME) \ - do { \ -@@ -138,6 +178,10 @@ - lll_unlock ((NAME).lock, LLL_PRIVATE); \ - } \ - } while (0) -+# else -+# define __libc_lock_unlock_recursive(NAME) \ -+ __libc_lock_unlock_recursive_fn (&(NAME)) -+# endif /* __OPTION_EGLIBC_BIG_MACROS */ - #else - # define __libc_lock_unlock_recursive(NAME) \ - __libc_maybe_call (__pthread_mutex_unlock, (&(NAME).mutex), 0) -Index: git/sysdeps/nptl/bits/libc-lockP.h -=================================================================== ---- git.orig/sysdeps/nptl/bits/libc-lockP.h 2014-08-29 20:00:58.044070587 -0700 -+++ git/sysdeps/nptl/bits/libc-lockP.h 2014-08-29 20:01:15.248070587 -0700 -@@ -33,6 +33,8 @@ - #include <lowlevellock.h> - #include <tls.h> - #include <pthread-functions.h> -+#include <errno.h> /* For EBUSY. */ -+#include <gnu/option-groups.h> /* For __OPTION_EGLIBC_BIG_MACROS. */ - - /* Mutex type. */ - #if defined NOT_IN_libc && !defined IS_IN_libpthread -@@ -159,10 +161,22 @@ - - /* Lock the named lock variable. */ - #if !defined NOT_IN_libc || defined IS_IN_libpthread --# ifndef __libc_lock_lock --# define __libc_lock_lock(NAME) \ -+# if __OPTION_EGLIBC_BIG_MACROS != 1 -+/* EGLIBC: Declare wrapper function for a big macro if either -+ !__OPTION_EGLIBC_BIG_MACROS or we are using a back door from -+ small-macros-fns.c (__OPTION_EGLIBC_BIG_MACROS == 2). */ -+extern void __libc_lock_lock_fn (__libc_lock_t *); -+libc_hidden_proto (__libc_lock_lock_fn); -+# endif /* __OPTION_EGLIBC_BIG_MACROS != 1 */ -+# if __OPTION_EGLIBC_BIG_MACROS -+# ifndef __libc_lock_lock -+# define __libc_lock_lock(NAME) \ - ({ lll_lock (NAME, LLL_PRIVATE); 0; }) --# endif -+# endif -+# else -+# define __libc_lock_lock(NAME) \ -+ __libc_lock_lock_fn (&(NAME)) -+# endif /* __OPTION_EGLIBC_BIG_MACROS */ - #else - # undef __libc_lock_lock - # define __libc_lock_lock(NAME) \ -@@ -175,10 +189,22 @@ - - /* Try to lock the named lock variable. */ - #if !defined NOT_IN_libc || defined IS_IN_libpthread --# ifndef __libc_lock_trylock --# define __libc_lock_trylock(NAME) \ -+# if __OPTION_EGLIBC_BIG_MACROS != 1 -+/* EGLIBC: Declare wrapper function for a big macro if either -+ !__OPTION_EGLIBC_BIG_MACROS or we are using a back door from -+ small-macros-fns.c (__OPTION_EGLIBC_BIG_MACROS == 2). */ -+extern int __libc_lock_trylock_fn (__libc_lock_t *); -+libc_hidden_proto (__libc_lock_trylock_fn); -+# endif /* __OPTION_EGLIBC_BIG_MACROS != 1 */ -+# if __OPTION_EGLIBC_BIG_MACROS -+# ifndef __libc_lock_trylock -+# define __libc_lock_trylock(NAME) \ - lll_trylock (NAME) --# endif -+# endif -+# else -+# define __libc_lock_trylock(NAME) \ -+ __libc_lock_trylock_fn (&(NAME)) -+# endif /* __OPTION_EGLIBC_BIG_MACROS */ - #else - # undef __libc_lock_trylock - # define __libc_lock_trylock(NAME) \ -@@ -194,8 +220,20 @@ - - /* Unlock the named lock variable. */ - #if !defined NOT_IN_libc || defined IS_IN_libpthread -+# if __OPTION_EGLIBC_BIG_MACROS != 1 -+/* EGLIBC: Declare wrapper function for a big macro if either -+ !__OPTION_EGLIBC_BIG_MACROS, or we are using a back door from -+ small-macros-fns.c (__OPTION_EGLIBC_BIG_MACROS == 2). */ -+extern void __libc_lock_unlock_fn (__libc_lock_t *); -+libc_hidden_proto (__libc_lock_unlock_fn); -+# endif /* __OPTION_EGLIBC_BIG_MACROS != 1 */ -+# if __OPTION_EGLIBC_BIG_MACROS - # define __libc_lock_unlock(NAME) \ - lll_unlock (NAME, LLL_PRIVATE) -+# else -+# define __libc_lock_unlock(NAME) \ -+ __libc_lock_unlock_fn (&(NAME)) -+# endif /* __OPTION_EGLIBC_BIG_MACROS */ - #else - # define __libc_lock_unlock(NAME) \ - __libc_maybe_call (__pthread_mutex_unlock, (&(NAME)), 0) -Index: git/sysdeps/nptl/small-macros-fns.c -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ git/sysdeps/nptl/small-macros-fns.c 2014-08-29 20:01:15.248070587 -0700 -@@ -0,0 +1,72 @@ -+/* EGLIBC: function wrappers for big macros. -+ Copyright (C) 2009 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 Lesser General Public License as -+ published by the Free Software Foundation; either version 2.1 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 -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser 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 <gnu/option-groups.h> -+ -+/* Handle macros from ./bits/libc-lock.h. */ -+#if defined _LIBC && (!defined NOT_IN_libc || defined IS_IN_libpthread) -+ -+/* Get the macros for function bodies through a back door. */ -+# undef __OPTION_EGLIBC_BIG_MACROS -+# define __OPTION_EGLIBC_BIG_MACROS 2 -+# include <bits/libc-lock.h> -+ -+void -+__libc_lock_lock_fn (__libc_lock_t *name) -+{ -+ __libc_lock_lock (*name); -+} -+libc_hidden_def (__libc_lock_lock_fn); -+ -+void -+__libc_lock_lock_recursive_fn (__libc_lock_recursive_t *name) -+{ -+ __libc_lock_lock_recursive (*name); -+} -+libc_hidden_def (__libc_lock_lock_recursive_fn); -+ -+int -+__libc_lock_trylock_fn (__libc_lock_t *name) -+{ -+ return __libc_lock_trylock (*name); -+} -+libc_hidden_def (__libc_lock_trylock_fn); -+ -+int -+__libc_lock_trylock_recursive_fn (__libc_lock_recursive_t *name) -+{ -+ return __libc_lock_trylock_recursive (*name); -+} -+libc_hidden_def (__libc_lock_trylock_recursive_fn); -+ -+void -+__libc_lock_unlock_fn (__libc_lock_t *name) -+{ -+ __libc_lock_unlock (*name); -+} -+libc_hidden_def (__libc_lock_unlock_fn); -+ -+void -+__libc_lock_unlock_recursive_fn (__libc_lock_recursive_t *name) -+{ -+ __libc_lock_unlock_recursive (*name); -+} -+libc_hidden_def (__libc_lock_unlock_recursive_fn); -+ -+#endif /*defined _LIBC && (!defined NOT_IN_libc || defined IS_IN_libpthread)*/ -Index: git/include/libc-symbols.h -=================================================================== ---- git.orig/include/libc-symbols.h 2014-08-29 20:00:47.144070587 -0700 -+++ git/include/libc-symbols.h 2014-08-29 20:01:15.248070587 -0700 -@@ -60,8 +60,11 @@ - /* Define these macros for the benefit of portable GNU code that wants to check - them. Of course, STDC_HEADERS is never false when building libc! */ - #define STDC_HEADERS 1 --#define HAVE_MBSTATE_T 1 --#define HAVE_MBSRTOWCS 1 -+ -+#if __OPTION_EGLIBC_LOCALE_CODE -+# define HAVE_MBSTATE_T 1 -+# define HAVE_MBSRTOWCS 1 -+#endif - #define HAVE_LIBINTL_H 1 - #define HAVE_WCTYPE_H 1 - #define HAVE_ISWCTYPE 1 -Index: git/crypt/crypt_common.c -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ git/crypt/crypt_common.c 2014-08-29 20:01:15.248070587 -0700 -@@ -0,0 +1,42 @@ -+/* -+ * crypt: crypt(3) implementation -+ * -+ * Copyright (C) 1991-2014 Free Software Foundation, Inc. -+ * -+ * This library is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU Lesser General Public -+ * License as published by the Free Software Foundation; either -+ * version 2.1 of the License, or (at your option) any later version. -+ * -+ * This 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 -+ * Lesser General Public License for more details. -+ * -+ * You should have received a copy of the GNU Lesser General Public -+ * License along with this library; see the file COPYING.LIB. If not, -+ * see <http://www.gnu.org/licenses/>. -+ * -+ * General Support routines -+ * -+ */ -+ -+#include "crypt-private.h" -+ -+/* Table with characters for base64 transformation. */ -+static const char b64t[64] = -+"./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; -+ -+void -+__b64_from_24bit (char **cp, int *buflen, -+ unsigned int b2, unsigned int b1, unsigned int b0, -+ int n) -+{ -+ unsigned int w = (b2 << 16) | (b1 << 8) | b0; -+ while (n-- > 0 && (*buflen) > 0) -+ { -+ *(*cp)++ = b64t[w & 0x3f]; -+ --(*buflen); -+ w >>= 6; -+ } -+} -Index: git/crypt/crypt_util.c -=================================================================== ---- git.orig/crypt/crypt_util.c 2014-08-29 20:00:43.028070587 -0700 -+++ git/crypt/crypt_util.c 2014-08-29 20:01:15.248070587 -0700 -@@ -242,10 +242,6 @@ - */ - static ufc_long efp[16][64][2]; - --/* Table with characters for base64 transformation. */ --static const char b64t[64] = --"./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; -- - /* - * For use by the old, non-reentrant routines - * (crypt/encrypt/setkey) -@@ -949,17 +945,3 @@ - { - __setkey_r(__key, &_ufc_foobar); - } -- --void --__b64_from_24bit (char **cp, int *buflen, -- unsigned int b2, unsigned int b1, unsigned int b0, -- int n) --{ -- unsigned int w = (b2 << 16) | (b1 << 8) | b0; -- while (n-- > 0 && (*buflen) > 0) -- { -- *(*cp)++ = b64t[w & 0x3f]; -- --(*buflen); -- w >>= 6; -- } --} -Index: git/sysdeps/arm/Makefile -=================================================================== ---- git.orig/sysdeps/arm/Makefile 2014-08-29 20:29:37.000000000 -0700 -+++ git/sysdeps/arm/Makefile 2014-08-29 20:31:09.904070587 -0700 -@@ -37,10 +37,13 @@ - # get offset to rtld_global._dl_hwcap - gen-as-const-headers += rtld-global-offsets.sym tlsdesc.sym - aeabi_constants = aeabi_lcsts aeabi_sighandlers aeabi_math --aeabi_routines = aeabi_assert aeabi_localeconv aeabi_errno_addr \ -+aeabi_routines = aeabi_assert aeabi_errno_addr \ - aeabi_mb_cur_max aeabi_atexit aeabi_memclr aeabi_memcpy \ - aeabi_memmove aeabi_memset \ - aeabi_read_tp libc-aeabi_read_tp -+ifeq (y,$(OPTION_EGLIBC_LOCALE_CODE)) -+aeabi_routines += aeabi_localeconv -+endif - - sysdep_routines += $(aeabi_constants) $(aeabi_routines) - static-only-routines += $(aeabi_constants) aeabi_read_tp diff --git a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/eglibc.patch b/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/eglibc.patch deleted file mode 100644 index fdfabc3a..00000000 --- a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/eglibc.patch +++ /dev/null @@ -1,602 +0,0 @@ -Instruction documents from eglibc - -Upstream-Status: Pending - -Index: git/EGLIBC.cross-building -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ git/EGLIBC.cross-building 2014-08-27 07:27:25.580070587 +0000 -@@ -0,0 +1,383 @@ -+ -*- mode: text -*- -+ -+ Cross-Compiling EGLIBC -+ Jim Blandy <jimb@codesourcery.com> -+ -+ -+Introduction -+ -+Most GNU tools have a simple build procedure: you run their -+'configure' script, and then you run 'make'. Unfortunately, the -+process of cross-compiling the GNU C library is quite a bit more -+involved: -+ -+1) Build a cross-compiler, with certain facilities disabled. -+ -+2) Configure the C library using the compiler you built in step 1). -+ Build a few of the C run-time object files, but not the rest of the -+ library. Install the library's header files and the run-time -+ object files, and create a dummy libc.so. -+ -+3) Build a second cross-compiler, using the header files and object -+ files you installed in step 2. -+ -+4) Configure, build, and install a fresh C library, using the compiler -+ built in step 3. -+ -+5) Build a third cross-compiler, based on the C library built in step 4. -+ -+The reason for this complexity is that, although GCC and the GNU C -+library are distributed separately, they are not actually independent -+of each other: GCC requires the C library's headers and some object -+files to compile its own libraries, while the C library depends on -+GCC's libraries. EGLIBC includes features and bug fixes to the stock -+GNU C library that simplify this process, but the fundamental -+interdependency stands. -+ -+In this document, we explain how to cross-compile an EGLIBC/GCC pair -+from source. Our intended audience is developers who are already -+familiar with the GNU toolchain and comfortable working with -+cross-development tools. While we do present a worked example to -+accompany the explanation, for clarity's sake we do not cover many of -+the options available to cross-toolchain users. -+ -+ -+Preparation -+ -+EGLIBC requires recent versions of the GNU binutils, GCC, and the -+Linux kernel. The web page <http://www.eglibc.org/prerequisites> -+documents the current requirements, and lists patches needed for -+certain target architectures. As of this writing, these build -+instructions have been tested with binutils 2.22.51, GCC 4.6.2, -+and Linux 3.1. -+ -+First, let's set some variables, to simplify later commands. We'll -+build EGLIBC and GCC for an ARM target, known to the Linux kernel -+as 'arm', and we'll do the build on an Intel x86_64 Linux box: -+ -+ $ build=x86_64-pc-linux-gnu -+ $ host=$build -+ $ target=arm-none-linux-gnueabi -+ $ linux_arch=arm -+ -+We're using the aforementioned versions of Binutils, GCC, and Linux: -+ -+ $ binutilsv=binutils-2.22.51 -+ $ gccv=gcc-4.6.2 -+ $ linuxv=linux-3.1 -+ -+We're carrying out the entire process under '~/cross-build', which -+contains unpacked source trees for binutils, gcc, and linux kernel, -+along with EGLIBC svn trunk (which can be checked-out with -+'svn co http://www.eglibc.org/svn/trunk eglibc'): -+ -+ $ top=$HOME/cross-build/$target -+ $ src=$HOME/cross-build/src -+ $ ls $src -+ binutils-2.22.51 eglibc gcc-4.6.2 linux-3.1 -+ -+We're going to place our build directories in a subdirectory 'obj', -+we'll install the cross-development toolchain in 'tools', and we'll -+place our sysroot (containing files to be installed on the target -+system) in 'sysroot': -+ -+ $ obj=$top/obj -+ $ tools=$top/tools -+ $ sysroot=$top/sysroot -+ -+ -+Binutils -+ -+Configuring and building binutils for the target is straightforward: -+ -+ $ mkdir -p $obj/binutils -+ $ cd $obj/binutils -+ $ $src/$binutilsv/configure \ -+ > --target=$target \ -+ > --prefix=$tools \ -+ > --with-sysroot=$sysroot -+ $ make -+ $ make install -+ -+ -+The First GCC -+ -+For our work, we need a cross-compiler targeting an ARM Linux -+system. However, that configuration includes the shared library -+'libgcc_s.so', which is compiled against the EGLIBC headers (which we -+haven't installed yet) and linked against 'libc.so' (which we haven't -+built yet). -+ -+Fortunately, there are configuration options for GCC which tell it not -+to build 'libgcc_s.so'. The '--without-headers' option is supposed to -+take care of this, but its implementation is incomplete, so you must -+also configure with the '--with-newlib' option. While '--with-newlib' -+appears to mean "Use the Newlib C library", its effect is to tell the -+GCC build machinery, "Don't assume there is a C library available." -+ -+We also need to disable some of the libraries that would normally be -+built along with GCC, and specify that only the compiler for the C -+language is needed. -+ -+So, we create a build directory, configure, make, and install. -+ -+ $ mkdir -p $obj/gcc1 -+ $ cd $obj/gcc1 -+ $ $src/$gccv/configure \ -+ > --target=$target \ -+ > --prefix=$tools \ -+ > --without-headers --with-newlib \ -+ > --disable-shared --disable-threads --disable-libssp \ -+ > --disable-libgomp --disable-libmudflap --disable-libquadmath \ -+ > --disable-decimal-float --disable-libffi \ -+ > --enable-languages=c -+ $ PATH=$tools/bin:$PATH make -+ $ PATH=$tools/bin:$PATH make install -+ -+ -+Linux Kernel Headers -+ -+To configure EGLIBC, we also need Linux kernel headers in place. -+Fortunately, the Linux makefiles have a target that installs them for -+us. Since the process does modify the source tree a bit, we make a -+copy first: -+ -+ $ cp -r $src/$linuxv $obj/linux -+ $ cd $obj/linux -+ -+Now we're ready to install the headers into the sysroot: -+ -+ $ PATH=$tools/bin:$PATH \ -+ > make headers_install \ -+ > ARCH=$linux_arch CROSS_COMPILE=$target- \ -+ > INSTALL_HDR_PATH=$sysroot/usr -+ -+ -+EGLIBC Headers and Preliminary Objects -+ -+Using the cross-compiler we've just built, we can now configure EGLIBC -+well enough to install the headers and build the object files that the -+full cross-compiler will need: -+ -+ $ mkdir -p $obj/eglibc-headers -+ $ cd $obj/eglibc-headers -+ $ BUILD_CC=gcc \ -+ > CC=$tools/bin/$target-gcc \ -+ > CXX=$tools/bin/$target-g++ \ -+ > AR=$tools/bin/$target-ar \ -+ > RANLIB=$tools/bin/$target-ranlib \ -+ > $src/eglibc/libc/configure \ -+ > --prefix=/usr \ -+ > --with-headers=$sysroot/usr/include \ -+ > --build=$build \ -+ > --host=$target \ -+ > --disable-profile --without-gd --without-cvs \ -+ > --enable-add-ons=nptl,libidn,../ports -+ -+The option '--prefix=/usr' may look strange, but you should never -+configure EGLIBC with a prefix other than '/usr': in various places, -+EGLIBC's build system checks whether the prefix is '/usr', and does -+special handling only if that is the case. Unless you use this -+prefix, you will get a sysroot that does not use the standard Linux -+directory layouts and cannot be used as a basis for the root -+filesystem on your target system compatibly with normal GLIBC -+installations. -+ -+The '--with-headers' option tells EGLIBC where the Linux headers have -+been installed. -+ -+The '--enable-add-ons=nptl,libidn,../ports' option tells EGLIBC to look -+for the listed glibc add-ons. Most notably the ports add-on (located -+just above the libc sources in the EGLIBC svn tree) is required to -+support ARM targets. -+ -+We can now use the 'install-headers' makefile target to install the -+headers: -+ -+ $ make install-headers install_root=$sysroot \ -+ > install-bootstrap-headers=yes -+ -+The 'install_root' variable indicates where the files should actually -+be installed; its value is treated as the parent of the '--prefix' -+directory we passed to the configure script, so the headers will go in -+'$sysroot/usr/include'. The 'install-bootstrap-headers' variable -+requests special handling for certain tricky header files. -+ -+Next, there are a few object files needed to link shared libraries, -+which we build and install by hand: -+ -+ $ mkdir -p $sysroot/usr/lib -+ $ make csu/subdir_lib -+ $ cp csu/crt1.o csu/crti.o csu/crtn.o $sysroot/usr/lib -+ -+Finally, 'libgcc_s.so' requires a 'libc.so' to link against. However, -+since we will never actually execute its code, it doesn't matter what -+it contains. So, treating '/dev/null' as a C source file, we produce -+a dummy 'libc.so' in one step: -+ -+ $ $tools/bin/$target-gcc -nostdlib -nostartfiles -shared -x c /dev/null \ -+ > -o $sysroot/usr/lib/libc.so -+ -+ -+The Second GCC -+ -+With the EGLIBC headers and selected object files installed, we can -+now build a GCC that is capable of compiling EGLIBC. We configure, -+build, and install the second GCC, again building only the C compiler, -+and avoiding libraries we won't use: -+ -+ $ mkdir -p $obj/gcc2 -+ $ cd $obj/gcc2 -+ $ $src/$gccv/configure \ -+ > --target=$target \ -+ > --prefix=$tools \ -+ > --with-sysroot=$sysroot \ -+ > --disable-libssp --disable-libgomp --disable-libmudflap \ -+ > --disable-libffi --disable-libquadmath \ -+ > --enable-languages=c -+ $ PATH=$tools/bin:$PATH make -+ $ PATH=$tools/bin:$PATH make install -+ -+ -+EGLIBC, Complete -+ -+With the second compiler built and installed, we're now ready for the -+full EGLIBC build: -+ -+ $ mkdir -p $obj/eglibc -+ $ cd $obj/eglibc -+ $ BUILD_CC=gcc \ -+ > CC=$tools/bin/$target-gcc \ -+ > CXX=$tools/bin/$target-g++ \ -+ > AR=$tools/bin/$target-ar \ -+ > RANLIB=$tools/bin/$target-ranlib \ -+ > $src/eglibc/libc/configure \ -+ > --prefix=/usr \ -+ > --with-headers=$sysroot/usr/include \ -+ > --with-kconfig=$obj/linux/scripts/kconfig \ -+ > --build=$build \ -+ > --host=$target \ -+ > --disable-profile --without-gd --without-cvs \ -+ > --enable-add-ons=nptl,libidn,../ports -+ -+Note the additional '--with-kconfig' option. This tells EGLIBC where to -+find the host config tools used by the kernel 'make config' and 'make -+menuconfig'. These tools can be re-used by EGLIBC for its own 'make -+*config' support, which will create 'option-groups.config' for you. -+But first make sure those tools have been built by running some -+dummy 'make *config' calls in the kernel directory: -+ -+ $ cd $obj/linux -+ $ PATH=$tools/bin:$PATH make config \ -+ > ARCH=$linux_arch CROSS_COMPILE=$target- \ -+ $ PATH=$tools/bin:$PATH make menuconfig \ -+ > ARCH=$linux_arch CROSS_COMPILE=$target- \ -+ -+Now we can configure and build the full EGLIBC: -+ -+ $ cd $obj/eglibc -+ $ PATH=$tools/bin:$PATH make defconfig -+ $ PATH=$tools/bin:$PATH make menuconfig -+ $ PATH=$tools/bin:$PATH make -+ $ PATH=$tools/bin:$PATH make install install_root=$sysroot -+ -+At this point, we have a complete EGLIBC installation in '$sysroot', -+with header files, library files, and most of the C runtime startup -+files in place. -+ -+ -+The Third GCC -+ -+Finally, we recompile GCC against this full installation, enabling -+whatever languages and libraries we would like to use: -+ -+ $ mkdir -p $obj/gcc3 -+ $ cd $obj/gcc3 -+ $ $src/$gccv/configure \ -+ > --target=$target \ -+ > --prefix=$tools \ -+ > --with-sysroot=$sysroot \ -+ > --enable-__cxa_atexit \ -+ > --disable-libssp --disable-libgomp --disable-libmudflap \ -+ > --enable-languages=c,c++ -+ $ PATH=$tools/bin:$PATH make -+ $ PATH=$tools/bin:$PATH make install -+ -+The '--enable-__cxa_atexit' option tells GCC what sort of C++ -+destructor support to expect from the C library; it's required with -+EGLIBC. -+ -+And since GCC's installation process isn't designed to help construct -+sysroot trees, we must manually copy certain libraries into place in -+the sysroot. -+ -+ $ cp -d $tools/$target/lib/libgcc_s.so* $sysroot/lib -+ $ cp -d $tools/$target/lib/libstdc++.so* $sysroot/usr/lib -+ -+ -+Trying Things Out -+ -+At this point, '$tools' contains a cross toolchain ready to use -+the EGLIBC installation in '$sysroot': -+ -+ $ cat > hello.c <<EOF -+ > #include <stdio.h> -+ > int -+ > main (int argc, char **argv) -+ > { -+ > puts ("Hello, world!"); -+ > return 0; -+ > } -+ > EOF -+ $ $tools/bin/$target-gcc -Wall hello.c -o hello -+ $ cat > c++-hello.cc <<EOF -+ > #include <iostream> -+ > int -+ > main (int argc, char **argv) -+ > { -+ > std::cout << "Hello, C++ world!" << std::endl; -+ > return 0; -+ > } -+ > EOF -+ $ $tools/bin/$target-g++ -Wall c++-hello.cc -o c++-hello -+ -+ -+We can use 'readelf' to verify that these are indeed executables for -+our target, using our dynamic linker: -+ -+ $ $tools/bin/$target-readelf -hl hello -+ ELF Header: -+ ... -+ Type: EXEC (Executable file) -+ Machine: ARM -+ -+ ... -+ Program Headers: -+ Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align -+ PHDR 0x000034 0x10000034 0x10000034 0x00100 0x00100 R E 0x4 -+ INTERP 0x000134 0x00008134 0x00008134 0x00013 0x00013 R 0x1 -+ [Requesting program interpreter: /lib/ld-linux.so.3] -+ LOAD 0x000000 0x00008000 0x00008000 0x0042c 0x0042c R E 0x8000 -+ ... -+ -+Looking at the dynamic section of the installed 'libgcc_s.so', we see -+that the 'NEEDED' entry for the C library does include the '.6' -+suffix, indicating that was linked against our fully build EGLIBC, and -+not our dummy 'libc.so': -+ -+ $ $tools/bin/$target-readelf -d $sysroot/lib/libgcc_s.so.1 -+ Dynamic section at offset 0x1083c contains 24 entries: -+ Tag Type Name/Value -+ 0x00000001 (NEEDED) Shared library: [libc.so.6] -+ 0x0000000e (SONAME) Library soname: [libgcc_s.so.1] -+ ... -+ -+ -+And on the target machine, we can run our programs: -+ -+ $ $sysroot/lib/ld.so.1 --library-path $sysroot/lib:$sysroot/usr/lib \ -+ > ./hello -+ Hello, world! -+ $ $sysroot/lib/ld.so.1 --library-path $sysroot/lib:$sysroot/usr/lib \ -+ > ./c++-hello -+ Hello, C++ world! -Index: git/EGLIBC.cross-testing -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ git/EGLIBC.cross-testing 2014-08-27 07:24:41.532070587 +0000 -@@ -0,0 +1,205 @@ -+ -*- mode: text -*- -+ -+ Cross-Testing With EGLIBC -+ Jim Blandy <jimb@codesourcery.com> -+ -+ -+Introduction -+ -+Developers writing software for embedded systems often use a desktop -+or other similarly capable computer for development, but need to run -+tests on the embedded system, or perhaps on a simulator. When -+configured for cross-compilation, the stock GNU C library simply -+disables running tests altogether: the command 'make tests' builds -+test programs, but does not run them. EGLIBC, however, provides -+facilities for compiling tests and generating data files on the build -+system, but running the test programs themselves on a remote system or -+simulator. -+ -+ -+Test environment requirements -+ -+The test environment must meet certain conditions for EGLIBC's -+cross-testing facilities to work: -+ -+- Shared filesystems. The 'build' system, on which you configure and -+ compile EGLIBC, and the 'host' system, on which you intend to run -+ EGLIBC, must share a filesystem containing the EGLIBC build and -+ source trees. Files must appear at the same paths on both systems. -+ -+- Remote-shell like invocation. There must be a way to run a program -+ on the host system from the build system, passing it properly quoted -+ command-line arguments, setting environment variables, and -+ inheriting the caller's standard input and output. -+ -+ -+Usage -+ -+To use EGLIBC's cross-testing support, provide values for the -+following Make variables when you invoke 'make': -+ -+- cross-test-wrapper -+ -+ This should be the name of the cross-testing wrapper command, along -+ with any arguments. -+ -+- cross-localedef -+ -+ This should be the name of a cross-capable localedef program, like -+ that included in the EGLIBC 'localedef' module, along with any -+ arguments needed. -+ -+These are each explained in detail below. -+ -+ -+The Cross-Testing Wrapper -+ -+To run test programs reliably, the stock GNU C library takes care to -+ensure that test programs use the newly compiled dynamic linker and -+shared libraries, and never the host system's installed libraries. To -+accomplish this, it runs the tests by explicitly invoking the dynamic -+linker from the build tree, passing it a list of build tree -+directories to search for shared libraries, followed by the name of -+the executable to run and its arguments. -+ -+For example, where one might normally run a test program like this: -+ -+ $ ./tst-foo arg1 arg2 -+ -+the GNU C library might run that program like this: -+ -+ $ $objdir/elf/ld-linux.so.3 --library-path $objdir \ -+ ./tst-foo arg1 arg2 -+ -+(where $objdir is the path to the top of the build tree, and the -+trailing backslash indicates a continuation of the command). In other -+words, each test program invocation is 'wrapped up' inside an explicit -+invocation of the dynamic linker, which must itself execute the test -+program, having loaded shared libraries from the appropriate -+directories. -+ -+To support cross-testing, EGLIBC allows the developer to optionally -+set the 'cross-test-wrapper' Make variable to another wrapper command, -+to which it passes the entire dynamic linker invocation shown above as -+arguments. For example, if the developer supplies a wrapper of -+'my-wrapper hostname', then EGLIBC would run the test above as -+follows: -+ -+ $ my-wrapper hostname \ -+ $objdir/elf/ld-linux.so.3 --library-path $objdir \ -+ ./tst-foo arg1 arg2 -+ -+The 'my-wrapper' command is responsible for executing the command -+given on the host system. -+ -+Since tests are run in varying directories, the wrapper should either -+be in your command search path, or 'cross-test-wrapper' should give an -+absolute path for the wrapper. -+ -+The wrapper must meet several requirements: -+ -+- It must preserve the current directory. As explained above, the -+ build directory tree must be visible on both the build and host -+ systems, at the same path. The test wrapper must ensure that the -+ current directory it inherits is also inherited by the dynamic -+ linker (and thus the test program itself). -+ -+- It must preserve environment variables' values. Many EGLIBC tests -+ set environment variables for test runs; in native testing, it -+ invokes programs like this: -+ -+ $ GCONV_PATH=$objdir/iconvdata \ -+ $objdir/elf/ld-linux.so.3 --library-path $objdir \ -+ ./tst-foo arg1 arg2 -+ -+ With the cross-testing wrapper, that invocation becomes: -+ -+ $ GCONV_PATH=$objdir/iconvdata \ -+ my-wrapper hostname \ -+ $objdir/elf/ld-linux.so.3 --library-path $objdir \ -+ ./tst-foo arg1 arg2 -+ -+ Here, 'my-wrapper' must ensure that the value it sees for -+ 'GCONV_PATH' will be seen by the dynamic linker, and thus 'tst-foo' -+ itself. (The wrapper supplied with GLIBC simply preserves the -+ values of *all* enviroment variables, with a fixed set of -+ exceptions.) -+ -+ If your wrapper is a shell script, take care to correctly propagate -+ environment variables whose values contain spaces and shell -+ metacharacters. -+ -+- It must pass the command's arguments, unmodified. The arguments -+ seen by the test program should be exactly those seen by the wrapper -+ (after whatever arguments are given to the wrapper itself). The -+ EGLIBC test framework performs all needed shell word splitting and -+ expansion (wildcard expansion, parameter substitution, and so on) -+ before invoking the wrapper; further expansion may break the tests. -+ -+ -+The 'cross-test-ssh.sh' script -+ -+If you want to use 'ssh' (or something sufficiently similar) to run -+test programs on your host system, EGLIBC includes a shell script, -+'scripts/cross-test-ssh.sh', which you can use as your wrapper -+command. This script takes care of setting the test command's current -+directory, propagating environment variable values, and carrying -+command-line arguments, all across an 'ssh' connection. You may even -+supply an alternative to 'ssh' on the command line, if needed. -+ -+For more details, pass 'cross-test-ssh.sh' the '--help' option. -+ -+ -+The Cross-Compiling Locale Definition Command -+ -+Some EGLIBC tests rely on locales generated especially for the test -+process. In a native configuration, these tests simply run the -+'localedef' command built by the normal EGLIBC build process, -+'locale/localedef', to process and install their locales. However, in -+a cross-compiling configuration, this 'localedef' is built for the -+host system, not the build system, and since it requires quite a bit -+of memory to run (we have seen it fail on systems with 64MiB of -+memory), it may not be practical to run it on the host system. -+ -+If set, EGLIBC uses the 'cross-localedef' Make variable as the command -+to run on the build system to process and install locales. The -+localedef program built from the EGLIBC 'localedef' module is -+suitable. -+ -+The value of 'cross-localedef' may also include command-line arguments -+to be passed to the program; if you are using EGLIBC's 'localedef', -+you may include endianness and 'uint32_t' alignment arguments here. -+ -+ -+Example -+ -+In developing EGLIBC's cross-testing facility, we invoked 'make' with -+the following script: -+ -+ #!/bin/sh -+ -+ srcdir=... -+ test_hostname=... -+ localedefdir=... -+ cross_gxx=...-g++ -+ -+ wrapper="$srcdir/scripts/cross-test-ssh.sh $test_hostname" -+ localedef="$localedefdir/localedef --little-endian --uint32-align=4" -+ -+ make cross-test-wrapper="$wrapper" \ -+ cross-localedef="$localedef" \ -+ CXX="$cross_gxx" \ -+ "$@" -+ -+ -+Other Cross-Testing Concerns -+ -+Here are notes on some other issues which you may encounter in running -+the EGLIBC tests in a cross-compiling environment: -+ -+- Some tests require a C++ cross-compiler; you should set the 'CXX' -+ Make variable to the name of an appropriate cross-compiler. -+ -+- Some tests require access to libstdc++.so.6 and libgcc_s.so.1; we -+ simply place copies of these libraries in the top EGLIBC build -+ directory. diff --git a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/etc/ld.so.conf b/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/etc/ld.so.conf deleted file mode 100644 index e69de29b..00000000 --- a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/etc/ld.so.conf +++ /dev/null diff --git a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/fix-tibetian-locales.patch b/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/fix-tibetian-locales.patch deleted file mode 100644 index 9ab9fdcf..00000000 --- a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/fix-tibetian-locales.patch +++ /dev/null @@ -1,38 +0,0 @@ -cross localedef fails to compile these locales because name_fmt field is empty -It is not acceptable for cross localedef and it errors out - -LC_NAME: field `name_fmt' not defined - -We therefore give a dummy string to the format, the real fix needs some native -tibetian person to define proper name_fmt - -Upstream-Status: Pending - -Signed-off-by: Khem Raj <raj.khem@gmail.com> - -Index: git/localedata/locales/bo_CN -=================================================================== ---- git.orig/localedata/locales/bo_CN 2014-08-29 10:35:22.464070587 -0700 -+++ git/localedata/locales/bo_CN 2014-08-29 10:35:22.456070587 -0700 -@@ -146,7 +146,7 @@ - LC_NAME - % FIXME - --name_fmt "" -+name_fmt "FIXME" - % name_gen "FIXME" - % name_miss "FIXME" - % name_mr "FIXME" -Index: git/localedata/locales/bo_IN -=================================================================== ---- git.orig/localedata/locales/bo_IN 2014-08-29 10:35:22.464070587 -0700 -+++ git/localedata/locales/bo_IN 2014-08-29 10:35:22.456070587 -0700 -@@ -71,7 +71,7 @@ - - LC_NAME - % FIXME --name_fmt "" -+name_fmt "FIXME" - % name_gen "FIXME" - % name_miss "FIXME" - % name_mr "FIXME" diff --git a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/fix_am_rootsbindir.patch b/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/fix_am_rootsbindir.patch deleted file mode 100644 index 668e8bf6..00000000 --- a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/fix_am_rootsbindir.patch +++ /dev/null @@ -1,29 +0,0 @@ -sysdeps/gnu/configure.ac: handle correctly $libc_cv_rootsbindir - -Upstream-Status:Pending -Signed-off-by: Matthieu Crapet <Matthieu.Crapet@ingenico.com> - -Index: git/sysdeps/gnu/configure -=================================================================== ---- git.orig/sysdeps/gnu/configure 2014-08-27 07:24:38.572070587 +0000 -+++ git/sysdeps/gnu/configure 2014-08-27 07:24:41.308070587 +0000 -@@ -32,6 +32,6 @@ - else - libc_cv_localstatedir=$localstatedir - fi -- libc_cv_rootsbindir=/sbin -+ test -n "$libc_cv_rootsbindir" || libc_cv_rootsbindir=/sbin - ;; - esac -Index: git/sysdeps/gnu/configure.ac -=================================================================== ---- git.orig/sysdeps/gnu/configure.ac 2014-08-27 07:24:38.572070587 +0000 -+++ git/sysdeps/gnu/configure.ac 2014-08-27 07:24:41.308070587 +0000 -@@ -21,6 +21,6 @@ - else - libc_cv_localstatedir=$localstatedir - fi -- libc_cv_rootsbindir=/sbin -+ test -n "$libc_cv_rootsbindir" || libc_cv_rootsbindir=/sbin - ;; - esac diff --git a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/fsl-ppc-no-fsqrt.patch b/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/fsl-ppc-no-fsqrt.patch deleted file mode 100644 index f88eaf44..00000000 --- a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/fsl-ppc-no-fsqrt.patch +++ /dev/null @@ -1,100 +0,0 @@ -Create e5500 specific math_private.h and let it include when compiling for e5500/64bit core -We prefefine __CPU_HAS_FSQRT to 0 and then in general ppc64 math_private.h we check if its -already defined before redefining it. This way we can ensure that on e5500 builds it wont -emit fsqrt intructions - --Khem - -Upstream-Status: Pending - -Index: git/sysdeps/powerpc/fpu/math_private.h -=================================================================== ---- git.orig/sysdeps/powerpc/fpu/math_private.h 2014-08-29 10:31:30.224070587 -0700 -+++ git/sysdeps/powerpc/fpu/math_private.h 2014-08-29 10:31:30.212070587 -0700 -@@ -25,10 +25,12 @@ - #include <fenv_private.h> - #include_next <math_private.h> - --# if __WORDSIZE == 64 || defined _ARCH_PWR4 --# define __CPU_HAS_FSQRT 1 --# else --# define __CPU_HAS_FSQRT ((GLRO(dl_hwcap) & PPC_FEATURE_64) != 0) -+# ifndef __CPU_HAS_FSQRT -+# if __WORDSIZE == 64 || defined _ARCH_PWR4 -+# define __CPU_HAS_FSQRT 1 -+# else -+# define __CPU_HAS_FSQRT ((GLRO(dl_hwcap) & PPC_FEATURE_64) != 0) -+# endif - # endif - - extern double __slow_ieee754_sqrt (double); -Index: git/sysdeps/powerpc/powerpc64/e5500/fpu/math_private.h -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ git/sysdeps/powerpc/powerpc64/e5500/fpu/math_private.h 2014-08-29 10:31:30.212070587 -0700 -@@ -0,0 +1,9 @@ -+#ifndef _E5500_MATH_PRIVATE_H_ -+#define _E5500_MATH_PRIVATE_H_ 1 -+/* E5500 core FPU does not implement -+ fsqrt */ -+ -+#define __CPU_HAS_FSQRT 0 -+#include_next <math_private.h> -+ -+#endif /* _E5500_MATH_PRIVATE_H_ */ -Index: git/sysdeps/powerpc/powerpc64/e6500/fpu/math_private.h -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ git/sysdeps/powerpc/powerpc64/e6500/fpu/math_private.h 2014-08-29 10:31:30.212070587 -0700 -@@ -0,0 +1,9 @@ -+#ifndef _E6500_MATH_PRIVATE_H_ -+#define _E6500_MATH_PRIVATE_H_ 1 -+/* E6500 core FPU does not implement -+ fsqrt */ -+ -+#define __CPU_HAS_FSQRT 0 -+#include_next <math_private.h> -+ -+#endif /* _E6500_MATH_PRIVATE_H_ */ -Index: git/sysdeps/powerpc/powerpc32/e500mc/fpu/math_private.h -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ git/sysdeps/powerpc/powerpc32/e500mc/fpu/math_private.h 2014-08-29 10:31:30.212070587 -0700 -@@ -0,0 +1,9 @@ -+#ifndef _E500MC_MATH_PRIVATE_H_ -+#define _E500MC_MATH_PRIVATE_H_ 1 -+/* E500MC core FPU does not implement -+ fsqrt */ -+ -+#define __CPU_HAS_FSQRT 0 -+#include_next <math_private.h> -+ -+#endif /* _E500MC_MATH_PRIVATE_H_ */ -Index: git/sysdeps/powerpc/powerpc32/e5500/fpu/math_private.h -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ git/sysdeps/powerpc/powerpc32/e5500/fpu/math_private.h 2014-08-29 10:31:30.216070587 -0700 -@@ -0,0 +1,9 @@ -+#ifndef _E5500_MATH_PRIVATE_H_ -+#define _E5500_MATH_PRIVATE_H_ 1 -+/* E5500 core FPU does not implement -+ fsqrt */ -+ -+#define __CPU_HAS_FSQRT 0 -+#include_next <math_private.h> -+ -+#endif /* _E5500_MATH_PRIVATE_H_ */ -Index: git/sysdeps/powerpc/powerpc32/e6500/fpu/math_private.h -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ git/sysdeps/powerpc/powerpc32/e6500/fpu/math_private.h 2014-08-29 10:31:30.216070587 -0700 -@@ -0,0 +1,9 @@ -+#ifndef _E6500_MATH_PRIVATE_H_ -+#define _E6500_MATH_PRIVATE_H_ 1 -+/* E6500 core FPU does not implement -+ fsqrt */ -+ -+#define __CPU_HAS_FSQRT 0 -+#include_next <math_private.h> -+ -+#endif /* _E6500_MATH_PRIVATE_H_ */ diff --git a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/generate-supported.mk b/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/generate-supported.mk deleted file mode 100644 index d2a28c2d..00000000 --- a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/generate-supported.mk +++ /dev/null @@ -1,11 +0,0 @@ -#!/usr/bin/make - -include $(IN) - -all: - rm -f $(OUT) - touch $(OUT) - for locale in $(SUPPORTED-LOCALES); do \ - [ $$locale = true ] && continue; \ - echo $$locale | sed 's,/, ,' >> $(OUT); \ - done diff --git a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/glibc.fix_sqrt2.patch b/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/glibc.fix_sqrt2.patch deleted file mode 100644 index f5ed1bfe..00000000 --- a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/glibc.fix_sqrt2.patch +++ /dev/null @@ -1,1516 +0,0 @@ -Signed-of-by: Edmar Wienskoski <edmar@freescale.com> -Upstream-Status: Pending - -Index: git/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ git/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c 2014-08-29 10:34:07.768070587 -0700 -@@ -0,0 +1,134 @@ -+/* Double-precision floating point square root. -+ Copyright (C) 2010 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 Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 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 -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, write to the Free -+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -+ 02111-1307 USA. */ -+ -+#include <math.h> -+#include <math_private.h> -+#include <fenv_libc.h> -+#include <inttypes.h> -+ -+#include <sysdep.h> -+#include <ldsodefs.h> -+ -+static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 }; -+static const ieee_float_shape_type a_inf = {.word = 0x7f800000 }; -+static const float two108 = 3.245185536584267269e+32; -+static const float twom54 = 5.551115123125782702e-17; -+static const float half = 0.5; -+ -+/* The method is based on the descriptions in: -+ -+ _The Handbook of Floating-Pointer Arithmetic_ by Muller et al., chapter 5; -+ _IA-64 and Elementary Functions: Speed and Precision_ by Markstein, chapter 9 -+ -+ We find the actual square root and half of its reciprocal -+ simultaneously. */ -+ -+#ifdef __STDC__ -+double -+__ieee754_sqrt (double b) -+#else -+double -+__ieee754_sqrt (b) -+ double b; -+#endif -+{ -+ if (__builtin_expect (b > 0, 1)) -+ { -+ double y, g, h, d, r; -+ ieee_double_shape_type u; -+ -+ if (__builtin_expect (b != a_inf.value, 1)) -+ { -+ fenv_t fe; -+ -+ fe = fegetenv_register (); -+ -+ u.value = b; -+ -+ relax_fenv_state (); -+ -+ __asm__ ("frsqrte %[estimate], %[x]\n" -+ : [estimate] "=f" (y) : [x] "f" (b)); -+ -+ /* Following Muller et al, page 168, equation 5.20. -+ -+ h goes to 1/(2*sqrt(b)) -+ g goes to sqrt(b). -+ -+ We need three iterations to get within 1ulp. */ -+ -+ /* Indicate that these can be performed prior to the branch. GCC -+ insists on sinking them below the branch, however; it seems like -+ they'd be better before the branch so that we can cover any latency -+ from storing the argument and loading its high word. Oh well. */ -+ -+ g = b * y; -+ h = 0.5 * y; -+ -+ /* Handle small numbers by scaling. */ -+ if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0)) -+ return __ieee754_sqrt (b * two108) * twom54; -+ -+#define FMADD(a_, c_, b_) \ -+ ({ double __r; \ -+ __asm__ ("fmadd %[r], %[a], %[c], %[b]\n" \ -+ : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ -+ __r;}) -+#define FNMSUB(a_, c_, b_) \ -+ ({ double __r; \ -+ __asm__ ("fnmsub %[r], %[a], %[c], %[b]\n" \ -+ : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ -+ __r;}) -+ -+ r = FNMSUB (g, h, half); -+ g = FMADD (g, r, g); -+ h = FMADD (h, r, h); -+ -+ r = FNMSUB (g, h, half); -+ g = FMADD (g, r, g); -+ h = FMADD (h, r, h); -+ -+ r = FNMSUB (g, h, half); -+ g = FMADD (g, r, g); -+ h = FMADD (h, r, h); -+ -+ /* g is now +/- 1ulp, or exactly equal to, the square root of b. */ -+ -+ /* Final refinement. */ -+ d = FNMSUB (g, g, b); -+ -+ fesetenv_register (fe); -+ return FMADD (d, h, g); -+ } -+ } -+ else if (b < 0) -+ { -+ /* For some reason, some PowerPC32 processors don't implement -+ FE_INVALID_SQRT. */ -+#ifdef FE_INVALID_SQRT -+ feraiseexcept (FE_INVALID_SQRT); -+ -+ fenv_union_t u = { .fenv = fegetenv_register () }; -+ if ((u.l & FE_INVALID) == 0) -+#endif -+ feraiseexcept (FE_INVALID); -+ b = a_nan.value; -+ } -+ return f_wash (b); -+} -Index: git/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ git/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c 2014-08-29 10:34:07.768070587 -0700 -@@ -0,0 +1,101 @@ -+/* Single-precision floating point square root. -+ Copyright (C) 2010 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 Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 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 -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, write to the Free -+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -+ 02111-1307 USA. */ -+ -+#include <math.h> -+#include <math_private.h> -+#include <fenv_libc.h> -+#include <inttypes.h> -+ -+#include <sysdep.h> -+#include <ldsodefs.h> -+ -+static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 }; -+static const ieee_float_shape_type a_inf = {.word = 0x7f800000 }; -+static const float threehalf = 1.5; -+ -+/* The method is based on the descriptions in: -+ -+ _The Handbook of Floating-Pointer Arithmetic_ by Muller et al., chapter 5; -+ _IA-64 and Elementary Functions: Speed and Precision_ by Markstein, chapter 9 -+ -+ We find the reciprocal square root and use that to compute the actual -+ square root. */ -+ -+#ifdef __STDC__ -+float -+__ieee754_sqrtf (float b) -+#else -+float -+__ieee754_sqrtf (b) -+ float b; -+#endif -+{ -+ if (__builtin_expect (b > 0, 1)) -+ { -+#define FMSUB(a_, c_, b_) \ -+ ({ double __r; \ -+ __asm__ ("fmsub %[r], %[a], %[c], %[b]\n" \ -+ : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ -+ __r;}) -+#define FNMSUB(a_, c_, b_) \ -+ ({ double __r; \ -+ __asm__ ("fnmsub %[r], %[a], %[c], %[b]\n" \ -+ : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ -+ __r;}) -+ -+ if (__builtin_expect (b != a_inf.value, 1)) -+ { -+ double y, x; -+ fenv_t fe; -+ -+ fe = fegetenv_register (); -+ -+ relax_fenv_state (); -+ -+ /* Compute y = 1.5 * b - b. Uses fewer constants than y = 0.5 * b. */ -+ y = FMSUB (threehalf, b, b); -+ -+ /* Initial estimate. */ -+ __asm__ ("frsqrte %[x], %[b]\n" : [x] "=f" (x) : [b] "f" (b)); -+ -+ /* Iterate. x_{n+1} = x_n * (1.5 - y * (x_n * x_n)). */ -+ x = x * FNMSUB (y, x * x, threehalf); -+ x = x * FNMSUB (y, x * x, threehalf); -+ x = x * FNMSUB (y, x * x, threehalf); -+ -+ /* All done. */ -+ fesetenv_register (fe); -+ return x * b; -+ } -+ } -+ else if (b < 0) -+ { -+ /* For some reason, some PowerPC32 processors don't implement -+ FE_INVALID_SQRT. */ -+#ifdef FE_INVALID_SQRT -+ feraiseexcept (FE_INVALID_SQRT); -+ -+ fenv_union_t u = { .fenv = fegetenv_register () }; -+ if ((u.l & FE_INVALID) == 0) -+#endif -+ feraiseexcept (FE_INVALID); -+ b = a_nan.value; -+ } -+ return f_washf (b); -+} -Index: git/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ git/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c 2014-08-29 10:34:07.768070587 -0700 -@@ -0,0 +1,134 @@ -+/* Double-precision floating point square root. -+ Copyright (C) 2010 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 Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 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 -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, write to the Free -+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -+ 02111-1307 USA. */ -+ -+#include <math.h> -+#include <math_private.h> -+#include <fenv_libc.h> -+#include <inttypes.h> -+ -+#include <sysdep.h> -+#include <ldsodefs.h> -+ -+static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 }; -+static const ieee_float_shape_type a_inf = {.word = 0x7f800000 }; -+static const float two108 = 3.245185536584267269e+32; -+static const float twom54 = 5.551115123125782702e-17; -+static const float half = 0.5; -+ -+/* The method is based on the descriptions in: -+ -+ _The Handbook of Floating-Pointer Arithmetic_ by Muller et al., chapter 5; -+ _IA-64 and Elementary Functions: Speed and Precision_ by Markstein, chapter 9 -+ -+ We find the actual square root and half of its reciprocal -+ simultaneously. */ -+ -+#ifdef __STDC__ -+double -+__ieee754_sqrt (double b) -+#else -+double -+__ieee754_sqrt (b) -+ double b; -+#endif -+{ -+ if (__builtin_expect (b > 0, 1)) -+ { -+ double y, g, h, d, r; -+ ieee_double_shape_type u; -+ -+ if (__builtin_expect (b != a_inf.value, 1)) -+ { -+ fenv_t fe; -+ -+ fe = fegetenv_register (); -+ -+ u.value = b; -+ -+ relax_fenv_state (); -+ -+ __asm__ ("frsqrte %[estimate], %[x]\n" -+ : [estimate] "=f" (y) : [x] "f" (b)); -+ -+ /* Following Muller et al, page 168, equation 5.20. -+ -+ h goes to 1/(2*sqrt(b)) -+ g goes to sqrt(b). -+ -+ We need three iterations to get within 1ulp. */ -+ -+ /* Indicate that these can be performed prior to the branch. GCC -+ insists on sinking them below the branch, however; it seems like -+ they'd be better before the branch so that we can cover any latency -+ from storing the argument and loading its high word. Oh well. */ -+ -+ g = b * y; -+ h = 0.5 * y; -+ -+ /* Handle small numbers by scaling. */ -+ if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0)) -+ return __ieee754_sqrt (b * two108) * twom54; -+ -+#define FMADD(a_, c_, b_) \ -+ ({ double __r; \ -+ __asm__ ("fmadd %[r], %[a], %[c], %[b]\n" \ -+ : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ -+ __r;}) -+#define FNMSUB(a_, c_, b_) \ -+ ({ double __r; \ -+ __asm__ ("fnmsub %[r], %[a], %[c], %[b]\n" \ -+ : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ -+ __r;}) -+ -+ r = FNMSUB (g, h, half); -+ g = FMADD (g, r, g); -+ h = FMADD (h, r, h); -+ -+ r = FNMSUB (g, h, half); -+ g = FMADD (g, r, g); -+ h = FMADD (h, r, h); -+ -+ r = FNMSUB (g, h, half); -+ g = FMADD (g, r, g); -+ h = FMADD (h, r, h); -+ -+ /* g is now +/- 1ulp, or exactly equal to, the square root of b. */ -+ -+ /* Final refinement. */ -+ d = FNMSUB (g, g, b); -+ -+ fesetenv_register (fe); -+ return FMADD (d, h, g); -+ } -+ } -+ else if (b < 0) -+ { -+ /* For some reason, some PowerPC32 processors don't implement -+ FE_INVALID_SQRT. */ -+#ifdef FE_INVALID_SQRT -+ feraiseexcept (FE_INVALID_SQRT); -+ -+ fenv_union_t u = { .fenv = fegetenv_register () }; -+ if ((u.l & FE_INVALID) == 0) -+#endif -+ feraiseexcept (FE_INVALID); -+ b = a_nan.value; -+ } -+ return f_wash (b); -+} -Index: git/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrtf.c -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ git/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrtf.c 2014-08-29 10:34:07.772070587 -0700 -@@ -0,0 +1,101 @@ -+/* Single-precision floating point square root. -+ Copyright (C) 2010 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 Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 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 -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, write to the Free -+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -+ 02111-1307 USA. */ -+ -+#include <math.h> -+#include <math_private.h> -+#include <fenv_libc.h> -+#include <inttypes.h> -+ -+#include <sysdep.h> -+#include <ldsodefs.h> -+ -+static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 }; -+static const ieee_float_shape_type a_inf = {.word = 0x7f800000 }; -+static const float threehalf = 1.5; -+ -+/* The method is based on the descriptions in: -+ -+ _The Handbook of Floating-Pointer Arithmetic_ by Muller et al., chapter 5; -+ _IA-64 and Elementary Functions: Speed and Precision_ by Markstein, chapter 9 -+ -+ We find the reciprocal square root and use that to compute the actual -+ square root. */ -+ -+#ifdef __STDC__ -+float -+__ieee754_sqrtf (float b) -+#else -+float -+__ieee754_sqrtf (b) -+ float b; -+#endif -+{ -+ if (__builtin_expect (b > 0, 1)) -+ { -+#define FMSUB(a_, c_, b_) \ -+ ({ double __r; \ -+ __asm__ ("fmsub %[r], %[a], %[c], %[b]\n" \ -+ : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ -+ __r;}) -+#define FNMSUB(a_, c_, b_) \ -+ ({ double __r; \ -+ __asm__ ("fnmsub %[r], %[a], %[c], %[b]\n" \ -+ : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ -+ __r;}) -+ -+ if (__builtin_expect (b != a_inf.value, 1)) -+ { -+ double y, x; -+ fenv_t fe; -+ -+ fe = fegetenv_register (); -+ -+ relax_fenv_state (); -+ -+ /* Compute y = 1.5 * b - b. Uses fewer constants than y = 0.5 * b. */ -+ y = FMSUB (threehalf, b, b); -+ -+ /* Initial estimate. */ -+ __asm__ ("frsqrte %[x], %[b]\n" : [x] "=f" (x) : [b] "f" (b)); -+ -+ /* Iterate. x_{n+1} = x_n * (1.5 - y * (x_n * x_n)). */ -+ x = x * FNMSUB (y, x * x, threehalf); -+ x = x * FNMSUB (y, x * x, threehalf); -+ x = x * FNMSUB (y, x * x, threehalf); -+ -+ /* All done. */ -+ fesetenv_register (fe); -+ return x * b; -+ } -+ } -+ else if (b < 0) -+ { -+ /* For some reason, some PowerPC32 processors don't implement -+ FE_INVALID_SQRT. */ -+#ifdef FE_INVALID_SQRT -+ feraiseexcept (FE_INVALID_SQRT); -+ -+ fenv_union_t u = { .fenv = fegetenv_register () }; -+ if ((u.l & FE_INVALID) == 0) -+#endif -+ feraiseexcept (FE_INVALID); -+ b = a_nan.value; -+ } -+ return f_washf (b); -+} -Index: git/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrt.c -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ git/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrt.c 2014-08-29 10:34:07.772070587 -0700 -@@ -0,0 +1,134 @@ -+/* Double-precision floating point square root. -+ Copyright (C) 2010 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 Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 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 -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, write to the Free -+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -+ 02111-1307 USA. */ -+ -+#include <math.h> -+#include <math_private.h> -+#include <fenv_libc.h> -+#include <inttypes.h> -+ -+#include <sysdep.h> -+#include <ldsodefs.h> -+ -+static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 }; -+static const ieee_float_shape_type a_inf = {.word = 0x7f800000 }; -+static const float two108 = 3.245185536584267269e+32; -+static const float twom54 = 5.551115123125782702e-17; -+static const float half = 0.5; -+ -+/* The method is based on the descriptions in: -+ -+ _The Handbook of Floating-Pointer Arithmetic_ by Muller et al., chapter 5; -+ _IA-64 and Elementary Functions: Speed and Precision_ by Markstein, chapter 9 -+ -+ We find the actual square root and half of its reciprocal -+ simultaneously. */ -+ -+#ifdef __STDC__ -+double -+__ieee754_sqrt (double b) -+#else -+double -+__ieee754_sqrt (b) -+ double b; -+#endif -+{ -+ if (__builtin_expect (b > 0, 1)) -+ { -+ double y, g, h, d, r; -+ ieee_double_shape_type u; -+ -+ if (__builtin_expect (b != a_inf.value, 1)) -+ { -+ fenv_t fe; -+ -+ fe = fegetenv_register (); -+ -+ u.value = b; -+ -+ relax_fenv_state (); -+ -+ __asm__ ("frsqrte %[estimate], %[x]\n" -+ : [estimate] "=f" (y) : [x] "f" (b)); -+ -+ /* Following Muller et al, page 168, equation 5.20. -+ -+ h goes to 1/(2*sqrt(b)) -+ g goes to sqrt(b). -+ -+ We need three iterations to get within 1ulp. */ -+ -+ /* Indicate that these can be performed prior to the branch. GCC -+ insists on sinking them below the branch, however; it seems like -+ they'd be better before the branch so that we can cover any latency -+ from storing the argument and loading its high word. Oh well. */ -+ -+ g = b * y; -+ h = 0.5 * y; -+ -+ /* Handle small numbers by scaling. */ -+ if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0)) -+ return __ieee754_sqrt (b * two108) * twom54; -+ -+#define FMADD(a_, c_, b_) \ -+ ({ double __r; \ -+ __asm__ ("fmadd %[r], %[a], %[c], %[b]\n" \ -+ : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ -+ __r;}) -+#define FNMSUB(a_, c_, b_) \ -+ ({ double __r; \ -+ __asm__ ("fnmsub %[r], %[a], %[c], %[b]\n" \ -+ : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ -+ __r;}) -+ -+ r = FNMSUB (g, h, half); -+ g = FMADD (g, r, g); -+ h = FMADD (h, r, h); -+ -+ r = FNMSUB (g, h, half); -+ g = FMADD (g, r, g); -+ h = FMADD (h, r, h); -+ -+ r = FNMSUB (g, h, half); -+ g = FMADD (g, r, g); -+ h = FMADD (h, r, h); -+ -+ /* g is now +/- 1ulp, or exactly equal to, the square root of b. */ -+ -+ /* Final refinement. */ -+ d = FNMSUB (g, g, b); -+ -+ fesetenv_register (fe); -+ return FMADD (d, h, g); -+ } -+ } -+ else if (b < 0) -+ { -+ /* For some reason, some PowerPC32 processors don't implement -+ FE_INVALID_SQRT. */ -+#ifdef FE_INVALID_SQRT -+ feraiseexcept (FE_INVALID_SQRT); -+ -+ fenv_union_t u = { .fenv = fegetenv_register () }; -+ if ((u.l & FE_INVALID) == 0) -+#endif -+ feraiseexcept (FE_INVALID); -+ b = a_nan.value; -+ } -+ return f_wash (b); -+} -Index: git/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrtf.c -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ git/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrtf.c 2014-08-29 10:34:07.772070587 -0700 -@@ -0,0 +1,101 @@ -+/* Single-precision floating point square root. -+ Copyright (C) 2010 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 Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 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 -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, write to the Free -+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -+ 02111-1307 USA. */ -+ -+#include <math.h> -+#include <math_private.h> -+#include <fenv_libc.h> -+#include <inttypes.h> -+ -+#include <sysdep.h> -+#include <ldsodefs.h> -+ -+static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 }; -+static const ieee_float_shape_type a_inf = {.word = 0x7f800000 }; -+static const float threehalf = 1.5; -+ -+/* The method is based on the descriptions in: -+ -+ _The Handbook of Floating-Pointer Arithmetic_ by Muller et al., chapter 5; -+ _IA-64 and Elementary Functions: Speed and Precision_ by Markstein, chapter 9 -+ -+ We find the reciprocal square root and use that to compute the actual -+ square root. */ -+ -+#ifdef __STDC__ -+float -+__ieee754_sqrtf (float b) -+#else -+float -+__ieee754_sqrtf (b) -+ float b; -+#endif -+{ -+ if (__builtin_expect (b > 0, 1)) -+ { -+#define FMSUB(a_, c_, b_) \ -+ ({ double __r; \ -+ __asm__ ("fmsub %[r], %[a], %[c], %[b]\n" \ -+ : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ -+ __r;}) -+#define FNMSUB(a_, c_, b_) \ -+ ({ double __r; \ -+ __asm__ ("fnmsub %[r], %[a], %[c], %[b]\n" \ -+ : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ -+ __r;}) -+ -+ if (__builtin_expect (b != a_inf.value, 1)) -+ { -+ double y, x; -+ fenv_t fe; -+ -+ fe = fegetenv_register (); -+ -+ relax_fenv_state (); -+ -+ /* Compute y = 1.5 * b - b. Uses fewer constants than y = 0.5 * b. */ -+ y = FMSUB (threehalf, b, b); -+ -+ /* Initial estimate. */ -+ __asm__ ("frsqrte %[x], %[b]\n" : [x] "=f" (x) : [b] "f" (b)); -+ -+ /* Iterate. x_{n+1} = x_n * (1.5 - y * (x_n * x_n)). */ -+ x = x * FNMSUB (y, x * x, threehalf); -+ x = x * FNMSUB (y, x * x, threehalf); -+ x = x * FNMSUB (y, x * x, threehalf); -+ -+ /* All done. */ -+ fesetenv_register (fe); -+ return x * b; -+ } -+ } -+ else if (b < 0) -+ { -+ /* For some reason, some PowerPC32 processors don't implement -+ FE_INVALID_SQRT. */ -+#ifdef FE_INVALID_SQRT -+ feraiseexcept (FE_INVALID_SQRT); -+ -+ fenv_union_t u = { .fenv = fegetenv_register () }; -+ if ((u.l & FE_INVALID) == 0) -+#endif -+ feraiseexcept (FE_INVALID); -+ b = a_nan.value; -+ } -+ return f_washf (b); -+} -Index: git/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ git/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c 2014-08-29 10:34:07.772070587 -0700 -@@ -0,0 +1,134 @@ -+/* Double-precision floating point square root. -+ Copyright (C) 2010 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 Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 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 -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, write to the Free -+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -+ 02111-1307 USA. */ -+ -+#include <math.h> -+#include <math_private.h> -+#include <fenv_libc.h> -+#include <inttypes.h> -+ -+#include <sysdep.h> -+#include <ldsodefs.h> -+ -+static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 }; -+static const ieee_float_shape_type a_inf = {.word = 0x7f800000 }; -+static const float two108 = 3.245185536584267269e+32; -+static const float twom54 = 5.551115123125782702e-17; -+static const float half = 0.5; -+ -+/* The method is based on the descriptions in: -+ -+ _The Handbook of Floating-Pointer Arithmetic_ by Muller et al., chapter 5; -+ _IA-64 and Elementary Functions: Speed and Precision_ by Markstein, chapter 9 -+ -+ We find the actual square root and half of its reciprocal -+ simultaneously. */ -+ -+#ifdef __STDC__ -+double -+__ieee754_sqrt (double b) -+#else -+double -+__ieee754_sqrt (b) -+ double b; -+#endif -+{ -+ if (__builtin_expect (b > 0, 1)) -+ { -+ double y, g, h, d, r; -+ ieee_double_shape_type u; -+ -+ if (__builtin_expect (b != a_inf.value, 1)) -+ { -+ fenv_t fe; -+ -+ fe = fegetenv_register (); -+ -+ u.value = b; -+ -+ relax_fenv_state (); -+ -+ __asm__ ("frsqrte %[estimate], %[x]\n" -+ : [estimate] "=f" (y) : [x] "f" (b)); -+ -+ /* Following Muller et al, page 168, equation 5.20. -+ -+ h goes to 1/(2*sqrt(b)) -+ g goes to sqrt(b). -+ -+ We need three iterations to get within 1ulp. */ -+ -+ /* Indicate that these can be performed prior to the branch. GCC -+ insists on sinking them below the branch, however; it seems like -+ they'd be better before the branch so that we can cover any latency -+ from storing the argument and loading its high word. Oh well. */ -+ -+ g = b * y; -+ h = 0.5 * y; -+ -+ /* Handle small numbers by scaling. */ -+ if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0)) -+ return __ieee754_sqrt (b * two108) * twom54; -+ -+#define FMADD(a_, c_, b_) \ -+ ({ double __r; \ -+ __asm__ ("fmadd %[r], %[a], %[c], %[b]\n" \ -+ : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ -+ __r;}) -+#define FNMSUB(a_, c_, b_) \ -+ ({ double __r; \ -+ __asm__ ("fnmsub %[r], %[a], %[c], %[b]\n" \ -+ : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ -+ __r;}) -+ -+ r = FNMSUB (g, h, half); -+ g = FMADD (g, r, g); -+ h = FMADD (h, r, h); -+ -+ r = FNMSUB (g, h, half); -+ g = FMADD (g, r, g); -+ h = FMADD (h, r, h); -+ -+ r = FNMSUB (g, h, half); -+ g = FMADD (g, r, g); -+ h = FMADD (h, r, h); -+ -+ /* g is now +/- 1ulp, or exactly equal to, the square root of b. */ -+ -+ /* Final refinement. */ -+ d = FNMSUB (g, g, b); -+ -+ fesetenv_register (fe); -+ return FMADD (d, h, g); -+ } -+ } -+ else if (b < 0) -+ { -+ /* For some reason, some PowerPC32 processors don't implement -+ FE_INVALID_SQRT. */ -+#ifdef FE_INVALID_SQRT -+ feraiseexcept (FE_INVALID_SQRT); -+ -+ fenv_union_t u = { .fenv = fegetenv_register () }; -+ if ((u.l & FE_INVALID) == 0) -+#endif -+ feraiseexcept (FE_INVALID); -+ b = a_nan.value; -+ } -+ return f_wash (b); -+} -Index: git/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ git/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c 2014-08-29 10:34:07.772070587 -0700 -@@ -0,0 +1,101 @@ -+/* Single-precision floating point square root. -+ Copyright (C) 2010 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 Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 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 -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, write to the Free -+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -+ 02111-1307 USA. */ -+ -+#include <math.h> -+#include <math_private.h> -+#include <fenv_libc.h> -+#include <inttypes.h> -+ -+#include <sysdep.h> -+#include <ldsodefs.h> -+ -+static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 }; -+static const ieee_float_shape_type a_inf = {.word = 0x7f800000 }; -+static const float threehalf = 1.5; -+ -+/* The method is based on the descriptions in: -+ -+ _The Handbook of Floating-Pointer Arithmetic_ by Muller et al., chapter 5; -+ _IA-64 and Elementary Functions: Speed and Precision_ by Markstein, chapter 9 -+ -+ We find the reciprocal square root and use that to compute the actual -+ square root. */ -+ -+#ifdef __STDC__ -+float -+__ieee754_sqrtf (float b) -+#else -+float -+__ieee754_sqrtf (b) -+ float b; -+#endif -+{ -+ if (__builtin_expect (b > 0, 1)) -+ { -+#define FMSUB(a_, c_, b_) \ -+ ({ double __r; \ -+ __asm__ ("fmsub %[r], %[a], %[c], %[b]\n" \ -+ : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ -+ __r;}) -+#define FNMSUB(a_, c_, b_) \ -+ ({ double __r; \ -+ __asm__ ("fnmsub %[r], %[a], %[c], %[b]\n" \ -+ : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ -+ __r;}) -+ -+ if (__builtin_expect (b != a_inf.value, 1)) -+ { -+ double y, x; -+ fenv_t fe; -+ -+ fe = fegetenv_register (); -+ -+ relax_fenv_state (); -+ -+ /* Compute y = 1.5 * b - b. Uses fewer constants than y = 0.5 * b. */ -+ y = FMSUB (threehalf, b, b); -+ -+ /* Initial estimate. */ -+ __asm__ ("frsqrte %[x], %[b]\n" : [x] "=f" (x) : [b] "f" (b)); -+ -+ /* Iterate. x_{n+1} = x_n * (1.5 - y * (x_n * x_n)). */ -+ x = x * FNMSUB (y, x * x, threehalf); -+ x = x * FNMSUB (y, x * x, threehalf); -+ x = x * FNMSUB (y, x * x, threehalf); -+ -+ /* All done. */ -+ fesetenv_register (fe); -+ return x * b; -+ } -+ } -+ else if (b < 0) -+ { -+ /* For some reason, some PowerPC32 processors don't implement -+ FE_INVALID_SQRT. */ -+#ifdef FE_INVALID_SQRT -+ feraiseexcept (FE_INVALID_SQRT); -+ -+ fenv_union_t u = { .fenv = fegetenv_register () }; -+ if ((u.l & FE_INVALID) == 0) -+#endif -+ feraiseexcept (FE_INVALID); -+ b = a_nan.value; -+ } -+ return f_washf (b); -+} -Index: git/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ git/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c 2014-08-29 10:34:07.772070587 -0700 -@@ -0,0 +1,134 @@ -+/* Double-precision floating point square root. -+ Copyright (C) 2010 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 Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 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 -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, write to the Free -+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -+ 02111-1307 USA. */ -+ -+#include <math.h> -+#include <math_private.h> -+#include <fenv_libc.h> -+#include <inttypes.h> -+ -+#include <sysdep.h> -+#include <ldsodefs.h> -+ -+static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 }; -+static const ieee_float_shape_type a_inf = {.word = 0x7f800000 }; -+static const float two108 = 3.245185536584267269e+32; -+static const float twom54 = 5.551115123125782702e-17; -+static const float half = 0.5; -+ -+/* The method is based on the descriptions in: -+ -+ _The Handbook of Floating-Pointer Arithmetic_ by Muller et al., chapter 5; -+ _IA-64 and Elementary Functions: Speed and Precision_ by Markstein, chapter 9 -+ -+ We find the actual square root and half of its reciprocal -+ simultaneously. */ -+ -+#ifdef __STDC__ -+double -+__ieee754_sqrt (double b) -+#else -+double -+__ieee754_sqrt (b) -+ double b; -+#endif -+{ -+ if (__builtin_expect (b > 0, 1)) -+ { -+ double y, g, h, d, r; -+ ieee_double_shape_type u; -+ -+ if (__builtin_expect (b != a_inf.value, 1)) -+ { -+ fenv_t fe; -+ -+ fe = fegetenv_register (); -+ -+ u.value = b; -+ -+ relax_fenv_state (); -+ -+ __asm__ ("frsqrte %[estimate], %[x]\n" -+ : [estimate] "=f" (y) : [x] "f" (b)); -+ -+ /* Following Muller et al, page 168, equation 5.20. -+ -+ h goes to 1/(2*sqrt(b)) -+ g goes to sqrt(b). -+ -+ We need three iterations to get within 1ulp. */ -+ -+ /* Indicate that these can be performed prior to the branch. GCC -+ insists on sinking them below the branch, however; it seems like -+ they'd be better before the branch so that we can cover any latency -+ from storing the argument and loading its high word. Oh well. */ -+ -+ g = b * y; -+ h = 0.5 * y; -+ -+ /* Handle small numbers by scaling. */ -+ if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0)) -+ return __ieee754_sqrt (b * two108) * twom54; -+ -+#define FMADD(a_, c_, b_) \ -+ ({ double __r; \ -+ __asm__ ("fmadd %[r], %[a], %[c], %[b]\n" \ -+ : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ -+ __r;}) -+#define FNMSUB(a_, c_, b_) \ -+ ({ double __r; \ -+ __asm__ ("fnmsub %[r], %[a], %[c], %[b]\n" \ -+ : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ -+ __r;}) -+ -+ r = FNMSUB (g, h, half); -+ g = FMADD (g, r, g); -+ h = FMADD (h, r, h); -+ -+ r = FNMSUB (g, h, half); -+ g = FMADD (g, r, g); -+ h = FMADD (h, r, h); -+ -+ r = FNMSUB (g, h, half); -+ g = FMADD (g, r, g); -+ h = FMADD (h, r, h); -+ -+ /* g is now +/- 1ulp, or exactly equal to, the square root of b. */ -+ -+ /* Final refinement. */ -+ d = FNMSUB (g, g, b); -+ -+ fesetenv_register (fe); -+ return FMADD (d, h, g); -+ } -+ } -+ else if (b < 0) -+ { -+ /* For some reason, some PowerPC32 processors don't implement -+ FE_INVALID_SQRT. */ -+#ifdef FE_INVALID_SQRT -+ feraiseexcept (FE_INVALID_SQRT); -+ -+ fenv_union_t u = { .fenv = fegetenv_register () }; -+ if ((u.l & FE_INVALID) == 0) -+#endif -+ feraiseexcept (FE_INVALID); -+ b = a_nan.value; -+ } -+ return f_wash (b); -+} -Index: git/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ git/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c 2014-08-29 10:34:07.772070587 -0700 -@@ -0,0 +1,101 @@ -+/* Single-precision floating point square root. -+ Copyright (C) 2010 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 Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 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 -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, write to the Free -+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -+ 02111-1307 USA. */ -+ -+#include <math.h> -+#include <math_private.h> -+#include <fenv_libc.h> -+#include <inttypes.h> -+ -+#include <sysdep.h> -+#include <ldsodefs.h> -+ -+static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 }; -+static const ieee_float_shape_type a_inf = {.word = 0x7f800000 }; -+static const float threehalf = 1.5; -+ -+/* The method is based on the descriptions in: -+ -+ _The Handbook of Floating-Pointer Arithmetic_ by Muller et al., chapter 5; -+ _IA-64 and Elementary Functions: Speed and Precision_ by Markstein, chapter 9 -+ -+ We find the reciprocal square root and use that to compute the actual -+ square root. */ -+ -+#ifdef __STDC__ -+float -+__ieee754_sqrtf (float b) -+#else -+float -+__ieee754_sqrtf (b) -+ float b; -+#endif -+{ -+ if (__builtin_expect (b > 0, 1)) -+ { -+#define FMSUB(a_, c_, b_) \ -+ ({ double __r; \ -+ __asm__ ("fmsub %[r], %[a], %[c], %[b]\n" \ -+ : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ -+ __r;}) -+#define FNMSUB(a_, c_, b_) \ -+ ({ double __r; \ -+ __asm__ ("fnmsub %[r], %[a], %[c], %[b]\n" \ -+ : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ -+ __r;}) -+ -+ if (__builtin_expect (b != a_inf.value, 1)) -+ { -+ double y, x; -+ fenv_t fe; -+ -+ fe = fegetenv_register (); -+ -+ relax_fenv_state (); -+ -+ /* Compute y = 1.5 * b - b. Uses fewer constants than y = 0.5 * b. */ -+ y = FMSUB (threehalf, b, b); -+ -+ /* Initial estimate. */ -+ __asm__ ("frsqrte %[x], %[b]\n" : [x] "=f" (x) : [b] "f" (b)); -+ -+ /* Iterate. x_{n+1} = x_n * (1.5 - y * (x_n * x_n)). */ -+ x = x * FNMSUB (y, x * x, threehalf); -+ x = x * FNMSUB (y, x * x, threehalf); -+ x = x * FNMSUB (y, x * x, threehalf); -+ -+ /* All done. */ -+ fesetenv_register (fe); -+ return x * b; -+ } -+ } -+ else if (b < 0) -+ { -+ /* For some reason, some PowerPC32 processors don't implement -+ FE_INVALID_SQRT. */ -+#ifdef FE_INVALID_SQRT -+ feraiseexcept (FE_INVALID_SQRT); -+ -+ fenv_union_t u = { .fenv = fegetenv_register () }; -+ if ((u.l & FE_INVALID) == 0) -+#endif -+ feraiseexcept (FE_INVALID); -+ b = a_nan.value; -+ } -+ return f_washf (b); -+} -Index: git/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrt.c -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ git/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrt.c 2014-08-29 10:34:07.772070587 -0700 -@@ -0,0 +1,134 @@ -+/* Double-precision floating point square root. -+ Copyright (C) 2010 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 Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 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 -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, write to the Free -+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -+ 02111-1307 USA. */ -+ -+#include <math.h> -+#include <math_private.h> -+#include <fenv_libc.h> -+#include <inttypes.h> -+ -+#include <sysdep.h> -+#include <ldsodefs.h> -+ -+static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 }; -+static const ieee_float_shape_type a_inf = {.word = 0x7f800000 }; -+static const float two108 = 3.245185536584267269e+32; -+static const float twom54 = 5.551115123125782702e-17; -+static const float half = 0.5; -+ -+/* The method is based on the descriptions in: -+ -+ _The Handbook of Floating-Pointer Arithmetic_ by Muller et al., chapter 5; -+ _IA-64 and Elementary Functions: Speed and Precision_ by Markstein, chapter 9 -+ -+ We find the actual square root and half of its reciprocal -+ simultaneously. */ -+ -+#ifdef __STDC__ -+double -+__ieee754_sqrt (double b) -+#else -+double -+__ieee754_sqrt (b) -+ double b; -+#endif -+{ -+ if (__builtin_expect (b > 0, 1)) -+ { -+ double y, g, h, d, r; -+ ieee_double_shape_type u; -+ -+ if (__builtin_expect (b != a_inf.value, 1)) -+ { -+ fenv_t fe; -+ -+ fe = fegetenv_register (); -+ -+ u.value = b; -+ -+ relax_fenv_state (); -+ -+ __asm__ ("frsqrte %[estimate], %[x]\n" -+ : [estimate] "=f" (y) : [x] "f" (b)); -+ -+ /* Following Muller et al, page 168, equation 5.20. -+ -+ h goes to 1/(2*sqrt(b)) -+ g goes to sqrt(b). -+ -+ We need three iterations to get within 1ulp. */ -+ -+ /* Indicate that these can be performed prior to the branch. GCC -+ insists on sinking them below the branch, however; it seems like -+ they'd be better before the branch so that we can cover any latency -+ from storing the argument and loading its high word. Oh well. */ -+ -+ g = b * y; -+ h = 0.5 * y; -+ -+ /* Handle small numbers by scaling. */ -+ if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0)) -+ return __ieee754_sqrt (b * two108) * twom54; -+ -+#define FMADD(a_, c_, b_) \ -+ ({ double __r; \ -+ __asm__ ("fmadd %[r], %[a], %[c], %[b]\n" \ -+ : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ -+ __r;}) -+#define FNMSUB(a_, c_, b_) \ -+ ({ double __r; \ -+ __asm__ ("fnmsub %[r], %[a], %[c], %[b]\n" \ -+ : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ -+ __r;}) -+ -+ r = FNMSUB (g, h, half); -+ g = FMADD (g, r, g); -+ h = FMADD (h, r, h); -+ -+ r = FNMSUB (g, h, half); -+ g = FMADD (g, r, g); -+ h = FMADD (h, r, h); -+ -+ r = FNMSUB (g, h, half); -+ g = FMADD (g, r, g); -+ h = FMADD (h, r, h); -+ -+ /* g is now +/- 1ulp, or exactly equal to, the square root of b. */ -+ -+ /* Final refinement. */ -+ d = FNMSUB (g, g, b); -+ -+ fesetenv_register (fe); -+ return FMADD (d, h, g); -+ } -+ } -+ else if (b < 0) -+ { -+ /* For some reason, some PowerPC32 processors don't implement -+ FE_INVALID_SQRT. */ -+#ifdef FE_INVALID_SQRT -+ feraiseexcept (FE_INVALID_SQRT); -+ -+ fenv_union_t u = { .fenv = fegetenv_register () }; -+ if ((u.l & FE_INVALID) == 0) -+#endif -+ feraiseexcept (FE_INVALID); -+ b = a_nan.value; -+ } -+ return f_wash (b); -+} -Index: git/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrtf.c -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ git/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrtf.c 2014-08-29 10:34:07.776070587 -0700 -@@ -0,0 +1,101 @@ -+/* Single-precision floating point square root. -+ Copyright (C) 2010 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 Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 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 -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, write to the Free -+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -+ 02111-1307 USA. */ -+ -+#include <math.h> -+#include <math_private.h> -+#include <fenv_libc.h> -+#include <inttypes.h> -+ -+#include <sysdep.h> -+#include <ldsodefs.h> -+ -+static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 }; -+static const ieee_float_shape_type a_inf = {.word = 0x7f800000 }; -+static const float threehalf = 1.5; -+ -+/* The method is based on the descriptions in: -+ -+ _The Handbook of Floating-Pointer Arithmetic_ by Muller et al., chapter 5; -+ _IA-64 and Elementary Functions: Speed and Precision_ by Markstein, chapter 9 -+ -+ We find the reciprocal square root and use that to compute the actual -+ square root. */ -+ -+#ifdef __STDC__ -+float -+__ieee754_sqrtf (float b) -+#else -+float -+__ieee754_sqrtf (b) -+ float b; -+#endif -+{ -+ if (__builtin_expect (b > 0, 1)) -+ { -+#define FMSUB(a_, c_, b_) \ -+ ({ double __r; \ -+ __asm__ ("fmsub %[r], %[a], %[c], %[b]\n" \ -+ : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ -+ __r;}) -+#define FNMSUB(a_, c_, b_) \ -+ ({ double __r; \ -+ __asm__ ("fnmsub %[r], %[a], %[c], %[b]\n" \ -+ : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ -+ __r;}) -+ -+ if (__builtin_expect (b != a_inf.value, 1)) -+ { -+ double y, x; -+ fenv_t fe; -+ -+ fe = fegetenv_register (); -+ -+ relax_fenv_state (); -+ -+ /* Compute y = 1.5 * b - b. Uses fewer constants than y = 0.5 * b. */ -+ y = FMSUB (threehalf, b, b); -+ -+ /* Initial estimate. */ -+ __asm__ ("frsqrte %[x], %[b]\n" : [x] "=f" (x) : [b] "f" (b)); -+ -+ /* Iterate. x_{n+1} = x_n * (1.5 - y * (x_n * x_n)). */ -+ x = x * FNMSUB (y, x * x, threehalf); -+ x = x * FNMSUB (y, x * x, threehalf); -+ x = x * FNMSUB (y, x * x, threehalf); -+ -+ /* All done. */ -+ fesetenv_register (fe); -+ return x * b; -+ } -+ } -+ else if (b < 0) -+ { -+ /* For some reason, some PowerPC32 processors don't implement -+ FE_INVALID_SQRT. */ -+#ifdef FE_INVALID_SQRT -+ feraiseexcept (FE_INVALID_SQRT); -+ -+ fenv_union_t u = { .fenv = fegetenv_register () }; -+ if ((u.l & FE_INVALID) == 0) -+#endif -+ feraiseexcept (FE_INVALID); -+ b = a_nan.value; -+ } -+ return f_washf (b); -+} -Index: git/sysdeps/unix/sysv/linux/powerpc/powerpc32/603e/fpu/Implies -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ git/sysdeps/unix/sysv/linux/powerpc/powerpc32/603e/fpu/Implies 2014-08-29 10:34:07.776070587 -0700 -@@ -0,0 +1 @@ -+powerpc/powerpc32/603e/fpu -Index: git/sysdeps/unix/sysv/linux/powerpc/powerpc32/e300c3/fpu/Implies -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ git/sysdeps/unix/sysv/linux/powerpc/powerpc32/e300c3/fpu/Implies 2014-08-29 10:34:07.776070587 -0700 -@@ -0,0 +1,2 @@ -+# e300c3 is a variant of 603e so use the same optimizations for sqrt -+powerpc/powerpc32/603e/fpu -Index: git/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500mc/fpu/Implies -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ git/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500mc/fpu/Implies 2014-08-29 10:34:07.776070587 -0700 -@@ -0,0 +1 @@ -+powerpc/powerpc32/e500mc/fpu -Index: git/sysdeps/unix/sysv/linux/powerpc/powerpc32/e5500/fpu/Implies -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ git/sysdeps/unix/sysv/linux/powerpc/powerpc32/e5500/fpu/Implies 2014-08-29 10:34:07.776070587 -0700 -@@ -0,0 +1 @@ -+powerpc/powerpc32/e5500/fpu -Index: git/sysdeps/unix/sysv/linux/powerpc/powerpc32/e6500/fpu/Implies -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ git/sysdeps/unix/sysv/linux/powerpc/powerpc32/e6500/fpu/Implies 2014-08-29 10:34:07.776070587 -0700 -@@ -0,0 +1 @@ -+powerpc/powerpc32/e6500/fpu -Index: git/sysdeps/unix/sysv/linux/powerpc/powerpc64/e5500/fpu/Implies -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ git/sysdeps/unix/sysv/linux/powerpc/powerpc64/e5500/fpu/Implies 2014-08-29 10:34:07.780070587 -0700 -@@ -0,0 +1 @@ -+powerpc/powerpc64/e5500/fpu -Index: git/sysdeps/unix/sysv/linux/powerpc/powerpc64/e6500/fpu/Implies -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ git/sysdeps/unix/sysv/linux/powerpc/powerpc64/e6500/fpu/Implies 2014-08-29 10:34:07.780070587 -0700 -@@ -0,0 +1 @@ -+powerpc/powerpc64/e6500/fpu diff --git a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/grok_gold.patch b/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/grok_gold.patch deleted file mode 100644 index 26875c79..00000000 --- a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/grok_gold.patch +++ /dev/null @@ -1,34 +0,0 @@ -Make ld --version output matching grok gold's output - -adapted from from upstream branch roland/gold-vs-libc - -Signed-off-by: Khem Raj <raj.khem@gmail.com> -Upstream-Status: Backport - - -Index: git/configure -=================================================================== ---- git.orig/configure 2014-08-29 10:32:34.464070587 -0700 -+++ git/configure 2014-08-29 10:32:34.456070587 -0700 -@@ -4592,7 +4592,7 @@ - # Found it, now check the version. - { $as_echo "$as_me:${as_lineno-$LINENO}: checking version of $LD" >&5 - $as_echo_n "checking version of $LD... " >&6; } -- ac_prog_version=`$LD --version 2>&1 | sed -n 's/^.*GNU ld.* \([0-9][0-9]*\.[0-9.]*\).*$/\1/p'` -+ ac_prog_version=`$LD --version 2>&1 | sed -n 's/^.*GNU [Bbinutilsd][^.]* \([0-9][0-9]*\.[0-9.]*\).*$/\1/p'` - case $ac_prog_version in - '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;; - 2.1[0-9][0-9]*|2.[2-9][0-9]*|[3-9].*|[1-9][0-9]*) -Index: git/configure.ac -=================================================================== ---- git.orig/configure.ac 2014-08-29 10:32:34.464070587 -0700 -+++ git/configure.ac 2014-08-29 10:32:34.460070587 -0700 -@@ -930,7 +930,7 @@ - [GNU assembler.* \([0-9]*\.[0-9.]*\)], - [2.1[0-9][0-9]*|2.[2-9][0-9]*|[3-9].*|[1-9][0-9]*], AS=: critic_missing="$critic_missing as") - AC_CHECK_PROG_VER(LD, $LD, --version, -- [GNU ld.* \([0-9][0-9]*\.[0-9.]*\)], -+ [GNU [Bbinutilsd][^.]* \([0-9][0-9]*\.[0-9.]*\)], - [2.1[0-9][0-9]*|2.[2-9][0-9]*|[3-9].*|[1-9][0-9]*], LD=: critic_missing="$critic_missing ld") - - # These programs are version sensitive. diff --git a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/initgroups_keys.patch b/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/initgroups_keys.patch deleted file mode 100644 index 32aa15a5..00000000 --- a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/initgroups_keys.patch +++ /dev/null @@ -1,20 +0,0 @@ -This is needed since initgroups belongs to NET group -so when NET is disabled in eglibc build then it reports -as undefined symbol - -Signed-off-by: Khem Raj <raj.khem@gmail.com> -Upstream-Status: Pending - -Index: git/nss/getent.c -=================================================================== ---- git.orig/nss/getent.c 2014-08-27 05:15:25.996070587 +0000 -+++ git/nss/getent.c 2014-08-27 05:16:00.048070587 +0000 -@@ -879,7 +879,7 @@ - D(group) - D(gshadow) - D(hosts) --D(initgroups) -+DN(initgroups) - D(netgroup) - D(networks) - D(passwd) diff --git a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/ld-search-order.patch b/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/ld-search-order.patch deleted file mode 100644 index f518bc76..00000000 --- a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/ld-search-order.patch +++ /dev/null @@ -1,56 +0,0 @@ -Upstream-Status: Inappropriate [embedded specific] - -The default lib search path order is: - - 1) LD_LIBRARY_PATH - 2) RPATH from the binary - 3) ld.so.cache - 4) default search paths embedded in the linker - -For nativesdk binaries which are being used alongside binaries on a host system, we -need the search paths to firstly search the shipped nativesdk libs but then also -cover the host system. For example we want the host system's libGL and this may be -in a non-standard location like /usr/lib/mesa. The only place the location is know -about is in the ld.so.cache of the host system. - -Since nativesdk has a simple structure and doesn't need to use a cache itself, we -repurpose the cache for use as a last resort in finding host system binaries. This -means we need to switch the order of 3 and 4 above to make this work effectively. - -RP 14/10/2010 - -Index: git/elf/dl-load.c -=================================================================== ---- git.orig/elf/dl-load.c 2014-08-28 17:32:46.292070587 -0700 -+++ git/elf/dl-load.c 2014-08-28 17:33:56.048070587 -0700 -@@ -2050,7 +2050,14 @@ - fd = open_path (name, namelen, mode, - &loader->l_runpath_dirs, &realname, &fb, loader, - LA_SER_RUNPATH, &found_other_class); -- -+ /* try the default path. */ -+ if (fd == -1 -+ && ((l = loader ?: GL(dl_ns)[nsid]._ns_loaded) == NULL -+ || __builtin_expect (!(l->l_flags_1 & DF_1_NODEFLIB), 1)) -+ && rtld_search_dirs.dirs != (void *) -1) -+ fd = open_path (name, namelen, mode & __RTLD_SECURE, &rtld_search_dirs, -+ &realname, &fb, l, LA_SER_DEFAULT, &found_other_class); -+ /* Finally try ld.so.cache */ - #ifdef USE_LDCONFIG - if (fd == -1 - && (__glibc_likely ((mode & __RTLD_SECURE) == 0) -@@ -2113,14 +2120,6 @@ - } - #endif - -- /* Finally, try the default path. */ -- if (fd == -1 -- && ((l = loader ?: GL(dl_ns)[nsid]._ns_loaded) == NULL -- || __glibc_likely (!(l->l_flags_1 & DF_1_NODEFLIB))) -- && rtld_search_dirs.dirs != (void *) -1) -- fd = open_path (name, namelen, mode, &rtld_search_dirs, -- &realname, &fb, l, LA_SER_DEFAULT, &found_other_class); -- - /* Add another newline when we are tracing the library loading. */ - if (__glibc_unlikely (GLRO_dl_debug_mask & DL_DEBUG_LIBS)) - _dl_debug_printf ("\n"); diff --git a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/mips-rld-map-check.patch b/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/mips-rld-map-check.patch deleted file mode 100644 index 9f593d63..00000000 --- a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/mips-rld-map-check.patch +++ /dev/null @@ -1,27 +0,0 @@ - -On mips target, binutils currently sets DT_MIPS_RLD_MAP to 0 in dynamic -section if a --version-script sets _RLD_MAP to local. This is apparently -a binutils bug, but libc shouldn't segfault in this case. - -see also: http://sourceware.org/bugilla/show_bug.cgi?id=11615 - -Upstream-Status: Pending - -9/19/2010 - added by Qing He <qing.he@intel.com> - - ---- -Index: git/sysdeps/mips/dl-machine.h -=================================================================== ---- git.orig/sysdeps/mips/dl-machine.h 2014-08-27 04:58:11.840070587 +0000 -+++ git/sysdeps/mips/dl-machine.h 2014-08-27 04:58:11.832070587 +0000 -@@ -70,7 +70,8 @@ - /* If there is a DT_MIPS_RLD_MAP entry in the dynamic section, fill it in - with the run-time address of the r_debug structure */ - #define ELF_MACHINE_DEBUG_SETUP(l,r) \ --do { if ((l)->l_info[DT_MIPS (RLD_MAP)]) \ -+do { if ((l)->l_info[DT_MIPS (RLD_MAP)] && \ -+ (l)->l_info[DT_MIPS (RLD_MAP)]->d_un.d_ptr) \ - *(ElfW(Addr) *)((l)->l_info[DT_MIPS (RLD_MAP)]->d_un.d_ptr) = \ - (ElfW(Addr)) (r); \ - } while (0) diff --git a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/multilib_readlib.patch b/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/multilib_readlib.patch deleted file mode 100644 index 13ffc46f..00000000 --- a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/multilib_readlib.patch +++ /dev/null @@ -1,19 +0,0 @@ -Upstream-Status: Inappropriate [embedded specific] - -Replace the OECORE_KNOWN_INTERPRETER_NAMES with the value of -variable EGLIBC_KNOWN_INTERPRETER_NAMES. - -Lianhao Lu, 08/01/2011 - -Index: git/elf/readlib.c -=================================================================== ---- git.orig/elf/readlib.c 2014-08-29 10:34:16.824070587 -0700 -+++ git/elf/readlib.c 2014-08-29 10:34:16.816070587 -0700 -@@ -51,6 +51,7 @@ - #ifdef SYSDEP_KNOWN_INTERPRETER_NAMES - SYSDEP_KNOWN_INTERPRETER_NAMES - #endif -+ OECORE_KNOWN_INTERPRETER_NAMES - }; - - static struct known_names known_libs[] = diff --git a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/option-groups.patch b/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/option-groups.patch deleted file mode 100644 index 693bd2fb..00000000 --- a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/option-groups.patch +++ /dev/null @@ -1,1397 +0,0 @@ -Eglibc option group infrastructure - -Upstream-Status: Pending - -Index: git/option-groups.def -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ git/option-groups.def 2014-08-27 07:26:51.652070587 +0000 -@@ -0,0 +1,868 @@ -+# This file documents the option groups EGLIBC currently supports, in -+# a format akin to the Linux Kconfig system's. The syntax may change -+# over time. -+# -+# An entry of the form: -+# -+# config GROUP_NAME -+# bool "one-line explanation of what this option group controls" -+# help -+# Multi-line help explaining the option group's meaning in -+# some detail, terminated by indentation level. -+# -+# defines an option group whose variable is GROUP_NAME, with -+# meaningful values 'y' (enabled) and 'n' (disabled). The -+# documentation is formatted to be consumed by some sort of -+# interactive configuration interface, but EGLIBC doesn't have such an -+# interface yet. -+# -+# An option may have a 'depends on' line, indicating which other options -+# must also be enabled if this option is. At present, EGLIBC doesn't -+# check that these dependencies are satisfied. -+# -+# Option group variables get their default values from the file -+# 'option-groups.defaults', in the top directory of the EGLIBC source -+# tree. By default, all EGLIBC option groups are enabled --- their -+# variables are set to 'y'. -+# -+# After including 'option-groups.defaults', the EGLIBC make machinery -+# includes the file 'option-groups.config' from the top of the build -+# tree, if it is present. Developers can place assignments to option -+# group variables in that file to override the defaults. For example, -+# to disable an option group, place a line of the form: -+# -+# OPTION_GROUP_NAME = n -+# -+# in 'option-groups.config' at the top of your build tree. To -+# explicitly enable an option group, you may also write: -+# -+# OPTION_GROUP_NAME = y -+# -+# although this simply reestablishes the value already set by -+# 'option-groups.defaults'. -+ -+config EGLIBC_ADVANCED_INET6 -+ bool "IPv6 Advanced Sockets API support (RFC3542)" -+ depends on EGLIBC_INET -+ help -+ This option group includes the functions specified by RFC 3542, -+ "Advanced Sockets Application Program Interface (API) for -+ IPv6". -+ -+ This option group includes the following functions: -+ -+ inet6_opt_append -+ inet6_opt_find -+ inet6_opt_finish -+ inet6_opt_get_val -+ inet6_opt_init -+ inet6_option_alloc -+ inet6_option_append -+ inet6_option_find -+ inet6_option_init -+ inet6_option_next -+ inet6_option_space -+ inet6_opt_next -+ inet6_opt_set_val -+ inet6_rth_add -+ inet6_rth_getaddr -+ inet6_rth_init -+ inet6_rth_reverse -+ inet6_rth_segments -+ inet6_rth_space -+ -+config EGLIBC_BACKTRACE -+ bool "Functions for producing backtraces" -+ help -+ This option group includes functions for producing a list of -+ the function calls that are currently active in a thread, from -+ within the thread itself. These functions are often used -+ within signal handlers, to produce diagnostic output. -+ -+ This option group includes the following functions: -+ -+ backtrace -+ backtrace_symbols -+ backtrace_symbols_fd -+ -+config EGLIBC_BIG_MACROS -+ bool "Use extensive inline code" -+ help -+ This option group specifies whether certain pieces of code -+ should be inlined to achieve maximum speed. If this option -+ group is not selected, function calls will be used instead, -+ hence reducing the library footprint. -+ -+config EGLIBC_BSD -+ bool "BSD-specific functions, and their compatibility stubs" -+ help -+ This option group includes functions specific to BSD kernels. -+ A number of these functions have stub versions that are also -+ included in libraries built for non-BSD systems for -+ compatibility. -+ -+ This option group includes the following functions: -+ -+ chflags -+ fchflags -+ lchmod -+ revoke -+ setlogin -+ -+config EGLIBC_CXX_TESTS -+ bool "Tests that link against the standard C++ library." -+ depends on POSIX_WIDE_CHAR_DEVICE_IO && EGLIBC_LIBM -+ help -+ This option group does not include any C library functions; -+ instead, it controls which EGLIBC tests an ordinary 'make -+ tests' runs. With this group disabled, tests that would -+ normally link against the standard C++ library are not -+ run. -+ -+ The standard C++ library depends on the math library 'libm' and -+ the wide character I/O functions included in EGLIBC. So those -+ option groups must be enabled if this test is enabled. -+ -+config EGLIBC_CATGETS -+ bool "Functions for accessing message catalogs" -+ depends on EGLIBC_LOCALE_CODE -+ help -+ This option group includes functions for accessing message -+ catalogs: catopen, catclose, and catgets. -+ -+ This option group depends on the EGLIBC_LOCALE_CODE -+ option group. -+ -+config EGLIBC_CHARSETS -+ bool "iconv/gconv character set conversion libraries" -+ help -+ This option group includes support for character sets other -+ than ASCII (ANSI_X3.4-1968) and Unicode and ISO-10646 in their -+ various encodings. This affects both the character sets -+ supported by the wide and multibyte character functions, and -+ those supported by the 'iconv' functions. -+ -+ With this option group disabled, EGLIBC supports only the -+ following character sets: -+ -+ ANSI_X3.4 - ASCII -+ ANSI_X3.4-1968 -+ ANSI_X3.4-1986 -+ ASCII -+ CP367 -+ CSASCII -+ IBM367 -+ ISO-IR-6 -+ ISO646-US -+ ISO_646.IRV:1991 -+ OSF00010020 -+ US -+ US-ASCII -+ -+ 10646-1:1993 - ISO 10646, in big-endian UCS4 form -+ 10646-1:1993/UCS4 -+ CSUCS4 -+ ISO-10646 -+ ISO-10646/UCS4 -+ OSF00010104 -+ OSF00010105 -+ OSF00010106 -+ UCS-4 -+ UCS-4BE -+ UCS4 -+ -+ UCS-4LE - ISO 10646, in little-endian UCS4 form -+ -+ ISO-10646/UTF-8 - ISO 10646, in UTF-8 form -+ ISO-10646/UTF8 -+ ISO-IR-193 -+ OSF05010001 -+ UTF-8 -+ UTF8 -+ -+ ISO-10646/UCS2 - ISO 10646, in target-endian UCS2 form -+ OSF00010100 -+ OSF00010101 -+ OSF00010102 -+ UCS-2 -+ UCS2 -+ -+ UCS-2BE - ISO 10646, in big-endian UCS2 form -+ UNICODEBIG -+ -+ UCS-2LE - ISO 10646, in little-endian UCS2 form -+ UNICODELITTLE -+ -+ WCHAR_T - EGLIBC's internal form (target-endian, -+ 32-bit ISO 10646) -+ -+config EGLIBC_CRYPT -+ bool "Encryption library" -+ help -+ This option group includes the `libcrypt' library which -+ provides functions for one-way encryption. Supported -+ encryption algorithms include MD5, SHA-256, SHA-512 and DES. -+ -+config EGLIBC_CRYPT_UFC -+ bool "Ultra fast `crypt' implementation" -+ depends on EGLIBC_CRYPT -+ help -+ This option group provides ultra fast DES-based implementation of -+ the `crypt' function. When this option group is disabled, -+ (a) the library will not provide the setkey[_r] and encrypt[_r] -+ functions and (b) the crypt[_r] function will return NULL and set the -+ errno to ENOSYS if /salt/ passed does not correspond to either MD5, -+ SHA-256 or SHA-512 algorithm. -+ -+config EGLIBC_DB_ALIASES -+ bool "Functions for accessing the mail aliases database" -+ help -+ This option group includues functions for looking up mail -+ aliases in '/etc/aliases' or using nsswitch. It includes the -+ following functions: -+ -+ endaliasent -+ getaliasbyname -+ getaliasbyname_r -+ getaliasent -+ getaliasent_r -+ setaliasent -+ -+ When this option group is disabled, the NSS service libraries -+ also lack support for querying their mail alias tables. -+ -+config EGLIBC_ENVZ -+ bool "Functions for handling envz-style environment vectors." -+ help -+ This option group contains functions for creating and operating -+ on envz vectors. An "envz vector" is a vector of strings in a -+ contiguous block of memory, where each element is a name-value -+ pair, and elements are separated from their neighbors by null -+ characters. -+ -+ This option group includes the following functions: -+ -+ envz_add envz_merge -+ envz_entry envz_remove -+ envz_get envz_strip -+ -+config EGLIBC_FCVT -+ bool "Functions for converting floating-point numbers to strings" -+ help -+ This option group includes functions for converting -+ floating-point numbers to strings. -+ -+ This option group includes the following functions: -+ -+ ecvt qecvt -+ ecvt_r qecvt_r -+ fcvt qfcvt -+ fcvt_r qfcvt_r -+ gcvt qgcvt -+ -+config EGLIBC_FMTMSG -+ bool "Functions for formatting messages" -+ help -+ This option group includes the following functions: -+ -+ addseverity fmtmsg -+ -+config EGLIBC_FSTAB -+ bool "Access functions for 'fstab'" -+ help -+ This option group includes functions for reading the mount -+ point specification table, '/etc/fstab'. These functions are -+ not included in the POSIX standard, which provides the -+ 'getmntent' family of functions instead. -+ -+ This option group includes the following functions: -+ -+ endfsent getfsspec -+ getfsent setfsent -+ getfsfile -+ -+config EGLIBC_FTRAVERSE -+ bool "Functions for traversing file hierarchies" -+ help -+ This option group includes functions for traversing file -+ UNIX file hierachies. -+ -+ This option group includes the following functions: -+ -+ fts_open ftw -+ fts_read nftw -+ fts_children ftw64 -+ fts_set nftw64 -+ fts_close -+ -+config EGLIBC_GETLOGIN -+ bool "The getlogin function" -+ depends on EGLIBC_UTMP -+ help -+ This function group includes the 'getlogin' and 'getlogin_r' -+ functions, which return the user name associated by the login -+ activity with the current process's controlling terminal. -+ -+ With this option group disabled, the 'glob' function will not -+ fall back on 'getlogin' to find the user's login name for tilde -+ expansion when the 'HOME' environment variable is not set. -+ -+config EGLIBC_IDN -+ bool "International domain names support" -+ help -+ This option group includes the `libcidn' library which -+ provides support for international domain names. -+ -+config EGLIBC_INET -+ bool "Networking support" -+ help -+ This option group includes networking-specific functions and -+ data. With EGLIBC_INET disabled, the EGLIBC -+ installation and API changes as follows: -+ -+ - The following libraries are not installed: -+ -+ libnsl -+ libnss_compat -+ libnss_dns -+ libnss_hesiod -+ libnss_nis -+ libnss_nisplus -+ libresolv -+ -+ - The following functions and variables are omitted from libc: -+ -+ authdes_create hstrerror svc_fdset -+ authdes_getucred htonl svc_getreq -+ authdes_pk_create htons svc_getreq_common -+ authnone_create if_freenameindex svc_getreq_poll -+ authunix_create if_indextoname svc_getreqset -+ authunix_create_default if_nameindex svc_max_pollfd -+ bindresvport if_nametoindex svc_pollfd -+ callrpc in6addr_any svcraw_create -+ cbc_crypt in6addr_loopback svc_register -+ clnt_broadcast inet6_opt_append svc_run -+ clnt_create inet6_opt_find svc_sendreply -+ clnt_pcreateerror inet6_opt_finish svctcp_create -+ clnt_perrno inet6_opt_get_val svcudp_bufcreate -+ clnt_perror inet6_opt_init svcudp_create -+ clntraw_create inet6_option_alloc svcudp_enablecache -+ clnt_spcreateerror inet6_option_append svcunix_create -+ clnt_sperrno inet6_option_find svcunixfd_create -+ clnt_sperror inet6_option_init svc_unregister -+ clnttcp_create inet6_option_next user2netname -+ clntudp_bufcreate inet6_option_space xdecrypt -+ clntudp_create inet6_opt_next xdr_accepted_reply -+ clntunix_create inet6_opt_set_val xdr_array -+ des_setparity inet6_rth_add xdr_authdes_cred -+ ecb_crypt inet6_rth_getaddr xdr_authdes_verf -+ endaliasent inet6_rth_init xdr_authunix_parms -+ endhostent inet6_rth_reverse xdr_bool -+ endnetent inet6_rth_segments xdr_bytes -+ endnetgrent inet6_rth_space xdr_callhdr -+ endprotoent inet_addr xdr_callmsg -+ endrpcent inet_aton xdr_char -+ endservent inet_lnaof xdr_cryptkeyarg -+ ether_aton inet_makeaddr xdr_cryptkeyarg2 -+ ether_aton_r inet_netof xdr_cryptkeyres -+ ether_hostton inet_network xdr_des_block -+ ether_line inet_nsap_addr xdr_double -+ ether_ntoa inet_nsap_ntoa xdr_enum -+ ether_ntoa_r inet_ntoa xdr_float -+ ether_ntohost inet_ntop xdr_free -+ freeaddrinfo inet_pton xdr_getcredres -+ freeifaddrs innetgr xdr_hyper -+ gai_strerror iruserok xdr_int -+ getaddrinfo iruserok_af xdr_int16_t -+ getaliasbyname key_decryptsession xdr_int32_t -+ getaliasbyname_r key_decryptsession_pk xdr_int64_t -+ getaliasent key_encryptsession xdr_int8_t -+ getaliasent_r key_encryptsession_pk xdr_keybuf -+ gethostbyaddr key_gendes xdr_key_netstarg -+ gethostbyaddr_r key_get_conv xdr_key_netstres -+ gethostbyname key_secretkey_is_set xdr_keystatus -+ gethostbyname2 key_setnet xdr_long -+ gethostbyname2_r key_setsecret xdr_longlong_t -+ gethostbyname_r netname2host xdrmem_create -+ gethostent netname2user xdr_netnamestr -+ gethostent_r ntohl xdr_netobj -+ getifaddrs ntohs xdr_opaque -+ getipv4sourcefilter passwd2des xdr_opaque_auth -+ get_myaddress pmap_getmaps xdr_pmap -+ getnameinfo pmap_getport xdr_pmaplist -+ getnetbyaddr pmap_rmtcall xdr_pointer -+ getnetbyaddr_r pmap_set xdr_quad_t -+ getnetbyname pmap_unset xdrrec_create -+ getnetbyname_r rcmd xdrrec_endofrecord -+ getnetent rcmd_af xdrrec_eof -+ getnetent_r registerrpc xdrrec_skiprecord -+ getnetgrent res_init xdr_reference -+ getnetgrent_r rexec xdr_rejected_reply -+ getnetname rexec_af xdr_replymsg -+ getprotobyname rexecoptions xdr_rmtcall_args -+ getprotobyname_r rpc_createerr xdr_rmtcallres -+ getprotobynumber rresvport xdr_short -+ getprotobynumber_r rresvport_af xdr_sizeof -+ getprotoent rtime xdrstdio_create -+ getprotoent_r ruserok xdr_string -+ getpublickey ruserok_af xdr_u_char -+ getrpcbyname ruserpass xdr_u_hyper -+ getrpcbyname_r setaliasent xdr_u_int -+ getrpcbynumber sethostent xdr_uint16_t -+ getrpcbynumber_r setipv4sourcefilter xdr_uint32_t -+ getrpcent setnetent xdr_uint64_t -+ getrpcent_r setnetgrent xdr_uint8_t -+ getrpcport setprotoent xdr_u_long -+ getsecretkey setrpcent xdr_u_longlong_t -+ getservbyname setservent xdr_union -+ getservbyname_r setsourcefilter xdr_unixcred -+ getservbyport svcauthdes_stats xdr_u_quad_t -+ getservbyport_r svcerr_auth xdr_u_short -+ getservent svcerr_decode xdr_vector -+ getservent_r svcerr_noproc xdr_void -+ getsourcefilter svcerr_noprog xdr_wrapstring -+ h_errlist svcerr_progvers xencrypt -+ h_errno svcerr_systemerr xprt_register -+ herror svcerr_weakauth xprt_unregister -+ h_nerr svc_exit -+ host2netname svcfd_create -+ -+ - The rpcgen, nscd, and rpcinfo commands are not installed. -+ -+ - The 'rpc' file (a text file listing RPC services) is not installed. -+ -+ Socket-related system calls do not fall in this option group, -+ because many are also used for other inter-process -+ communication mechanisms. For example, the 'syslog' routines -+ use Unix-domain sockets to communicate with the syslog daemon; -+ syslog is valuable in non-networked contexts. -+ -+config EGLIBC_INET_ANL -+ bool "Asynchronous name lookup" -+ depends on EGLIBC_INET -+ help -+ This option group includes the `libanl' library which -+ provides support for asynchronous name lookup. -+ -+config EGLIBC_LIBM -+ bool "libm (math library)" -+ help -+ This option group includes the 'libm' library, containing -+ mathematical functions. If this option group is omitted, then -+ an EGLIBC installation does not include shared or unshared versions -+ of the math library. -+ -+ Note that this does not remove all floating-point related -+ functionality from EGLIBC; for example, 'printf' and 'scanf' -+ can still print and read floating-point values with this option -+ group disabled. -+ -+ Note that the ISO Standard C++ library 'libstdc++' depends on -+ EGLIBC's math library 'libm'. If you disable this option -+ group, you will not be able to build 'libstdc++' against the -+ resulting EGLIBC installation. -+ -+config EGLIBC_LOCALES -+ bool "Locale definitions" -+ help -+ This option group includes all locale definitions other than -+ that for the "C" locale. If this option group is omitted, then -+ only the "C" locale is supported. -+ -+ -+config EGLIBC_LOCALE_CODE -+ bool "Locale functions" -+ depends on POSIX_C_LANG_WIDE_CHAR -+ help -+ This option group includes locale support functions, programs, -+ and libraries. With EGLIBC_LOCALE_CODE disabled, -+ EGLIBC supports only the 'C' locale (also known as 'POSIX'), -+ and ignores the settings of the 'LANG' and 'LC_*' environment -+ variables. -+ -+ With EGLIBC_LOCALE_CODE disabled, the following -+ functions are omitted from libc: -+ -+ duplocale localeconv nl_langinfo rpmatch strfmon_l -+ freelocale newlocale nl_langinfo_l strfmon uselocale -+ -+ Furthermore, only the LC_CTYPE and LC_TIME categories of the -+ standard "C" locale are available. -+ -+ The EGLIBC_CATGETS option group depends on this option group. -+ -+ -+config EGLIBC_MEMUSAGE -+ bool "Memory profiling library" -+ help -+ This option group includes the `libmemusage' library and -+ the `memusage' and `memusagestat' utilities. -+ These components provide memory profiling functions. -+ -+config EGLIBC_MEMUSAGE_DEFAULT_BUFFER_SIZE -+ int "Memory profiling library buffer size" -+ depends on EGLIBC_MEMUSAGE -+ default "32768" -+ help -+ Libmemusage library buffers the profiling data in memory -+ before writing it out to disk. By default, the library -+ allocates 1.5M buffer, which can be substantial for some -+ systems. EGLIBC_MEMUSAGE_DEFAULT_BUFFER_SIZE option -+ allows to change the default buffer size. It specifies -+ the number of entries the buffer should have. -+ On most architectures one buffer entry amounts to 48 bytes, -+ so setting this option to the value of 512 will reduce the size of -+ the memory buffer to 24K. -+ -+config EGLIBC_NIS -+ bool "Support for NIS, NIS+, and the special 'compat' services." -+ depends on EGLIBC_INET && EGLIBC_SUNRPC -+ help -+ This option group includes the NIS, NIS+, and 'compat' Name -+ Service Switch service libraries. When it is disabled, those -+ services libraries are not installed; you should remove any -+ references to them from your 'nsswitch.conf' file. -+ -+ This option group depends on the EGLIBC_INET option -+ group; you must enable that to enable this option group. -+ -+config EGLIBC_NSSWITCH -+ bool "Name service switch (nsswitch) support" -+ help -+ This option group includes support for the 'nsswitch' facility. -+ With this option group enabled, all EGLIBC functions for -+ accessing various system databases (passwords and groups; -+ networking; aliases; public keys; and so on) consult the -+ '/etc/nsswitch.conf' configuration file to decide how to handle -+ queries. -+ -+ With this option group disabled, EGLIBC uses a fixed list of -+ services to satisfy queries on each database, as requested by -+ configuration files specified when EGLIBC is built. Your -+ 'option-groups.config' file must set the following two -+ variables: -+ -+config EGLIBC_NSSWITCH_FIXED_CONFIG -+ string "Nsswitch fixed config filename" -+ depends on !EGLIBC_NSSWITCH -+ default "" -+ help -+ Set this to the name of a file whose contents observe the -+ same syntax as an ordinary '/etc/nsswitch.conf' file. The -+ EGLIBC build process parses this file just as EGLIBC would -+ at run time if EGLIBC_NSSWITCH were enabled, and -+ produces a C library that uses the nsswitch service -+ libraries to search for database entries as this file -+ specifies, instead of consulting '/etc/nsswitch.conf' at run -+ time. -+ -+ This should be an absolute filename. The EGLIBC build -+ process may use it from several different working -+ directories. It may include references to Makefile -+ variables like 'common-objpfx' (the top of the build tree, -+ with a trailing slash), or '..' (the top of the source tree, -+ with a trailing slash). -+ -+ The EGLIBC source tree includes a sample configuration file -+ named 'nss/fixed-nsswitch.conf'; for simple configurations, -+ you will probably want to delete references to databases not -+ needed on your system. -+ -+config EGLIBC_NSSWITCH_FIXED_FUNCTIONS -+ string "Nsswitch fixed functions filename" -+ depends on !EGLIBC_NSSWITCH -+ default "" -+ help -+ The EGLIBC build process uses this file to decide which -+ functions to make available from which service libraries. -+ The file 'nss/fixed-nsswitch.functions' serves as a sample -+ configuration file for this setting, and explains its syntax -+ and meaning in more detail. -+ -+ This should be an absolute file name. The EGLIBC build -+ process may use it from several different working -+ directories. It may include references to Makefile -+ variables like 'common-objpfx' (the top of the build tree, -+ with a trailing slash), or '..' (the top of the source tree, -+ with a trailing slash). -+ -+ Be sure to mention each function in each service you wish to -+ use. If you do not mention a service's function here, the -+ EGLIBC database access functions will not find it, even if -+ it is listed in the EGLIBC_NSSWITCH_FIXED_CONFIG -+ file. -+ -+ In this arrangement, EGLIBC will not use the 'dlopen' and -+ 'dlsym' functions to find database access functions. Instead, -+ libc hard-codes references to the service libraries' database -+ access functions. You must explicitly link your program -+ against the name service libraries (those whose names start -+ with 'libnss_', in the sysroot's '/lib' directory) whose -+ functions you intend to use. This arrangement helps -+ system-wide static analysis tools decide which functions a -+ system actually uses. -+ -+ Note that some nsswitch service libraries require other option -+ groups to be enabled; for example, the EGLIBC_INET -+ option group must be enabled to use the 'libnss_dns.so.2' -+ service library, which uses the Domain Name System network -+ protocol to answer queries. -+ -+config EGLIBC_RCMD -+ bool "Support for 'rcmd' and related library functions" -+ depends on EGLIBC_INET -+ help -+ This option group includes functions for running commands on -+ remote machines via the 'rsh' protocol, and doing authentication -+ related to those functions. This also includes functions that -+ use the 'rexec' protocol. -+ -+ This option group includes the following functions: -+ -+ rcmd ruserok -+ rcmd_af ruserok_af -+ rexec iruserok -+ rexec_af iruserok_af -+ rresvport ruserpass -+ rresvport_af -+ -+config EGLIBC_RTLD_DEBUG -+ bool "Runtime linker debug print outs" -+ help -+ This option group enables debug output of the runtime linker -+ which is activated via LD_DEBUG and LD_TRACE_PRELINKING -+ environment variables. Disabling this option group yields -+ a smaller runtime linker binary. -+ BEWARE: Disabling this option group is likely to break -+ the `ldd' utility which may also be used by the prelinker. -+ In particular, the `--unused' ldd option will not work correctly. -+ -+config EGLIBC_SPAWN -+ bool "Support for POSIX posix_spawn functions" -+ help -+ This option group includes the POSIX functions for executing -+ programs in child processes without using 'fork' or 'vfork'. -+ -+ This option group includes the following functions: -+ -+ posix_spawn -+ posix_spawnattr_destroy -+ posix_spawnattr_getflags -+ posix_spawnattr_getpgroup -+ posix_spawnattr_getschedparam -+ posix_spawnattr_getschedpolicy -+ posix_spawnattr_getsigdefault -+ posix_spawnattr_getsigmask -+ posix_spawnattr_init -+ posix_spawnattr_setflags -+ posix_spawnattr_setpgroup -+ posix_spawnattr_setschedparam -+ posix_spawnattr_setschedpolicy -+ posix_spawnattr_setsigdefault -+ posix_spawnattr_setsigmask -+ posix_spawn_file_actions_addclose -+ posix_spawn_file_actions_adddup2 -+ posix_spawn_file_actions_addopen -+ posix_spawn_file_actions_destroy -+ posix_spawn_file_actions_init -+ posix_spawnp -+ -+ This option group also provides the ability for the iconv, -+ localedef, and locale programs to operate transparently on -+ compressed charset definitions. When this option group is -+ disabled, those programs will only operate on uncompressed -+ charmap files. -+ -+config EGLIBC_STREAMS -+ bool "Support for accessing STREAMS." -+ help -+ This option group includes functions for reading and writing -+ messages to and from STREAMS. The STREAMS interface provides a -+ uniform mechanism for implementing networking services and other -+ character-based I/O. (STREAMS are not to be confused with -+ <stdio.h> FILE objects, also called 'streams'.) -+ -+ This option group includes the following functions: -+ -+ getmsg putpmsg -+ getpmsg fattach -+ isastream fdetach -+ putmsg -+ -+config EGLIBC_SUNRPC -+ bool "Support for the Sun 'RPC' protocol." -+ depends on EGLIBC_INET -+ help -+ This option group includes support for the Sun RPC protocols, -+ including the 'rpcgen' and 'rpcinfo' programs. -+ -+config EGLIBC_UTMP -+ bool "Older access functions for 'utmp' login records" -+ help -+ This option group includes the older 'utent' family of -+ functions for accessing user login records in the 'utmp' file. -+ POSIX omits these functions in favor of the 'utxent' family, -+ and they are obsolete on systems other than Linux. -+ -+ This option group includes the following functions: -+ -+ endutent -+ getutent -+ getutent_r -+ getutid -+ getutid_r -+ getutline -+ getutline_r -+ logwtmp -+ pututline -+ setutent -+ updwtmp -+ utmpname -+ -+ This option group includes the following libraries: -+ -+ libutil.so (and libutil.a) -+ -+config EGLIBC_UTMPX -+ bool "POSIX access functions for 'utmp' login records" -+ depends on EGLIBC_UTMP -+ help -+ This option group includes the POSIX functions for reading and -+ writing user login records in the 'utmp' file (usually -+ '/var/run/utmp'). The POSIX functions operate on 'struct -+ utmpx' structures, as opposed to the family of older 'utent' -+ functions, which operate on 'struct utmp' structures. -+ -+ This option group includes the following functions: -+ -+ endutxent -+ getutmp -+ getutmpx -+ getutxent -+ getutxid -+ getutxline -+ pututxline -+ setutxent -+ updwtmpx -+ utmpxname -+ -+config EGLIBC_WORDEXP -+ bool "Shell-style word expansion" -+ help -+ This option group includes the 'wordexp' function for -+ performing word expansion in the manner of the shell, and the -+ accompanying 'wordfree' function. -+ -+config POSIX_C_LANG_WIDE_CHAR -+ bool "ISO C library wide character functions, excluding I/O" -+ help -+ This option group includes the functions defined by the ISO C -+ standard for working with wide and multibyte characters in -+ memory. Functions for reading and writing wide and multibyte -+ characters from and to files call in the -+ POSIX_WIDE_CHAR_DEVICE_IO option group. -+ -+ This option group includes the following functions: -+ -+ btowc mbsinit wcscspn wcstoll -+ iswalnum mbsrtowcs wcsftime wcstombs -+ iswalpha mbstowcs wcslen wcstoul -+ iswblank mbtowc wcsncat wcstoull -+ iswcntrl swprintf wcsncmp wcstoumax -+ iswctype swscanf wcsncpy wcsxfrm -+ iswdigit towctrans wcspbrk wctob -+ iswgraph towlower wcsrchr wctomb -+ iswlower towupper wcsrtombs wctrans -+ iswprint vswprintf wcsspn wctype -+ iswpunct vswscanf wcsstr wmemchr -+ iswspace wcrtomb wcstod wmemcmp -+ iswupper wcscat wcstof wmemcpy -+ iswxdigit wcschr wcstoimax wmemmove -+ mblen wcscmp wcstok wmemset -+ mbrlen wcscoll wcstol -+ mbrtowc wcscpy wcstold -+ -+config POSIX_REGEXP -+ bool "Regular expressions" -+ help -+ This option group includes the POSIX regular expression -+ functions, and the associated non-POSIX extensions and -+ compatibility functions. -+ -+ With POSIX_REGEXP disabled, the following functions are -+ omitted from libc: -+ -+ re_comp re_max_failures regcomp -+ re_compile_fastmap re_search regerror -+ re_compile_pattern re_search_2 regexec -+ re_exec re_set_registers regfree -+ re_match re_set_syntax rpmatch -+ re_match_2 re_syntax_options -+ -+ Furthermore, the compatibility regexp interface defined in the -+ <regexp.h> header file, 'compile', 'step', and 'advance', is -+ omitted. -+ -+config POSIX_REGEXP_GLIBC -+ bool "Regular expressions from GLIBC" -+ depends on POSIX_REGEXP -+ help -+ This option group specifies which regular expression -+ library to use. The choice is between regex -+ implementation from GLIBC and regex implementation from -+ libiberty. The GLIBC variant is fully POSIX conformant and -+ optimized for speed; regex from libiberty is more than twice -+ as small while still is enough for most practical purposes. -+ -+config POSIX_WIDE_CHAR_DEVICE_IO -+ bool "Input and output functions for wide characters" -+ depends on POSIX_C_LANG_WIDE_CHAR -+ help -+ This option group includes functions for reading and writing -+ wide characters to and from <stdio.h> streams. -+ -+ This option group includes the following functions: -+ -+ fgetwc fwprintf putwchar vwscanf -+ fgetws fwscanf ungetwc wprintf -+ fputwc getwc vfwprintf wscanf -+ fputws getwchar vfwscanf -+ fwide putwc vwprintf -+ -+ This option group further includes the following unlocked -+ variants of the above functions: -+ -+ fgetwc_unlocked getwc_unlocked -+ fgetws_unlocked getwchar_unlocked -+ fputwc_unlocked putwc_unlocked -+ fputws_unlocked putwchar_unlocked -+ -+ Note that the GNU standard C++ library, 'libstdc++.so', uses -+ some of these functions; you will not be able to link or run -+ C++ programs if you disable this option group. -+ -+ This option group also affects the behavior of the following -+ functions: -+ -+ fdopen -+ fopen -+ fopen64 -+ freopen -+ freopen64 -+ -+ These functions all take an OPENTYPE parameter which may -+ contain a string of the form ",ccs=CHARSET", indicating that -+ the underlying file uses the character set named CHARSET. -+ This produces a wide-oriented stream, which is only useful -+ when the functions included in this option group are present. -+ If the user attempts to open a file specifying a character set -+ in the OPENTYPE parameter, and EGLIBC was built with this -+ option group disabled, the function returns NULL, and sets -+ errno to EINVAL. -+ -+ -+# This helps Emacs users browse this file using the page motion commands -+# and commands like 'pages-directory'. -+# Local Variables: -+# page-delimiter: "^config\\s-" -+# End: -Index: git/option-groups.mak -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ git/option-groups.mak 2014-08-27 07:26:51.652070587 +0000 -@@ -0,0 +1,41 @@ -+# Setup file for subdirectory Makefiles that define EGLIBC option groups. -+ -+# EGLIBC shouldn't need to override this. However, the -+# cross-build-friendly localedef includes this makefile to get option -+# group variable definitions; it uses a single build tree for all the -+# multilibs, and needs to be able to specify a different option group -+# configuration file for each multilib. -+option_group_config_file ?= $(objdir)/option-groups.config -+ -+# Read the default settings for all options. -+# We're included before ../Rules, so we can't assume $(..) is set. -+include $(firstword $(..) ../)option-groups.defaults -+ -+# Read the developer's option group selections, overriding the -+# defaults from option-groups.defaults. -+-include $(option_group_config_file) -+ -+# $(call option-disabled, VAR) is 'y' if VAR is not 'y', or 'n' otherwise. -+# VAR should be a variable name, not a variable reference; this is -+# less general, but more terse for the intended use. -+# You can use it to add a file to a list if an option group is -+# disabled, like this: -+# routines-$(call option-disabled, OPTION_POSIX_C_LANG_WIDE_CHAR) += ... -+define option-disabled -+$(firstword $(subst y,n,$(filter y,$($(strip $(1))))) y) -+endef -+ -+# Establish 'routines-y', etc. as simply-expanded variables. -+aux-y := -+extra-libs-others-y := -+extra-libs-y := -+extra-objs-y := -+install-bin-y := -+install-others-y := -+install-sbin-y := -+others-y := -+others-pie-y := -+routines-y := -+test-srcs-y := -+tests-y := -+xtests-y := -Index: git/option-groups.defaults -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ git/option-groups.defaults 2014-08-27 07:24:41.652070587 +0000 -@@ -0,0 +1,47 @@ -+# This file sets default values for all option group variables -+# mentioned in option-groups.def; see that file for a description of -+# each option group. -+# -+# Subdirectory makefiles include this file before including the user's -+# settings from option-groups.config at the top of the build tree; -+# that file need only refer to those options whose default settings -+# are to be changed. -+# -+# By default, all option groups are enabled. -+OPTION_EGLIBC_ADVANCED_INET6 = y -+OPTION_EGLIBC_BACKTRACE = y -+OPTION_EGLIBC_BIG_MACROS = y -+OPTION_EGLIBC_BSD = y -+OPTION_EGLIBC_CXX_TESTS = y -+OPTION_EGLIBC_CATGETS = y -+OPTION_EGLIBC_CHARSETS = y -+OPTION_EGLIBC_CRYPT = y -+OPTION_EGLIBC_CRYPT_UFC = y -+OPTION_EGLIBC_DB_ALIASES = y -+OPTION_EGLIBC_ENVZ = y -+OPTION_EGLIBC_FCVT = y -+OPTION_EGLIBC_FMTMSG = y -+OPTION_EGLIBC_FSTAB = y -+OPTION_EGLIBC_FTRAVERSE = y -+OPTION_EGLIBC_GETLOGIN = y -+OPTION_EGLIBC_IDN = y -+OPTION_EGLIBC_INET = y -+OPTION_EGLIBC_INET_ANL = y -+OPTION_EGLIBC_LIBM = y -+OPTION_EGLIBC_LOCALES = y -+OPTION_EGLIBC_LOCALE_CODE = y -+OPTION_EGLIBC_MEMUSAGE = y -+OPTION_EGLIBC_NIS = y -+OPTION_EGLIBC_NSSWITCH = y -+OPTION_EGLIBC_RCMD = y -+OPTION_EGLIBC_RTLD_DEBUG = y -+OPTION_EGLIBC_SPAWN = y -+OPTION_EGLIBC_STREAMS = y -+OPTION_EGLIBC_SUNRPC = y -+OPTION_EGLIBC_UTMP = y -+OPTION_EGLIBC_UTMPX = y -+OPTION_EGLIBC_WORDEXP = y -+OPTION_POSIX_C_LANG_WIDE_CHAR = y -+OPTION_POSIX_REGEXP = y -+OPTION_POSIX_REGEXP_GLIBC = y -+OPTION_POSIX_WIDE_CHAR_DEVICE_IO = y -Index: git/Makefile -=================================================================== ---- git.orig/Makefile 2014-08-27 07:24:37.540070587 +0000 -+++ git/Makefile 2014-08-27 07:24:41.656070587 +0000 -@@ -24,6 +24,7 @@ - - include Makeconfig - -+include options-config/Makefile - - # This is the default target; it makes everything except the tests. - .PHONY: all -Index: git/EGLIBC.option-groups -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ git/EGLIBC.option-groups 2014-08-27 07:24:41.656070587 +0000 -@@ -0,0 +1,122 @@ -+ -*- mode: text -*- -+ -+ The EGLIBC Component Configuration System -+ Jim Blandy <jimb@codesourcery.com> -+ -+Introduction -+ -+The GNU C library (GLIBC) provides a broad range of functionality, -+ranging from internationalization support to transcendental -+mathematical functions. Its website boasts that "nearly all known and -+useful functions from any other C library are available." This -+exhaustive approach has been one of GLIBC's strengths on desktop and -+server systems, but it has also given GLIBC a large footprint, both in -+memory and on disk, making it a challenge to use in embedded systems -+with limited resources. -+ -+The Embedded GNU C library (EGLIBC) is a variant of the GNU C library -+designed to work well on embedded systems. In particular, EGLIBC's -+component configuration system allows embedded developers to build -+customized versions of the library that include only the features -+their application uses, reducing its space requirements. -+ -+EGLIBC's component configuration system categorizes the library's -+functions into "option groups", and allows you to include or exclude -+option groups individually. Some option groups depend on others; -+EGLIBC tracks these relationships, and ensures that the selected -+configuration yields a functioning library. -+ -+ -+Consistent and Predictable Behavior -+ -+A flexible configuration system is a mixed blessing: if the options -+offered are poorly designed, it can be hard to see which choices will -+have the desired effects, and choices with obscure consequences can -+make debugging difficult. EGLIBC's configuration follows some general -+principles to reduce these risks: -+ -+- EGLIBC has a single default configuration for each target -+ architecture. -+ -+- In the default configuration, all option groups are enabled, and -+ EGLIBC is upwardly API- and ABI-compatible with GLIBC. -+ -+- As much as possible, configurations only affect what functions are -+ present, not how they behave. If the system works with an option -+ group disabled, it will still work with it enabled. -+ -+- As much as possible, configurations only select option groups --- -+ they do not describe characteristics of the target architecture. -+ -+These rules mean that you have a simple debugging strategy available -+if you suspect that your EGLIBC configuration might be the source of a -+problem: fall back to the default configuration, re-test, and then -+disable option groups one by one, until the problem reappears. -+ -+ -+The Option Groups -+ -+To see the current full list of implemented option groups, refer to the -+file 'option-groups.def' at the top of the source tree, or run -+'make menuconfig' from the top-level build directory. -+ -+The POSIX.1-2001 specification includes a suggested partition of all -+the functions in the POSIX C API into option groups: math functions -+like 'sin' and 'cos'; networking functions like 'socket' and -+'connect'; and so on. EGLIBC could use this partitioning as the basis -+for future option groups. -+ -+ -+Implementation -+ -+The EGLIBC component configuration system resembles the approach used -+by the Linux kernel to select device drivers, network protocols, and -+other features. A file named 'option-groups.config' in the top-level -+build directory contains assignments to Make variables, each of which -+enables or disables a particular option group. If the variable's -+value is set to 'y', then the option group is enabled; if it set to -+anything else, the option group is omitted. The file -+'option-groups.defaults', at the top of the source tree, establishes -+default values for all variables; all option groups are enabled by -+default. -+ -+For example, the following 'option-groups.config' would omit locale -+data, but include mathematical functions, and everything else: -+ -+ OPTION_EGLIBC_LOCALES = n -+ OPTION_EGLIBC_LIBM = y -+ -+Like the Linux kernel, EGLIBC supports a similar set of '*config' make -+targets to make it easier to create 'option-groups.config', with all -+dependencies between option groups automatically satisfied. Run -+'make help' to see the list of supported make config targets. For -+example, 'make menuconfig' will update the current config utilising a -+menu based program. -+ -+The option group names and their type (boolean, int, hex, string), help -+description, and dependencies with other option groups, are described by -+'option-groups.def' at the top of the source tree, analogous to the -+'Kconfig' files in the Linux kernel. -+ -+In general, each option group variable controls whether a given set of -+object files in EGLIBC is compiled and included in the final -+libraries, or omitted from the build. -+ -+Each subdirectory's Makefile categorizes its routines, libraries, and -+executables by option group. For example, EGLIBC's 'math/Makefile' -+places the 'libm' library in the OPTION_EGLIBC_LIBM group as follows: -+ -+ extra-libs-$(OPTION_EGLIBC_LIBM) := libm -+ -+Finally, common code in 'Makerules' cites the value of the variable -+'extra-libs-y', selecting only those libraries that belong to enabled -+option groups to be built. -+ -+ -+Current Status and Future Directions -+ -+The EGLIBC component configuration system described here is still -+under development. -+ -+We have used the system to subset some portions of EGLIBC's -+Index: libc/configure.ac -Index: git/configure.ac -=================================================================== ---- git.orig/configure.ac 2014-08-27 07:24:41.196070587 +0000 -+++ git/configure.ac 2014-08-27 07:24:41.656070587 +0000 -@@ -127,6 +127,16 @@ - [sysheaders='']) - AC_SUBST(sysheaders) - -+AC_ARG_WITH([kconfig], -+ AC_HELP_STRING([--with-kconfig=PATH], -+ [location of kconfig tools to use (from Linux -+ kernel builds) to re-use for configuring EGLIBC -+ option groups]), -+ [KCONFIG_TOOLS=$withval], -+ [KCONFIG_TOOLS='']) -+AC_SUBST(KCONFIG_TOOLS) -+ -+ - AC_SUBST(use_default_link) - AC_ARG_WITH([default-link], - AC_HELP_STRING([--with-default-link], -Index: git/config.make.in -=================================================================== ---- git.orig/config.make.in 2014-08-27 07:24:37.560070587 +0000 -+++ git/config.make.in 2014-08-27 07:24:41.656070587 +0000 -@@ -46,6 +46,8 @@ - c++-sysincludes = @CXX_SYSINCLUDES@ - all-warnings = @all_warnings@ - -+kconfig_tools = @KCONFIG_TOOLS@ -+ - have-z-combreloc = @libc_cv_z_combreloc@ - have-z-execstack = @libc_cv_z_execstack@ - have-Bgroup = @libc_cv_Bgroup@ -Index: git/configure -=================================================================== ---- git.orig/configure 2014-08-27 07:24:41.192070587 +0000 -+++ git/configure 2014-08-27 07:24:41.660070587 +0000 -@@ -619,6 +619,7 @@ - PERL - BASH_SHELL - libc_cv_gcc_static_libgcc -+KCONFIG_TOOLS - CXX_SYSINCLUDES - SYSINCLUDES - AUTOCONF -@@ -733,6 +734,7 @@ - with_binutils - with_selinux - with_headers -+with_kconfig - with_default_link - enable_sanity_checks - enable_shared -@@ -1437,6 +1439,9 @@ - --with-selinux if building with SELinux support - --with-headers=PATH location of system headers to use (for example - /usr/src/linux/include) [default=compiler default] -+ --with-kconfig=PATH location of kconfig tools to use (from Linux kernel -+ builds) to re-use for configuring EGLIBC option -+ groups - --with-default-link do not use explicit linker scripts - --with-cpu=CPU select code for CPU variant - -@@ -3400,6 +3405,14 @@ - - - -+# Check whether --with-kconfig was given. -+if test "${with_kconfig+set}" = set; then -+ withval=$with_kconfig; KCONFIG_TOOLS=$withval -+else -+ KCONFIG_TOOLS='' -+fi -+ -+ - - # Check whether --with-default-link was given. - if test "${with_default_link+set}" = set; then : -Index: git/options-config/Makefile -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ git/options-config/Makefile 2014-08-27 07:24:41.652070587 +0000 -@@ -0,0 +1,55 @@ -+# =========================================================================== -+# EGLIBC option-groups configuration targets -+# These targets are included from top-level makefile -+ -+ifneq ($(kconfig_tools),) -+ifneq (no,$(PERL)) -+ -+ocdir := options-config -+ -+OconfigDefaults := option-groups.defaults -+OconfigDefaults_tmp := $(common-objpfx).tmp.defconfig -+OconfigDef := option-groups.def -+Oconfig := $(common-objpfx)option-groups.config -+Oconfig_tmp := $(common-objpfx).tmp.config -+ -+conf := $(kconfig_tools)/conf -+mconf := $(kconfig_tools)/mconf -+ -+preproc := $(PERL) $(ocdir)/config-preproc.pl -+postproc := $(PERL) $(ocdir)/config-postproc.pl -+ -+PHONY += defconfig config menuconfig -+ -+defconfig: $(conf) $(OconfigDefaults) $(OconfigDef) -+ rm -f $(OconfigDefaults_tmp) -+ rm -f $(Oconfig_tmp) -+ $(preproc) $(OconfigDefaults) > $(OconfigDefaults_tmp) -+ KCONFIG_CONFIG=$(Oconfig_tmp) $< --defconfig=$(OconfigDefaults_tmp) \ -+ $(OconfigDef) -+ $(postproc) $(OconfigDefaults) $(Oconfig_tmp) > $(Oconfig) -+ rm $(Oconfig_tmp) -+ rm $(OconfigDefaults_tmp) -+ -+config: $(conf) $(OconfigDefaults) $(OconfigDef) -+ rm -f $(Oconfig_tmp) -+ $(preproc) $(wildcard $(Oconfig)) > $(Oconfig_tmp) -+ KCONFIG_CONFIG=$(Oconfig_tmp) $< --oldaskconfig $(OconfigDef) -+ $(postproc) $(OconfigDefaults) $(Oconfig_tmp) > $(Oconfig) -+ rm $(Oconfig_tmp) -+ -+menuconfig: $(mconf) $(OconfigDefaults) $(OconfigDef) -+ rm -f $(Oconfig_tmp) -+ $(preproc) $(wildcard $(Oconfig)) > $(Oconfig_tmp) -+ KCONFIG_CONFIG=$(Oconfig_tmp) $< $(OconfigDef) -+ $(postproc) $(OconfigDefaults) $(Oconfig_tmp) > $(Oconfig) -+ rm $(Oconfig_tmp) -+ -+# Help text used by make help -+help: -+ @echo ' defconfig - New config with default from default config' -+ @echo ' config - Update current config utilising a line-oriented program' -+ @echo ' menuconfig - Update current config utilising a menu based program' -+ -+endif -+endif -Index: git/options-config/config-postproc.pl -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ git/options-config/config-postproc.pl 2014-08-27 07:24:41.652070587 +0000 -@@ -0,0 +1,58 @@ -+#!/usr/bin/perl -+ -+$usage = "usage: $0 <default config file> <config file>\n"; -+ -+die "$usage" unless @ARGV; -+$defaults = shift @ARGV; -+die "$usage" unless @ARGV; -+die "Could not open $ARGV[0]" unless -T $ARGV[0]; -+ -+sub yank { -+ @option = grep(!($_ =~ /$_[0]\s*=/), @option); -+} -+ -+open(DEFAULTS, $defaults) || die "Could not open $defaults\n"; -+ -+# get the full list of available options using the default config file -+$i = 0; -+while (<DEFAULTS>) { -+ if (/^\s*OPTION_(\w+\s*=.*$)/) { -+ $option[$i++] = $1; -+ } -+} -+ -+# now go through the config file, making the necessary changes -+while (<>) { -+ if (/Linux Kernel Configuration/) { -+ # change title -+ s/Linux Kernel/Option Groups/; -+ print; -+ } elsif (/^\s*CONFIG_(\w+)\s*=/) { -+ # this is an explicit option set line, change CONFIG_ to OPTION_ -+ # before printing and remove this option from option list -+ $opt = $1; -+ yank($opt); -+ s/CONFIG_/OPTION_/g; -+ print; -+ } elsif (/^\s*#\s+CONFIG_(\w+) is not set/) { -+ # this is a comment line for an unset boolean option, change CONFIG_ -+ # to OPTION_, remove this option from option list, and convert to -+ # explicit OPTION_FOO=n -+ $opt = $1; -+ yank($opt); -+ s/CONFIG_/OPTION_/g; -+ print "OPTION_$opt=n\n"; -+ } else { -+ print; -+ } -+} -+ -+# any boolean options left in @options, are options that were not mentioned in -+# the config file, and implicitly that means the option must be set =n, -+# so do that here. -+foreach $opt (@option) { -+ if ($opt =~ /=\s*[yn]/) { -+ $opt =~ s/=\s*[yn]/=n/; -+ print "OPTION_$opt\n"; -+ } -+} -Index: git/options-config/config-preproc.pl -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ git/options-config/config-preproc.pl 2014-08-27 07:24:41.652070587 +0000 -@@ -0,0 +1,8 @@ -+#!/usr/bin/perl -+ -+if (@ARGV) { -+ while (<>) { -+ s/OPTION_/CONFIG_/g; -+ print; -+ } -+} -Index: git/scripts/option-groups.awk -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ git/scripts/option-groups.awk 2014-08-27 07:26:51.652070587 +0000 -@@ -0,0 +1,63 @@ -+# option-groups.awk --- generate option group header file -+# Given input files containing makefile-style assignments to variables, -+# print out a header file that #defines an appropriate preprocessor -+# symbol for each variable left set to 'y'. -+ -+BEGIN { FS="=" } -+ -+# Trim spaces. -+{ gsub (/[[:blank:]]/, "") } -+ -+# Skip comments. -+/^#/ { next } -+ -+# Process assignments. -+NF == 2 { -+ vars[$1] = $2 -+} -+ -+# Print final values. -+END { -+ print "/* This file is automatically generated by scripts/option-groups.awk" -+ print " in the EGLIBC source tree." -+ print "" -+ print " It defines macros that indicate which EGLIBC option groups were" -+ print " configured in 'option-groups.config' when this C library was" -+ print " built. For each option group named OPTION_foo, it #defines" -+ print " __OPTION_foo to be 1 if the group is enabled, or leaves that" -+ print " symbol undefined if the group is disabled. */" -+ print "" -+ print "#ifndef __GNU_OPTION_GROUPS_H" -+ print "#define __GNU_OPTION_GROUPS_H" -+ print "" -+ -+ # Produce a sorted list of variable names. -+ i=0 -+ for (var in vars) -+ names[i++] = var -+ n = asort (names) -+ -+ for (i = 1; i <= n; i++) -+ { -+ var = names[i] -+ if (var ~ /^OPTION_/) -+ { -+ if (vars[var] == "y") -+ print "#define __" var " 1" -+ else if (vars[var] == "n") -+ print "/* #undef __" var " */" -+ else if (vars[var] ~ /^[0-9]+/ || -+ vars[var] ~ /^0x[0-9aAbBcCdDeEfF]+/ || -+ vars[var] ~ /^\"/) -+ print "#define __" var " " vars[var] -+ else -+ print "/* #undef __" var " */" -+ # Ignore variables that don't have boolean, int, hex, or -+ # string values. Ideally, this would be driven by the types -+ # given in option-groups.def. -+ } -+ } -+ -+ print "" -+ print "#endif /* __GNU_OPTION_GROUPS_H */" -+} diff --git a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/ppc-sqrt_finite.patch b/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/ppc-sqrt_finite.patch deleted file mode 100644 index 6ea666b1..00000000 --- a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/ppc-sqrt_finite.patch +++ /dev/null @@ -1,184 +0,0 @@ -on ppc fixes the errors like below -| ./.libs/libpulsecore-1.1.so: undefined reference to `__sqrt_finite' -| collect2: ld returned 1 exit status - -Upstream-Status: Pending - -ChangeLog - -2012-01-06 Khem Raj <raj.khem@gmail.com> - - * sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c: Add __*_finite alias. - Remove cruft. - * sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c: Ditto. - * sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c: Ditto. - * sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c: Ditto. - -Index: libc/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c -=================================================================== ---- libc.orig/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c -+++ libc/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c -@@ -39,14 +39,8 @@ static const float half = 0.5; - We find the actual square root and half of its reciprocal - simultaneously. */ - --#ifdef __STDC__ - double - __ieee754_sqrt (double b) --#else --double --__ieee754_sqrt (b) -- double b; --#endif - { - if (__builtin_expect (b > 0, 1)) - { -@@ -132,3 +126,4 @@ __ieee754_sqrt (b) - } - return f_wash (b); - } -+strong_alias (__ieee754_sqrt, __sqrt_finite) -Index: libc/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c -=================================================================== ---- libc.orig/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c -+++ libc/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c -@@ -37,14 +37,8 @@ static const float threehalf = 1.5; - We find the reciprocal square root and use that to compute the actual - square root. */ - --#ifdef __STDC__ - float - __ieee754_sqrtf (float b) --#else --float --__ieee754_sqrtf (b) -- float b; --#endif - { - if (__builtin_expect (b > 0, 1)) - { -@@ -99,3 +93,4 @@ __ieee754_sqrtf (b) - } - return f_washf (b); - } -+strong_alias (__ieee754_sqrtf, __sqrtf_finite) -Index: libc/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c -=================================================================== ---- libc.orig/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c -+++ libc/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c -@@ -39,14 +39,8 @@ static const float half = 0.5; - We find the actual square root and half of its reciprocal - simultaneously. */ - --#ifdef __STDC__ - double - __ieee754_sqrt (double b) --#else --double --__ieee754_sqrt (b) -- double b; --#endif - { - if (__builtin_expect (b > 0, 1)) - { -@@ -132,3 +126,4 @@ __ieee754_sqrt (b) - } - return f_wash (b); - } -+strong_alias (__ieee754_sqrt, __sqrt_finite) -Index: libc/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c -=================================================================== ---- libc.orig/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c -+++ libc/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c -@@ -37,14 +37,8 @@ static const float threehalf = 1.5; - We find the reciprocal square root and use that to compute the actual - square root. */ - --#ifdef __STDC__ - float - __ieee754_sqrtf (float b) --#else --float --__ieee754_sqrtf (b) -- float b; --#endif - { - if (__builtin_expect (b > 0, 1)) - { -@@ -99,3 +93,4 @@ __ieee754_sqrtf (b) - } - return f_washf (b); - } -+strong_alias (__ieee754_sqrtf, __sqrtf_finite) -Index: libc/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c -=================================================================== ---- libc.orig/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c -+++ libc/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c -@@ -132,3 +132,4 @@ __ieee754_sqrt (b) - } - return f_wash (b); - } -+strong_alias (__ieee754_sqrt, __sqrt_finite) -Index: libc/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrtf.c -=================================================================== ---- libc.orig/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrtf.c -+++ libc/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrtf.c -@@ -99,3 +99,4 @@ __ieee754_sqrtf (b) - } - return f_washf (b); - } -+strong_alias (__ieee754_sqrtf, __sqrtf_finite) -Index: libc/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrt.c -=================================================================== ---- libc.orig/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrt.c -+++ libc/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrt.c -@@ -132,3 +132,4 @@ __ieee754_sqrt (b) - } - return f_wash (b); - } -+strong_alias (__ieee754_sqrt, __sqrt_finite) -Index: libc/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrtf.c -=================================================================== ---- libc.orig/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrtf.c -+++ libc/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrtf.c -@@ -99,3 +99,4 @@ __ieee754_sqrtf (b) - } - return f_washf (b); - } -+strong_alias (__ieee754_sqrtf, __sqrtf_finite) -Index: libc/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrt.c -=================================================================== ---- libc.orig/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrt.c -+++ libc/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrt.c -@@ -132,3 +132,4 @@ __ieee754_sqrt (b) - } - return f_wash (b); - } -+strong_alias (__ieee754_sqrt, __sqrt_finite) -Index: libc/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrtf.c -=================================================================== ---- libc.orig/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrtf.c -+++ libc/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrtf.c -@@ -99,3 +99,4 @@ __ieee754_sqrtf (b) - } - return f_washf (b); - } -+strong_alias (__ieee754_sqrtf, __sqrtf_finite) -Index: libc/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c -=================================================================== ---- libc.orig/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c -+++ libc/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c -@@ -132,3 +132,4 @@ __ieee754_sqrt (b) - } - return f_wash (b); - } -+strong_alias (__ieee754_sqrt, __sqrt_finite) -Index: libc/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c -=================================================================== ---- libc.orig/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c -+++ libc/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c -@@ -99,3 +99,4 @@ __ieee754_sqrtf (b) - } - return f_washf (b); - } -+strong_alias (__ieee754_sqrtf, __sqrtf_finite) diff --git a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/ppc_slow_ieee754_sqrt.patch b/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/ppc_slow_ieee754_sqrt.patch deleted file mode 100644 index 5b819bc4..00000000 --- a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/ppc_slow_ieee754_sqrt.patch +++ /dev/null @@ -1,365 +0,0 @@ - __ieee754_sqrt{,f} are now inline functions and call out __slow versions - - -Signed-off-by: Khem Raj <raj.khem@gmail.com> -Upstream-Status: Pending -Index: git/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c -=================================================================== ---- git.orig/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c 2014-08-29 10:35:02.616070587 -0700 -+++ git/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c 2014-08-29 10:35:02.604070587 -0700 -@@ -40,7 +40,7 @@ - simultaneously. */ - - double --__ieee754_sqrt (double b) -+__slow_ieee754_sqrt (double b) - { - if (__builtin_expect (b > 0, 1)) - { -@@ -77,7 +77,7 @@ - - /* Handle small numbers by scaling. */ - if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0)) -- return __ieee754_sqrt (b * two108) * twom54; -+ return __slow_ieee754_sqrt (b * two108) * twom54; - - #define FMADD(a_, c_, b_) \ - ({ double __r; \ -@@ -126,4 +126,12 @@ - } - return f_wash (b); - } -+ -+#undef __ieee754_sqrt -+double -+__ieee754_sqrt (double x) -+{ -+ return __slow_ieee754_sqrt (x); -+} -+ - strong_alias (__ieee754_sqrt, __sqrt_finite) -Index: git/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c -=================================================================== ---- git.orig/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c 2014-08-29 10:35:02.616070587 -0700 -+++ git/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c 2014-08-29 10:35:02.604070587 -0700 -@@ -38,7 +38,7 @@ - square root. */ - - float --__ieee754_sqrtf (float b) -+__slow_ieee754_sqrtf (float b) - { - if (__builtin_expect (b > 0, 1)) - { -@@ -93,4 +93,10 @@ - } - return f_washf (b); - } -+#undef __ieee754_sqrtf -+float -+__ieee754_sqrtf (float x) -+{ -+ return __slow_ieee754_sqrtf (x); -+} - strong_alias (__ieee754_sqrtf, __sqrtf_finite) -Index: git/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c -=================================================================== ---- git.orig/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c 2014-08-29 10:35:02.616070587 -0700 -+++ git/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c 2014-08-29 10:35:02.604070587 -0700 -@@ -40,7 +40,7 @@ - simultaneously. */ - - double --__ieee754_sqrt (double b) -+__slow_ieee754_sqrt (double b) - { - if (__builtin_expect (b > 0, 1)) - { -@@ -77,7 +77,7 @@ - - /* Handle small numbers by scaling. */ - if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0)) -- return __ieee754_sqrt (b * two108) * twom54; -+ return __slow_ieee754_sqrt (b * two108) * twom54; - - #define FMADD(a_, c_, b_) \ - ({ double __r; \ -@@ -126,4 +126,12 @@ - } - return f_wash (b); - } -+ -+#undef __ieee754_sqrt -+double -+__ieee754_sqrt (double x) -+{ -+ return __slow_ieee754_sqrt (x); -+} -+ - strong_alias (__ieee754_sqrt, __sqrt_finite) -Index: git/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c -=================================================================== ---- git.orig/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c 2014-08-29 10:35:02.616070587 -0700 -+++ git/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c 2014-08-29 10:35:02.604070587 -0700 -@@ -38,7 +38,7 @@ - square root. */ - - float --__ieee754_sqrtf (float b) -+__slow_ieee754_sqrtf (float b) - { - if (__builtin_expect (b > 0, 1)) - { -@@ -93,4 +93,11 @@ - } - return f_washf (b); - } -+#undef __ieee754_sqrtf -+float -+__ieee754_sqrtf (float x) -+{ -+ return __slow_ieee754_sqrtf (x); -+} -+ - strong_alias (__ieee754_sqrtf, __sqrtf_finite) -Index: git/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrt.c -=================================================================== ---- git.orig/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrt.c 2014-08-29 10:35:02.616070587 -0700 -+++ git/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrt.c 2014-08-29 10:35:02.604070587 -0700 -@@ -41,10 +41,10 @@ - - #ifdef __STDC__ - double --__ieee754_sqrt (double b) -+__slow_ieee754_sqrt (double b) - #else - double --__ieee754_sqrt (b) -+__slow_ieee754_sqrt (b) - double b; - #endif - { -@@ -83,7 +83,7 @@ - - /* Handle small numbers by scaling. */ - if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0)) -- return __ieee754_sqrt (b * two108) * twom54; -+ return __slow_ieee754_sqrt (b * two108) * twom54; - - #define FMADD(a_, c_, b_) \ - ({ double __r; \ -@@ -132,4 +132,12 @@ - } - return f_wash (b); - } -+ -+#undef __ieee754_sqrt -+double -+__ieee754_sqrt (double x) -+{ -+ return __slow_ieee754_sqrt (x); -+} -+ - strong_alias (__ieee754_sqrt, __sqrt_finite) -Index: git/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrtf.c -=================================================================== ---- git.orig/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrtf.c 2014-08-29 10:35:02.616070587 -0700 -+++ git/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrtf.c 2014-08-29 10:35:02.604070587 -0700 -@@ -39,10 +39,10 @@ - - #ifdef __STDC__ - float --__ieee754_sqrtf (float b) -+__slow_ieee754_sqrtf (float b) - #else - float --__ieee754_sqrtf (b) -+__slow_ieee754_sqrtf (b) - float b; - #endif - { -@@ -99,4 +99,12 @@ - } - return f_washf (b); - } -+ -+#undef __ieee754_sqrtf -+float -+__ieee754_sqrtf (float x) -+{ -+ return __slow_ieee754_sqrtf (x); -+} -+ - strong_alias (__ieee754_sqrtf, __sqrtf_finite) -Index: git/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c -=================================================================== ---- git.orig/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c 2014-08-29 10:35:02.616070587 -0700 -+++ git/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c 2014-08-29 10:35:02.608070587 -0700 -@@ -41,10 +41,10 @@ - - #ifdef __STDC__ - double --__ieee754_sqrt (double b) -+__slow_ieee754_sqrt (double b) - #else - double --__ieee754_sqrt (b) -+__slow_ieee754_sqrt (b) - double b; - #endif - { -@@ -83,7 +83,7 @@ - - /* Handle small numbers by scaling. */ - if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0)) -- return __ieee754_sqrt (b * two108) * twom54; -+ return __slow_ieee754_sqrt (b * two108) * twom54; - - #define FMADD(a_, c_, b_) \ - ({ double __r; \ -@@ -132,4 +132,12 @@ - } - return f_wash (b); - } -+ -+#undef __ieee754_sqrt -+double -+__ieee754_sqrt (double x) -+{ -+ return __slow_ieee754_sqrt (x); -+} -+ - strong_alias (__ieee754_sqrt, __sqrt_finite) -Index: git/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrtf.c -=================================================================== ---- git.orig/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrtf.c 2014-08-29 10:35:02.616070587 -0700 -+++ git/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrtf.c 2014-08-29 10:35:02.608070587 -0700 -@@ -39,10 +39,10 @@ - - #ifdef __STDC__ - float --__ieee754_sqrtf (float b) -+__slow_ieee754_sqrtf (float b) - #else - float --__ieee754_sqrtf (b) -+__slow_ieee754_sqrtf (b) - float b; - #endif - { -@@ -99,4 +99,12 @@ - } - return f_washf (b); - } -+ -+#undef __ieee754_sqrtf -+float -+__ieee754_sqrtf (float x) -+{ -+ return __slow_ieee754_sqrtf (x); -+} -+ - strong_alias (__ieee754_sqrtf, __sqrtf_finite) -Index: git/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrt.c -=================================================================== ---- git.orig/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrt.c 2014-08-29 10:35:02.616070587 -0700 -+++ git/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrt.c 2014-08-29 10:35:02.608070587 -0700 -@@ -41,10 +41,10 @@ - - #ifdef __STDC__ - double --__ieee754_sqrt (double b) -+__slow_ieee754_sqrt (double b) - #else - double --__ieee754_sqrt (b) -+__slow_ieee754_sqrt (b) - double b; - #endif - { -@@ -83,7 +83,7 @@ - - /* Handle small numbers by scaling. */ - if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0)) -- return __ieee754_sqrt (b * two108) * twom54; -+ return __slow_ieee754_sqrt (b * two108) * twom54; - - #define FMADD(a_, c_, b_) \ - ({ double __r; \ -@@ -132,4 +132,12 @@ - } - return f_wash (b); - } -+ -+#undef __ieee754_sqrt -+double -+__ieee754_sqrt (double x) -+{ -+ return __slow_ieee754_sqrt (x); -+} -+ - strong_alias (__ieee754_sqrt, __sqrt_finite) -Index: git/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrtf.c -=================================================================== ---- git.orig/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrtf.c 2014-08-29 10:35:02.616070587 -0700 -+++ git/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrtf.c 2014-08-29 10:35:02.608070587 -0700 -@@ -39,10 +39,10 @@ - - #ifdef __STDC__ - float --__ieee754_sqrtf (float b) -+__slow_ieee754_sqrtf (float b) - #else - float --__ieee754_sqrtf (b) -+__slow_ieee754_sqrtf (b) - float b; - #endif - { -@@ -99,4 +99,12 @@ - } - return f_washf (b); - } -+ -+#undef __ieee754_sqrtf -+float -+__ieee754_sqrtf (float x) -+{ -+ return __slow_ieee754_sqrtf (x); -+} -+ - strong_alias (__ieee754_sqrtf, __sqrtf_finite) -Index: git/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c -=================================================================== ---- git.orig/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c 2014-08-29 10:35:02.616070587 -0700 -+++ git/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c 2014-08-29 10:35:02.608070587 -0700 -@@ -132,4 +132,12 @@ - } - return f_wash (b); - } -+ -+#undef __ieee754_sqrt -+double -+__ieee754_sqrt (double x) -+{ -+ return __slow_ieee754_sqrt (x); -+} -+ - strong_alias (__ieee754_sqrt, __sqrt_finite) -Index: git/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c -=================================================================== ---- git.orig/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c 2014-08-29 10:35:02.616070587 -0700 -+++ git/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c 2014-08-29 10:35:02.608070587 -0700 -@@ -99,4 +99,12 @@ - } - return f_washf (b); - } -+ -+#undef __ieee754_sqrtf -+float -+__ieee754_sqrtf (float x) -+{ -+ return __slow_ieee754_sqrtf (x); -+} -+ - strong_alias (__ieee754_sqrtf, __sqrtf_finite) diff --git a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/ppce6500-32b_slow_ieee754_sqrt.patch b/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/ppce6500-32b_slow_ieee754_sqrt.patch deleted file mode 100644 index 4c6c1070..00000000 --- a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/ppce6500-32b_slow_ieee754_sqrt.patch +++ /dev/null @@ -1,47 +0,0 @@ - __ieee754_sqrt{,f} are now inline functions and call out __slow versions - - -Signed-off-by: chunrong guo <B40290@freescale.com> -Upstream-Status: Pending - -diff -rNu libc-orig/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c libc/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c ---- libc-orig/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c 2014-04-08 04:39:58.487229887 -0500 -+++ libc/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c 2014-04-08 04:40:52.643069198 -0500 -@@ -41,10 +41,10 @@ - - #ifdef __STDC__ - double --__ieee754_sqrt (double b) -+__slow_ieee754_sqrt (double b) - #else - double --__ieee754_sqrt (b) -+__slow_ieee754_sqrt (b) - double b; - #endif - { -@@ -83,7 +83,7 @@ - - /* Handle small numbers by scaling. */ - if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0)) -- return __ieee754_sqrt (b * two108) * twom54; -+ return __slow_ieee754_sqrt (b * two108) * twom54; - - #define FMADD(a_, c_, b_) \ - ({ double __r; \ -diff -rNu libc-orig/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c libc/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c ---- libc-orig/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c 2014-04-08 04:39:58.487229887 -0500 -+++ libc/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c 2014-04-08 04:41:26.017067682 -0500 -@@ -39,10 +39,10 @@ - - #ifdef __STDC__ - float --__ieee754_sqrtf (float b) -+__slow_ieee754_sqrtf (float b) - #else - float --__ieee754_sqrtf (b) -+__slow_ieee754_sqrtf (b) - float b; - #endif - { diff --git a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/relocatable_sdk.patch b/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/relocatable_sdk.patch deleted file mode 100644 index ca5f17ba..00000000 --- a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/relocatable_sdk.patch +++ /dev/null @@ -1,108 +0,0 @@ -Upstream-Status: Inappropriate [SDK specific] - -This patch puts the dynamic loader path in the binaries, SYSTEM_DIRS strings -and lengths as well as ld.so.cache path in the dynamic loader to specific -sections in memory. The sections that contain paths have been allocated a 4096 -byte section, which is the maximum path length in linux. This will allow the -relocating script to parse the ELF binary, detect the section and easily replace -the strings in a certain path. - -Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com> - -Index: libc/elf/interp.c -=================================================================== ---- libc.orig/elf/interp.c -+++ libc/elf/interp.c -@@ -16,5 +16,5 @@ - License along with the GNU C Library; if not, see - <http://www.gnu.org/licenses/>. */ - --const char __invoke_dynamic_linker__[] __attribute__ ((section (".interp"))) -+const char __invoke_dynamic_linker__[4096] __attribute__ ((section (".interp"))) - = RUNTIME_LINKER; -Index: libc/elf/dl-load.c -=================================================================== ---- libc.orig/elf/dl-load.c -+++ libc/elf/dl-load.c -@@ -144,8 +144,8 @@ static size_t max_capstrlen attribute_re - /* Get the generated information about the trusted directories. */ - #include "trusted-dirs.h" - --static const char system_dirs[] = SYSTEM_DIRS; --static const size_t system_dirs_len[] = -+static const char system_dirs[4096] __attribute__ ((section (".sysdirs"))) = SYSTEM_DIRS; -+volatile static const size_t system_dirs_len[] __attribute__ ((section (".sysdirslen"))) = - { - SYSTEM_DIRS_LEN - }; -Index: libc/elf/dl-cache.c -=================================================================== ---- libc.orig/elf/dl-cache.c -+++ libc/elf/dl-cache.c -@@ -133,6 +133,10 @@ do \ - while (0) - - -+const char LD_SO_CACHE[4096] __attribute__ ((section (".ldsocache"))) = -+ SYSCONFDIR "/ld.so.cache"; -+ -+ - int - internal_function - _dl_cache_libcmp (const char *p1, const char *p2) -Index: libc/elf/ldconfig.c -=================================================================== ---- libc.orig/elf/ldconfig.c -+++ libc/elf/ldconfig.c -@@ -166,6 +166,9 @@ static struct argp argp = - options, parse_opt, NULL, doc, NULL, more_help, NULL - }; - -+ -+extern const char LD_SO_CACHE[4096] __attribute__ ((section (".ldsocache"))); -+ - /* Check if string corresponds to an important hardware capability or - a platform. */ - static int -Index: libc/sysdeps/generic/dl-cache.h -=================================================================== ---- libc.orig/sysdeps/generic/dl-cache.h -+++ libc/sysdeps/generic/dl-cache.h -@@ -27,10 +27,6 @@ - ((flags) == 1 || (flags) == _DL_CACHE_DEFAULT_ID) - #endif - --#ifndef LD_SO_CACHE --# define LD_SO_CACHE SYSCONFDIR "/ld.so.cache" --#endif -- - #ifndef add_system_dir - # define add_system_dir(dir) add_dir (dir) - #endif -Index: libc/elf/rtld.c -=================================================================== ---- libc.orig/elf/rtld.c -+++ libc/elf/rtld.c -@@ -99,6 +99,7 @@ uintptr_t __pointer_chk_guard_local - strong_alias (__pointer_chk_guard_local, __pointer_chk_guard) - #endif - -+extern const char LD_SO_CACHE[4096] __attribute__ ((section (".ldsocache"))); - - /* List of auditing DSOs. */ - static struct audit_list -@@ -1031,12 +1032,12 @@ of this helper program; chances are you - --list list all dependencies and how they are resolved\n\ - --verify verify that given object really is a dynamically linked\n\ - object we can handle\n\ -- --inhibit-cache Do not use " LD_SO_CACHE "\n\ -+ --inhibit-cache Do not use %s\n\ - --library-path PATH use given PATH instead of content of the environment\n\ - variable LD_LIBRARY_PATH\n\ - --inhibit-rpath LIST ignore RUNPATH and RPATH information in object names\n\ - in LIST\n\ -- --audit LIST use objects named in LIST as auditors\n"); -+ --audit LIST use objects named in LIST as auditors\n", LD_SO_CACHE); - - ++_dl_skip_args; - --_dl_argc; diff --git a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/relocatable_sdk_fix_openpath.patch b/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/relocatable_sdk_fix_openpath.patch deleted file mode 100644 index f164f8f9..00000000 --- a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/relocatable_sdk_fix_openpath.patch +++ /dev/null @@ -1,41 +0,0 @@ -Upstream-Status: Inappropriate [SDK specific] - -eglibc-nativesdk: Fix buffer overrun with a relocated SDK - -When ld-linux-*.so.2 is relocated to a path that is longer than the -original fixed location, the dynamic loader will crash in open_path -because it implicitly assumes that max_dirnamelen is a fixed size that -never changes. - -The allocated buffer will not be large enough to contain the directory -path string which is larger than the fixed location provided at build -time. - -Signed-off-by: Jason Wessel <jason.wessel@windriver.com> - ---- - elf/dl-load.c | 12 ++++++++++++ - 1 file changed, 12 insertions(+) - ---- a/elf/dl-load.c -+++ b/elf/dl-load.c -@@ -1919,7 +1919,19 @@ open_path (const char *name, size_t name - given on the command line when rtld is run directly. */ - return -1; - -+ do -+ { -+ struct r_search_path_elem *this_dir = *dirs; -+ if (this_dir->dirnamelen > max_dirnamelen) -+ { -+ max_dirnamelen = this_dir->dirnamelen; -+ } -+ } -+ while (*++dirs != NULL); -+ - buf = alloca (max_dirnamelen + max_capstrlen + namelen); -+ -+ dirs = sps->dirs; - do - { - struct r_search_path_elem *this_dir = *dirs; diff --git a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/timezone-re-written-tzselect-as-posix-sh.patch b/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/timezone-re-written-tzselect-as-posix-sh.patch deleted file mode 100644 index 55547dea..00000000 --- a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/timezone-re-written-tzselect-as-posix-sh.patch +++ /dev/null @@ -1,38 +0,0 @@ -timezone: re-written tzselect as posix sh - -To avoid the bash dependency. - -Upstream-Status: Pending - -Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> ---- - timezone/Makefile | 2 +- - timezone/tzselect.ksh | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -Index: git/timezone/Makefile -=================================================================== ---- git.orig/timezone/Makefile 2014-08-27 05:35:58.008070587 +0000 -+++ git/timezone/Makefile 2014-08-27 05:36:37.908070587 +0000 -@@ -114,7 +114,7 @@ - - - $(objpfx)tzselect: tzselect.ksh $(common-objpfx)config.make -- sed -e 's|/bin/bash|$(BASH)|' \ -+ sed -e 's|/bin/bash|/bin/sh|' \ - -e 's|TZDIR=[^}]*|TZDIR=$(zonedir)|' \ - -e '/TZVERSION=/s|see_Makefile|"$(version)"|' \ - -e '/PKGVERSION=/s|=.*|="$(PKGVERSION)"|' \ -Index: git/timezone/tzselect.ksh -=================================================================== ---- git.orig/timezone/tzselect.ksh 2014-08-27 05:35:58.008070587 +0000 -+++ git/timezone/tzselect.ksh 2014-08-27 05:35:58.000070587 +0000 -@@ -35,7 +35,7 @@ - - # Specify default values for environment variables if they are unset. - : ${AWK=awk} --: ${TZDIR=`pwd`} -+: ${TZDIR=$(pwd)} - - # Check for awk Posix compliance. - ($AWK -v x=y 'BEGIN { exit 123 }') </dev/null >/dev/null 2>&1 diff --git a/meta-linaro-toolchain/recipes-core/glibc/glibc-locale_linaro-2.20.bb b/meta-linaro-toolchain/recipes-core/glibc/glibc-locale_linaro-2.20.bb deleted file mode 100644 index 6126be60..00000000 --- a/meta-linaro-toolchain/recipes-core/glibc/glibc-locale_linaro-2.20.bb +++ /dev/null @@ -1,2 +0,0 @@ -require recipes-core/glibc/glibc-locale.inc -require recipes-core/glibc/glibc_linaro.inc diff --git a/meta-linaro-toolchain/recipes-core/glibc/glibc-mtrace_linaro-2.20.bb b/meta-linaro-toolchain/recipes-core/glibc/glibc-mtrace_linaro-2.20.bb deleted file mode 100644 index 149ce8ae..00000000 --- a/meta-linaro-toolchain/recipes-core/glibc/glibc-mtrace_linaro-2.20.bb +++ /dev/null @@ -1,2 +0,0 @@ -require recipes-core/glibc/glibc-mtrace.inc -require recipes-core/glibc/glibc_linaro.inc diff --git a/meta-linaro-toolchain/recipes-core/glibc/glibc-scripts_linaro-2.20.bb b/meta-linaro-toolchain/recipes-core/glibc/glibc-scripts_linaro-2.20.bb deleted file mode 100644 index 515d756c..00000000 --- a/meta-linaro-toolchain/recipes-core/glibc/glibc-scripts_linaro-2.20.bb +++ /dev/null @@ -1,2 +0,0 @@ -require recipes-core/glibc/glibc-scripts.inc -require recipes-core/glibc/glibc_linaro.inc diff --git a/meta-linaro-toolchain/recipes-core/glibc/glibc_linaro-2.20.bb b/meta-linaro-toolchain/recipes-core/glibc/glibc_linaro-2.20.bb deleted file mode 100644 index d0b7ab51..00000000 --- a/meta-linaro-toolchain/recipes-core/glibc/glibc_linaro-2.20.bb +++ /dev/null @@ -1,205 +0,0 @@ -require recipes-core/glibc/glibc.inc -require recipes-core/glibc/glibc_linaro.inc - -DEPENDS += "gperf-native kconfig-frontends-native" - -MMYY = "14.11" -RELEASE = "20${MMYY}" -PR = "r${RELEASE}" - -SRC_URI = "http://releases.linaro.org/archive/${MMYY}/components/toolchain/glibc-linaro/glibc-${PV}-${RELEASE}.tar.xz \ - file://etc/ld.so.conf \ - file://generate-supported.mk \ - file://IO-acquire-lock-fix.patch \ - file://mips-rld-map-check.patch \ - file://etc/ld.so.conf \ - file://generate-supported.mk \ - file://glibc.fix_sqrt2.patch \ - file://multilib_readlib.patch \ - file://ppc-sqrt_finite.patch \ - file://ppc_slow_ieee754_sqrt.patch \ - file://add_resource_h_to_wait_h.patch \ - file://fsl-ppc-no-fsqrt.patch \ - file://0001-R_ARM_TLS_DTPOFF32.patch \ - file://0001-eglibc-run-libm-err-tab.pl-with-specific-dirs-in-S.patch \ - file://fix-tibetian-locales.patch \ - file://ppce6500-32b_slow_ieee754_sqrt.patch \ - file://grok_gold.patch \ - file://fix_am_rootsbindir.patch \ - file://CVE-2015-7547.patch \ - ${EGLIBCPATCHES} \ - ${ILP32PATCHES} \ - " -EGLIBCPATCHES = "\ - file://timezone-re-written-tzselect-as-posix-sh.patch \ - file://eglibc.patch \ - file://option-groups.patch \ - file://GLRO_dl_debug_mask.patch \ - file://eglibc-header-bootstrap.patch \ - file://eglibc-resolv-dynamic.patch \ - file://eglibc-ppc8xx-cache-line-workaround.patch \ - file://eglibc-sh4-fpscr_values.patch \ - file://eglibc-use-option-groups.patch \ - " -ILP32PATCHES = " \ - file://0002-Fix-utmp-struct-for-compatibility-reasons.patch \ - file://0003-Allow-sigset-be-an-array-of-a-different-type.patch \ - file://0004-Add-ability-for-the-IPC-structures-msqid_ds-semid_ds.patch \ - file://0005-Allow-rusage-work-on-a-big-endian-32bit-on-64bit-tar.patch \ - file://0006-Allow-fd_mask-type-not-be-an-array-of-long.patch \ - file://0007-Allow-some-fields-of-siginfo-to-be-different-from-th.patch \ - file://0008-Allow-generic-stat-and-statfs-not-have-padding-for-3.patch \ - file://0009-Add-header-guards-to-sysdep.h-headers.patch \ - file://0010-Add-dynamic-ILP32-AARCH64-relocations-to-elf.h.patch \ - file://0011-Add-PTR_REG-PTR_LOG_SIZE-and-PTR_SIZE.-Use-it-in-LDS.patch \ - file://0012-Use-PTR_REG-in-crti.S.patch \ - file://0013-Use-PTR_REG-PTR_SIZE-PTR_SIZE_LOG-in-dl-tlsesc.S.patch \ - file://0014-Use-PTR_-macros-in-dl-trampoline.S.patch \ - file://0015-Use-PTR_-in-start.S.patch \ - file://0016-Use-PTR_REG-in-getcontext.S.patch \ - file://0017-Detect-ILP32-in-configure-scripts.patch \ - file://0018-Syscalls-for-ILP32-are-passed-always-via-64bit-value.patch \ - file://0019-Reformat-inline-asm-in-elf_machine_load_address.patch \ - file://0020-Add-ILP32-support-to-elf_machine_load_address.patch \ - file://0021-Set-up-wordsize-for-ILP32.patch \ - file://0022-Add-ILP32-to-makefiles.patch \ - file://0023-Add-support-to-ldconfig-for-ILP32-and-libilp32.patch \ - file://0024-Add-ILP32-ld.so-to-the-known-interpreter-names.patch \ - file://0025-Add-ldd-rewrite.sed-so-that-ilp32-ld.so-can-be-found.patch \ - file://0026-Add-kernel_sigaction.h-for-AARCH64-ILP32.patch \ - file://0027-Add-sigstack.h-header-for-ILP32-reasons.patch \ - file://0028-Fix-up-ucontext-for-ILP32.patch \ - file://0029-Add-typesizes.h-for-ILP32.patch \ - file://0030-Make-lp64-and-ilp32-directories.patch \ - file://0031-sysdeps-unix-sysv-linux-aarch64-sysdep.h-Fix-crash-i.patch \ - file://0032-sysdeps-unix-sysv-linux-aarch64-configure-Reduce-ker.patch \ - " -SRC_URI[md5sum] = "ca2035b47d86856ffdd201ce2a12e60e" -SRC_URI[sha256sum] = "2db756f9f9281f78443cd04fc544fc2d8bce38037d5f75c8284bd8b0ccf9c9ed" - -LIC_FILES_CHKSUM = "file://LICENSES;md5=e9a558e243b36d3209f380deb394b213 \ - file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ - file://posix/rxspencer/COPYRIGHT;md5=dc5485bb394a13b2332ec1c785f5d83a \ - file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c" - -SRC_URI_append_class-nativesdk = " file://ld-search-order.patch \ - file://relocatable_sdk.patch \ - file://relocatable_sdk_fix_openpath.patch \ - " -S = "${WORKDIR}/glibc-${PV}-${RELEASE}" -B = "${WORKDIR}/build-${TARGET_SYS}" - -PACKAGES_DYNAMIC = "" - -# the -isystem in bitbake.conf screws up glibc do_stage -BUILD_CPPFLAGS = "-I${STAGING_INCDIR_NATIVE}" -TARGET_CPPFLAGS = "-I${STAGING_DIR_TARGET}${includedir}" - -GLIBC_BROKEN_LOCALES = " _ER _ET so_ET yn_ER sid_ET tr_TR mn_MN gez_ET gez_ER bn_BD te_IN es_CR.ISO-8859-1" - -FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/glibc-${PV}', '${FILE_DIRNAME}/glibc', '${FILE_DIRNAME}/files', '${FILE_DIRNAME}' ], d)}" - -# -# We will skip parsing glibc when system C library selection is not glibc -# this helps in easing out parsing for non-glibc system libraries -# - -python __anonymous () { - import re - notglibc = (re.match('.*uclibc$', d.getVar('TARGET_OS', True)) != None) or (re.match('.*musl$', d.getVar('TARGET_OS', True)) != None) - if notglibc: - raise bb.parse.SkipPackage("incompatible with target %s" % - d.getVar('TARGET_OS', True)) -} - -export libc_cv_slibdir = "${base_libdir}" - -EXTRA_OECONF = "--enable-kernel=${OLDEST_KERNEL} \ - --without-cvs --disable-profile \ - --disable-debug --without-gd \ - --enable-clocale=gnu \ - --enable-add-ons \ - --with-headers=${STAGING_INCDIR} \ - --without-selinux \ - --enable-obsolete-rpc \ - --with-kconfig=${STAGING_BINDIR_NATIVE} \ - ${GLIBC_EXTRA_OECONF}" - -EXTRA_OECONF += "${@get_libc_fpu_setting(bb, d)}" - -do_patch_append() { - bb.build.exec_func('do_fix_readlib_c', d) -} - -# for mips glibc now builds syscall tables for all abi's -# so we make sure that we choose right march option which is -# compatible with o32,n32 and n64 abi's -# e.g. -march=mips32 is not compatible with n32 and n64 therefore -# we filter it out in such case -march=from-abi which will be -# mips1 when using o32 and mips3 when using n32/n64 - -TUNE_CCARGS_mips := "${@oe.utils.str_filter_out('-march=mips32', '${TUNE_CCARGS}', d)}" -TUNE_CCARGS_mipsel := "${@oe.utils.str_filter_out('-march=mips32', '${TUNE_CCARGS}', d)}" - -do_fix_readlib_c () { - sed -i -e 's#OECORE_KNOWN_INTERPRETER_NAMES#${EGLIBC_KNOWN_INTERPRETER_NAMES}#' ${S}/elf/readlib.c -} - -do_configure () { -# override this function to avoid the autoconf/automake/aclocal/autoheader -# calls for now -# don't pass CPPFLAGS into configure, since it upsets the kernel-headers -# version check and doesn't really help with anything - if [ -z "`which rpcgen`" ]; then - echo "rpcgen not found. Install glibc-devel." - exit 1 - fi - (cd ${S} && gnu-configize) || die "failure in running gnu-configize" - find ${S} -name "configure" | xargs touch - CPPFLAGS="" oe_runconf -} - -rpcsvc = "bootparam_prot.x nlm_prot.x rstat.x \ - yppasswd.x klm_prot.x rex.x sm_inter.x mount.x \ - rusers.x spray.x nfs_prot.x rquota.x key_prot.x" - -do_compile () { - # -Wl,-rpath-link <staging>/lib in LDFLAGS can cause breakage if another glibc is in staging - unset LDFLAGS - base_do_compile - ( - cd ${S}/sunrpc/rpcsvc - for r in ${rpcsvc}; do - h=`echo $r|sed -e's,\.x$,.h,'` - rpcgen -h $r -o $h || bbwarn "unable to generate header for $r" - done - ) - echo "Adjust ldd script" - if [ -n "${RTLDLIST}" ] - then - prevrtld=`cat ${B}/elf/ldd | grep "^RTLDLIST=" | sed 's#^RTLDLIST="\?\([^"]*\)"\?$#\1#'` - if [ "${prevrtld}" != "${RTLDLIST}" ] - then - sed -i ${B}/elf/ldd -e "s#^RTLDLIST=.*\$#RTLDLIST=\"${prevrtld} ${RTLDLIST}\"#" - fi - fi - -} - -# In case of aarch64_be install symlink to ld-linux-aarch64_be.so.1 -# to enable transition of toolchain and executables that are not yet -# aware about aarch64_be run-time linker name change. -# -# Currently there is no use case that requires both LE and BE glibc -# installed into the same rootfs, so our transitional symlink should -# be fine. -# -do_install_append_aarch64-be() { - if [ -e ${D}${base_libdir}/ld-linux-aarch64_be.so.1 ] ; then - ln -sf ld-linux-aarch64_be.so.1 ${D}${base_libdir}/ld-linux-aarch64.so.1 - fi -} - -require recipes-core/glibc/glibc-package.inc - -BBCLASSEXTEND = "nativesdk" diff --git a/meta-linaro-toolchain/recipes-core/glibc/glibc_linaro.inc b/meta-linaro-toolchain/recipes-core/glibc/glibc_linaro.inc deleted file mode 100644 index c87e7960..00000000 --- a/meta-linaro-toolchain/recipes-core/glibc/glibc_linaro.inc +++ /dev/null @@ -1 +0,0 @@ -PV = "linaro-2.20" diff --git a/meta-linaro-toolchain/recipes-core/glibc/site_config/funcs b/meta-linaro-toolchain/recipes-core/glibc/site_config/funcs deleted file mode 100644 index ccc85392..00000000 --- a/meta-linaro-toolchain/recipes-core/glibc/site_config/funcs +++ /dev/null @@ -1,474 +0,0 @@ -a64l -abs -access -__adjtimex -alarm -alphasort -argz_append -__argz_count -argz_create_sep -argz_insert -__argz_next -argz_next -__argz_stringify -argz_stringify -asprintf -atexit -atof -atoi -bcmp -bcopy -bindresvport -bind_textdomain_codeset -btowc -bzero -calloc -canonicalize_file_name -catgets -cfgetospeed -cfsetispeed -cfsetspeed -chmod -chown -chroot -clock -close -closedir -closelog -confstr -connect -daemon -dcgettext -difftime -dirfd -dirname -dngettext -dup2 -ecvt -endgrent -endmntent -endpwent -endutent -endutxent -epoll_ctl -err -ether_hostton -ether_ntohost -euidaccess -execv -fchdir -fchmod -fchmodat -fchown -fchownat -fcntl -fcvt -fdatasync -fdopendir -feof_unlocked -fgets_unlocked -fgetxattr -finite -flistxattr -flock -flockfile -fnmatch -fork -fpathconf -__fpending -fprintf -free -freeaddrinfo -freeifaddrs -fseeko -__fsetlocking -fsetxattr -fstat64 -fstat -fstatfs -fsync -ftello -ftime -ftruncate -funlockfile -futimes -futimesat -gai_strerror -gcvt -getaddrinfo -getc_unlocked -getcwd -getdelim -getdomainname -getdtablesize -getegid -getenv -geteuid -getgid -getgrent -getgrent_r -getgrgid_r -getgrnam -getgrnam_r -getgrouplist -getgroups -gethostbyaddr_r -gethostbyname2 -gethostbyname -gethostbyname_r -gethostent -gethostid -gethostname -getifaddrs -getline -getloadavg -getmntent -getmsg -getnameinfo -getnetbyaddr_r -getnetgrent_r -getopt -getopt_long -getopt_long_only -getpagesize -getpass -getpeername -getpgrp -getpid -getppid -getprotoent_r -getpwent -getpwent_r -getpwnam -getpwnam_r -getpwuid -getpwuid_r -getresuid -getrlimit -getrusage -getservbyname -getservbyname_r -getservbyport_r -getservent -getservent_r -getspnam -getspnam_r -gettimeofday -getttyent -getttynam -getuid -getusershell -getutent -getutid -getutline -getutmp -getutmpx -getutxent -getutxid -getutxline -getwd -getxattr -glob -gmtime -gmtime_r -grantpt -group_member -herror -hstrerror -iconv -iconv_open -if_freenameindex -if_indextoname -if_nameindex -if_nametoindex -index -inet_addr -inet_aton -inet_ntoa -inet_ntop -inet_pton -initgroups -innetgr -iruserok -isascii -isatty -isblank -isgraph -isinf -isnan -isprint -isspace -iswalnum -iswcntrl -iswctype -iswprint -iswspace -iswupper -isxdigit -kill -killpg -lchown -lckpwdf -lgetxattr -link -listxattr -llistxattr -localtime -localtime_r -lockf -lrand48 -lsearch -lseek64 -lsetxattr -lstat -mallinfo -malloc -mblen -mbrlen -mbrtowc -mbsinit -mbsrtowcs -mbtowc -memalign -memchr -memcmp -memcpy -memmove -mempcpy -memrchr -memset -mkdir -mkdirat -mkdtemp -mkfifo -mknod -mkstemp64 -mkstemp -mktime -mlock -mmap -mtrace -munlock -munmap -nanosleep -nice -nl_langinfo -ntp_adjtime -ntp_gettime -_obstack_free -on_exit -open64 -open -openat -opendir -openlog -pathconf -pipe -poll -popen -posix_memalign -prctl -pread -printf -__progname -pselect -pthread_mutex_lock -ptsname -putenv -putgrent -putpwent -putspent -pututline -pututxline -putwc -pwrite -qsort -raise -rand -random -rand_r -read -readdir -readdir_r -readlink -realloc -realpath -re_comp -recvmsg -re_exec -regcomp -regexec -remove -rename -re_search -rmdir -rpmatch -rresvport_af -ruserok -ruserok_af -sbrk -scandir -sched_setscheduler -sched_yield -__secure_getenv -select -semctl -semget -sendmsg -setbuf -setbuffer -setegid -setenv -seteuid -setgid -setgroups -sethostname -setitimer -_setjmp -setjmp -setlinebuf -setlocale -setmntent -setpgid -setpgrp -setpriority -setregid -setresgid -setresuid -setreuid -setrlimit -setsid -setsockopt -settimeofday -setuid -setutent -setutxent -setvbuf -setxattr -sgetspent -shmat -shmctl -shmdt -shmget -shutdown -sigaction -sigaddset -sigaltstack -sigblock -sigemptyset -sighold -siginterrupt -signal -sigprocmask -sigset -sigsetmask -sigstack -sigsuspend -sigvec -snprintf -socket -socketpair -sprintf -srand48 -srand -srandom -sscanf -stat -statfs -statvfs -stime -stpcpy -strcasecmp -strcasestr -strchr -strchrnul -strcmp -strcspn -strdup -strerror -strerror_r -strftime -strlen -strncasecmp -strncmp -strndup -strnlen -strpbrk -strptime -strrchr -strsep -strsignal -strspn -strstr -strtod -strtoimax -strtok_r -strtol -strtoll -strtoul -strtoull -strtoumax -strverscmp -strxfrm -symlink -sync -sysconf -sysctl -sysinfo -syslog -_sys_siglist -sys_siglist -system -tcgetattr -tcgetpgrp -tcsetattr -tcsetpgrp -time -timegm -times -timezone -tmpnam -towlower -towupper -truncate -tsearch -ttyname -tzset -ulimit -umask -uname -unlink -unsetenv -unshare -updwtmp -updwtmpx -usleep -ustat -utime -utimes -utmpname -utmpxname -valloc -vasprintf -verrx -vfork -vfprintf -vfscanf -vhangup -vprintf -vsnprintf -vsprintf -wait3 -wait4 -waitpid -wcrtomb -wcscoll -wcsdup -wcslen -wctob -wctomb -wctype -wcwidth -wmemchr -wmemcpy -wmempcpy diff --git a/meta-linaro-toolchain/recipes-core/glibc/site_config/headers b/meta-linaro-toolchain/recipes-core/glibc/site_config/headers deleted file mode 100644 index 609ab537..00000000 --- a/meta-linaro-toolchain/recipes-core/glibc/site_config/headers +++ /dev/null @@ -1,156 +0,0 @@ -aio.h -alloca.h -argz.h -arpa/inet.h -arpa/nameser.h -asm/byteorder.h -asm/ioctls.h -asm/page.h -asm/types.h -assert.h -byteswap.h -crypt.h -ctype.h -dirent.h -dlfcn.h -elf.h -endian.h -err.h -errno.h -execinfo.h -fcntl.h -features.h -float.h -fstab.h -ftw.h -getopt.h -glob.h -grp.h -iconv.h -ifaddrs.h -inttypes.h -langinfo.h -lastlog.h -libgen.h -libintl.h -limits.h -linux/capability.h -linux/fd.h -linux/fs.h -linux/hayesesp.h -linux/hdreg.h -linux/icmp.h -linux/in6.h -linux/joystick.h -linux/ptrace.h -linux/serial.h -linux/sonypi.h -linux/unistd.h -linux/utsname.h -linux/version.h -locale.h -malloc.h -math.h -mcheck.h -memory.h -mntent.h -mqueue.h -netdb.h -net/if.h -netinet/ether.h -netinet/in.h -netinet/ip6.h -netinet/ip.h -netinet/tcp.h -netinet/udp.h -netipx/ipx.h -net/route.h -paths.h -poll.h -pthread.h -pty.h -pwd.h -regex.h -resolv.h -rpc/rpc.h -rpc/types.h -sched.h -scsi/scsi.h -search.h -semaphore.h -setjmp.h -sgtty.h -shadow.h -signal.h -stdarg.h -stdbool.h -stdc -stddef.h -stdint.h -stdio.h -stdlib.h -string.h -strings.h -stropts.h -sys/bitypes.h -sys/cdefs.h -sys/dir.h -sys/epoll.h -sysexits.h -sys/fcntl.h -sys/file.h -sys/fsuid.h -sys/ioctl.h -sys/ipc.h -syslog.h -sys/mman.h -sys/mount.h -sys/mtio.h -sys/param.h -sys/poll.h -sys/prctl.h -sys/ptrace.h -sys/queue.h -sys/reg.h -sys/resource.h -sys/select.h -sys/sem.h -sys/shm.h -sys/signal.h -sys/socket.h -sys/socketvar.h -sys/soundcard.h -sys/statfs.h -sys/stat.h -sys/statvfs.h -sys/stropts.h -sys/swap.h -sys/sysctl.h -sys/sysinfo.h -sys/sysmacros.h -sys/termios.h -sys/timeb.h -sys/time.h -sys/times.h -sys/timex.h -sys/types.h -sys/uio.h -sys/un.h -sys/unistd.h -sys/user.h -sys/utsname.h -sys/vfs.h -sys/wait.h -termio.h -termios.h -time.h -ttyent.h -ulimit.h -unistd.h -ustat.h -utime.h -utmp.h -utmpx.h -values.h -wchar.h -wctype.h diff --git a/meta-linaro-toolchain/recipes-core/glibc/site_config/types b/meta-linaro-toolchain/recipes-core/glibc/site_config/types deleted file mode 100644 index 178bd85a..00000000 --- a/meta-linaro-toolchain/recipes-core/glibc/site_config/types +++ /dev/null @@ -1,21 +0,0 @@ -char -char * -double -float -int -long -long double -long int -long long -long long int -short -short int -signed char -unsigned char -unsigned int -unsigned long -unsigned long int -unsigned long long int -unsigned short -unsigned short int -void * diff --git a/meta-linaro-toolchain/recipes-devtools/binutils/binutils-cross-canadian_linaro-2.25.bb b/meta-linaro-toolchain/recipes-devtools/binutils/binutils-cross-canadian_linaro-2.25.bb deleted file mode 100644 index 76b62771..00000000 --- a/meta-linaro-toolchain/recipes-devtools/binutils/binutils-cross-canadian_linaro-2.25.bb +++ /dev/null @@ -1,3 +0,0 @@ -require recipes-devtools/binutils/binutils.inc -require recipes-devtools/binutils/binutils-${PV}.inc -require recipes-devtools/binutils/binutils-cross-canadian.inc diff --git a/meta-linaro-toolchain/recipes-devtools/binutils/binutils-cross-canadian_linaro-2.27.bb b/meta-linaro-toolchain/recipes-devtools/binutils/binutils-cross-canadian_linaro-2.27.bb deleted file mode 100644 index 76b62771..00000000 --- a/meta-linaro-toolchain/recipes-devtools/binutils/binutils-cross-canadian_linaro-2.27.bb +++ /dev/null @@ -1,3 +0,0 @@ -require recipes-devtools/binutils/binutils.inc -require recipes-devtools/binutils/binutils-${PV}.inc -require recipes-devtools/binutils/binutils-cross-canadian.inc diff --git a/meta-linaro-toolchain/recipes-devtools/binutils/binutils-cross_linaro-2.25.bb b/meta-linaro-toolchain/recipes-devtools/binutils/binutils-cross_linaro-2.25.bb deleted file mode 100644 index a8b918e1..00000000 --- a/meta-linaro-toolchain/recipes-devtools/binutils/binutils-cross_linaro-2.25.bb +++ /dev/null @@ -1,3 +0,0 @@ -require recipes-devtools/binutils/binutils.inc -require recipes-devtools/binutils/binutils-${PV}.inc -require recipes-devtools/binutils/binutils-cross.inc diff --git a/meta-linaro-toolchain/recipes-devtools/binutils/binutils-cross_linaro-2.27.bb b/meta-linaro-toolchain/recipes-devtools/binutils/binutils-cross_linaro-2.27.bb deleted file mode 100644 index a8b918e1..00000000 --- a/meta-linaro-toolchain/recipes-devtools/binutils/binutils-cross_linaro-2.27.bb +++ /dev/null @@ -1,3 +0,0 @@ -require recipes-devtools/binutils/binutils.inc -require recipes-devtools/binutils/binutils-${PV}.inc -require recipes-devtools/binutils/binutils-cross.inc diff --git a/meta-linaro-toolchain/recipes-devtools/binutils/binutils-crosssdk_linaro-2.25.bb b/meta-linaro-toolchain/recipes-devtools/binutils/binutils-crosssdk_linaro-2.25.bb deleted file mode 100644 index 63046136..00000000 --- a/meta-linaro-toolchain/recipes-devtools/binutils/binutils-crosssdk_linaro-2.25.bb +++ /dev/null @@ -1,13 +0,0 @@ -require recipes-devtools/binutils/binutils-cross_${PV}.bb - -inherit crosssdk - -PN = "binutils-crosssdk-${SDK_SYS}" - -PROVIDES = "virtual/${TARGET_PREFIX}binutils-crosssdk" - -SRC_URI += "file://relocatable_sdk.patch" - -do_configure_prepend () { - sed -i 's#/usr/local/lib /lib /usr/lib#${SDKPATHNATIVE}/lib ${SDKPATHNATIVE}/usr/lib /usr/local/lib /lib /usr/lib#' ${S}/ld/configure.tgt -} diff --git a/meta-linaro-toolchain/recipes-devtools/binutils/binutils-crosssdk_linaro-2.27.bb b/meta-linaro-toolchain/recipes-devtools/binutils/binutils-crosssdk_linaro-2.27.bb deleted file mode 100644 index 63046136..00000000 --- a/meta-linaro-toolchain/recipes-devtools/binutils/binutils-crosssdk_linaro-2.27.bb +++ /dev/null @@ -1,13 +0,0 @@ -require recipes-devtools/binutils/binutils-cross_${PV}.bb - -inherit crosssdk - -PN = "binutils-crosssdk-${SDK_SYS}" - -PROVIDES = "virtual/${TARGET_PREFIX}binutils-crosssdk" - -SRC_URI += "file://relocatable_sdk.patch" - -do_configure_prepend () { - sed -i 's#/usr/local/lib /lib /usr/lib#${SDKPATHNATIVE}/lib ${SDKPATHNATIVE}/usr/lib /usr/local/lib /lib /usr/lib#' ${S}/ld/configure.tgt -} diff --git a/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.25.inc b/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.25.inc deleted file mode 100644 index 8299d3c4..00000000 --- a/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.25.inc +++ /dev/null @@ -1,41 +0,0 @@ -BPV = "2.25.1" -MMYY = "16.10" -RELEASE = "20${MMYY}" -PR = "r20${MMYY}" - -inherit pythonnative - -LIC_FILES_CHKSUM="\ - file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552\ - file://COPYING.LIB;md5=9f604d8a4f8e74f4f5140845a21b6674\ - file://COPYING3;md5=d32239bcb673463ab874e80d47fae504\ - file://COPYING3.LIB;md5=6a6a8e020838b23406c81b19c1d46df6\ - file://gas/COPYING;md5=d32239bcb673463ab874e80d47fae504\ - file://include/COPYING;md5=59530bdf33659b29e73d4adb9f9f6552\ - file://include/COPYING3;md5=d32239bcb673463ab874e80d47fae504\ - file://libiberty/COPYING.LIB;md5=a916467b91076e631dd8edb7424769c7\ - file://bfd/COPYING;md5=d32239bcb673463ab874e80d47fae504\ - " - -SRCREV = "331ccedd381918185634a0f6c864eea4e2d7c960" -SRC_URI = "\ - git://git.linaro.org/toolchain/binutils-gdb.git;protocol=https;branch=linaro_binutils-2_25-branch \ - file://binutils-uclibc-100-uclibc-conf.patch \ - file://binutils-uclibc-300-001_ld_makefile_patch.patch \ - file://binutils-uclibc-300-006_better_file_error.patch \ - file://binutils-uclibc-300-012_check_ldrunpath_length.patch \ - file://binutils-uclibc-gas-needs-libm.patch \ - file://libiberty_path_fix.patch \ - file://binutils-poison.patch \ - file://libtool-2.4-update.patch \ - file://libtool-rpath-fix.patch \ - file://binutils-armv5e.patch \ - file://replace_macros_with_static_inline.patch;apply=no \ - file://0001-Fix-MMIX-build-breakage-from-bfd_set_section_vma-cha.patch;apply=no \ - file://0001-AArch64-Define-LP64-BE-linker-name.patch \ - file://0001-Fix-an-internal-error-in-do_print_to_mapfile-seen-wi.patch \ - file://0001-AArch64-gas-Support-ILP32-triplet-aarch64-linux-gnu_.patch \ - file://0002-AArch64-ld-Support-ILP32-triplet-aarch64-linux-gnu_i.patch \ - " - -S = "${WORKDIR}/git" diff --git a/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.25/0001-AArch64-Define-LP64-BE-linker-name.patch b/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.25/0001-AArch64-Define-LP64-BE-linker-name.patch deleted file mode 100644 index 7e4923c2..00000000 --- a/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.25/0001-AArch64-Define-LP64-BE-linker-name.patch +++ /dev/null @@ -1,18 +0,0 @@ -From 5a4f233680ecf1132591f8213ff1cc6a2535b1b7 Mon Sep 17 00:00:00 2001 -From: Marcus Shawcroft <marcus.shawcroft@arm.com> -Date: Mon, 20 Jan 2014 18:20:04 +0000 -Subject: [PATCH] [AArch64] Define LP64 BE linker name. - ---- - ld/ChangeLog | 4 ++++ - ld/emulparams/aarch64linuxb.sh | 1 + - 2 files changed, 5 insertions(+) - -Index: binutils-linaro-2.24-2014.03/ld/emulparams/aarch64linuxb.sh -=================================================================== ---- binutils-linaro-2.24-2014.03.orig/ld/emulparams/aarch64linuxb.sh -+++ binutils-linaro-2.24-2014.03/ld/emulparams/aarch64linuxb.sh -@@ -1,2 +1,3 @@ - . ${srcdir}/emulparams/aarch64linux.sh - OUTPUT_FORMAT="elf64-bigaarch64" -+ELF_INTERPRETER_NAME=\"/lib/ld-linux-aarch64_be.so.1\" diff --git a/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.25/0001-AArch64-gas-Support-ILP32-triplet-aarch64-linux-gnu_.patch b/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.25/0001-AArch64-gas-Support-ILP32-triplet-aarch64-linux-gnu_.patch deleted file mode 100644 index 6c144077..00000000 --- a/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.25/0001-AArch64-gas-Support-ILP32-triplet-aarch64-linux-gnu_.patch +++ /dev/null @@ -1,176 +0,0 @@ -From 08ca7f251e6ee66270b25e5aa3acc4a837d931a6 Mon Sep 17 00:00:00 2001 -From: Jiong Wang <jiong.wang@arm.com> -Date: Mon, 22 May 2017 09:50:19 +0100 -Subject: [PATCH 1/2] [AArch64, gas] Support ILP32 triplet - aarch64*-linux-gnu_ilp32 - -This patch allows AArch64 GAS defaulting to ILP32 if it is configured with -aarch64*-linux-gnu_ilp32. - -"md_after_parse_args" is implemented to update ABI into ILP32 if DEFAULT_ARCH is -"aarch64:32". - -gas/ - * configure.tgt: Set "arch" to "aarch64" if ${cpu} equals "aarch64". - Recognize the new triplet name aarch64*-linux-gnu_ilp32. - * configure.ac: Output DEFAULT_ARCH macro for AArch64. - * configure: Regenerate. - * config/tc-aarch64.h (aarch64_after_parse_args): New declaration. - (md_after_parse_args): New define. - * config/tc-aarch64.c (aarch64_abi_type): New enumeration - AARCH64_ABI_NONE. - (DEFAULT_ARCH): New define. - (aarch64_abi): Set default value to AARCH64_ABI_NONE. - (aarch64_after_parse_args): New function. ---- - gas/ChangeLog | 14 ++++++++++++++ - gas/config/tc-aarch64.c | 30 +++++++++++++++++++++++++++--- - gas/config/tc-aarch64.h | 3 +++ - gas/configure | 2 +- - gas/configure.ac | 2 +- - gas/configure.tgt | 9 ++++++--- - 6 files changed, 52 insertions(+), 8 deletions(-) - -diff --git a/gas/ChangeLog b/gas/ChangeLog -index 7ebbd8b..e5c4b38 100644 ---- a/gas/ChangeLog -+++ b/gas/ChangeLog -@@ -1,3 +1,17 @@ -+2017-05-22 Jiong Wang <jiong.wang@arm.com> -+ -+ * configure.tgt: Set "arch" to "aarch64" if ${cpu} equals "aarch64". -+ Recognize the new triplet name aarch64*-linux-gnu_ilp32. -+ * configure.ac: Output DEFAULT_ARCH macro for AArch64. -+ * configure: Regenerate. -+ * config/tc-aarch64.h (aarch64_after_parse_args): New declaration. -+ (md_after_parse_args): New define. -+ * config/tc-aarch64.c (aarch64_abi_type): New enumeration -+ AARCH64_ABI_NONE. -+ (DEFAULT_ARCH): New define. -+ (aarch64_abi): Set default value to AARCH64_ABI_NONE. -+ (aarch64_after_parse_args): New function. -+ - 2016-06-29 Maciej W. Rozycki <macro@imgtec.com> - - Backport from master -diff --git a/gas/config/tc-aarch64.c b/gas/config/tc-aarch64.c -index 4c785a6..da347cc 100644 ---- a/gas/config/tc-aarch64.c -+++ b/gas/config/tc-aarch64.c -@@ -65,12 +65,20 @@ static symbolS *GOT_symbol; - /* Which ABI to use. */ - enum aarch64_abi_type - { -- AARCH64_ABI_LP64 = 0, -- AARCH64_ABI_ILP32 = 1 -+ AARCH64_ABI_NONE = 0, -+ AARCH64_ABI_LP64 = 1, -+ AARCH64_ABI_ILP32 = 2 - }; - -+#ifndef DEFAULT_ARCH -+#define DEFAULT_ARCH "aarch64" -+#endif -+ -+/* DEFAULT_ARCH is initialized in gas/configure.tgt. */ -+static const char *default_arch = DEFAULT_ARCH; -+ - /* AArch64 ABI for the output file. */ --static enum aarch64_abi_type aarch64_abi = AARCH64_ABI_LP64; -+static enum aarch64_abi_type aarch64_abi = AARCH64_ABI_NONE; - - /* When non-zero, program to a 32-bit model, in which the C data types - int, long and all pointer types are 32-bit objects (ILP32); or to a -@@ -6894,6 +6902,22 @@ aarch64_force_relocation (struct fix *fixp) - - #ifdef OBJ_ELF - -+/* Implement md_after_parse_args. This is the earliest time we need to decide -+ ABI. If no -mabi specified, the ABI will be decided by target triplet. */ -+ -+void -+aarch64_after_parse_args (void) -+{ -+ if (aarch64_abi != AARCH64_ABI_NONE) -+ return; -+ -+ /* DEFAULT_ARCH will have ":32" extension if it's configured for ILP32. */ -+ if (strlen (default_arch) > 7 && strcmp (default_arch + 7, ":32") == 0) -+ aarch64_abi = AARCH64_ABI_ILP32; -+ else -+ aarch64_abi = AARCH64_ABI_LP64; -+} -+ - const char * - elf64_aarch64_target_format (void) - { -diff --git a/gas/config/tc-aarch64.h b/gas/config/tc-aarch64.h -index 1fad6ce..47b3b1f 100644 ---- a/gas/config/tc-aarch64.h -+++ b/gas/config/tc-aarch64.h -@@ -191,6 +191,9 @@ struct aarch64_segment_info_type - #define tc_regname_to_dw2regnum tc_aarch64_regname_to_dw2regnum - #define tc_cfi_frame_initial_instructions tc_aarch64_frame_initial_instructions - -+extern void aarch64_after_parse_args (void); -+#define md_after_parse_args() aarch64_after_parse_args () -+ - #else /* Not OBJ_ELF. */ - #define GLOBAL_OFFSET_TABLE_NAME "__GLOBAL_OFFSET_TABLE_" - #endif -diff --git a/gas/configure b/gas/configure -index b11b6c0..74bc60d 100755 ---- a/gas/configure -+++ b/gas/configure -@@ -12400,7 +12400,7 @@ $as_echo "#define NDS32_DEFAULT_AUDIO_EXT 1" >>confdefs.h - $as_echo "$enable_audio_ext" >&6; } - ;; - -- i386 | s390 | sparc) -+ aarch64 | i386 | s390 | sparc) - if test $this_target = $target ; then - - cat >>confdefs.h <<_ACEOF -diff --git a/gas/configure.ac b/gas/configure.ac -index 371f7b3..f83edb7 100644 ---- a/gas/configure.ac -+++ b/gas/configure.ac -@@ -453,7 +453,7 @@ changequote([,])dnl - AC_MSG_RESULT($enable_audio_ext) - ;; - -- i386 | s390 | sparc) -+ aarch64 | i386 | s390 | sparc) - if test $this_target = $target ; then - AC_DEFINE_UNQUOTED(DEFAULT_ARCH, "${arch}", [Default architecture.]) - fi -diff --git a/gas/configure.tgt b/gas/configure.tgt -index 9abc768..5104c97 100644 ---- a/gas/configure.tgt -+++ b/gas/configure.tgt -@@ -46,8 +46,8 @@ eval `echo $targ | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/cpu=\1 vendor=\2 os=\3/'` - # endian and arch. - # Note: This table is alpha-sorted, please try to keep it that way. - case ${cpu} in -- aarch64) cpu_type=aarch64 endian=little ;; -- aarch64_be) cpu_type=aarch64 endian=big ;; -+ aarch64) cpu_type=aarch64 endian=little arch=aarch64;; -+ aarch64_be) cpu_type=aarch64 endian=big arch=aarch64;; - alpha*) cpu_type=alpha ;; - am33_2.0) cpu_type=mn10300 endian=little ;; - arm*be|arm*b) cpu_type=arm endian=big ;; -@@ -119,7 +119,10 @@ generic_target=${cpu_type}-$vendor-$os - # Note: This table is alpha-sorted, please try to keep it that way. - case ${generic_target} in - aarch64*-*-elf) fmt=elf;; -- aarch64*-*-linux*) fmt=elf em=linux ;; -+ aarch64*-*-linux*) fmt=elf em=linux -+ case ${cpu}-${os} in -+ aarch64*-linux-gnu_ilp32) arch=aarch64:32 ;; -+ esac ;; - - alpha-*-*vms*) fmt=evax ;; - alpha-*-osf*) fmt=ecoff ;; --- -2.7.4 - diff --git a/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.25/0001-Fix-MMIX-build-breakage-from-bfd_set_section_vma-cha.patch b/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.25/0001-Fix-MMIX-build-breakage-from-bfd_set_section_vma-cha.patch deleted file mode 100644 index f786b176..00000000 --- a/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.25/0001-Fix-MMIX-build-breakage-from-bfd_set_section_vma-cha.patch +++ /dev/null @@ -1,31 +0,0 @@ -Upstream-Status: Backport - -From 0a09fb4a09e80c36fa3ef763ae276fd13d272a36 Mon Sep 17 00:00:00 2001 -From: Hans-Peter Nilsson <hp@bitrange.com> -Date: Sat, 1 Feb 2014 01:11:28 +0100 -Subject: [PATCH] Fix MMIX build breakage from bfd_set_section_vma change. - - * emultempl/mmix-elfnmmo.em (mmix_after_allocation): Fix typo in - call to bfd_set_section_vma exposed by recent bfd_set_section_vma - change. ---- - ld/ChangeLog | 6 ++++++ - ld/emultempl/mmix-elfnmmo.em | 2 +- - 2 files changed, 7 insertions(+), 1 deletion(-) - -diff --git a/ld/emultempl/mmix-elfnmmo.em b/ld/emultempl/mmix-elfnmmo.em -index 0059792..5e9781a 100644 ---- a/ld/emultempl/mmix-elfnmmo.em -+++ b/ld/emultempl/mmix-elfnmmo.em -@@ -102,7 +102,7 @@ mmix_after_allocation (void) - This section is only present when there are register symbols. */ - sec = bfd_get_section_by_name (link_info.output_bfd, MMIX_REG_SECTION_NAME); - if (sec != NULL) -- bfd_set_section_vma (abfd, sec, 0); -+ bfd_set_section_vma (sec->owner, sec, 0); - - if (!_bfd_mmix_after_linker_allocation (link_info.output_bfd, &link_info)) - { --- -1.7.10.4 - diff --git a/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.25/0001-Fix-an-internal-error-in-do_print_to_mapfile-seen-wi.patch b/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.25/0001-Fix-an-internal-error-in-do_print_to_mapfile-seen-wi.patch deleted file mode 100644 index a47faef3..00000000 --- a/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.25/0001-Fix-an-internal-error-in-do_print_to_mapfile-seen-wi.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 54583eb23233b5369372ae41768655693d0584ef Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Fri, 27 Feb 2015 09:05:49 +0000 -Subject: [PATCH] Fix an internal error in do_print_to_mapfile seen with gold - on arm - -This is due to missing implementation of do_print_to_mapfile for -atrributea section (ARM.attributes), it started to show up after fix -for PR gold/16980 was installed - -Signed-off-by: Khem Raj <raj.khem@gmail.com> - -Upstream-Status: Submitted ---- - gold/ChangeLog | 5 +++++ - gold/attributes.h | 4 ++++ - 2 files changed, 9 insertions(+) - -diff --git a/gold/attributes.h b/gold/attributes.h -index c0b171f..6e3ab8c 100644 ---- a/gold/attributes.h -+++ b/gold/attributes.h -@@ -387,6 +387,10 @@ class Output_attributes_section_data : public Output_section_data - { } - - protected: -+ // Write to a map file. -+ void -+ do_print_to_mapfile(Mapfile* mapfile) const -+ { mapfile->print_output_data(this, _("** attributes")); } - // Write the data to the output file. - void - do_write(Output_file*); --- -2.1.4 - diff --git a/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.25/0002-AArch64-ld-Support-ILP32-triplet-aarch64-linux-gnu_i.patch b/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.25/0002-AArch64-ld-Support-ILP32-triplet-aarch64-linux-gnu_i.patch deleted file mode 100644 index 1e0ba357..00000000 --- a/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.25/0002-AArch64-ld-Support-ILP32-triplet-aarch64-linux-gnu_i.patch +++ /dev/null @@ -1,54 +0,0 @@ -From 1fa9dd372fe74048134dd3af5e7ae305b0a7e846 Mon Sep 17 00:00:00 2001 -From: Jiong Wang <jiong.wang@arm.com> -Date: Mon, 22 May 2017 09:50:29 +0100 -Subject: [PATCH 2/2] [AArch64, ld] Support ILP32 triplet - aarch64*-linux-gnu_ilp32 - -This patch allows AArch64 LD defaulting to ILP32 if it is configured with -aarch64*-linux-gnu_ilp32. - -ld/ - * configure.tgt: Set "targ_emul" to "aarch64linux32b" for - aarch64_be-*-linux-gnu_ilp32. Set "targ_emul" to "aarch64linux32" for - aarch64-*-linux-gnu_ilp32. ---- - ld/ChangeLog | 6 ++++++ - ld/configure.tgt | 8 ++++++++ - 2 files changed, 14 insertions(+) - -diff --git a/ld/ChangeLog b/ld/ChangeLog -index ce1699b..62464b6 100644 ---- a/ld/ChangeLog -+++ b/ld/ChangeLog -@@ -1,3 +1,9 @@ -+2017-05-22 Jiong Wang <jiong.wang@arm.com> -+ -+ * configure.tgt: Set "targ_emul" to "aarch64linux32b" for -+ aarch64_be-*-linux-gnu_ilp32. Set "targ_emul" to "aarch64linux32" for -+ aarch64-*-linux-gnu_ilp32. -+ - 2015-07-21 Tristan Gingold <gingold@adacore.com> - - * configure: Regenerate. -diff --git a/ld/configure.tgt b/ld/configure.tgt -index 24e36d1..b827bbc 100644 ---- a/ld/configure.tgt -+++ b/ld/configure.tgt -@@ -49,6 +49,14 @@ aarch64_be-*-elf) targ_emul=aarch64elfb - targ_extra_emuls="aarch64elf aarch64elf32 aarch64elf32b armelfb armelf" ;; - aarch64-*-elf) targ_emul=aarch64elf - targ_extra_emuls="aarch64elf32 aarch64elf32b aarch64elfb armelf armelfb" ;; -+aarch64_be-*-linux-gnu_ilp32) -+ targ_emul=aarch64linux32b -+ targ_extra_libpath="aarch64linuxb aarch64linux aarch64linux32 armelfb_linux_eabi armelf_linux_eabi" -+ targ_extra_emuls="aarch64elfb aarch64elf aarch64elf32 aarch64elf32b armelfb armelf $targ_extra_libpath" ;; -+aarch64-*-linux-gnu_ilp32) -+ targ_emul=aarch64linux32 -+ targ_extra_libpath="aarch64linux aarch64linuxb aarch64linux32b armelfb_linux_eabi armelf_linux_eabi" -+ targ_extra_emuls="aarch64elf aarch64elf32 aarch64elf32b aarch64elfb armelf armelfb $targ_extra_libpath" ;; - aarch64_be-*-linux*) targ_emul=aarch64linuxb - targ_extra_libpath="aarch64linux aarch64linux32 aarch64linux32b armelfb_linux_eabi armelf_linux_eabi" - targ_extra_emuls="aarch64elfb aarch64elf aarch64elf32 aarch64elf32b armelfb armelf $targ_extra_libpath" ;; --- -2.7.4 - diff --git a/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.25/0002-binutils-cross-Do-not-generate-linker-script-directo.patch b/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.25/0002-binutils-cross-Do-not-generate-linker-script-directo.patch deleted file mode 100644 index 14299fd1..00000000 --- a/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.25/0002-binutils-cross-Do-not-generate-linker-script-directo.patch +++ /dev/null @@ -1,61 +0,0 @@ -From 7c7de107b4b0a507d2aeca3e3a86d01cb4b51360 Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Mon, 6 Mar 2017 23:37:05 -0800 -Subject: [PATCH 02/15] binutils-cross: Do not generate linker script - directories - -We don't place target libraries within ${exec_prefix}, we'd always place these -within the target sysroot within the standard library directories. Worse, the -append_to_lib_path code prefixes these paths with the sysroot which makes even -less sense. - -These directories therefore don't make sense in our case and mean we have to -relocate all the linker scripts if they're present. Dropping them -gives a reasonable performance improvement/simplification. - -Upstream-Status: Inappropriate - -RP 2017/01/30 - -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - ld/genscripts.sh | 23 ----------------------- - 1 file changed, 23 deletions(-) - -diff --git a/ld/genscripts.sh b/ld/genscripts.sh -index a42c4d7a4b..d727b4d07e 100755 ---- a/ld/genscripts.sh -+++ b/ld/genscripts.sh -@@ -189,29 +189,6 @@ append_to_lib_path() - fi - } - --# Always search $(tooldir)/lib, aka /usr/local/TARGET/lib when native --# except when LIBPATH=":". --if [ "${LIB_PATH}" != ":" ] ; then -- libs= -- if [ "x${TOOL_LIB}" = "x" ] ; then -- if [ "x${NATIVE}" = "xyes" ] ; then -- libs="${exec_prefix}/${target_alias}/lib" -- fi -- else -- # For multilib'ed targets, ensure both ${target_alias}/lib${LIBPATH_SUFFIX} -- # and ${TOOL_LIB}/lib${LIBPATH_SUFFIX} are in the default search path, -- # because 64bit libraries may be in both places, depending on -- # cross-development setup method (e.g.: /usr/s390x-linux/lib64 -- # vs. /usr/s390-linux/lib64) -- case "${NATIVE}:${LIBPATH_SUFFIX}:${TOOL_LIB}" in -- :* | *::* | *:*:*${LIBPATH_SUFFIX}) ;; -- *) libs="${exec_prefix}/${target_alias}/lib${LIBPATH_SUFFIX}" ;; -- esac -- libs="${exec_prefix}/${TOOL_LIB}/lib ${libs}" -- fi -- append_to_lib_path ${libs} --fi -- - if [ "x${LIB_PATH}" = "x" ] && [ "x${USE_LIBPATH}" = xyes ] ; then - libs=${NATIVE_LIB_DIRS} - if [ "x${NATIVE}" = "xyes" ] ; then --- -2.12.0 - diff --git a/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.25/binutils-armv5e.patch b/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.25/binutils-armv5e.patch deleted file mode 100644 index 97ad6dff..00000000 --- a/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.25/binutils-armv5e.patch +++ /dev/null @@ -1,25 +0,0 @@ -Add the armv5e architecture to binutils - -Binutils has a comment that indicates it is supposed to match gcc for all of -the support "-march=" settings, but it was lacking the armv5e setting. This -was a simple way to add it, as thumb instructions shouldn't be generated by -the compiler anyway. - -Upstream-Status: Denied -Upstream maintainer indicated that we should not be using armv5e, even though -it is a legal archicture defined by our gcc. - -Signed-off-by: Mark Hatle <mark.hatle@windriver.com> - -Index: binutils-2.22.90/gas/config/tc-arm.c -=================================================================== ---- binutils-2.22.90.orig/gas/config/tc-arm.c 2012-07-24 09:38:32.000000000 -0700 -+++ binutils-2.22.90/gas/config/tc-arm.c 2012-08-07 23:41:59.822564075 -0700 -@@ -23162,6 +23162,7 @@ - ARM_ARCH_OPT ("armv4t", ARM_ARCH_V4T, FPU_ARCH_FPA), - ARM_ARCH_OPT ("armv4txm", ARM_ARCH_V4TxM, FPU_ARCH_FPA), - ARM_ARCH_OPT ("armv5", ARM_ARCH_V5, FPU_ARCH_VFP), -+ ARM_ARCH_OPT ("armv5e", ARM_ARCH_V5TE, FPU_ARCH_VFP), - ARM_ARCH_OPT ("armv5t", ARM_ARCH_V5T, FPU_ARCH_VFP), - ARM_ARCH_OPT ("armv5txm", ARM_ARCH_V5TxM, FPU_ARCH_VFP), - ARM_ARCH_OPT ("armv5te", ARM_ARCH_V5TE, FPU_ARCH_VFP), diff --git a/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.25/binutils-poison.patch b/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.25/binutils-poison.patch deleted file mode 100644 index 814a4a37..00000000 --- a/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.25/binutils-poison.patch +++ /dev/null @@ -1,279 +0,0 @@ -From d5b58a44afcafd3c6ec1c9c69facbb2c17bc2b69 Mon Sep 17 00:00:00 2001 -From: Koen Kooi <koen.kooi@linaro.org> -Date: Wed, 7 Jan 2015 09:46:35 +0100 -Subject: [PATCH] Warn for uses of system directories when cross linking - -Upstream-Status: Inappropriate [distribution: codesourcery] - -Patch originally created by Mark Hatle, forward-ported to -binutils 2.21 by Scott Garman and forward ported to binutils 2.25 by Koen Kooi. - -purpose: warn for uses of system directories when cross linking - -Code Merged from Sourcery G++ binutils 2.19 - 4.4-277 - -2008-07-02 Joseph Myers <joseph@codesourcery.com> - - ld/ - * ld.h (args_type): Add error_poison_system_directories. - * ld.texinfo (--error-poison-system-directories): Document. - * ldfile.c (ldfile_add_library_path): Check - command_line.error_poison_system_directories. - * ldmain.c (main): Initialize - command_line.error_poison_system_directories. - * lexsup.c (enum option_values): Add - OPTION_ERROR_POISON_SYSTEM_DIRECTORIES. - (ld_options): Add --error-poison-system-directories. - (parse_args): Handle new option. - -2007-06-13 Joseph Myers <joseph@codesourcery.com> - - ld/ - * config.in: Regenerate. - * ld.h (args_type): Add poison_system_directories. - * ld.texinfo (--no-poison-system-directories): Document. - * ldfile.c (ldfile_add_library_path): Check - command_line.poison_system_directories. - * ldmain.c (main): Initialize - command_line.poison_system_directories. - * lexsup.c (enum option_values): Add - OPTION_NO_POISON_SYSTEM_DIRECTORIES. - (ld_options): Add --no-poison-system-directories. - (parse_args): Handle new option. - -2007-04-20 Joseph Myers <joseph@codesourcery.com> - - Merge from Sourcery G++ binutils 2.17: - - 2007-03-20 Joseph Myers <joseph@codesourcery.com> - Based on patch by Mark Hatle <mark.hatle@windriver.com>. - ld/ - * configure.in (--enable-poison-system-directories): New option. - * configure, config.in: Regenerate. - * ldfile.c (ldfile_add_library_path): If - ENABLE_POISON_SYSTEM_DIRECTORIES defined, warn for use of /lib, - /usr/lib, /usr/local/lib or /usr/X11R6/lib. - -Signed-off-by: Mark Hatle <mark.hatle@windriver.com> -Signed-off-by: Scott Garman <scott.a.garman@intel.com> -Signed-off-by: Koen Kooi <koen.kooi@linaro.org> ---- - ld/config.in | 3 +++ - ld/configure | 14 ++++++++++++++ - ld/configure.ac | 10 ++++++++++ - ld/ld.h | 8 ++++++++ - ld/ld.texinfo | 12 ++++++++++++ - ld/ldfile.c | 17 +++++++++++++++++ - ld/ldlex.h | 2 ++ - ld/ldmain.c | 2 ++ - ld/lexsup.c | 16 ++++++++++++++++ - 9 files changed, 84 insertions(+) - -diff --git a/ld/config.in b/ld/config.in -index 2ab4844..766d23c 100644 ---- a/ld/config.in -+++ b/ld/config.in -@@ -11,6 +11,9 @@ - language is requested. */ - #undef ENABLE_NLS - -+/* Define to warn for use of native system library directories */ -+#undef ENABLE_POISON_SYSTEM_DIRECTORIES -+ - /* Additional extension a shared object might have. */ - #undef EXTRA_SHLIB_EXTENSION - -diff --git a/ld/configure b/ld/configure -index 4408b0d..c0dfa53 100755 ---- a/ld/configure -+++ b/ld/configure -@@ -783,6 +783,7 @@ with_lib_path - enable_targets - enable_64_bit_bfd - with_sysroot -+enable_poison_system_directories - enable_gold - enable_got - enable_werror -@@ -1439,6 +1440,8 @@ Optional Features: - --disable-largefile omit support for large files - --enable-targets alternative target configurations - --enable-64-bit-bfd 64-bit support (on hosts with narrower word sizes) -+ --enable-poison-system-directories -+ warn for use of native system library directories - --enable-gold[=ARG] build gold [ARG={default,yes,no}] - --enable-got=<type> GOT handling scheme (target, single, negative, - multigot) -@@ -15487,7 +15490,18 @@ else - fi - - -+# Check whether --enable-poison-system-directories was given. -+if test "${enable_poison_system_directories+set}" = set; then : -+ enableval=$enable_poison_system_directories; -+else -+ enable_poison_system_directories=no -+fi -+ -+if test "x${enable_poison_system_directories}" = "xyes"; then - -+$as_echo "#define ENABLE_POISON_SYSTEM_DIRECTORIES 1" >>confdefs.h -+ -+fi - - # Check whether --enable-got was given. - if test "${enable_got+set}" = set; then : -diff --git a/ld/configure.ac b/ld/configure.ac -index 1bddfc9..e9edb7f 100644 ---- a/ld/configure.ac -+++ b/ld/configure.ac -@@ -94,6 +94,16 @@ AC_SUBST(use_sysroot) - AC_SUBST(TARGET_SYSTEM_ROOT) - AC_SUBST(TARGET_SYSTEM_ROOT_DEFINE) - -+AC_ARG_ENABLE([poison-system-directories], -+ AS_HELP_STRING([--enable-poison-system-directories], -+ [warn for use of native system library directories]),, -+ [enable_poison_system_directories=no]) -+if test "x${enable_poison_system_directories}" = "xyes"; then -+ AC_DEFINE([ENABLE_POISON_SYSTEM_DIRECTORIES], -+ [1], -+ [Define to warn for use of native system library directories]) -+fi -+ - dnl Use --enable-gold to decide if this linker should be the default. - dnl "install_as_default" is set to false if gold is the default linker. - dnl "installed_linker" is the installed BFD linker name. -diff --git a/ld/ld.h b/ld/ld.h -index f773ce7..adba0f6 100644 ---- a/ld/ld.h -+++ b/ld/ld.h -@@ -161,6 +161,14 @@ typedef struct { - /* If TRUE we'll just print the default output on stdout. */ - bfd_boolean print_output_format; - -+ /* If TRUE (the default) warn for uses of system directories when -+ cross linking. */ -+ bfd_boolean poison_system_directories; -+ -+ /* If TRUE (default FALSE) give an error for uses of system -+ directories when cross linking instead of a warning. */ -+ bfd_boolean error_poison_system_directories; -+ - /* Big or little endian as set on command line. */ - enum endian_enum endian; - -diff --git a/ld/ld.texinfo b/ld/ld.texinfo -index 502582c..dae168a 100644 ---- a/ld/ld.texinfo -+++ b/ld/ld.texinfo -@@ -2212,6 +2212,18 @@ string identifying the original linked file does not change. - - Passing @code{none} for @var{style} disables the setting from any - @code{--build-id} options earlier on the command line. -+ -+@kindex --no-poison-system-directories -+@item --no-poison-system-directories -+Do not warn for @option{-L} options using system directories such as -+@file{/usr/lib} when cross linking. This option is intended for use -+in chroot environments when such directories contain the correct -+libraries for the target system rather than the host. -+ -+@kindex --error-poison-system-directories -+@item --error-poison-system-directories -+Give an error instead of a warning for @option{-L} options using -+system directories when cross linking. - @end table - - @c man end -diff --git a/ld/ldfile.c b/ld/ldfile.c -index 782ed7f..19a9ab4 100644 ---- a/ld/ldfile.c -+++ b/ld/ldfile.c -@@ -114,6 +114,23 @@ ldfile_add_library_path (const char *name, bfd_boolean cmdline) - new_dirs->name = concat (ld_sysroot, name + 1, (const char *) NULL); - else - new_dirs->name = xstrdup (name); -+ -+#ifdef ENABLE_POISON_SYSTEM_DIRECTORIES -+ if (command_line.poison_system_directories -+ && ((!strncmp (name, "/lib", 4)) -+ || (!strncmp (name, "/usr/lib", 8)) -+ || (!strncmp (name, "/usr/local/lib", 14)) -+ || (!strncmp (name, "/usr/X11R6/lib", 14)))) -+ { -+ if (command_line.error_poison_system_directories) -+ einfo (_("%X%P: error: library search path \"%s\" is unsafe for " -+ "cross-compilation\n"), name); -+ else -+ einfo (_("%P: warning: library search path \"%s\" is unsafe for " -+ "cross-compilation\n"), name); -+ } -+#endif -+ - } - - /* Try to open a BFD for a lang_input_statement. */ -diff --git a/ld/ldlex.h b/ld/ldlex.h -index e3e9b24..29487a3 100644 ---- a/ld/ldlex.h -+++ b/ld/ldlex.h -@@ -140,6 +140,8 @@ enum option_values - OPTION_IGNORE_UNRESOLVED_SYMBOL, - OPTION_PUSH_STATE, - OPTION_POP_STATE, -+ OPTION_NO_POISON_SYSTEM_DIRECTORIES, -+ OPTION_ERROR_POISON_SYSTEM_DIRECTORIES, - }; - - /* The initial parser states. */ -diff --git a/ld/ldmain.c b/ld/ldmain.c -index bc24957..396c4a0 100644 ---- a/ld/ldmain.c -+++ b/ld/ldmain.c -@@ -266,6 +266,8 @@ main (int argc, char **argv) - command_line.warn_mismatch = TRUE; - command_line.warn_search_mismatch = TRUE; - command_line.check_section_addresses = -1; -+ command_line.poison_system_directories = TRUE; -+ command_line.error_poison_system_directories = FALSE; - - /* We initialize DEMANGLING based on the environment variable - COLLECT_NO_DEMANGLE. The gcc collect2 program will demangle the -diff --git a/ld/lexsup.c b/ld/lexsup.c -index 4812c97..21b49df 100644 ---- a/ld/lexsup.c -+++ b/ld/lexsup.c -@@ -513,6 +513,14 @@ static const struct ld_option ld_options[] = - { {"pop-state", no_argument, NULL, OPTION_POP_STATE}, - '\0', NULL, N_("Pop state of flags governing input file handling"), - TWO_DASHES }, -+ { {"no-poison-system-directories", no_argument, NULL, -+ OPTION_NO_POISON_SYSTEM_DIRECTORIES}, -+ '\0', NULL, N_("Do not warn for -L options using system directories"), -+ TWO_DASHES }, -+ { {"error-poison-system-directories", no_argument, NULL, -+ + OPTION_ERROR_POISON_SYSTEM_DIRECTORIES}, -+ '\0', NULL, N_("Give an error for -L options using system directories"), -+ TWO_DASHES }, - }; - - #define OPTION_COUNT ARRAY_SIZE (ld_options) -@@ -1474,6 +1482,14 @@ parse_args (unsigned argc, char **argv) - free (oldp); - } - break; -+ -+ case OPTION_NO_POISON_SYSTEM_DIRECTORIES: -+ command_line.poison_system_directories = FALSE; -+ break; -+ -+ case OPTION_ERROR_POISON_SYSTEM_DIRECTORIES: -+ command_line.error_poison_system_directories = TRUE; -+ break; - } - } - --- -1.9.3 - diff --git a/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.25/binutils-uclibc-100-uclibc-conf.patch b/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.25/binutils-uclibc-100-uclibc-conf.patch deleted file mode 100644 index b5a25c23..00000000 --- a/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.25/binutils-uclibc-100-uclibc-conf.patch +++ /dev/null @@ -1,40 +0,0 @@ -Upstream-Status: Pending - -Index: binutils-2.22/configure -=================================================================== ---- binutils-2.22.orig/configure -+++ binutils-2.22/configure -@@ -3130,7 +3130,7 @@ case "${target}" in - ;; - s390-*-* | s390x-*-*) - ;; -- sh-*-* | sh[34]*-*-*) -+ sh*-*-* | sh[34]*-*-*) - ;; - sh64-*-* | sh5*-*-*) - ;; -@@ -3570,7 +3570,7 @@ case "${target}" in - mips*-*-*) - noconfigdirs="$noconfigdirs gprof" - ;; -- sh-*-* | sh64-*-*) -+ sh*-*-* | sh64-*-*) - case "${target}" in - sh*-*-elf) - ;; -Index: binutils-2.22/gprof/configure -=================================================================== ---- binutils-2.22.orig/gprof/configure -+++ binutils-2.22/gprof/configure -@@ -6103,6 +6103,11 @@ linux* | k*bsd*-gnu | kopensolaris*-gnu) - lt_cv_deplibs_check_method=pass_all - ;; - -+linux-uclibc*) -+ lt_cv_deplibs_check_method=pass_all -+ lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so` -+ ;; -+ - netbsd*) - if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then - lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' diff --git a/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.25/binutils-uclibc-300-001_ld_makefile_patch.patch b/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.25/binutils-uclibc-300-001_ld_makefile_patch.patch deleted file mode 100644 index c6e1efce..00000000 --- a/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.25/binutils-uclibc-300-001_ld_makefile_patch.patch +++ /dev/null @@ -1,55 +0,0 @@ -#!/bin/sh -e -## 001_ld_makefile_patch.dpatch -## -## All lines beginning with `## DP:' are a description of the patch. -## DP: Description: correct where ld scripts are installed -## DP: Author: Chris Chimelis <chris@debian.org> -## DP: Upstream status: N/A -## DP: Date: ?? - -if [ $# -ne 1 ]; then - echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" - exit 1 -fi - -[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts -patch_opts="${patch_opts:--f --no-backup-if-mismatch}" - -case "$1" in - -patch) patch $patch_opts -p1 < $0;; - -unpatch) patch $patch_opts -p1 -R < $0;; - *) - echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" - exit 1;; -esac - -exit 0 -Upstream-Status: Inappropriate [debian patch] - -@DPATCH@ -Index: binutils-2.22/ld/Makefile.am -=================================================================== ---- binutils-2.22.orig/ld/Makefile.am -+++ binutils-2.22/ld/Makefile.am -@@ -37,7 +37,7 @@ endif - # We put the scripts in the directory $(scriptdir)/ldscripts. - # We can't put the scripts in $(datadir) because the SEARCH_DIR - # directives need to be different for native and cross linkers. --scriptdir = $(tooldir)/lib -+scriptdir = $(libdir) - - EMUL = @EMUL@ - EMULATION_OFILES = @EMULATION_OFILES@ -Index: binutils-2.22/ld/Makefile.in -=================================================================== ---- binutils-2.22.orig/ld/Makefile.in -+++ binutils-2.22/ld/Makefile.in -@@ -366,7 +366,7 @@ AM_CFLAGS = $(WARN_CFLAGS) - # We put the scripts in the directory $(scriptdir)/ldscripts. - # We can't put the scripts in $(datadir) because the SEARCH_DIR - # directives need to be different for native and cross linkers. --scriptdir = $(tooldir)/lib -+scriptdir = $(libdir) - BASEDIR = $(srcdir)/.. - BFDDIR = $(BASEDIR)/bfd - INCDIR = $(BASEDIR)/include diff --git a/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.25/binutils-uclibc-300-006_better_file_error.patch b/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.25/binutils-uclibc-300-006_better_file_error.patch deleted file mode 100644 index 47bd8ff1..00000000 --- a/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.25/binutils-uclibc-300-006_better_file_error.patch +++ /dev/null @@ -1,45 +0,0 @@ -#!/bin/sh -e -## 006_better_file_error.dpatch by David Kimdon <dwhedon@gordian.com> -## -## All lines beginning with `## DP:' are a description of the patch. -## DP: Specify which filename is causing an error if the filename is a -## DP: directory. (#45832) - -if [ $# -ne 1 ]; then - echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" - exit 1 -fi - -[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts -patch_opts="${patch_opts:--f --no-backup-if-mismatch}" - -case "$1" in - -patch) patch $patch_opts -p1 < $0;; - -unpatch) patch $patch_opts -p1 -R < $0;; - *) - echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" - exit 1;; -esac - -exit 0 -Upstream-Status: Inappropriate [debian patch] - -@DPATCH@ -Index: binutils-2.22/bfd/opncls.c -=================================================================== ---- binutils-2.22.orig/bfd/opncls.c -+++ binutils-2.22/bfd/opncls.c -@@ -197,6 +197,13 @@ bfd_fopen (const char *filename, const c - { - bfd *nbfd; - const bfd_target *target_vec; -+ struct stat s; -+ -+ if (stat (filename, &s) == 0) -+ if (S_ISDIR(s.st_mode)) { -+ bfd_set_error (bfd_error_file_not_recognized); -+ return NULL; -+ } - - nbfd = _bfd_new_bfd (); - if (nbfd == NULL) diff --git a/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.25/binutils-uclibc-300-012_check_ldrunpath_length.patch b/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.25/binutils-uclibc-300-012_check_ldrunpath_length.patch deleted file mode 100644 index d31f80cd..00000000 --- a/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.25/binutils-uclibc-300-012_check_ldrunpath_length.patch +++ /dev/null @@ -1,49 +0,0 @@ -#!/bin/sh -e -## 012_check_ldrunpath_length.dpatch by Chris Chimelis <chris@debian.org> -## -## All lines beginning with `## DP:' are a description of the patch. -## DP: Only generate an RPATH entry if LD_RUN_PATH is not empty, for -## DP: cases where -rpath isn't specified. (#151024) - -if [ $# -ne 1 ]; then - echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" - exit 1 -fi - -[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts -patch_opts="${patch_opts:--f --no-backup-if-mismatch}" - -case "$1" in - -patch) patch $patch_opts -p1 < $0;; - -unpatch) patch $patch_opts -p1 -R < $0;; - *) - echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" - exit 1;; -esac - -exit 0 -Upstream-Status: Inappropriate [debian patch] - -@DPATCH@ -Index: binutils-2.22/ld/emultempl/elf32.em -=================================================================== ---- binutils-2.22.orig/ld/emultempl/elf32.em -+++ binutils-2.22/ld/emultempl/elf32.em -@@ -1273,6 +1273,8 @@ fragment <<EOF - && command_line.rpath == NULL) - { - lib_path = (const char *) getenv ("LD_RUN_PATH"); -+ if ((lib_path) && (strlen (lib_path) == 0)) -+ lib_path = NULL; - if (gld${EMULATION_NAME}_search_needed (lib_path, &n, - force)) - break; -@@ -1500,6 +1502,8 @@ gld${EMULATION_NAME}_before_allocation ( - rpath = command_line.rpath; - if (rpath == NULL) - rpath = (const char *) getenv ("LD_RUN_PATH"); -+ if ((rpath) && (strlen (rpath) == 0)) -+ rpath = NULL; - - for (abfd = link_info.input_bfds; abfd; abfd = abfd->link_next) - if (bfd_get_flavour (abfd) == bfd_target_elf_flavour) diff --git a/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.25/binutils-uclibc-gas-needs-libm.patch b/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.25/binutils-uclibc-gas-needs-libm.patch deleted file mode 100644 index 3869faff..00000000 --- a/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.25/binutils-uclibc-gas-needs-libm.patch +++ /dev/null @@ -1,38 +0,0 @@ -Source: Khem Raj <raj.khem@gmail.com> -Disposition: submit upstream. -Upstream-Status: Pending - -Description: - -We do not need to have the libtool patch anymore for binutils after -libtool has been updated upstream it include support for it. However -for building gas natively on uclibc systems we have to link it with --lm so that it picks up missing symbols. - -/local/build_area/BUILD/arm_v5t_le_uclibc/binutils-2.17.50/objdir/libiberty/pic/libiberty.a(floatformat.o): In function `floatformat_from_double': -floatformat.c:(.text+0x1ec): undefined reference to `frexp' -floatformat.c:(.text+0x2f8): undefined reference to `ldexp' -/local/build_area/BUILD/arm_v5t_le_uclibc/binutils-2.17.50/objdir/libiberty/pic/libiberty.a(floatformat.o): In function `floatformat_to_double': -floatformat.c:(.text+0x38a): undefined reference to `ldexp' -floatformat.c:(.text+0x3d2): undefined reference to `ldexp' -floatformat.c:(.text+0x43e): undefined reference to `ldexp' floatformat.c:(.text+0x4e2): undefined reference to `ldexp' -collect2: ld returned 1 exit status -make[4]: *** [as-new] Error 1 - -Index: binutils-2.22/gas/configure.tgt -=================================================================== ---- binutils-2.22.orig/gas/configure.tgt -+++ binutils-2.22/gas/configure.tgt -@@ -428,6 +428,12 @@ case ${generic_target} in - *-*-netware) fmt=elf em=netware ;; - esac - -+case ${generic_target} in -+ arm-*-*uclibc*) -+ need_libm=yes -+ ;; -+esac -+ - case ${cpu_type} in - alpha | arm | i386 | ia64 | microblaze | mips | ns32k | pdp11 | ppc | sparc | z80 | z8k) - bfd_gas=yes diff --git a/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.25/libiberty_path_fix.patch b/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.25/libiberty_path_fix.patch deleted file mode 100644 index 6e732fbd..00000000 --- a/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.25/libiberty_path_fix.patch +++ /dev/null @@ -1,22 +0,0 @@ -Upstream-Status: Inappropriate [embedded specific] - -don't let the distro compiler point to the wrong installation location - -Thanks to RP for helping find the source code causing the issue. - -2010/08/13 -Nitin A Kamble <nitin.a.kamble@intel.com> -Index: binutils-2.22/libiberty/Makefile.in -=================================================================== ---- binutils-2.22.orig/libiberty/Makefile.in -+++ binutils-2.22/libiberty/Makefile.in -@@ -350,7 +350,8 @@ install-strip: install - # multilib-specific flags, it's overridden by FLAGS_TO_PASS from the - # default multilib, so we have to take CFLAGS into account as well, - # since it will be passed the multilib flags. --MULTIOSDIR = `$(CC) $(CFLAGS) -print-multi-os-directory` -+#MULTIOSDIR = `$(CC) $(CFLAGS) -print-multi-os-directory` -+MULTIOSDIR = "" - install_to_libdir: all - ${mkinstalldirs} $(DESTDIR)$(libdir)/$(MULTIOSDIR) - $(INSTALL_DATA) $(TARGETLIB) $(DESTDIR)$(libdir)/$(MULTIOSDIR)/$(TARGETLIB)n diff --git a/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.25/libtool-2.4-update.patch b/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.25/libtool-2.4-update.patch deleted file mode 100644 index 9aaecd94..00000000 --- a/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.25/libtool-2.4-update.patch +++ /dev/null @@ -1,19322 +0,0 @@ -Upstream-Status: Inappropriate [embedded specific] - -Index: binutils-2.24/libtool.m4 -=================================================================== ---- binutils-2.24.orig/libtool.m4 2013-11-04 07:33:40.000000000 -0800 -+++ binutils-2.24/libtool.m4 2013-12-15 11:10:23.863785363 -0800 -@@ -1,7 +1,8 @@ - # libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- - # - # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, --# 2006, 2007, 2008, 2009 Free Software Foundation, Inc. -+# 2006, 2007, 2008, 2009, 2010 Free Software Foundation, -+# Inc. - # Written by Gordon Matzigkeit, 1996 - # - # This file is free software; the Free Software Foundation gives -@@ -10,7 +11,8 @@ - - m4_define([_LT_COPYING], [dnl - # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, --# 2006, 2007, 2008, 2009 Free Software Foundation, Inc. -+# 2006, 2007, 2008, 2009, 2010 Free Software Foundation, -+# Inc. - # Written by Gordon Matzigkeit, 1996 - # - # This file is part of GNU Libtool. -@@ -37,7 +39,7 @@ - # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - ]) - --# serial 56 LT_INIT -+# serial 57 LT_INIT - - - # LT_PREREQ(VERSION) -@@ -92,7 +94,8 @@ - LIBTOOL_DEPS="$ltmain" - - # Always use our own libtool. --LIBTOOL='$(SHELL) $(top_builddir)/libtool' -+LIBTOOL='$(SHELL) $(top_builddir)' -+LIBTOOL="$LIBTOOL/${host_alias}-libtool" - AC_SUBST(LIBTOOL)dnl - - _LT_SETUP -@@ -166,10 +169,13 @@ - dnl - m4_require([_LT_FILEUTILS_DEFAULTS])dnl - m4_require([_LT_CHECK_SHELL_FEATURES])dnl -+m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl - m4_require([_LT_CMD_RELOAD])dnl - m4_require([_LT_CHECK_MAGIC_METHOD])dnl -+m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl - m4_require([_LT_CMD_OLD_ARCHIVE])dnl - m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl -+m4_require([_LT_WITH_SYSROOT])dnl - - _LT_CONFIG_LIBTOOL_INIT([ - # See if we are running on zsh, and set the options which allow our -@@ -199,7 +205,7 @@ - esac - - # Global variables: --ofile=libtool -+ofile=${host_alias}-libtool - can_build_shared=yes - - # All known linkers require a `.a' archive for static linking (except MSVC, -@@ -632,7 +638,7 @@ - m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) - configured by $[0], generated by m4_PACKAGE_STRING. - --Copyright (C) 2009 Free Software Foundation, Inc. -+Copyright (C) 2010 Free Software Foundation, Inc. - This config.lt script is free software; the Free Software Foundation - gives unlimited permision to copy, distribute and modify it." - -@@ -746,15 +752,12 @@ - # if finds mixed CR/LF and LF-only lines. Since sed operates in - # text mode, it properly converts lines to CR/LF. This bash problem - # is reportedly fixed, but why not run on old versions too? -- sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ -- || (rm -f "$cfgfile"; exit 1) -+ sed '$q' "$ltmain" >> "$cfgfile" \ -+ || (rm -f "$cfgfile"; exit 1) - -- _LT_PROG_XSI_SHELLFNS -+ _LT_PROG_REPLACE_SHELLFNS - -- sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ -- || (rm -f "$cfgfile"; exit 1) -- -- mv -f "$cfgfile" "$ofile" || -+ mv -f "$cfgfile" "$ofile" || - (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") - chmod +x "$ofile" - ], -@@ -980,6 +983,8 @@ - $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD - echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD - $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD -+ echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD -+ $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD - cat > conftest.c << _LT_EOF - int main() { return 0;} - _LT_EOF -@@ -1069,30 +1074,41 @@ - fi - ]) - --# _LT_SYS_MODULE_PATH_AIX --# ----------------------- -+# _LT_SYS_MODULE_PATH_AIX([TAGNAME]) -+# ---------------------------------- - # Links a minimal program and checks the executable - # for the system default hardcoded library path. In most cases, - # this is /usr/lib:/lib, but when the MPI compilers are used - # the location of the communication and MPI libs are included too. - # If we don't find anything, use the default library path according - # to the aix ld manual. -+# Store the results from the different compilers for each TAGNAME. -+# Allow to override them for all tags through lt_cv_aix_libpath. - m4_defun([_LT_SYS_MODULE_PATH_AIX], - [m4_require([_LT_DECL_SED])dnl --AC_LINK_IFELSE(AC_LANG_PROGRAM,[ --lt_aix_libpath_sed=' -- /Import File Strings/,/^$/ { -- /^0/ { -- s/^0 *\(.*\)$/\1/ -- p -- } -- }' --aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` --# Check for a 64-bit object if we didn't find anything. --if test -z "$aix_libpath"; then -- aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` --fi],[]) --if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi -+if test "${lt_cv_aix_libpath+set}" = set; then -+ aix_libpath=$lt_cv_aix_libpath -+else -+ AC_CACHE_VAL([_LT_TAGVAR([lt_cv_aix_libpath_], [$1])], -+ [AC_LINK_IFELSE([AC_LANG_PROGRAM],[ -+ lt_aix_libpath_sed='[ -+ /Import File Strings/,/^$/ { -+ /^0/ { -+ s/^0 *\([^ ]*\) *$/\1/ -+ p -+ } -+ }]' -+ _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -+ # Check for a 64-bit object if we didn't find anything. -+ if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then -+ _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -+ fi],[]) -+ if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then -+ _LT_TAGVAR([lt_cv_aix_libpath_], [$1])="/usr/lib:/lib" -+ fi -+ ]) -+ aix_libpath=$_LT_TAGVAR([lt_cv_aix_libpath_], [$1]) -+fi - ])# _LT_SYS_MODULE_PATH_AIX - - -@@ -1117,7 +1133,7 @@ - - AC_MSG_CHECKING([how to print strings]) - # Test print first, because it will be a builtin if present. --if test "X`print -r -- -n 2>/dev/null`" = X-n && \ -+if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ - test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then - ECHO='print -r --' - elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then -@@ -1161,6 +1177,39 @@ - ])# _LT_PROG_ECHO_BACKSLASH - - -+# _LT_WITH_SYSROOT -+# ---------------- -+AC_DEFUN([_LT_WITH_SYSROOT], -+[AC_MSG_CHECKING([for sysroot]) -+AC_ARG_WITH([libtool-sysroot], -+[ --with-libtool-sysroot[=DIR] Search for dependent libraries within DIR -+ (or the compiler's sysroot if not specified).], -+[], [with_libtool_sysroot=no]) -+ -+dnl lt_sysroot will always be passed unquoted. We quote it here -+dnl in case the user passed a directory name. -+lt_sysroot= -+case ${with_libtool_sysroot} in #( -+ yes) -+ if test "$GCC" = yes; then -+ lt_sysroot=`$CC --print-sysroot 2>/dev/null` -+ fi -+ ;; #( -+ /*) -+ lt_sysroot=`echo "$with_libtool_sysroot" | sed -e "$sed_quote_subst"` -+ ;; #( -+ no|'') -+ ;; #( -+ *) -+ AC_MSG_RESULT([${with_libtool_sysroot}]) -+ AC_MSG_ERROR([The sysroot must be an absolute path.]) -+ ;; -+esac -+ -+ AC_MSG_RESULT([${lt_sysroot:-no}]) -+_LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl -+[dependent libraries, and in which our libraries should be installed.])]) -+ - # _LT_ENABLE_LOCK - # --------------- - m4_defun([_LT_ENABLE_LOCK], -@@ -1320,14 +1369,47 @@ - ])# _LT_ENABLE_LOCK - - -+# _LT_PROG_AR -+# ----------- -+m4_defun([_LT_PROG_AR], -+[AC_CHECK_TOOLS(AR, [ar], false) -+: ${AR=ar} -+: ${AR_FLAGS=cru} -+_LT_DECL([], [AR], [1], [The archiver]) -+_LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive]) -+ -+AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file], -+ [lt_cv_ar_at_file=no -+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM], -+ [echo conftest.$ac_objext > conftest.lst -+ lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&AS_MESSAGE_LOG_FD' -+ AC_TRY_EVAL([lt_ar_try]) -+ if test "$ac_status" -eq 0; then -+ # Ensure the archiver fails upon bogus file names. -+ rm -f conftest.$ac_objext libconftest.a -+ AC_TRY_EVAL([lt_ar_try]) -+ if test "$ac_status" -ne 0; then -+ lt_cv_ar_at_file=@ -+ fi -+ fi -+ rm -f conftest.* libconftest.a -+ ]) -+ ]) -+ -+if test "x$lt_cv_ar_at_file" = xno; then -+ archiver_list_spec= -+else -+ archiver_list_spec=$lt_cv_ar_at_file -+fi -+_LT_DECL([], [archiver_list_spec], [1], -+ [How to feed a file listing to the archiver]) -+])# _LT_PROG_AR -+ -+ - # _LT_CMD_OLD_ARCHIVE - # ------------------- - m4_defun([_LT_CMD_OLD_ARCHIVE], --[AC_CHECK_TOOL(AR, ar, false) --test -z "$AR" && AR=ar --test -z "$AR_FLAGS" && AR_FLAGS=cru --_LT_DECL([], [AR], [1], [The archiver]) --_LT_DECL([], [AR_FLAGS], [1]) -+[_LT_PROG_AR - - AC_CHECK_TOOL(STRIP, strip, :) - test -z "$STRIP" && STRIP=: -@@ -1623,7 +1705,7 @@ - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext <<_LT_EOF --[#line __oline__ "configure" -+[#line $LINENO "configure" - #include "confdefs.h" - - #if HAVE_DLFCN_H -@@ -1667,10 +1749,10 @@ - /* When -fvisbility=hidden is used, assume the code has been annotated - correspondingly for the symbols needed. */ - #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) --void fnord () __attribute__((visibility("default"))); -+int fnord () __attribute__((visibility("default"))); - #endif - --void fnord () { int i=42; } -+int fnord () { return 42; } - int main () - { - void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); -@@ -2210,8 +2292,9 @@ - need_version=no - need_lib_prefix=no - -- case $GCC,$host_os in -- yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) -+ case $GCC,$cc_basename in -+ yes,*) -+ # gcc - library_names_spec='$libname.dll.a' - # DLL is installed to $(libdir)/../bin by postinstall_cmds - postinstall_cmds='base_file=`basename \${file}`~ -@@ -2244,13 +2327,71 @@ - library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' - ;; - esac -+ dynamic_linker='Win32 ld.exe' -+ ;; -+ -+ *,cl*) -+ # Native MSVC -+ libname_spec='$name' -+ soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' -+ library_names_spec='${libname}.dll.lib' -+ -+ case $build_os in -+ mingw*) -+ sys_lib_search_path_spec= -+ lt_save_ifs=$IFS -+ IFS=';' -+ for lt_path in $LIB -+ do -+ IFS=$lt_save_ifs -+ # Let DOS variable expansion print the short 8.3 style file name. -+ lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` -+ sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" -+ done -+ IFS=$lt_save_ifs -+ # Convert to MSYS style. -+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'` -+ ;; -+ cygwin*) -+ # Convert to unix form, then to dos form, then back to unix form -+ # but this time dos style (no spaces!) so that the unix form looks -+ # like /cygdrive/c/PROGRA~1:/cygdr... -+ sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` -+ sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` -+ sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` -+ ;; -+ *) -+ sys_lib_search_path_spec="$LIB" -+ if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then -+ # It is most probably a Windows format PATH. -+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` -+ else -+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` -+ fi -+ # FIXME: find the short name or the path components, as spaces are -+ # common. (e.g. "Program Files" -> "PROGRA~1") -+ ;; -+ esac -+ -+ # DLL is installed to $(libdir)/../bin by postinstall_cmds -+ postinstall_cmds='base_file=`basename \${file}`~ -+ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ -+ dldir=$destdir/`dirname \$dlpath`~ -+ test -d \$dldir || mkdir -p \$dldir~ -+ $install_prog $dir/$dlname \$dldir/$dlname' -+ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ -+ dlpath=$dir/\$dldll~ -+ $RM \$dlpath' -+ shlibpath_overrides_runpath=yes -+ dynamic_linker='Win32 link.exe' - ;; - - *) -+ # Assume MSVC wrapper - library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib' -+ dynamic_linker='Win32 ld.exe' - ;; - esac -- dynamic_linker='Win32 ld.exe' - # FIXME: first we should search . and the directory the executable is in - shlibpath_var=PATH - ;; -@@ -2342,7 +2483,7 @@ - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LIBRARY_PATH - shlibpath_overrides_runpath=yes -- sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/beos/system/lib' -+ sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' - hardcode_into_libs=yes - ;; - -@@ -2950,6 +3091,11 @@ - esac - reload_cmds='$LD$reload_flag -o $output$reload_objs' - case $host_os in -+ cygwin* | mingw* | pw32* | cegcc*) -+ if test "$GCC" != yes; then -+ reload_cmds=false -+ fi -+ ;; - darwin*) - if test "$GCC" = yes; then - reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' -@@ -3016,7 +3162,8 @@ - lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' - lt_cv_file_magic_cmd='func_win32_libid' - else -- lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' -+ # Keep this pattern in sync with the one in func_win32_libid. -+ lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' - lt_cv_file_magic_cmd='$OBJDUMP -f' - fi - ;; -@@ -3167,6 +3314,21 @@ - ;; - esac - ]) -+ -+file_magic_glob= -+want_nocaseglob=no -+if test "$build" = "$host"; then -+ case $host_os in -+ mingw* | pw32*) -+ if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then -+ want_nocaseglob=yes -+ else -+ file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[[\1]]\/[[\1]]\/g;/g"` -+ fi -+ ;; -+ esac -+fi -+ - file_magic_cmd=$lt_cv_file_magic_cmd - deplibs_check_method=$lt_cv_deplibs_check_method - test -z "$deplibs_check_method" && deplibs_check_method=unknown -@@ -3174,7 +3336,11 @@ - _LT_DECL([], [deplibs_check_method], [1], - [Method to check whether dependent libraries are shared objects]) - _LT_DECL([], [file_magic_cmd], [1], -- [Command to use when deplibs_check_method == "file_magic"]) -+ [Command to use when deplibs_check_method = "file_magic"]) -+_LT_DECL([], [file_magic_glob], [1], -+ [How to find potential files when deplibs_check_method = "file_magic"]) -+_LT_DECL([], [want_nocaseglob], [1], -+ [Find potential files using nocaseglob when deplibs_check_method = "file_magic"]) - ])# _LT_CHECK_MAGIC_METHOD - - -@@ -3277,6 +3443,67 @@ - dnl AC_DEFUN([AM_PROG_NM], []) - dnl AC_DEFUN([AC_PROG_NM], []) - -+# _LT_CHECK_SHAREDLIB_FROM_LINKLIB -+# -------------------------------- -+# how to determine the name of the shared library -+# associated with a specific link library. -+# -- PORTME fill in with the dynamic library characteristics -+m4_defun([_LT_CHECK_SHAREDLIB_FROM_LINKLIB], -+[m4_require([_LT_DECL_EGREP]) -+m4_require([_LT_DECL_OBJDUMP]) -+m4_require([_LT_DECL_DLLTOOL]) -+AC_CACHE_CHECK([how to associate runtime and link libraries], -+lt_cv_sharedlib_from_linklib_cmd, -+[lt_cv_sharedlib_from_linklib_cmd='unknown' -+ -+case $host_os in -+cygwin* | mingw* | pw32* | cegcc*) -+ # two different shell functions defined in ltmain.sh -+ # decide which to use based on capabilities of $DLLTOOL -+ case `$DLLTOOL --help 2>&1` in -+ *--identify-strict*) -+ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib -+ ;; -+ *) -+ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback -+ ;; -+ esac -+ ;; -+*) -+ # fallback: assume linklib IS sharedlib -+ lt_cv_sharedlib_from_linklib_cmd="$ECHO" -+ ;; -+esac -+]) -+sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd -+test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO -+ -+_LT_DECL([], [sharedlib_from_linklib_cmd], [1], -+ [Command to associate shared and link libraries]) -+])# _LT_CHECK_SHAREDLIB_FROM_LINKLIB -+ -+ -+# _LT_PATH_MANIFEST_TOOL -+# ---------------------- -+# locate the manifest tool -+m4_defun([_LT_PATH_MANIFEST_TOOL], -+[AC_CHECK_TOOL(MANIFEST_TOOL, mt, :) -+test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt -+AC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_mainfest_tool], -+ [lt_cv_path_mainfest_tool=no -+ echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&AS_MESSAGE_LOG_FD -+ $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out -+ cat conftest.err >&AS_MESSAGE_LOG_FD -+ if $GREP 'Manifest Tool' conftest.out > /dev/null; then -+ lt_cv_path_mainfest_tool=yes -+ fi -+ rm -f conftest*]) -+if test "x$lt_cv_path_mainfest_tool" != xyes; then -+ MANIFEST_TOOL=: -+fi -+_LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl -+])# _LT_PATH_MANIFEST_TOOL -+ - - # LT_LIB_M - # -------- -@@ -3403,8 +3630,8 @@ - lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" - - # Transform an extracted symbol line into symbol name and symbol address --lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p'" --lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"lib\2\", (void *) \&\2},/p'" -+lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p'" -+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"lib\2\", (void *) \&\2},/p'" - - # Handle CRLF in mingw tool chain - opt_cr= -@@ -3440,6 +3667,7 @@ - else - lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" - fi -+ lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" - - # Check to see that the pipe works correctly. - pipe_works=no -@@ -3473,6 +3701,18 @@ - if $GREP ' nm_test_var$' "$nlist" >/dev/null; then - if $GREP ' nm_test_func$' "$nlist" >/dev/null; then - cat <<_LT_EOF > conftest.$ac_ext -+/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ -+#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) -+/* DATA imports from DLLs on WIN32 con't be const, because runtime -+ relocations are performed -- see ld's documentation on pseudo-relocs. */ -+# define LT@&t@_DLSYM_CONST -+#elif defined(__osf__) -+/* This system does not cope well with relocations in const data. */ -+# define LT@&t@_DLSYM_CONST -+#else -+# define LT@&t@_DLSYM_CONST const -+#endif -+ - #ifdef __cplusplus - extern "C" { - #endif -@@ -3484,7 +3724,7 @@ - cat <<_LT_EOF >> conftest.$ac_ext - - /* The mapping between symbol names and symbols. */ --const struct { -+LT@&t@_DLSYM_CONST struct { - const char *name; - void *address; - } -@@ -3510,15 +3750,15 @@ - _LT_EOF - # Now try linking the two files. - mv conftest.$ac_objext conftstm.$ac_objext -- lt_save_LIBS="$LIBS" -- lt_save_CFLAGS="$CFLAGS" -+ lt_globsym_save_LIBS=$LIBS -+ lt_globsym_save_CFLAGS=$CFLAGS - LIBS="conftstm.$ac_objext" - CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" - if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then - pipe_works=yes - fi -- LIBS="$lt_save_LIBS" -- CFLAGS="$lt_save_CFLAGS" -+ LIBS=$lt_globsym_save_LIBS -+ CFLAGS=$lt_globsym_save_CFLAGS - else - echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD - fi -@@ -3551,6 +3791,13 @@ - AC_MSG_RESULT(ok) - fi - -+# Response file support. -+if test "$lt_cv_nm_interface" = "MS dumpbin"; then -+ nm_file_list_spec='@' -+elif $NM --help 2>/dev/null | grep '[[@]]FILE' >/dev/null; then -+ nm_file_list_spec='@' -+fi -+ - _LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1], - [Take the output of nm and produce a listing of raw symbols and C names]) - _LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1], -@@ -3561,6 +3808,8 @@ - _LT_DECL([global_symbol_to_c_name_address_lib_prefix], - [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1], - [Transform the output of nm in a C name address pair when lib prefix is needed]) -+_LT_DECL([], [nm_file_list_spec], [1], -+ [Specify filename containing input files for $NM]) - ]) # _LT_CMD_GLOBAL_SYMBOLS - - -@@ -3572,7 +3821,6 @@ - _LT_TAGVAR(lt_prog_compiler_pic, $1)= - _LT_TAGVAR(lt_prog_compiler_static, $1)= - --AC_MSG_CHECKING([for $compiler option to produce PIC]) - m4_if([$1], [CXX], [ - # C++ specific cases for pic, static, wl, etc. - if test "$GXX" = yes; then -@@ -3678,6 +3926,12 @@ - ;; - esac - ;; -+ mingw* | cygwin* | os2* | pw32* | cegcc*) -+ # This hack is so that the source file can tell whether it is being -+ # built for inclusion in a dll (and should export symbols for example). -+ m4_if([$1], [GCJ], [], -+ [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) -+ ;; - dgux*) - case $cc_basename in - ec++*) -@@ -3830,7 +4084,7 @@ - ;; - solaris*) - case $cc_basename in -- CC*) -+ CC* | sunCC*) - # Sun C++ 4.2, 5.x and Centerline C++ - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' -@@ -4053,6 +4307,12 @@ - _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared' - _LT_TAGVAR(lt_prog_compiler_static, $1)='--static' - ;; -+ nagfor*) -+ # NAG Fortran compiler -+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,' -+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' -+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' -+ ;; - pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) - # Portland Group compilers (*not* the Pentium gcc compiler, - # which looks to be a dead project) -@@ -4115,7 +4375,7 @@ - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - case $cc_basename in -- f77* | f90* | f95*) -+ f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; - *) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; -@@ -4172,9 +4432,11 @@ - _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])" - ;; - esac --AC_MSG_RESULT([$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) --_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], -- [How to pass a linker flag through the compiler]) -+ -+AC_CACHE_CHECK([for $compiler option to produce PIC], -+ [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)], -+ [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) -+_LT_TAGVAR(lt_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_cv_prog_compiler_pic, $1) - - # - # Check to make sure the PIC flag actually works. -@@ -4193,6 +4455,8 @@ - _LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1], - [Additional compiler flags for building library objects]) - -+_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], -+ [How to pass a linker flag through the compiler]) - # - # Check to make sure the static flag actually works. - # -@@ -4213,6 +4477,7 @@ - m4_defun([_LT_LINKER_SHLIBS], - [AC_REQUIRE([LT_PATH_LD])dnl - AC_REQUIRE([LT_PATH_NM])dnl -+m4_require([_LT_PATH_MANIFEST_TOOL])dnl - m4_require([_LT_FILEUTILS_DEFAULTS])dnl - m4_require([_LT_DECL_EGREP])dnl - m4_require([_LT_DECL_SED])dnl -@@ -4221,6 +4486,7 @@ - AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) - m4_if([$1], [CXX], [ - _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' -+ _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] - case $host_os in - aix[[4-9]]*) - # If we're using GNU nm, then we don't want the "-C" option. -@@ -4235,15 +4501,20 @@ - ;; - pw32*) - _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" -- ;; -+ ;; - cygwin* | mingw* | cegcc*) -- _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;/^.*[[ ]]__nm__/s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' -- ;; -+ case $cc_basename in -+ cl*) ;; -+ *) -+ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' -+ _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] -+ ;; -+ esac -+ ;; - *) - _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' -- ;; -+ ;; - esac -- _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] - ], [ - runpath_var= - _LT_TAGVAR(allow_undefined_flag, $1)= -@@ -4411,7 +4682,8 @@ - _LT_TAGVAR(allow_undefined_flag, $1)=unsupported - _LT_TAGVAR(always_export_symbols, $1)=no - _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes -- _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' -+ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' -+ _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] - - if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' -@@ -4459,7 +4731,7 @@ - if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ - && test "$tmp_diet" = no - then -- tmp_addflag= -+ tmp_addflag=' $pic_flag' - tmp_sharedflag='-shared' - case $cc_basename,$host_cpu in - pgcc*) # Portland Group C compiler -@@ -4510,12 +4782,12 @@ - _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= - _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir' -- _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib' -+ _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' - if test "x$supports_anon_versioning" = xyes; then - _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ - cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ - echo "local: *; };" >> $output_objdir/$libname.ver~ -- $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' -+ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' - fi - ;; - esac -@@ -4529,8 +4801,8 @@ - _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' - wlarc= - else -- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' -+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - fi - ;; - -@@ -4548,8 +4820,8 @@ - - _LT_EOF - elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then -- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' -+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - _LT_TAGVAR(ld_shlibs, $1)=no - fi -@@ -4595,8 +4867,8 @@ - - *) - if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then -- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' -+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - _LT_TAGVAR(ld_shlibs, $1)=no - fi -@@ -4726,7 +4998,7 @@ - _LT_TAGVAR(allow_undefined_flag, $1)='-berok' - # Determine the default libpath from the value encoded in an - # empty executable. -- _LT_SYS_MODULE_PATH_AIX -+ _LT_SYS_MODULE_PATH_AIX([$1]) - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" - else -@@ -4737,7 +5009,7 @@ - else - # Determine the default libpath from the value encoded in an - # empty executable. -- _LT_SYS_MODULE_PATH_AIX -+ _LT_SYS_MODULE_PATH_AIX([$1]) - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" - # Warning - without using the other run time loading flags, - # -berok will link without error, but may produce a broken library. -@@ -4781,20 +5053,63 @@ - # Microsoft Visual C++. - # hardcode_libdir_flag_spec is actually meaningless, as there is - # no search path for DLLs. -- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' -- _LT_TAGVAR(allow_undefined_flag, $1)=unsupported -- # Tell ltmain to make .lib files, not .a files. -- libext=lib -- # Tell ltmain to make .dll files, not .so files. -- shrext_cmds=".dll" -- # FIXME: Setting linknames here is a bad hack. -- _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' -- # The linker will automatically build a .lib file if we build a DLL. -- _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' -- # FIXME: Should let the user specify the lib program. -- _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' -- _LT_TAGVAR(fix_srcfile_path, $1)='`cygpath -w "$srcfile"`' -- _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes -+ case $cc_basename in -+ cl*) -+ # Native MSVC -+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' -+ _LT_TAGVAR(allow_undefined_flag, $1)=unsupported -+ _LT_TAGVAR(always_export_symbols, $1)=yes -+ _LT_TAGVAR(file_list_spec, $1)='@' -+ # Tell ltmain to make .lib files, not .a files. -+ libext=lib -+ # Tell ltmain to make .dll files, not .so files. -+ shrext_cmds=".dll" -+ # FIXME: Setting linknames here is a bad hack. -+ _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' -+ _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then -+ sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; -+ else -+ sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; -+ fi~ -+ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ -+ linknames=' -+ # The linker will not automatically build a static lib if we build a DLL. -+ # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' -+ _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes -+ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1,DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' -+ # Don't use ranlib -+ _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' -+ _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ -+ lt_tool_outputfile="@TOOL_OUTPUT@"~ -+ case $lt_outputfile in -+ *.exe|*.EXE) ;; -+ *) -+ lt_outputfile="$lt_outputfile.exe" -+ lt_tool_outputfile="$lt_tool_outputfile.exe" -+ ;; -+ esac~ -+ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then -+ $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; -+ $RM "$lt_outputfile.manifest"; -+ fi' -+ ;; -+ *) -+ # Assume MSVC wrapper -+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' -+ _LT_TAGVAR(allow_undefined_flag, $1)=unsupported -+ # Tell ltmain to make .lib files, not .a files. -+ libext=lib -+ # Tell ltmain to make .dll files, not .so files. -+ shrext_cmds=".dll" -+ # FIXME: Setting linknames here is a bad hack. -+ _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' -+ # The linker will automatically build a .lib file if we build a DLL. -+ _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' -+ # FIXME: Should let the user specify the lib program. -+ _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' -+ _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes -+ ;; -+ esac - ;; - - darwin* | rhapsody*) -@@ -4828,7 +5143,7 @@ - - # FreeBSD 3 and greater uses gcc -shared to do shared libraries. - freebsd* | dragonfly*) -- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' -+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no -@@ -4836,7 +5151,7 @@ - - hpux9*) - if test "$GCC" = yes; then -- _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' -+ _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - else - _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - fi -@@ -4852,7 +5167,7 @@ - - hpux10*) - if test "$GCC" = yes && test "$with_gnu_ld" = no; then -- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' -+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - else - _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' - fi -@@ -4876,10 +5191,10 @@ - _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - ia64*) -- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' -+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) -- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' -+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - ;; - esac - else -@@ -4926,16 +5241,31 @@ - - irix5* | irix6* | nonstopux*) - if test "$GCC" = yes; then -- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' -+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - # Try to use the -exported_symbol ld option, if it does not - # work, assume that -exports_file does not work either and - # implicitly export all symbols. -- save_LDFLAGS="$LDFLAGS" -- LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" -- AC_LINK_IFELSE(int foo(void) {}, -- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' -- ) -- LDFLAGS="$save_LDFLAGS" -+ # This should be the same for all languages, so no per-tag cache variable. -+ AC_CACHE_CHECK([whether the $host_os linker accepts -exported_symbol], -+ [lt_cv_irix_exported_symbol], -+ [save_LDFLAGS="$LDFLAGS" -+ LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" -+ AC_LINK_IFELSE( -+ [AC_LANG_SOURCE( -+ [AC_LANG_CASE([C], [[int foo (void) { return 0; }]], -+ [C++], [[int foo (void) { return 0; }]], -+ [Fortran 77], [[ -+ subroutine foo -+ end]], -+ [Fortran], [[ -+ subroutine foo -+ end]])])], -+ [lt_cv_irix_exported_symbol=yes], -+ [lt_cv_irix_exported_symbol=no]) -+ LDFLAGS="$save_LDFLAGS"]) -+ if test "$lt_cv_irix_exported_symbol" = yes; then -+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' -+ fi - else - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' -@@ -5020,7 +5350,7 @@ - osf4* | osf5*) # as osf3* with the addition of -msym flag - if test "$GCC" = yes; then - _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' -- _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' -+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - else - _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' -@@ -5039,9 +5369,9 @@ - _LT_TAGVAR(no_undefined_flag, $1)=' -z defs' - if test "$GCC" = yes; then - wlarc='${wl}' -- _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' -+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ -- $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' -+ $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' - else - case `$CC -V 2>&1` in - *"Compilers 5.0"*) -@@ -5313,8 +5643,6 @@ - to runtime path list]) - _LT_TAGDECL([], [link_all_deplibs], [0], - [Whether libtool must link a program against all its dependency libraries]) --_LT_TAGDECL([], [fix_srcfile_path], [1], -- [Fix the shell variable $srcfile for the compiler]) - _LT_TAGDECL([], [always_export_symbols], [0], - [Set to "yes" if exported symbols are required]) - _LT_TAGDECL([], [export_symbols_cmds], [2], -@@ -5325,6 +5653,8 @@ - [Symbols that must always be exported]) - _LT_TAGDECL([], [prelink_cmds], [2], - [Commands necessary for linking programs (against libraries) with templates]) -+_LT_TAGDECL([], [postlink_cmds], [2], -+ [Commands necessary for finishing linking programs]) - _LT_TAGDECL([], [file_list_spec], [1], - [Specify filename containing input files]) - dnl FIXME: Not yet implemented -@@ -5426,6 +5756,7 @@ - m4_defun([_LT_LANG_CXX_CONFIG], - [m4_require([_LT_FILEUTILS_DEFAULTS])dnl - m4_require([_LT_DECL_EGREP])dnl -+m4_require([_LT_PATH_MANIFEST_TOOL])dnl - if test -n "$CXX" && ( test "X$CXX" != "Xno" && - ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || - (test "X$CXX" != "Xg++"))) ; then -@@ -5487,6 +5818,7 @@ - - # Allow CC to be a program name with arguments. - lt_save_CC=$CC -+ lt_save_CFLAGS=$CFLAGS - lt_save_LD=$LD - lt_save_GCC=$GCC - GCC=$GXX -@@ -5504,6 +5836,7 @@ - fi - test -z "${LDCXX+set}" || LD=$LDCXX - CC=${CXX-"c++"} -+ CFLAGS=$CXXFLAGS - compiler=$CC - _LT_TAGVAR(compiler, $1)=$CC - _LT_CC_BASENAME([$compiler]) -@@ -5525,8 +5858,8 @@ - # Check if GNU C++ uses GNU ld as the underlying linker, since the - # archiving commands below assume that GNU ld is being used. - if test "$with_gnu_ld" = yes; then -- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' -- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' -+ _LT_TAGVAR(archive_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' -+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' -@@ -5667,7 +6000,7 @@ - _LT_TAGVAR(allow_undefined_flag, $1)='-berok' - # Determine the default libpath from the value encoded in an empty - # executable. -- _LT_SYS_MODULE_PATH_AIX -+ _LT_SYS_MODULE_PATH_AIX([$1]) - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" - - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" -@@ -5679,7 +6012,7 @@ - else - # Determine the default libpath from the value encoded in an - # empty executable. -- _LT_SYS_MODULE_PATH_AIX -+ _LT_SYS_MODULE_PATH_AIX([$1]) - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" - # Warning - without using the other run time loading flags, - # -berok will link without error, but may produce a broken library. -@@ -5721,29 +6054,75 @@ - ;; - - cygwin* | mingw* | pw32* | cegcc*) -- # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, -- # as there is no search path for DLLs. -- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' -- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols' -- _LT_TAGVAR(allow_undefined_flag, $1)=unsupported -- _LT_TAGVAR(always_export_symbols, $1)=no -- _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes -- -- if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then -- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' -- # If the export-symbols file already is a .def file (1st line -- # is EXPORTS), use it as is; otherwise, prepend... -- _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then -- cp $export_symbols $output_objdir/$soname.def; -- else -- echo EXPORTS > $output_objdir/$soname.def; -- cat $export_symbols >> $output_objdir/$soname.def; -- fi~ -- $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' -- else -- _LT_TAGVAR(ld_shlibs, $1)=no -- fi -- ;; -+ case $GXX,$cc_basename in -+ ,cl* | no,cl*) -+ # Native MSVC -+ # hardcode_libdir_flag_spec is actually meaningless, as there is -+ # no search path for DLLs. -+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' -+ _LT_TAGVAR(allow_undefined_flag, $1)=unsupported -+ _LT_TAGVAR(always_export_symbols, $1)=yes -+ _LT_TAGVAR(file_list_spec, $1)='@' -+ # Tell ltmain to make .lib files, not .a files. -+ libext=lib -+ # Tell ltmain to make .dll files, not .so files. -+ shrext_cmds=".dll" -+ # FIXME: Setting linknames here is a bad hack. -+ _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' -+ _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then -+ $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; -+ else -+ $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; -+ fi~ -+ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ -+ linknames=' -+ # The linker will not automatically build a static lib if we build a DLL. -+ # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' -+ _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes -+ # Don't use ranlib -+ _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' -+ _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ -+ lt_tool_outputfile="@TOOL_OUTPUT@"~ -+ case $lt_outputfile in -+ *.exe|*.EXE) ;; -+ *) -+ lt_outputfile="$lt_outputfile.exe" -+ lt_tool_outputfile="$lt_tool_outputfile.exe" -+ ;; -+ esac~ -+ func_to_tool_file "$lt_outputfile"~ -+ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then -+ $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; -+ $RM "$lt_outputfile.manifest"; -+ fi' -+ ;; -+ *) -+ # g++ -+ # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, -+ # as there is no search path for DLLs. -+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' -+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols' -+ _LT_TAGVAR(allow_undefined_flag, $1)=unsupported -+ _LT_TAGVAR(always_export_symbols, $1)=no -+ _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes -+ -+ if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then -+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' -+ # If the export-symbols file already is a .def file (1st line -+ # is EXPORTS), use it as is; otherwise, prepend... -+ _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then -+ cp $export_symbols $output_objdir/$soname.def; -+ else -+ echo EXPORTS > $output_objdir/$soname.def; -+ cat $export_symbols >> $output_objdir/$soname.def; -+ fi~ -+ $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' -+ else -+ _LT_TAGVAR(ld_shlibs, $1)=no -+ fi -+ ;; -+ esac -+ ;; - darwin* | rhapsody*) - _LT_DARWIN_LINKER_FEATURES($1) - ;; -@@ -5818,7 +6197,7 @@ - ;; - *) - if test "$GXX" = yes; then -- _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' -+ _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - else - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no -@@ -5889,10 +6268,10 @@ - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - ia64*) -- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' -+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - *) -- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' -+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - esac - fi -@@ -5933,9 +6312,9 @@ - *) - if test "$GXX" = yes; then - if test "$with_gnu_ld" = no; then -- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' -+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - else -- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib' -+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib' - fi - fi - _LT_TAGVAR(link_all_deplibs, $1)=yes -@@ -6005,20 +6384,20 @@ - _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~ - rm -rf $tpldir~ - $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ -- compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"' -+ compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' - _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~ - rm -rf $tpldir~ - $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ -- $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~ -+ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ - $RANLIB $oldlib' - _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~ - rm -rf $tpldir~ - $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ -- $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' -+ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~ - rm -rf $tpldir~ - $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ -- $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' -+ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' - ;; - *) # Version 6 and above use weak symbols - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' -@@ -6213,7 +6592,7 @@ - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - ;; - *) -- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' -+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - ;; - esac - -@@ -6259,7 +6638,7 @@ - - solaris*) - case $cc_basename in -- CC*) -+ CC* | sunCC*) - # Sun C++ 4.2, 5.x and Centerline C++ - _LT_TAGVAR(archive_cmds_need_lc,$1)=yes - _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' -@@ -6300,9 +6679,9 @@ - if test "$GXX" = yes && test "$with_gnu_ld" = no; then - _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs' - if $CC --version | $GREP -v '^2\.7' > /dev/null; then -- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' -+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ -- $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' -+ $CC -shared $pic_flag -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when -@@ -6431,6 +6810,7 @@ - fi # test -n "$compiler" - - CC=$lt_save_CC -+ CFLAGS=$lt_save_CFLAGS - LDCXX=$LD - LD=$lt_save_LD - GCC=$lt_save_GCC -@@ -6445,6 +6825,29 @@ - ])# _LT_LANG_CXX_CONFIG - - -+# _LT_FUNC_STRIPNAME_CNF -+# ---------------------- -+# func_stripname_cnf prefix suffix name -+# strip PREFIX and SUFFIX off of NAME. -+# PREFIX and SUFFIX must not contain globbing or regex special -+# characters, hashes, percent signs, but SUFFIX may contain a leading -+# dot (in which case that matches only a dot). -+# -+# This function is identical to the (non-XSI) version of func_stripname, -+# except this one can be used by m4 code that may be executed by configure, -+# rather than the libtool script. -+m4_defun([_LT_FUNC_STRIPNAME_CNF],[dnl -+AC_REQUIRE([_LT_DECL_SED]) -+AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH]) -+func_stripname_cnf () -+{ -+ case ${2} in -+ .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; -+ *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; -+ esac -+} # func_stripname_cnf -+])# _LT_FUNC_STRIPNAME_CNF -+ - # _LT_SYS_HIDDEN_LIBDEPS([TAGNAME]) - # --------------------------------- - # Figure out "hidden" library dependencies from verbose -@@ -6453,6 +6856,7 @@ - # objects, libraries and library flags. - m4_defun([_LT_SYS_HIDDEN_LIBDEPS], - [m4_require([_LT_FILEUTILS_DEFAULTS])dnl -+AC_REQUIRE([_LT_FUNC_STRIPNAME_CNF])dnl - # Dependencies to place before and after the object being linked: - _LT_TAGVAR(predep_objects, $1)= - _LT_TAGVAR(postdep_objects, $1)= -@@ -6503,6 +6907,13 @@ - }; - _LT_EOF - ]) -+ -+_lt_libdeps_save_CFLAGS=$CFLAGS -+case "$CC $CFLAGS " in #( -+*\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;; -+*\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;; -+esac -+ - dnl Parse the compiler output and extract the necessary - dnl objects, libraries and library flags. - if AC_TRY_EVAL(ac_compile); then -@@ -6514,7 +6925,7 @@ - pre_test_object_deps_done=no - - for p in `eval "$output_verbose_link_cmd"`; do -- case $p in -+ case ${prev}${p} in - - -L* | -R* | -l*) - # Some compilers place space between "-{L,R}" and the path. -@@ -6523,13 +6934,22 @@ - test $p = "-R"; then - prev=$p - continue -- else -- prev= - fi - -+ # Expand the sysroot to ease extracting the directories later. -+ if test -z "$prev"; then -+ case $p in -+ -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;; -+ -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;; -+ -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;; -+ esac -+ fi -+ case $p in -+ =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;; -+ esac - if test "$pre_test_object_deps_done" = no; then -- case $p in -- -L* | -R*) -+ case ${prev} in -+ -L | -R) - # Internal compiler library paths should come after those - # provided the user. The postdeps already come after the - # user supplied libs so there is no need to process them. -@@ -6549,8 +6969,10 @@ - _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}" - fi - fi -+ prev= - ;; - -+ *.lto.$objext) ;; # Ignore GCC LTO objects - *.$objext) - # This assumes that the test object file only shows up - # once in the compiler output. -@@ -6586,6 +7008,7 @@ - fi - - $RM -f confest.$objext -+CFLAGS=$_lt_libdeps_save_CFLAGS - - # PORTME: override above test on systems where it is broken - m4_if([$1], [CXX], -@@ -6622,7 +7045,7 @@ - - solaris*) - case $cc_basename in -- CC*) -+ CC* | sunCC*) - # The more standards-conforming stlport4 library is - # incompatible with the Cstd library. Avoid specifying - # it if it's in CXXFLAGS. Ignore libCrun as -@@ -6735,7 +7158,9 @@ - # Allow CC to be a program name with arguments. - lt_save_CC="$CC" - lt_save_GCC=$GCC -+ lt_save_CFLAGS=$CFLAGS - CC=${F77-"f77"} -+ CFLAGS=$FFLAGS - compiler=$CC - _LT_TAGVAR(compiler, $1)=$CC - _LT_CC_BASENAME([$compiler]) -@@ -6789,6 +7214,7 @@ - - GCC=$lt_save_GCC - CC="$lt_save_CC" -+ CFLAGS="$lt_save_CFLAGS" - fi # test "$_lt_disable_F77" != yes - - AC_LANG_POP -@@ -6865,7 +7291,9 @@ - # Allow CC to be a program name with arguments. - lt_save_CC="$CC" - lt_save_GCC=$GCC -+ lt_save_CFLAGS=$CFLAGS - CC=${FC-"f95"} -+ CFLAGS=$FCFLAGS - compiler=$CC - GCC=$ac_cv_fc_compiler_gnu - -@@ -6921,7 +7349,8 @@ - fi # test -n "$compiler" - - GCC=$lt_save_GCC -- CC="$lt_save_CC" -+ CC=$lt_save_CC -+ CFLAGS=$lt_save_CFLAGS - fi # test "$_lt_disable_FC" != yes - - AC_LANG_POP -@@ -6958,10 +7387,12 @@ - _LT_LINKER_BOILERPLATE - - # Allow CC to be a program name with arguments. --lt_save_CC="$CC" -+lt_save_CC=$CC -+lt_save_CFLAGS=$CFLAGS - lt_save_GCC=$GCC - GCC=yes - CC=${GCJ-"gcj"} -+CFLAGS=$GCJFLAGS - compiler=$CC - _LT_TAGVAR(compiler, $1)=$CC - _LT_TAGVAR(LD, $1)="$LD" -@@ -6992,7 +7423,8 @@ - AC_LANG_RESTORE - - GCC=$lt_save_GCC --CC="$lt_save_CC" -+CC=$lt_save_CC -+CFLAGS=$lt_save_CFLAGS - ])# _LT_LANG_GCJ_CONFIG - - -@@ -7027,9 +7459,11 @@ - - # Allow CC to be a program name with arguments. - lt_save_CC="$CC" -+lt_save_CFLAGS=$CFLAGS - lt_save_GCC=$GCC - GCC= - CC=${RC-"windres"} -+CFLAGS= - compiler=$CC - _LT_TAGVAR(compiler, $1)=$CC - _LT_CC_BASENAME([$compiler]) -@@ -7042,7 +7476,8 @@ - - GCC=$lt_save_GCC - AC_LANG_RESTORE --CC="$lt_save_CC" -+CC=$lt_save_CC -+CFLAGS=$lt_save_CFLAGS - ])# _LT_LANG_RC_CONFIG - - -@@ -7101,6 +7536,15 @@ - AC_SUBST([OBJDUMP]) - ]) - -+# _LT_DECL_DLLTOOL -+# ---------------- -+# Ensure DLLTOOL variable is set. -+m4_defun([_LT_DECL_DLLTOOL], -+[AC_CHECK_TOOL(DLLTOOL, dlltool, false) -+test -z "$DLLTOOL" && DLLTOOL=dlltool -+_LT_DECL([], [DLLTOOL], [1], [DLL creation program]) -+AC_SUBST([DLLTOOL]) -+]) - - # _LT_DECL_SED - # ------------ -@@ -7194,8 +7638,8 @@ - # Try some XSI features - xsi_shell=no - ( _lt_dummy="a/b/c" -- test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \ -- = c,a/b,, \ -+ test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ -+ = c,a/b,b/c, \ - && eval 'test $(( 1 + 1 )) -eq 2 \ - && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ - && xsi_shell=yes -@@ -7234,206 +7678,162 @@ - ])# _LT_CHECK_SHELL_FEATURES - - --# _LT_PROG_XSI_SHELLFNS --# --------------------- --# Bourne and XSI compatible variants of some useful shell functions. --m4_defun([_LT_PROG_XSI_SHELLFNS], --[case $xsi_shell in -- yes) -- cat << \_LT_EOF >> "$cfgfile" -- --# func_dirname file append nondir_replacement --# Compute the dirname of FILE. If nonempty, add APPEND to the result, --# otherwise set result to NONDIR_REPLACEMENT. --func_dirname () --{ -- case ${1} in -- */*) func_dirname_result="${1%/*}${2}" ;; -- * ) func_dirname_result="${3}" ;; -- esac --} -- --# func_basename file --func_basename () --{ -- func_basename_result="${1##*/}" --} -- --# func_dirname_and_basename file append nondir_replacement --# perform func_basename and func_dirname in a single function --# call: --# dirname: Compute the dirname of FILE. If nonempty, --# add APPEND to the result, otherwise set result --# to NONDIR_REPLACEMENT. --# value returned in "$func_dirname_result" --# basename: Compute filename of FILE. --# value retuned in "$func_basename_result" --# Implementation must be kept synchronized with func_dirname --# and func_basename. For efficiency, we do not delegate to --# those functions but instead duplicate the functionality here. --func_dirname_and_basename () --{ -- case ${1} in -- */*) func_dirname_result="${1%/*}${2}" ;; -- * ) func_dirname_result="${3}" ;; -- esac -- func_basename_result="${1##*/}" --} -- --# func_stripname prefix suffix name --# strip PREFIX and SUFFIX off of NAME. --# PREFIX and SUFFIX must not contain globbing or regex special --# characters, hashes, percent signs, but SUFFIX may contain a leading --# dot (in which case that matches only a dot). --func_stripname () --{ -- # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are -- # positional parameters, so assign one to ordinary parameter first. -- func_stripname_result=${3} -- func_stripname_result=${func_stripname_result#"${1}"} -- func_stripname_result=${func_stripname_result%"${2}"} --} -- --# func_opt_split --func_opt_split () --{ -- func_opt_split_opt=${1%%=*} -- func_opt_split_arg=${1#*=} --} -- --# func_lo2o object --func_lo2o () --{ -- case ${1} in -- *.lo) func_lo2o_result=${1%.lo}.${objext} ;; -- *) func_lo2o_result=${1} ;; -- esac --} -- --# func_xform libobj-or-source --func_xform () --{ -- func_xform_result=${1%.*}.lo --} -- --# func_arith arithmetic-term... --func_arith () --{ -- func_arith_result=$(( $[*] )) --} -- --# func_len string --# STRING may not start with a hyphen. --func_len () --{ -- func_len_result=${#1} --} -- --_LT_EOF -- ;; -- *) # Bourne compatible functions. -- cat << \_LT_EOF >> "$cfgfile" -- --# func_dirname file append nondir_replacement --# Compute the dirname of FILE. If nonempty, add APPEND to the result, --# otherwise set result to NONDIR_REPLACEMENT. --func_dirname () --{ -- # Extract subdirectory from the argument. -- func_dirname_result=`$ECHO "${1}" | $SED "$dirname"` -- if test "X$func_dirname_result" = "X${1}"; then -- func_dirname_result="${3}" -- else -- func_dirname_result="$func_dirname_result${2}" -- fi --} -- --# func_basename file --func_basename () --{ -- func_basename_result=`$ECHO "${1}" | $SED "$basename"` --} -+# _LT_PROG_FUNCTION_REPLACE (FUNCNAME, REPLACEMENT-BODY) -+# ------------------------------------------------------ -+# In `$cfgfile', look for function FUNCNAME delimited by `^FUNCNAME ()$' and -+# '^} FUNCNAME ', and replace its body with REPLACEMENT-BODY. -+m4_defun([_LT_PROG_FUNCTION_REPLACE], -+[dnl { -+sed -e '/^$1 ()$/,/^} # $1 /c\ -+$1 ()\ -+{\ -+m4_bpatsubsts([$2], [$], [\\], [^\([ ]\)], [\\\1]) -+} # Extended-shell $1 implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+]) - --dnl func_dirname_and_basename --dnl A portable version of this function is already defined in general.m4sh --dnl so there is no need for it here. - --# func_stripname prefix suffix name --# strip PREFIX and SUFFIX off of NAME. --# PREFIX and SUFFIX must not contain globbing or regex special --# characters, hashes, percent signs, but SUFFIX may contain a leading --# dot (in which case that matches only a dot). --# func_strip_suffix prefix name --func_stripname () --{ -- case ${2} in -- .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; -- *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; -- esac --} -+# _LT_PROG_REPLACE_SHELLFNS -+# ------------------------- -+# Replace existing portable implementations of several shell functions with -+# equivalent extended shell implementations where those features are available.. -+m4_defun([_LT_PROG_REPLACE_SHELLFNS], -+[if test x"$xsi_shell" = xyes; then -+ _LT_PROG_FUNCTION_REPLACE([func_dirname], [dnl -+ case ${1} in -+ */*) func_dirname_result="${1%/*}${2}" ;; -+ * ) func_dirname_result="${3}" ;; -+ esac]) -+ -+ _LT_PROG_FUNCTION_REPLACE([func_basename], [dnl -+ func_basename_result="${1##*/}"]) -+ -+ _LT_PROG_FUNCTION_REPLACE([func_dirname_and_basename], [dnl -+ case ${1} in -+ */*) func_dirname_result="${1%/*}${2}" ;; -+ * ) func_dirname_result="${3}" ;; -+ esac -+ func_basename_result="${1##*/}"]) - --# sed scripts: --my_sed_long_opt='1s/^\(-[[^=]]*\)=.*/\1/;q' --my_sed_long_arg='1s/^-[[^=]]*=//' -+ _LT_PROG_FUNCTION_REPLACE([func_stripname], [dnl -+ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are -+ # positional parameters, so assign one to ordinary parameter first. -+ func_stripname_result=${3} -+ func_stripname_result=${func_stripname_result#"${1}"} -+ func_stripname_result=${func_stripname_result%"${2}"}]) -+ -+ _LT_PROG_FUNCTION_REPLACE([func_split_long_opt], [dnl -+ func_split_long_opt_name=${1%%=*} -+ func_split_long_opt_arg=${1#*=}]) -+ -+ _LT_PROG_FUNCTION_REPLACE([func_split_short_opt], [dnl -+ func_split_short_opt_arg=${1#??} -+ func_split_short_opt_name=${1%"$func_split_short_opt_arg"}]) -+ -+ _LT_PROG_FUNCTION_REPLACE([func_lo2o], [dnl -+ case ${1} in -+ *.lo) func_lo2o_result=${1%.lo}.${objext} ;; -+ *) func_lo2o_result=${1} ;; -+ esac]) - --# func_opt_split --func_opt_split () --{ -- func_opt_split_opt=`$ECHO "${1}" | $SED "$my_sed_long_opt"` -- func_opt_split_arg=`$ECHO "${1}" | $SED "$my_sed_long_arg"` --} -+ _LT_PROG_FUNCTION_REPLACE([func_xform], [ func_xform_result=${1%.*}.lo]) - --# func_lo2o object --func_lo2o () --{ -- func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"` --} -+ _LT_PROG_FUNCTION_REPLACE([func_arith], [ func_arith_result=$(( $[*] ))]) - --# func_xform libobj-or-source --func_xform () --{ -- func_xform_result=`$ECHO "${1}" | $SED 's/\.[[^.]]*$/.lo/'` --} -+ _LT_PROG_FUNCTION_REPLACE([func_len], [ func_len_result=${#1}]) -+fi - --# func_arith arithmetic-term... --func_arith () --{ -- func_arith_result=`expr "$[@]"` --} -+if test x"$lt_shell_append" = xyes; then -+ _LT_PROG_FUNCTION_REPLACE([func_append], [ eval "${1}+=\\${2}"]) - --# func_len string --# STRING may not start with a hyphen. --func_len () --{ -- func_len_result=`expr "$[1]" : ".*" 2>/dev/null || echo $max_cmd_len` --} -+ _LT_PROG_FUNCTION_REPLACE([func_append_quoted], [dnl -+ func_quote_for_eval "${2}" -+dnl m4 expansion turns \\\\ into \\, and then the shell eval turns that into \ -+ eval "${1}+=\\\\ \\$func_quote_for_eval_result"]) -+ -+ # Save a `func_append' function call where possible by direct use of '+=' -+ sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+ test 0 -eq $? || _lt_function_replace_fail=: -+else -+ # Save a `func_append' function call even when '+=' is not available -+ sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+ test 0 -eq $? || _lt_function_replace_fail=: -+fi - --_LT_EOF --esac -+if test x"$_lt_function_replace_fail" = x":"; then -+ AC_MSG_WARN([Unable to substitute extended shell functions in $ofile]) -+fi -+]) - --case $lt_shell_append in -- yes) -- cat << \_LT_EOF >> "$cfgfile" -- --# func_append var value --# Append VALUE to the end of shell variable VAR. --func_append () --{ -- eval "$[1]+=\$[2]" --} --_LT_EOF -+# _LT_PATH_CONVERSION_FUNCTIONS -+# ----------------------------- -+# Determine which file name conversion functions should be used by -+# func_to_host_file (and, implicitly, by func_to_host_path). These are needed -+# for certain cross-compile configurations and native mingw. -+m4_defun([_LT_PATH_CONVERSION_FUNCTIONS], -+[AC_REQUIRE([AC_CANONICAL_HOST])dnl -+AC_REQUIRE([AC_CANONICAL_BUILD])dnl -+AC_MSG_CHECKING([how to convert $build file names to $host format]) -+AC_CACHE_VAL(lt_cv_to_host_file_cmd, -+[case $host in -+ *-*-mingw* ) -+ case $build in -+ *-*-mingw* ) # actually msys -+ lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 -+ ;; -+ *-*-cygwin* ) -+ lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 -+ ;; -+ * ) # otherwise, assume *nix -+ lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 -+ ;; -+ esac - ;; -- *) -- cat << \_LT_EOF >> "$cfgfile" -- --# func_append var value --# Append VALUE to the end of shell variable VAR. --func_append () --{ -- eval "$[1]=\$$[1]\$[2]" --} -- --_LT_EOF -+ *-*-cygwin* ) -+ case $build in -+ *-*-mingw* ) # actually msys -+ lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin -+ ;; -+ *-*-cygwin* ) -+ lt_cv_to_host_file_cmd=func_convert_file_noop -+ ;; -+ * ) # otherwise, assume *nix -+ lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin -+ ;; -+ esac - ;; -- esac -+ * ) # unhandled hosts (and "normal" native builds) -+ lt_cv_to_host_file_cmd=func_convert_file_noop -+ ;; -+esac -+]) -+to_host_file_cmd=$lt_cv_to_host_file_cmd -+AC_MSG_RESULT([$lt_cv_to_host_file_cmd]) -+_LT_DECL([to_host_file_cmd], [lt_cv_to_host_file_cmd], -+ [0], [convert $build file names to $host format])dnl -+ -+AC_MSG_CHECKING([how to convert $build file names to toolchain format]) -+AC_CACHE_VAL(lt_cv_to_tool_file_cmd, -+[#assume ordinary cross tools, or native build. -+lt_cv_to_tool_file_cmd=func_convert_file_noop -+case $host in -+ *-*-mingw* ) -+ case $build in -+ *-*-mingw* ) # actually msys -+ lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 -+ ;; -+ esac -+ ;; -+esac - ]) -+to_tool_file_cmd=$lt_cv_to_tool_file_cmd -+AC_MSG_RESULT([$lt_cv_to_tool_file_cmd]) -+_LT_DECL([to_tool_file_cmd], [lt_cv_to_tool_file_cmd], -+ [0], [convert $build files to toolchain format])dnl -+])# _LT_PATH_CONVERSION_FUNCTIONS -Index: binutils-2.24/ltmain.sh -=================================================================== ---- binutils-2.24.orig/ltmain.sh 2013-11-04 07:33:40.000000000 -0800 -+++ binutils-2.24/ltmain.sh 2013-12-15 11:10:23.867118697 -0800 -@@ -1,10 +1,9 @@ --# Generated from ltmain.m4sh. - --# libtool (GNU libtool 1.3134 2009-11-29) 2.2.7a -+# libtool (GNU libtool) 2.4 - # Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996 - - # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, --# 2007, 2008, 2009 Free Software Foundation, Inc. -+# 2007, 2008, 2009, 2010 Free Software Foundation, Inc. - # This is free software; see the source for copying conditions. There is NO - # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - -@@ -38,7 +37,6 @@ - # -n, --dry-run display commands without modifying any files - # --features display basic configuration information and exit - # --mode=MODE use operation mode MODE --# --no-finish let install mode avoid finish commands - # --preserve-dup-deps don't remove duplicate dependency libraries - # --quiet, --silent don't print informational messages - # --no-quiet, --no-silent -@@ -71,17 +69,19 @@ - # compiler: $LTCC - # compiler flags: $LTCFLAGS - # linker: $LD (gnu? $with_gnu_ld) --# $progname: (GNU libtool 1.3134 2009-11-29) 2.2.7a -+# $progname: (GNU libtool) 2.4 - # automake: $automake_version - # autoconf: $autoconf_version - # - # Report bugs to <bug-libtool@gnu.org>. -+# GNU libtool home page: <http://www.gnu.org/software/libtool/>. -+# General help using GNU software: <http://www.gnu.org/gethelp/>. - - PROGRAM=libtool - PACKAGE=libtool --VERSION=2.2.7a --TIMESTAMP=" 1.3134 2009-11-29" --package_revision=1.3134 -+VERSION=2.4 -+TIMESTAMP="" -+package_revision=1.3293 - - # Be Bourne compatible - if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then -@@ -106,9 +106,6 @@ - } - - # NLS nuisances: We save the old values to restore during execute mode. --# Only set LANG and LC_ALL to C if already set. --# These must not be set unconditionally because not all systems understand --# e.g. LANG=C (notably SCO). - lt_user_locale= - lt_safe_locale= - for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES -@@ -121,15 +118,13 @@ - lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\" - fi" - done -+LC_ALL=C -+LANGUAGE=C -+export LANGUAGE LC_ALL - - $lt_unset CDPATH - - -- -- -- -- -- - # Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh - # is ksh but when the shell is invoked as "sh" and the current value of - # the _XPG environment variable is not equal to 1 (one), the special -@@ -140,7 +135,7 @@ - - - : ${CP="cp -f"} --: ${ECHO=$as_echo} -+test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'} - : ${EGREP="/bin/grep -E"} - : ${FGREP="/bin/grep -F"} - : ${GREP="/bin/grep"} -@@ -149,7 +144,7 @@ - : ${MKDIR="mkdir"} - : ${MV="mv -f"} - : ${RM="rm -f"} --: ${SED="/mount/endor/wildenhu/local-x86_64/bin/sed"} -+: ${SED="/bin/sed"} - : ${SHELL="${CONFIG_SHELL-/bin/sh}"} - : ${Xsed="$SED -e 1s/^X//"} - -@@ -169,6 +164,27 @@ - dirname="s,/[^/]*$,," - basename="s,^.*/,," - -+# func_dirname file append nondir_replacement -+# Compute the dirname of FILE. If nonempty, add APPEND to the result, -+# otherwise set result to NONDIR_REPLACEMENT. -+func_dirname () -+{ -+ func_dirname_result=`$ECHO "${1}" | $SED "$dirname"` -+ if test "X$func_dirname_result" = "X${1}"; then -+ func_dirname_result="${3}" -+ else -+ func_dirname_result="$func_dirname_result${2}" -+ fi -+} # func_dirname may be replaced by extended shell implementation -+ -+ -+# func_basename file -+func_basename () -+{ -+ func_basename_result=`$ECHO "${1}" | $SED "$basename"` -+} # func_basename may be replaced by extended shell implementation -+ -+ - # func_dirname_and_basename file append nondir_replacement - # perform func_basename and func_dirname in a single function - # call: -@@ -183,17 +199,31 @@ - # those functions but instead duplicate the functionality here. - func_dirname_and_basename () - { -- # Extract subdirectory from the argument. -- func_dirname_result=`$ECHO "${1}" | $SED -e "$dirname"` -- if test "X$func_dirname_result" = "X${1}"; then -- func_dirname_result="${3}" -- else -- func_dirname_result="$func_dirname_result${2}" -- fi -- func_basename_result=`$ECHO "${1}" | $SED -e "$basename"` --} -+ # Extract subdirectory from the argument. -+ func_dirname_result=`$ECHO "${1}" | $SED -e "$dirname"` -+ if test "X$func_dirname_result" = "X${1}"; then -+ func_dirname_result="${3}" -+ else -+ func_dirname_result="$func_dirname_result${2}" -+ fi -+ func_basename_result=`$ECHO "${1}" | $SED -e "$basename"` -+} # func_dirname_and_basename may be replaced by extended shell implementation -+ -+ -+# func_stripname prefix suffix name -+# strip PREFIX and SUFFIX off of NAME. -+# PREFIX and SUFFIX must not contain globbing or regex special -+# characters, hashes, percent signs, but SUFFIX may contain a leading -+# dot (in which case that matches only a dot). -+# func_strip_suffix prefix name -+func_stripname () -+{ -+ case ${2} in -+ .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; -+ *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; -+ esac -+} # func_stripname may be replaced by extended shell implementation - --# Generated shell functions inserted here. - - # These SED scripts presuppose an absolute path with a trailing slash. - pathcar='s,^/\([^/]*\).*$,\1,' -@@ -376,6 +406,15 @@ - # Same as above, but do not quote variable references. - double_quote_subst='s/\(["`\\]\)/\\\1/g' - -+# Sed substitution that turns a string into a regex matching for the -+# string literally. -+sed_make_literal_regex='s,[].[^$\\*\/],\\&,g' -+ -+# Sed substitution that converts a w32 file name or path -+# which contains forward slashes, into one that contains -+# (escaped) backslashes. A very naive implementation. -+lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' -+ - # Re-`\' parameter expansions in output of double_quote_subst that were - # `\'-ed in input to the same. If an odd number of `\' preceded a '$' - # in input to double_quote_subst, that '$' was protected from expansion. -@@ -404,7 +443,7 @@ - # name if it has been set yet. - func_echo () - { -- $ECHO "$progname${mode+: }$mode: $*" -+ $ECHO "$progname: ${opt_mode+$opt_mode: }$*" - } - - # func_verbose arg... -@@ -430,14 +469,14 @@ - # Echo program name prefixed message to standard error. - func_error () - { -- $ECHO "$progname${mode+: }$mode: "${1+"$@"} 1>&2 -+ $ECHO "$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2 - } - - # func_warning arg... - # Echo program name prefixed warning message to standard error. - func_warning () - { -- $opt_warning && $ECHO "$progname${mode+: }$mode: warning: "${1+"$@"} 1>&2 -+ $opt_warning && $ECHO "$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2 - - # bash bug again: - : -@@ -656,19 +695,35 @@ - fi - } - -- -- -+# func_tr_sh -+# Turn $1 into a string suitable for a shell variable name. -+# Result is stored in $func_tr_sh_result. All characters -+# not in the set a-zA-Z0-9_ are replaced with '_'. Further, -+# if $1 begins with a digit, a '_' is prepended as well. -+func_tr_sh () -+{ -+ case $1 in -+ [0-9]* | *[!a-zA-Z0-9_]*) -+ func_tr_sh_result=`$ECHO "$1" | $SED 's/^\([0-9]\)/_\1/; s/[^a-zA-Z0-9_]/_/g'` -+ ;; -+ * ) -+ func_tr_sh_result=$1 -+ ;; -+ esac -+} - - - # func_version - # Echo version message to standard output and exit. - func_version () - { -+ $opt_debug -+ - $SED -n '/(C)/!b go - :more - /\./!{ - N -- s/\n# // -+ s/\n# / / - b more - } - :go -@@ -685,7 +740,9 @@ - # Echo short help message to standard output and exit. - func_usage () - { -- $SED -n '/^# Usage:/,/^# *-h/ { -+ $opt_debug -+ -+ $SED -n '/^# Usage:/,/^# *.*--help/ { - s/^# // - s/^# *$// - s/\$progname/'$progname'/ -@@ -701,7 +758,10 @@ - # unless 'noexit' is passed as argument. - func_help () - { -+ $opt_debug -+ - $SED -n '/^# Usage:/,/# Report bugs to/ { -+ :print - s/^# // - s/^# *$// - s*\$progname*'$progname'* -@@ -714,7 +774,11 @@ - s/\$automake_version/'"`(automake --version) 2>/dev/null |$SED 1q`"'/ - s/\$autoconf_version/'"`(autoconf --version) 2>/dev/null |$SED 1q`"'/ - p -- }' < "$progpath" -+ d -+ } -+ /^# .* home page:/b print -+ /^# General help using/b print -+ ' < "$progpath" - ret=$? - if test -z "$1"; then - exit $ret -@@ -726,12 +790,39 @@ - # exit_cmd. - func_missing_arg () - { -- func_error "missing argument for $1" -+ $opt_debug -+ -+ func_error "missing argument for $1." - exit_cmd=exit - } - --exit_cmd=: - -+# func_split_short_opt shortopt -+# Set func_split_short_opt_name and func_split_short_opt_arg shell -+# variables after splitting SHORTOPT after the 2nd character. -+func_split_short_opt () -+{ -+ my_sed_short_opt='1s/^\(..\).*$/\1/;q' -+ my_sed_short_rest='1s/^..\(.*\)$/\1/;q' -+ -+ func_split_short_opt_name=`$ECHO "$1" | $SED "$my_sed_short_opt"` -+ func_split_short_opt_arg=`$ECHO "$1" | $SED "$my_sed_short_rest"` -+} # func_split_short_opt may be replaced by extended shell implementation -+ -+ -+# func_split_long_opt longopt -+# Set func_split_long_opt_name and func_split_long_opt_arg shell -+# variables after splitting LONGOPT at the `=' sign. -+func_split_long_opt () -+{ -+ my_sed_long_opt='1s/^\(--[^=]*\)=.*/\1/;q' -+ my_sed_long_arg='1s/^--[^=]*=//' -+ -+ func_split_long_opt_name=`$ECHO "$1" | $SED "$my_sed_long_opt"` -+ func_split_long_opt_arg=`$ECHO "$1" | $SED "$my_sed_long_arg"` -+} # func_split_long_opt may be replaced by extended shell implementation -+ -+exit_cmd=: - - - -@@ -741,26 +832,64 @@ - magic_exe="%%%MAGIC EXE variable%%%" - - # Global variables. --# $mode is unset - nonopt= --execute_dlfiles= - preserve_args= - lo2o="s/\\.lo\$/.${objext}/" - o2lo="s/\\.${objext}\$/.lo/" - extracted_archives= - extracted_serial=0 - --opt_dry_run=false --opt_finish=: --opt_duplicate_deps=false --opt_silent=false --opt_debug=: -- - # If this variable is set in any of the actions, the command in it - # will be execed at the end. This prevents here-documents from being - # left over by shells. - exec_cmd= - -+# func_append var value -+# Append VALUE to the end of shell variable VAR. -+func_append () -+{ -+ eval "${1}=\$${1}\${2}" -+} # func_append may be replaced by extended shell implementation -+ -+# func_append_quoted var value -+# Quote VALUE and append to the end of shell variable VAR, separated -+# by a space. -+func_append_quoted () -+{ -+ func_quote_for_eval "${2}" -+ eval "${1}=\$${1}\\ \$func_quote_for_eval_result" -+} # func_append_quoted may be replaced by extended shell implementation -+ -+ -+# func_arith arithmetic-term... -+func_arith () -+{ -+ func_arith_result=`expr "${@}"` -+} # func_arith may be replaced by extended shell implementation -+ -+ -+# func_len string -+# STRING may not start with a hyphen. -+func_len () -+{ -+ func_len_result=`expr "${1}" : ".*" 2>/dev/null || echo $max_cmd_len` -+} # func_len may be replaced by extended shell implementation -+ -+ -+# func_lo2o object -+func_lo2o () -+{ -+ func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"` -+} # func_lo2o may be replaced by extended shell implementation -+ -+ -+# func_xform libobj-or-source -+func_xform () -+{ -+ func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'` -+} # func_xform may be replaced by extended shell implementation -+ -+ - # func_fatal_configuration arg... - # Echo program name prefixed message to standard error, followed by - # a configuration failure hint, and exit. -@@ -850,130 +979,204 @@ - esac - } - --# Parse options once, thoroughly. This comes as soon as possible in --# the script to make things like `libtool --version' happen quickly. -+# func_check_version_match -+# Ensure that we are using m4 macros, and libtool script from the same -+# release of libtool. -+func_check_version_match () - { -+ if test "$package_revision" != "$macro_revision"; then -+ if test "$VERSION" != "$macro_version"; then -+ if test -z "$macro_version"; then -+ cat >&2 <<_LT_EOF -+$progname: Version mismatch error. This is $PACKAGE $VERSION, but the -+$progname: definition of this LT_INIT comes from an older release. -+$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION -+$progname: and run autoconf again. -+_LT_EOF -+ else -+ cat >&2 <<_LT_EOF -+$progname: Version mismatch error. This is $PACKAGE $VERSION, but the -+$progname: definition of this LT_INIT comes from $PACKAGE $macro_version. -+$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION -+$progname: and run autoconf again. -+_LT_EOF -+ fi -+ else -+ cat >&2 <<_LT_EOF -+$progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, -+$progname: but the definition of this LT_INIT comes from revision $macro_revision. -+$progname: You should recreate aclocal.m4 with macros from revision $package_revision -+$progname: of $PACKAGE $VERSION and run autoconf again. -+_LT_EOF -+ fi -+ -+ exit $EXIT_MISMATCH -+ fi -+} -+ -+ -+# Shorthand for --mode=foo, only valid as the first argument -+case $1 in -+clean|clea|cle|cl) -+ shift; set dummy --mode clean ${1+"$@"}; shift -+ ;; -+compile|compil|compi|comp|com|co|c) -+ shift; set dummy --mode compile ${1+"$@"}; shift -+ ;; -+execute|execut|execu|exec|exe|ex|e) -+ shift; set dummy --mode execute ${1+"$@"}; shift -+ ;; -+finish|finis|fini|fin|fi|f) -+ shift; set dummy --mode finish ${1+"$@"}; shift -+ ;; -+install|instal|insta|inst|ins|in|i) -+ shift; set dummy --mode install ${1+"$@"}; shift -+ ;; -+link|lin|li|l) -+ shift; set dummy --mode link ${1+"$@"}; shift -+ ;; -+uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) -+ shift; set dummy --mode uninstall ${1+"$@"}; shift -+ ;; -+esac - -- # Shorthand for --mode=foo, only valid as the first argument -- case $1 in -- clean|clea|cle|cl) -- shift; set dummy --mode clean ${1+"$@"}; shift -- ;; -- compile|compil|compi|comp|com|co|c) -- shift; set dummy --mode compile ${1+"$@"}; shift -- ;; -- execute|execut|execu|exec|exe|ex|e) -- shift; set dummy --mode execute ${1+"$@"}; shift -- ;; -- finish|finis|fini|fin|fi|f) -- shift; set dummy --mode finish ${1+"$@"}; shift -- ;; -- install|instal|insta|inst|ins|in|i) -- shift; set dummy --mode install ${1+"$@"}; shift -- ;; -- link|lin|li|l) -- shift; set dummy --mode link ${1+"$@"}; shift -- ;; -- uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) -- shift; set dummy --mode uninstall ${1+"$@"}; shift -- ;; -- esac - -- # Parse non-mode specific arguments: -- while test "$#" -gt 0; do -+ -+# Option defaults: -+opt_debug=: -+opt_dry_run=false -+opt_config=false -+opt_preserve_dup_deps=false -+opt_features=false -+opt_finish=false -+opt_help=false -+opt_help_all=false -+opt_silent=: -+opt_verbose=: -+opt_silent=false -+opt_verbose=false -+ -+ -+# Parse options once, thoroughly. This comes as soon as possible in the -+# script to make things like `--version' happen as quickly as we can. -+{ -+ # this just eases exit handling -+ while test $# -gt 0; do - opt="$1" - shift -- - case $opt in -- --config) func_config ;; -- -- --debug) preserve_args="$preserve_args $opt" -+ --debug|-x) opt_debug='set -x' - func_echo "enabling shell trace mode" -- opt_debug='set -x' - $opt_debug - ;; -- -- -dlopen) test "$#" -eq 0 && func_missing_arg "$opt" && break -- execute_dlfiles="$execute_dlfiles $1" -- shift -+ --dry-run|--dryrun|-n) -+ opt_dry_run=: - ;; -- -- --dry-run | -n) opt_dry_run=: ;; -- --features) func_features ;; -- --finish) mode="finish" ;; -- --no-finish) opt_finish=false ;; -- -- --mode) test "$#" -eq 0 && func_missing_arg "$opt" && break -- case $1 in -- # Valid mode arguments: -- clean) ;; -- compile) ;; -- execute) ;; -- finish) ;; -- install) ;; -- link) ;; -- relink) ;; -- uninstall) ;; -- -- # Catch anything else as an error -- *) func_error "invalid argument for $opt" -- exit_cmd=exit -- break -- ;; -- esac -- -- mode="$1" -+ --config) -+ opt_config=: -+func_config -+ ;; -+ --dlopen|-dlopen) -+ optarg="$1" -+ opt_dlopen="${opt_dlopen+$opt_dlopen -+}$optarg" - shift - ;; -- - --preserve-dup-deps) -- opt_duplicate_deps=: ;; -- -- --quiet|--silent) preserve_args="$preserve_args $opt" -- opt_silent=: -- opt_verbose=false -+ opt_preserve_dup_deps=: - ;; -- -- --no-quiet|--no-silent) -- preserve_args="$preserve_args $opt" -- opt_silent=false -+ --features) -+ opt_features=: -+func_features - ;; -- -- --verbose| -v) preserve_args="$preserve_args $opt" -+ --finish) -+ opt_finish=: -+set dummy --mode finish ${1+"$@"}; shift -+ ;; -+ --help) -+ opt_help=: -+ ;; -+ --help-all) -+ opt_help_all=: -+opt_help=': help-all' -+ ;; -+ --mode) -+ test $# = 0 && func_missing_arg $opt && break -+ optarg="$1" -+ opt_mode="$optarg" -+case $optarg in -+ # Valid mode arguments: -+ clean|compile|execute|finish|install|link|relink|uninstall) ;; -+ -+ # Catch anything else as an error -+ *) func_error "invalid argument for $opt" -+ exit_cmd=exit -+ break -+ ;; -+esac -+ shift -+ ;; -+ --no-silent|--no-quiet) - opt_silent=false -- opt_verbose=: -+func_append preserve_args " $opt" - ;; -- -- --no-verbose) preserve_args="$preserve_args $opt" -+ --no-verbose) - opt_verbose=false -+func_append preserve_args " $opt" - ;; -- -- --tag) test "$#" -eq 0 && func_missing_arg "$opt" && break -- preserve_args="$preserve_args $opt $1" -- func_enable_tag "$1" # tagname is set here -+ --silent|--quiet) -+ opt_silent=: -+func_append preserve_args " $opt" -+ opt_verbose=false -+ ;; -+ --verbose|-v) -+ opt_verbose=: -+func_append preserve_args " $opt" -+opt_silent=false -+ ;; -+ --tag) -+ test $# = 0 && func_missing_arg $opt && break -+ optarg="$1" -+ opt_tag="$optarg" -+func_append preserve_args " $opt $optarg" -+func_enable_tag "$optarg" - shift - ;; - -+ -\?|-h) func_usage ;; -+ --help) func_help ;; -+ --version) func_version ;; -+ - # Separate optargs to long options: -- -dlopen=*|--mode=*|--tag=*) -- func_opt_split "$opt" -- set dummy "$func_opt_split_opt" "$func_opt_split_arg" ${1+"$@"} -+ --*=*) -+ func_split_long_opt "$opt" -+ set dummy "$func_split_long_opt_name" "$func_split_long_opt_arg" ${1+"$@"} - shift - ;; - -- -\?|-h) func_usage ;; -- --help) opt_help=: ;; -- --help-all) opt_help=': help-all' ;; -- --version) func_version ;; -- -- -*) func_fatal_help "unrecognized option \`$opt'" ;; -- -- *) nonopt="$opt" -- break -+ # Separate non-argument short options: -+ -\?*|-h*|-n*|-v*) -+ func_split_short_opt "$opt" -+ set dummy "$func_split_short_opt_name" "-$func_split_short_opt_arg" ${1+"$@"} -+ shift - ;; -+ -+ --) break ;; -+ -*) func_fatal_help "unrecognized option \`$opt'" ;; -+ *) set dummy "$opt" ${1+"$@"}; shift; break ;; - esac - done - -+ # Validate options: -+ -+ # save first non-option argument -+ if test "$#" -gt 0; then -+ nonopt="$opt" -+ shift -+ fi -+ -+ # preserve --debug -+ test "$opt_debug" = : || func_append preserve_args " --debug" - - case $host in - *cygwin* | *mingw* | *pw32* | *cegcc*) -@@ -981,82 +1184,44 @@ - opt_duplicate_compiler_generated_deps=: - ;; - *) -- opt_duplicate_compiler_generated_deps=$opt_duplicate_deps -+ opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps - ;; - esac - -- # Having warned about all mis-specified options, bail out if -- # anything was wrong. -- $exit_cmd $EXIT_FAILURE --} -+ $opt_help || { -+ # Sanity checks first: -+ func_check_version_match - --# func_check_version_match --# Ensure that we are using m4 macros, and libtool script from the same --# release of libtool. --func_check_version_match () --{ -- if test "$package_revision" != "$macro_revision"; then -- if test "$VERSION" != "$macro_version"; then -- if test -z "$macro_version"; then -- cat >&2 <<_LT_EOF --$progname: Version mismatch error. This is $PACKAGE $VERSION, but the --$progname: definition of this LT_INIT comes from an older release. --$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION --$progname: and run autoconf again. --_LT_EOF -- else -- cat >&2 <<_LT_EOF --$progname: Version mismatch error. This is $PACKAGE $VERSION, but the --$progname: definition of this LT_INIT comes from $PACKAGE $macro_version. --$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION --$progname: and run autoconf again. --_LT_EOF -- fi -- else -- cat >&2 <<_LT_EOF --$progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, --$progname: but the definition of this LT_INIT comes from revision $macro_revision. --$progname: You should recreate aclocal.m4 with macros from revision $package_revision --$progname: of $PACKAGE $VERSION and run autoconf again. --_LT_EOF -+ if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then -+ func_fatal_configuration "not configured to build any kind of library" - fi - -- exit $EXIT_MISMATCH -- fi --} -- -+ # Darwin sucks -+ eval std_shrext=\"$shrext_cmds\" - --## ----------- ## --## Main. ## --## ----------- ## -- --$opt_help || { -- # Sanity checks first: -- func_check_version_match -- -- if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then -- func_fatal_configuration "not configured to build any kind of library" -- fi -+ # Only execute mode is allowed to have -dlopen flags. -+ if test -n "$opt_dlopen" && test "$opt_mode" != execute; then -+ func_error "unrecognized option \`-dlopen'" -+ $ECHO "$help" 1>&2 -+ exit $EXIT_FAILURE -+ fi - -- test -z "$mode" && func_fatal_error "error: you must specify a MODE." -+ # Change the help message to a mode-specific one. -+ generic_help="$help" -+ help="Try \`$progname --help --mode=$opt_mode' for more information." -+ } - - -- # Darwin sucks -- eval "std_shrext=\"$shrext_cmds\"" -+ # Bail if the options were screwed -+ $exit_cmd $EXIT_FAILURE -+} - - -- # Only execute mode is allowed to have -dlopen flags. -- if test -n "$execute_dlfiles" && test "$mode" != execute; then -- func_error "unrecognized option \`-dlopen'" -- $ECHO "$help" 1>&2 -- exit $EXIT_FAILURE -- fi - -- # Change the help message to a mode-specific one. -- generic_help="$help" -- help="Try \`$progname --help --mode=$mode' for more information." --} - -+## ----------- ## -+## Main. ## -+## ----------- ## - - # func_lalib_p file - # True iff FILE is a libtool `.la' library or `.lo' object file. -@@ -1121,12 +1286,9 @@ - # temporary ltwrapper_script. - func_ltwrapper_scriptname () - { -- func_ltwrapper_scriptname_result="" -- if func_ltwrapper_executable_p "$1"; then -- func_dirname_and_basename "$1" "" "." -- func_stripname '' '.exe' "$func_basename_result" -- func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper" -- fi -+ func_dirname_and_basename "$1" "" "." -+ func_stripname '' '.exe' "$func_basename_result" -+ func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper" - } - - # func_ltwrapper_p file -@@ -1149,7 +1311,7 @@ - save_ifs=$IFS; IFS='~' - for cmd in $1; do - IFS=$save_ifs -- eval "cmd=\"$cmd\"" -+ eval cmd=\"$cmd\" - func_show_eval "$cmd" "${2-:}" - done - IFS=$save_ifs -@@ -1172,6 +1334,37 @@ - } - - -+# func_resolve_sysroot PATH -+# Replace a leading = in PATH with a sysroot. Store the result into -+# func_resolve_sysroot_result -+func_resolve_sysroot () -+{ -+ func_resolve_sysroot_result=$1 -+ case $func_resolve_sysroot_result in -+ =*) -+ func_stripname '=' '' "$func_resolve_sysroot_result" -+ func_resolve_sysroot_result=$lt_sysroot$func_stripname_result -+ ;; -+ esac -+} -+ -+# func_replace_sysroot PATH -+# If PATH begins with the sysroot, replace it with = and -+# store the result into func_replace_sysroot_result. -+func_replace_sysroot () -+{ -+ case "$lt_sysroot:$1" in -+ ?*:"$lt_sysroot"*) -+ func_stripname "$lt_sysroot" '' "$1" -+ func_replace_sysroot_result="=$func_stripname_result" -+ ;; -+ *) -+ # Including no sysroot. -+ func_replace_sysroot_result=$1 -+ ;; -+ esac -+} -+ - # func_infer_tag arg - # Infer tagged configuration to use if any are available and - # if one wasn't chosen via the "--tag" command line option. -@@ -1184,8 +1377,7 @@ - if test -n "$available_tags" && test -z "$tagname"; then - CC_quoted= - for arg in $CC; do -- func_quote_for_eval "$arg" -- CC_quoted="$CC_quoted $func_quote_for_eval_result" -+ func_append_quoted CC_quoted "$arg" - done - CC_expanded=`func_echo_all $CC` - CC_quoted_expanded=`func_echo_all $CC_quoted` -@@ -1204,8 +1396,7 @@ - CC_quoted= - for arg in $CC; do - # Double-quote args containing other shell metacharacters. -- func_quote_for_eval "$arg" -- CC_quoted="$CC_quoted $func_quote_for_eval_result" -+ func_append_quoted CC_quoted "$arg" - done - CC_expanded=`func_echo_all $CC` - CC_quoted_expanded=`func_echo_all $CC_quoted` -@@ -1274,6 +1465,486 @@ - } - } - -+ -+################################################## -+# FILE NAME AND PATH CONVERSION HELPER FUNCTIONS # -+################################################## -+ -+# func_convert_core_file_wine_to_w32 ARG -+# Helper function used by file name conversion functions when $build is *nix, -+# and $host is mingw, cygwin, or some other w32 environment. Relies on a -+# correctly configured wine environment available, with the winepath program -+# in $build's $PATH. -+# -+# ARG is the $build file name to be converted to w32 format. -+# Result is available in $func_convert_core_file_wine_to_w32_result, and will -+# be empty on error (or when ARG is empty) -+func_convert_core_file_wine_to_w32 () -+{ -+ $opt_debug -+ func_convert_core_file_wine_to_w32_result="$1" -+ if test -n "$1"; then -+ # Unfortunately, winepath does not exit with a non-zero error code, so we -+ # are forced to check the contents of stdout. On the other hand, if the -+ # command is not found, the shell will set an exit code of 127 and print -+ # *an error message* to stdout. So we must check for both error code of -+ # zero AND non-empty stdout, which explains the odd construction: -+ func_convert_core_file_wine_to_w32_tmp=`winepath -w "$1" 2>/dev/null` -+ if test "$?" -eq 0 && test -n "${func_convert_core_file_wine_to_w32_tmp}"; then -+ func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" | -+ $SED -e "$lt_sed_naive_backslashify"` -+ else -+ func_convert_core_file_wine_to_w32_result= -+ fi -+ fi -+} -+# end: func_convert_core_file_wine_to_w32 -+ -+ -+# func_convert_core_path_wine_to_w32 ARG -+# Helper function used by path conversion functions when $build is *nix, and -+# $host is mingw, cygwin, or some other w32 environment. Relies on a correctly -+# configured wine environment available, with the winepath program in $build's -+# $PATH. Assumes ARG has no leading or trailing path separator characters. -+# -+# ARG is path to be converted from $build format to win32. -+# Result is available in $func_convert_core_path_wine_to_w32_result. -+# Unconvertible file (directory) names in ARG are skipped; if no directory names -+# are convertible, then the result may be empty. -+func_convert_core_path_wine_to_w32 () -+{ -+ $opt_debug -+ # unfortunately, winepath doesn't convert paths, only file names -+ func_convert_core_path_wine_to_w32_result="" -+ if test -n "$1"; then -+ oldIFS=$IFS -+ IFS=: -+ for func_convert_core_path_wine_to_w32_f in $1; do -+ IFS=$oldIFS -+ func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f" -+ if test -n "$func_convert_core_file_wine_to_w32_result" ; then -+ if test -z "$func_convert_core_path_wine_to_w32_result"; then -+ func_convert_core_path_wine_to_w32_result="$func_convert_core_file_wine_to_w32_result" -+ else -+ func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result" -+ fi -+ fi -+ done -+ IFS=$oldIFS -+ fi -+} -+# end: func_convert_core_path_wine_to_w32 -+ -+ -+# func_cygpath ARGS... -+# Wrapper around calling the cygpath program via LT_CYGPATH. This is used when -+# when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2) -+# $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or -+# (2), returns the Cygwin file name or path in func_cygpath_result (input -+# file name or path is assumed to be in w32 format, as previously converted -+# from $build's *nix or MSYS format). In case (3), returns the w32 file name -+# or path in func_cygpath_result (input file name or path is assumed to be in -+# Cygwin format). Returns an empty string on error. -+# -+# ARGS are passed to cygpath, with the last one being the file name or path to -+# be converted. -+# -+# Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH -+# environment variable; do not put it in $PATH. -+func_cygpath () -+{ -+ $opt_debug -+ if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then -+ func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null` -+ if test "$?" -ne 0; then -+ # on failure, ensure result is empty -+ func_cygpath_result= -+ fi -+ else -+ func_cygpath_result= -+ func_error "LT_CYGPATH is empty or specifies non-existent file: \`$LT_CYGPATH'" -+ fi -+} -+#end: func_cygpath -+ -+ -+# func_convert_core_msys_to_w32 ARG -+# Convert file name or path ARG from MSYS format to w32 format. Return -+# result in func_convert_core_msys_to_w32_result. -+func_convert_core_msys_to_w32 () -+{ -+ $opt_debug -+ # awkward: cmd appends spaces to result -+ func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null | -+ $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"` -+} -+#end: func_convert_core_msys_to_w32 -+ -+ -+# func_convert_file_check ARG1 ARG2 -+# Verify that ARG1 (a file name in $build format) was converted to $host -+# format in ARG2. Otherwise, emit an error message, but continue (resetting -+# func_to_host_file_result to ARG1). -+func_convert_file_check () -+{ -+ $opt_debug -+ if test -z "$2" && test -n "$1" ; then -+ func_error "Could not determine host file name corresponding to" -+ func_error " \`$1'" -+ func_error "Continuing, but uninstalled executables may not work." -+ # Fallback: -+ func_to_host_file_result="$1" -+ fi -+} -+# end func_convert_file_check -+ -+ -+# func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH -+# Verify that FROM_PATH (a path in $build format) was converted to $host -+# format in TO_PATH. Otherwise, emit an error message, but continue, resetting -+# func_to_host_file_result to a simplistic fallback value (see below). -+func_convert_path_check () -+{ -+ $opt_debug -+ if test -z "$4" && test -n "$3"; then -+ func_error "Could not determine the host path corresponding to" -+ func_error " \`$3'" -+ func_error "Continuing, but uninstalled executables may not work." -+ # Fallback. This is a deliberately simplistic "conversion" and -+ # should not be "improved". See libtool.info. -+ if test "x$1" != "x$2"; then -+ lt_replace_pathsep_chars="s|$1|$2|g" -+ func_to_host_path_result=`echo "$3" | -+ $SED -e "$lt_replace_pathsep_chars"` -+ else -+ func_to_host_path_result="$3" -+ fi -+ fi -+} -+# end func_convert_path_check -+ -+ -+# func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG -+# Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT -+# and appending REPL if ORIG matches BACKPAT. -+func_convert_path_front_back_pathsep () -+{ -+ $opt_debug -+ case $4 in -+ $1 ) func_to_host_path_result="$3$func_to_host_path_result" -+ ;; -+ esac -+ case $4 in -+ $2 ) func_append func_to_host_path_result "$3" -+ ;; -+ esac -+} -+# end func_convert_path_front_back_pathsep -+ -+ -+################################################## -+# $build to $host FILE NAME CONVERSION FUNCTIONS # -+################################################## -+# invoked via `$to_host_file_cmd ARG' -+# -+# In each case, ARG is the path to be converted from $build to $host format. -+# Result will be available in $func_to_host_file_result. -+ -+ -+# func_to_host_file ARG -+# Converts the file name ARG from $build format to $host format. Return result -+# in func_to_host_file_result. -+func_to_host_file () -+{ -+ $opt_debug -+ $to_host_file_cmd "$1" -+} -+# end func_to_host_file -+ -+ -+# func_to_tool_file ARG LAZY -+# converts the file name ARG from $build format to toolchain format. Return -+# result in func_to_tool_file_result. If the conversion in use is listed -+# in (the comma separated) LAZY, no conversion takes place. -+func_to_tool_file () -+{ -+ $opt_debug -+ case ,$2, in -+ *,"$to_tool_file_cmd",*) -+ func_to_tool_file_result=$1 -+ ;; -+ *) -+ $to_tool_file_cmd "$1" -+ func_to_tool_file_result=$func_to_host_file_result -+ ;; -+ esac -+} -+# end func_to_tool_file -+ -+ -+# func_convert_file_noop ARG -+# Copy ARG to func_to_host_file_result. -+func_convert_file_noop () -+{ -+ func_to_host_file_result="$1" -+} -+# end func_convert_file_noop -+ -+ -+# func_convert_file_msys_to_w32 ARG -+# Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic -+# conversion to w32 is not available inside the cwrapper. Returns result in -+# func_to_host_file_result. -+func_convert_file_msys_to_w32 () -+{ -+ $opt_debug -+ func_to_host_file_result="$1" -+ if test -n "$1"; then -+ func_convert_core_msys_to_w32 "$1" -+ func_to_host_file_result="$func_convert_core_msys_to_w32_result" -+ fi -+ func_convert_file_check "$1" "$func_to_host_file_result" -+} -+# end func_convert_file_msys_to_w32 -+ -+ -+# func_convert_file_cygwin_to_w32 ARG -+# Convert file name ARG from Cygwin to w32 format. Returns result in -+# func_to_host_file_result. -+func_convert_file_cygwin_to_w32 () -+{ -+ $opt_debug -+ func_to_host_file_result="$1" -+ if test -n "$1"; then -+ # because $build is cygwin, we call "the" cygpath in $PATH; no need to use -+ # LT_CYGPATH in this case. -+ func_to_host_file_result=`cygpath -m "$1"` -+ fi -+ func_convert_file_check "$1" "$func_to_host_file_result" -+} -+# end func_convert_file_cygwin_to_w32 -+ -+ -+# func_convert_file_nix_to_w32 ARG -+# Convert file name ARG from *nix to w32 format. Requires a wine environment -+# and a working winepath. Returns result in func_to_host_file_result. -+func_convert_file_nix_to_w32 () -+{ -+ $opt_debug -+ func_to_host_file_result="$1" -+ if test -n "$1"; then -+ func_convert_core_file_wine_to_w32 "$1" -+ func_to_host_file_result="$func_convert_core_file_wine_to_w32_result" -+ fi -+ func_convert_file_check "$1" "$func_to_host_file_result" -+} -+# end func_convert_file_nix_to_w32 -+ -+ -+# func_convert_file_msys_to_cygwin ARG -+# Convert file name ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. -+# Returns result in func_to_host_file_result. -+func_convert_file_msys_to_cygwin () -+{ -+ $opt_debug -+ func_to_host_file_result="$1" -+ if test -n "$1"; then -+ func_convert_core_msys_to_w32 "$1" -+ func_cygpath -u "$func_convert_core_msys_to_w32_result" -+ func_to_host_file_result="$func_cygpath_result" -+ fi -+ func_convert_file_check "$1" "$func_to_host_file_result" -+} -+# end func_convert_file_msys_to_cygwin -+ -+ -+# func_convert_file_nix_to_cygwin ARG -+# Convert file name ARG from *nix to Cygwin format. Requires Cygwin installed -+# in a wine environment, working winepath, and LT_CYGPATH set. Returns result -+# in func_to_host_file_result. -+func_convert_file_nix_to_cygwin () -+{ -+ $opt_debug -+ func_to_host_file_result="$1" -+ if test -n "$1"; then -+ # convert from *nix to w32, then use cygpath to convert from w32 to cygwin. -+ func_convert_core_file_wine_to_w32 "$1" -+ func_cygpath -u "$func_convert_core_file_wine_to_w32_result" -+ func_to_host_file_result="$func_cygpath_result" -+ fi -+ func_convert_file_check "$1" "$func_to_host_file_result" -+} -+# end func_convert_file_nix_to_cygwin -+ -+ -+############################################# -+# $build to $host PATH CONVERSION FUNCTIONS # -+############################################# -+# invoked via `$to_host_path_cmd ARG' -+# -+# In each case, ARG is the path to be converted from $build to $host format. -+# The result will be available in $func_to_host_path_result. -+# -+# Path separators are also converted from $build format to $host format. If -+# ARG begins or ends with a path separator character, it is preserved (but -+# converted to $host format) on output. -+# -+# All path conversion functions are named using the following convention: -+# file name conversion function : func_convert_file_X_to_Y () -+# path conversion function : func_convert_path_X_to_Y () -+# where, for any given $build/$host combination the 'X_to_Y' value is the -+# same. If conversion functions are added for new $build/$host combinations, -+# the two new functions must follow this pattern, or func_init_to_host_path_cmd -+# will break. -+ -+ -+# func_init_to_host_path_cmd -+# Ensures that function "pointer" variable $to_host_path_cmd is set to the -+# appropriate value, based on the value of $to_host_file_cmd. -+to_host_path_cmd= -+func_init_to_host_path_cmd () -+{ -+ $opt_debug -+ if test -z "$to_host_path_cmd"; then -+ func_stripname 'func_convert_file_' '' "$to_host_file_cmd" -+ to_host_path_cmd="func_convert_path_${func_stripname_result}" -+ fi -+} -+ -+ -+# func_to_host_path ARG -+# Converts the path ARG from $build format to $host format. Return result -+# in func_to_host_path_result. -+func_to_host_path () -+{ -+ $opt_debug -+ func_init_to_host_path_cmd -+ $to_host_path_cmd "$1" -+} -+# end func_to_host_path -+ -+ -+# func_convert_path_noop ARG -+# Copy ARG to func_to_host_path_result. -+func_convert_path_noop () -+{ -+ func_to_host_path_result="$1" -+} -+# end func_convert_path_noop -+ -+ -+# func_convert_path_msys_to_w32 ARG -+# Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic -+# conversion to w32 is not available inside the cwrapper. Returns result in -+# func_to_host_path_result. -+func_convert_path_msys_to_w32 () -+{ -+ $opt_debug -+ func_to_host_path_result="$1" -+ if test -n "$1"; then -+ # Remove leading and trailing path separator characters from ARG. MSYS -+ # behavior is inconsistent here; cygpath turns them into '.;' and ';.'; -+ # and winepath ignores them completely. -+ func_stripname : : "$1" -+ func_to_host_path_tmp1=$func_stripname_result -+ func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" -+ func_to_host_path_result="$func_convert_core_msys_to_w32_result" -+ func_convert_path_check : ";" \ -+ "$func_to_host_path_tmp1" "$func_to_host_path_result" -+ func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" -+ fi -+} -+# end func_convert_path_msys_to_w32 -+ -+ -+# func_convert_path_cygwin_to_w32 ARG -+# Convert path ARG from Cygwin to w32 format. Returns result in -+# func_to_host_file_result. -+func_convert_path_cygwin_to_w32 () -+{ -+ $opt_debug -+ func_to_host_path_result="$1" -+ if test -n "$1"; then -+ # See func_convert_path_msys_to_w32: -+ func_stripname : : "$1" -+ func_to_host_path_tmp1=$func_stripname_result -+ func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"` -+ func_convert_path_check : ";" \ -+ "$func_to_host_path_tmp1" "$func_to_host_path_result" -+ func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" -+ fi -+} -+# end func_convert_path_cygwin_to_w32 -+ -+ -+# func_convert_path_nix_to_w32 ARG -+# Convert path ARG from *nix to w32 format. Requires a wine environment and -+# a working winepath. Returns result in func_to_host_file_result. -+func_convert_path_nix_to_w32 () -+{ -+ $opt_debug -+ func_to_host_path_result="$1" -+ if test -n "$1"; then -+ # See func_convert_path_msys_to_w32: -+ func_stripname : : "$1" -+ func_to_host_path_tmp1=$func_stripname_result -+ func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" -+ func_to_host_path_result="$func_convert_core_path_wine_to_w32_result" -+ func_convert_path_check : ";" \ -+ "$func_to_host_path_tmp1" "$func_to_host_path_result" -+ func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" -+ fi -+} -+# end func_convert_path_nix_to_w32 -+ -+ -+# func_convert_path_msys_to_cygwin ARG -+# Convert path ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. -+# Returns result in func_to_host_file_result. -+func_convert_path_msys_to_cygwin () -+{ -+ $opt_debug -+ func_to_host_path_result="$1" -+ if test -n "$1"; then -+ # See func_convert_path_msys_to_w32: -+ func_stripname : : "$1" -+ func_to_host_path_tmp1=$func_stripname_result -+ func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" -+ func_cygpath -u -p "$func_convert_core_msys_to_w32_result" -+ func_to_host_path_result="$func_cygpath_result" -+ func_convert_path_check : : \ -+ "$func_to_host_path_tmp1" "$func_to_host_path_result" -+ func_convert_path_front_back_pathsep ":*" "*:" : "$1" -+ fi -+} -+# end func_convert_path_msys_to_cygwin -+ -+ -+# func_convert_path_nix_to_cygwin ARG -+# Convert path ARG from *nix to Cygwin format. Requires Cygwin installed in a -+# a wine environment, working winepath, and LT_CYGPATH set. Returns result in -+# func_to_host_file_result. -+func_convert_path_nix_to_cygwin () -+{ -+ $opt_debug -+ func_to_host_path_result="$1" -+ if test -n "$1"; then -+ # Remove leading and trailing path separator characters from -+ # ARG. msys behavior is inconsistent here, cygpath turns them -+ # into '.;' and ';.', and winepath ignores them completely. -+ func_stripname : : "$1" -+ func_to_host_path_tmp1=$func_stripname_result -+ func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" -+ func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result" -+ func_to_host_path_result="$func_cygpath_result" -+ func_convert_path_check : : \ -+ "$func_to_host_path_tmp1" "$func_to_host_path_result" -+ func_convert_path_front_back_pathsep ":*" "*:" : "$1" -+ fi -+} -+# end func_convert_path_nix_to_cygwin -+ -+ - # func_mode_compile arg... - func_mode_compile () - { -@@ -1314,12 +1985,12 @@ - ;; - - -pie | -fpie | -fPIE) -- pie_flag="$pie_flag $arg" -+ func_append pie_flag " $arg" - continue - ;; - - -shared | -static | -prefer-pic | -prefer-non-pic) -- later="$later $arg" -+ func_append later " $arg" - continue - ;; - -@@ -1340,15 +2011,14 @@ - save_ifs="$IFS"; IFS=',' - for arg in $args; do - IFS="$save_ifs" -- func_quote_for_eval "$arg" -- lastarg="$lastarg $func_quote_for_eval_result" -+ func_append_quoted lastarg "$arg" - done - IFS="$save_ifs" - func_stripname ' ' '' "$lastarg" - lastarg=$func_stripname_result - - # Add the arguments to base_compile. -- base_compile="$base_compile $lastarg" -+ func_append base_compile " $lastarg" - continue - ;; - -@@ -1364,8 +2034,7 @@ - esac # case $arg_mode - - # Aesthetically quote the previous argument. -- func_quote_for_eval "$lastarg" -- base_compile="$base_compile $func_quote_for_eval_result" -+ func_append_quoted base_compile "$lastarg" - done # for arg - - case $arg_mode in -@@ -1496,17 +2165,16 @@ - $opt_dry_run || $RM $removelist - exit $EXIT_FAILURE - fi -- removelist="$removelist $output_obj" -+ func_append removelist " $output_obj" - $ECHO "$srcfile" > "$lockfile" - fi - - $opt_dry_run || $RM $removelist -- removelist="$removelist $lockfile" -+ func_append removelist " $lockfile" - trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 - -- if test -n "$fix_srcfile_path"; then -- eval "srcfile=\"$fix_srcfile_path\"" -- fi -+ func_to_tool_file "$srcfile" func_convert_file_msys_to_w32 -+ srcfile=$func_to_tool_file_result - func_quote_for_eval "$srcfile" - qsrcfile=$func_quote_for_eval_result - -@@ -1526,7 +2194,7 @@ - - if test -z "$output_obj"; then - # Place PIC objects in $objdir -- command="$command -o $lobj" -+ func_append command " -o $lobj" - fi - - func_show_eval_locale "$command" \ -@@ -1573,11 +2241,11 @@ - command="$base_compile $qsrcfile $pic_flag" - fi - if test "$compiler_c_o" = yes; then -- command="$command -o $obj" -+ func_append command " -o $obj" - fi - - # Suppress compiler output if we already did a PIC compilation. -- command="$command$suppress_output" -+ func_append command "$suppress_output" - func_show_eval_locale "$command" \ - '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' - -@@ -1622,13 +2290,13 @@ - } - - $opt_help || { -- test "$mode" = compile && func_mode_compile ${1+"$@"} -+ test "$opt_mode" = compile && func_mode_compile ${1+"$@"} - } - - func_mode_help () - { - # We need to display help for each of the modes. -- case $mode in -+ case $opt_mode in - "") - # Generic help is extracted from the usage comments - # at the start of this file. -@@ -1659,8 +2327,8 @@ - - -o OUTPUT-FILE set the output file name to OUTPUT-FILE - -no-suppress do not suppress compiler output for multiple passes -- -prefer-pic try to building PIC objects only -- -prefer-non-pic try to building non-PIC objects only -+ -prefer-pic try to build PIC objects only -+ -prefer-non-pic try to build non-PIC objects only - -shared do not build a \`.o' file suitable for static linking - -static only build a \`.o' file suitable for static linking - -Wc,FLAG pass FLAG directly to the compiler -@@ -1804,7 +2472,7 @@ - ;; - - *) -- func_fatal_help "invalid operation mode \`$mode'" -+ func_fatal_help "invalid operation mode \`$opt_mode'" - ;; - esac - -@@ -1819,13 +2487,13 @@ - else - { - func_help noexit -- for mode in compile link execute install finish uninstall clean; do -+ for opt_mode in compile link execute install finish uninstall clean; do - func_mode_help - done - } | sed -n '1p; 2,$s/^Usage:/ or: /p' - { - func_help noexit -- for mode in compile link execute install finish uninstall clean; do -+ for opt_mode in compile link execute install finish uninstall clean; do - echo - func_mode_help - done -@@ -1854,13 +2522,16 @@ - func_fatal_help "you must specify a COMMAND" - - # Handle -dlopen flags immediately. -- for file in $execute_dlfiles; do -+ for file in $opt_dlopen; do - test -f "$file" \ - || func_fatal_help "\`$file' is not a file" - - dir= - case $file in - *.la) -+ func_resolve_sysroot "$file" -+ file=$func_resolve_sysroot_result -+ - # Check to see that this really is a libtool archive. - func_lalib_unsafe_p "$file" \ - || func_fatal_help "\`$lib' is not a valid libtool archive" -@@ -1882,7 +2553,7 @@ - dir="$func_dirname_result" - - if test -f "$dir/$objdir/$dlname"; then -- dir="$dir/$objdir" -+ func_append dir "/$objdir" - else - if test ! -f "$dir/$dlname"; then - func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" -@@ -1907,10 +2578,10 @@ - test -n "$absdir" && dir="$absdir" - - # Now add the directory to shlibpath_var. -- if eval test -z \"\$$shlibpath_var\"; then -- eval $shlibpath_var=\$dir -+ if eval "test -z \"\$$shlibpath_var\""; then -+ eval "$shlibpath_var=\"\$dir\"" - else -- eval $shlibpath_var=\$dir:\$$shlibpath_var -+ eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" - fi - done - -@@ -1939,8 +2610,7 @@ - ;; - esac - # Quote arguments (to preserve shell metacharacters). -- func_quote_for_eval "$file" -- args="$args $func_quote_for_eval_result" -+ func_append_quoted args "$file" - done - - if test "X$opt_dry_run" = Xfalse; then -@@ -1972,22 +2642,59 @@ - fi - } - --test "$mode" = execute && func_mode_execute ${1+"$@"} -+test "$opt_mode" = execute && func_mode_execute ${1+"$@"} - - - # func_mode_finish arg... - func_mode_finish () - { - $opt_debug -- libdirs="$nonopt" -+ libs= -+ libdirs= - admincmds= - -- if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then -- for dir -- do -- libdirs="$libdirs $dir" -- done -+ for opt in "$nonopt" ${1+"$@"} -+ do -+ if test -d "$opt"; then -+ func_append libdirs " $opt" -+ -+ elif test -f "$opt"; then -+ if func_lalib_unsafe_p "$opt"; then -+ func_append libs " $opt" -+ else -+ func_warning "\`$opt' is not a valid libtool archive" -+ fi -+ -+ else -+ func_fatal_error "invalid argument \`$opt'" -+ fi -+ done -+ -+ if test -n "$libs"; then -+ if test -n "$lt_sysroot"; then -+ sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"` -+ sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;" -+ else -+ sysroot_cmd= -+ fi -+ -+ # Remove sysroot references -+ if $opt_dry_run; then -+ for lib in $libs; do -+ echo "removing references to $lt_sysroot and \`=' prefixes from $lib" -+ done -+ else -+ tmpdir=`func_mktempdir` -+ for lib in $libs; do -+ sed -e "${sysroot_cmd} s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \ -+ > $tmpdir/tmp-la -+ mv -f $tmpdir/tmp-la $lib -+ done -+ ${RM}r "$tmpdir" -+ fi -+ fi - -+ if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then - for libdir in $libdirs; do - if test -n "$finish_cmds"; then - # Do each command in the finish commands. -@@ -1997,7 +2704,7 @@ - if test -n "$finish_eval"; then - # Do the single finish_eval. - eval cmds=\"$finish_eval\" -- $opt_dry_run || eval "$cmds" || admincmds="$admincmds -+ $opt_dry_run || eval "$cmds" || func_append admincmds " - $cmds" - fi - done -@@ -2006,53 +2713,55 @@ - # Exit here if they wanted silent mode. - $opt_silent && exit $EXIT_SUCCESS - -- echo "----------------------------------------------------------------------" -- echo "Libraries have been installed in:" -- for libdir in $libdirs; do -- $ECHO " $libdir" -- done -- echo -- echo "If you ever happen to want to link against installed libraries" -- echo "in a given directory, LIBDIR, you must either use libtool, and" -- echo "specify the full pathname of the library, or use the \`-LLIBDIR'" -- echo "flag during linking and do at least one of the following:" -- if test -n "$shlibpath_var"; then -- echo " - add LIBDIR to the \`$shlibpath_var' environment variable" -- echo " during execution" -- fi -- if test -n "$runpath_var"; then -- echo " - add LIBDIR to the \`$runpath_var' environment variable" -- echo " during linking" -- fi -- if test -n "$hardcode_libdir_flag_spec"; then -- libdir=LIBDIR -- eval "flag=\"$hardcode_libdir_flag_spec\"" -+ if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then -+ echo "----------------------------------------------------------------------" -+ echo "Libraries have been installed in:" -+ for libdir in $libdirs; do -+ $ECHO " $libdir" -+ done -+ echo -+ echo "If you ever happen to want to link against installed libraries" -+ echo "in a given directory, LIBDIR, you must either use libtool, and" -+ echo "specify the full pathname of the library, or use the \`-LLIBDIR'" -+ echo "flag during linking and do at least one of the following:" -+ if test -n "$shlibpath_var"; then -+ echo " - add LIBDIR to the \`$shlibpath_var' environment variable" -+ echo " during execution" -+ fi -+ if test -n "$runpath_var"; then -+ echo " - add LIBDIR to the \`$runpath_var' environment variable" -+ echo " during linking" -+ fi -+ if test -n "$hardcode_libdir_flag_spec"; then -+ libdir=LIBDIR -+ eval flag=\"$hardcode_libdir_flag_spec\" - -- $ECHO " - use the \`$flag' linker flag" -- fi -- if test -n "$admincmds"; then -- $ECHO " - have your system administrator run these commands:$admincmds" -- fi -- if test -f /etc/ld.so.conf; then -- echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" -- fi -- echo -+ $ECHO " - use the \`$flag' linker flag" -+ fi -+ if test -n "$admincmds"; then -+ $ECHO " - have your system administrator run these commands:$admincmds" -+ fi -+ if test -f /etc/ld.so.conf; then -+ echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" -+ fi -+ echo - -- echo "See any operating system documentation about shared libraries for" -- case $host in -- solaris2.[6789]|solaris2.1[0-9]) -- echo "more information, such as the ld(1), crle(1) and ld.so(8) manual" -- echo "pages." -- ;; -- *) -- echo "more information, such as the ld(1) and ld.so(8) manual pages." -- ;; -- esac -- echo "----------------------------------------------------------------------" -+ echo "See any operating system documentation about shared libraries for" -+ case $host in -+ solaris2.[6789]|solaris2.1[0-9]) -+ echo "more information, such as the ld(1), crle(1) and ld.so(8) manual" -+ echo "pages." -+ ;; -+ *) -+ echo "more information, such as the ld(1) and ld.so(8) manual pages." -+ ;; -+ esac -+ echo "----------------------------------------------------------------------" -+ fi - exit $EXIT_SUCCESS - } - --test "$mode" = finish && func_mode_finish ${1+"$@"} -+test "$opt_mode" = finish && func_mode_finish ${1+"$@"} - - - # func_mode_install arg... -@@ -2077,7 +2786,7 @@ - # The real first argument should be the name of the installation program. - # Aesthetically quote it. - func_quote_for_eval "$arg" -- install_prog="$install_prog$func_quote_for_eval_result" -+ func_append install_prog "$func_quote_for_eval_result" - install_shared_prog=$install_prog - case " $install_prog " in - *[\\\ /]cp\ *) install_cp=: ;; -@@ -2097,7 +2806,7 @@ - do - arg2= - if test -n "$dest"; then -- files="$files $dest" -+ func_append files " $dest" - dest=$arg - continue - fi -@@ -2135,11 +2844,11 @@ - - # Aesthetically quote the argument. - func_quote_for_eval "$arg" -- install_prog="$install_prog $func_quote_for_eval_result" -+ func_append install_prog " $func_quote_for_eval_result" - if test -n "$arg2"; then - func_quote_for_eval "$arg2" - fi -- install_shared_prog="$install_shared_prog $func_quote_for_eval_result" -+ func_append install_shared_prog " $func_quote_for_eval_result" - done - - test -z "$install_prog" && \ -@@ -2151,7 +2860,7 @@ - if test -n "$install_override_mode" && $no_mode; then - if $install_cp; then :; else - func_quote_for_eval "$install_override_mode" -- install_shared_prog="$install_shared_prog -m $func_quote_for_eval_result" -+ func_append install_shared_prog " -m $func_quote_for_eval_result" - fi - fi - -@@ -2209,10 +2918,13 @@ - case $file in - *.$libext) - # Do the static libraries later. -- staticlibs="$staticlibs $file" -+ func_append staticlibs " $file" - ;; - - *.la) -+ func_resolve_sysroot "$file" -+ file=$func_resolve_sysroot_result -+ - # Check to see that this really is a libtool archive. - func_lalib_unsafe_p "$file" \ - || func_fatal_help "\`$file' is not a valid libtool archive" -@@ -2226,23 +2938,30 @@ - if test "X$destdir" = "X$libdir"; then - case "$current_libdirs " in - *" $libdir "*) ;; -- *) current_libdirs="$current_libdirs $libdir" ;; -+ *) func_append current_libdirs " $libdir" ;; - esac - else - # Note the libdir as a future libdir. - case "$future_libdirs " in - *" $libdir "*) ;; -- *) future_libdirs="$future_libdirs $libdir" ;; -+ *) func_append future_libdirs " $libdir" ;; - esac - fi - - func_dirname "$file" "/" "" - dir="$func_dirname_result" -- dir="$dir$objdir" -+ func_append dir "$objdir" - - if test -n "$relink_command"; then -+ # Strip any trailing slash from the destination. -+ func_stripname '' '/' "$libdir" -+ destlibdir=$func_stripname_result -+ -+ func_stripname '' '/' "$destdir" -+ s_destdir=$func_stripname_result -+ - # Determine the prefix the user has applied to our future dir. -- inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"` -+ inst_prefix_dir=`$ECHO "X$s_destdir" | $Xsed -e "s%$destlibdir\$%%"` - - # Don't allow the user to place us outside of our expected - # location b/c this prevents finding dependent libraries that -@@ -2315,7 +3034,7 @@ - func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' - - # Maybe install the static library, too. -- test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library" -+ test -n "$old_library" && func_append staticlibs " $dir/$old_library" - ;; - - *.lo) -@@ -2503,7 +3222,7 @@ - test -n "$future_libdirs" && \ - func_warning "remember to run \`$progname --finish$future_libdirs'" - -- if test -n "$current_libdirs" && $opt_finish; then -+ if test -n "$current_libdirs"; then - # Maybe just do a dry run. - $opt_dry_run && current_libdirs=" -n$current_libdirs" - exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' -@@ -2512,7 +3231,7 @@ - fi - } - --test "$mode" = install && func_mode_install ${1+"$@"} -+test "$opt_mode" = install && func_mode_install ${1+"$@"} - - - # func_generate_dlsyms outputname originator pic_p -@@ -2559,6 +3278,18 @@ - #pragma GCC diagnostic ignored \"-Wstrict-prototypes\" - #endif - -+/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ -+#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) -+/* DATA imports from DLLs on WIN32 con't be const, because runtime -+ relocations are performed -- see ld's documentation on pseudo-relocs. */ -+# define LT_DLSYM_CONST -+#elif defined(__osf__) -+/* This system does not cope well with relocations in const data. */ -+# define LT_DLSYM_CONST -+#else -+# define LT_DLSYM_CONST const -+#endif -+ - /* External symbol declarations for the compiler. */\ - " - -@@ -2570,21 +3301,22 @@ - # Add our own program objects to the symbol list. - progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP` - for progfile in $progfiles; do -- func_verbose "extracting global C symbols from \`$progfile'" -- $opt_dry_run || eval "$NM $progfile | $global_symbol_pipe >> '$nlist'" -+ func_to_tool_file "$progfile" func_convert_file_msys_to_w32 -+ func_verbose "extracting global C symbols from \`$func_to_tool_file_result'" -+ $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'" - done - - if test -n "$exclude_expsyms"; then - $opt_dry_run || { -- $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T -- $MV "$nlist"T "$nlist" -+ eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' -+ eval '$MV "$nlist"T "$nlist"' - } - fi - - if test -n "$export_symbols_regex"; then - $opt_dry_run || { -- $EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T -- $MV "$nlist"T "$nlist" -+ eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' -+ eval '$MV "$nlist"T "$nlist"' - } - fi - -@@ -2593,23 +3325,23 @@ - export_symbols="$output_objdir/$outputname.exp" - $opt_dry_run || { - $RM $export_symbols -- ${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' < "$nlist" > "$export_symbols" -+ eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' - case $host in - *cygwin* | *mingw* | *cegcc* ) -- echo EXPORTS > "$output_objdir/$outputname.def" -- cat "$export_symbols" >> "$output_objdir/$outputname.def" -+ eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' -+ eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' - ;; - esac - } - else - $opt_dry_run || { -- ${SED} -e 's/\([].[*^$]\)/\\\1/g' -e 's/^/ /' -e 's/$/$/' < "$export_symbols" > "$output_objdir/$outputname.exp" -- $GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T -- $MV "$nlist"T "$nlist" -+ eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' -+ eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' -+ eval '$MV "$nlist"T "$nlist"' - case $host in - *cygwin* | *mingw* | *cegcc* ) -- echo EXPORTS > "$output_objdir/$outputname.def" -- cat "$nlist" >> "$output_objdir/$outputname.def" -+ eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' -+ eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' - ;; - esac - } -@@ -2620,10 +3352,52 @@ - func_verbose "extracting global C symbols from \`$dlprefile'" - func_basename "$dlprefile" - name="$func_basename_result" -- $opt_dry_run || { -- $ECHO ": $name " >> "$nlist" -- eval "$NM $dlprefile 2>/dev/null | $global_symbol_pipe >> '$nlist'" -- } -+ case $host in -+ *cygwin* | *mingw* | *cegcc* ) -+ # if an import library, we need to obtain dlname -+ if func_win32_import_lib_p "$dlprefile"; then -+ func_tr_sh "$dlprefile" -+ eval "curr_lafile=\$libfile_$func_tr_sh_result" -+ dlprefile_dlbasename="" -+ if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then -+ # Use subshell, to avoid clobbering current variable values -+ dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"` -+ if test -n "$dlprefile_dlname" ; then -+ func_basename "$dlprefile_dlname" -+ dlprefile_dlbasename="$func_basename_result" -+ else -+ # no lafile. user explicitly requested -dlpreopen <import library>. -+ $sharedlib_from_linklib_cmd "$dlprefile" -+ dlprefile_dlbasename=$sharedlib_from_linklib_result -+ fi -+ fi -+ $opt_dry_run || { -+ if test -n "$dlprefile_dlbasename" ; then -+ eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"' -+ else -+ func_warning "Could not compute DLL name from $name" -+ eval '$ECHO ": $name " >> "$nlist"' -+ fi -+ func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 -+ eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe | -+ $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'" -+ } -+ else # not an import lib -+ $opt_dry_run || { -+ eval '$ECHO ": $name " >> "$nlist"' -+ func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 -+ eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" -+ } -+ fi -+ ;; -+ *) -+ $opt_dry_run || { -+ eval '$ECHO ": $name " >> "$nlist"' -+ func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 -+ eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" -+ } -+ ;; -+ esac - done - - $opt_dry_run || { -@@ -2661,26 +3435,9 @@ - const char *name; - void *address; - } lt_dlsymlist; --" -- case $host in -- *cygwin* | *mingw* | *cegcc* ) -- echo >> "$output_objdir/$my_dlsyms" "\ --/* DATA imports from DLLs on WIN32 con't be const, because -- runtime relocations are performed -- see ld's documentation -- on pseudo-relocs. */" -- lt_dlsym_const= ;; -- *osf5*) -- echo >> "$output_objdir/$my_dlsyms" "\ --/* This system does not cope well with relocations in const data */" -- lt_dlsym_const= ;; -- *) -- lt_dlsym_const=const ;; -- esac -- -- echo >> "$output_objdir/$my_dlsyms" "\ --extern $lt_dlsym_const lt_dlsymlist -+extern LT_DLSYM_CONST lt_dlsymlist - lt_${my_prefix}_LTX_preloaded_symbols[]; --$lt_dlsym_const lt_dlsymlist -+LT_DLSYM_CONST lt_dlsymlist - lt_${my_prefix}_LTX_preloaded_symbols[] = - {\ - { \"$my_originator\", (void *) 0 }," -@@ -2736,7 +3493,7 @@ - for arg in $LTCFLAGS; do - case $arg in - -pie | -fpie | -fPIE) ;; -- *) symtab_cflags="$symtab_cflags $arg" ;; -+ *) func_append symtab_cflags " $arg" ;; - esac - done - -@@ -2796,9 +3553,11 @@ - win32_libid_type="x86 archive import" - ;; - *ar\ archive*) # could be an import, or static -- if $OBJDUMP -f "$1" | $SED -e '10q' 2>/dev/null | -- $EGREP 'file format (pe-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then -- win32_nmres=`$NM -f posix -A "$1" | -+ # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD. -+ if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | -+ $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then -+ func_to_tool_file "$1" func_convert_file_msys_to_w32 -+ win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" | - $SED -n -e ' - 1,100{ - / I /{ -@@ -2827,6 +3586,131 @@ - $ECHO "$win32_libid_type" - } - -+# func_cygming_dll_for_implib ARG -+# -+# Platform-specific function to extract the -+# name of the DLL associated with the specified -+# import library ARG. -+# Invoked by eval'ing the libtool variable -+# $sharedlib_from_linklib_cmd -+# Result is available in the variable -+# $sharedlib_from_linklib_result -+func_cygming_dll_for_implib () -+{ -+ $opt_debug -+ sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"` -+} -+ -+# func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs -+# -+# The is the core of a fallback implementation of a -+# platform-specific function to extract the name of the -+# DLL associated with the specified import library LIBNAME. -+# -+# SECTION_NAME is either .idata$6 or .idata$7, depending -+# on the platform and compiler that created the implib. -+# -+# Echos the name of the DLL associated with the -+# specified import library. -+func_cygming_dll_for_implib_fallback_core () -+{ -+ $opt_debug -+ match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"` -+ $OBJDUMP -s --section "$1" "$2" 2>/dev/null | -+ $SED '/^Contents of section '"$match_literal"':/{ -+ # Place marker at beginning of archive member dllname section -+ s/.*/====MARK====/ -+ p -+ d -+ } -+ # These lines can sometimes be longer than 43 characters, but -+ # are always uninteresting -+ /:[ ]*file format pe[i]\{,1\}-/d -+ /^In archive [^:]*:/d -+ # Ensure marker is printed -+ /^====MARK====/p -+ # Remove all lines with less than 43 characters -+ /^.\{43\}/!d -+ # From remaining lines, remove first 43 characters -+ s/^.\{43\}//' | -+ $SED -n ' -+ # Join marker and all lines until next marker into a single line -+ /^====MARK====/ b para -+ H -+ $ b para -+ b -+ :para -+ x -+ s/\n//g -+ # Remove the marker -+ s/^====MARK====// -+ # Remove trailing dots and whitespace -+ s/[\. \t]*$// -+ # Print -+ /./p' | -+ # we now have a list, one entry per line, of the stringified -+ # contents of the appropriate section of all members of the -+ # archive which possess that section. Heuristic: eliminate -+ # all those which have a first or second character that is -+ # a '.' (that is, objdump's representation of an unprintable -+ # character.) This should work for all archives with less than -+ # 0x302f exports -- but will fail for DLLs whose name actually -+ # begins with a literal '.' or a single character followed by -+ # a '.'. -+ # -+ # Of those that remain, print the first one. -+ $SED -e '/^\./d;/^.\./d;q' -+} -+ -+# func_cygming_gnu_implib_p ARG -+# This predicate returns with zero status (TRUE) if -+# ARG is a GNU/binutils-style import library. Returns -+# with nonzero status (FALSE) otherwise. -+func_cygming_gnu_implib_p () -+{ -+ $opt_debug -+ func_to_tool_file "$1" func_convert_file_msys_to_w32 -+ func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'` -+ test -n "$func_cygming_gnu_implib_tmp" -+} -+ -+# func_cygming_ms_implib_p ARG -+# This predicate returns with zero status (TRUE) if -+# ARG is an MS-style import library. Returns -+# with nonzero status (FALSE) otherwise. -+func_cygming_ms_implib_p () -+{ -+ $opt_debug -+ func_to_tool_file "$1" func_convert_file_msys_to_w32 -+ func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'` -+ test -n "$func_cygming_ms_implib_tmp" -+} -+ -+# func_cygming_dll_for_implib_fallback ARG -+# Platform-specific function to extract the -+# name of the DLL associated with the specified -+# import library ARG. -+# -+# This fallback implementation is for use when $DLLTOOL -+# does not support the --identify-strict option. -+# Invoked by eval'ing the libtool variable -+# $sharedlib_from_linklib_cmd -+# Result is available in the variable -+# $sharedlib_from_linklib_result -+func_cygming_dll_for_implib_fallback () -+{ -+ $opt_debug -+ if func_cygming_gnu_implib_p "$1" ; then -+ # binutils import library -+ sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"` -+ elif func_cygming_ms_implib_p "$1" ; then -+ # ms-generated import library -+ sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"` -+ else -+ # unknown -+ sharedlib_from_linklib_result="" -+ fi -+} - - - # func_extract_an_archive dir oldlib -@@ -2917,7 +3801,7 @@ - darwin_file= - darwin_files= - for darwin_file in $darwin_filelist; do -- darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP` -+ darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP` - $LIPO -create -output "$darwin_file" $darwin_files - done # $darwin_filelist - $RM -rf unfat-$$ -@@ -2932,7 +3816,7 @@ - func_extract_an_archive "$my_xdir" "$my_xabs" - ;; - esac -- my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` -+ my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP` - done - - func_extract_archives_result="$my_oldobjs" -@@ -3014,7 +3898,110 @@ - _LTECHO_EOF' - } - ECHO=\"$qECHO\" -- fi\ -+ fi -+ -+# Very basic option parsing. These options are (a) specific to -+# the libtool wrapper, (b) are identical between the wrapper -+# /script/ and the wrapper /executable/ which is used only on -+# windows platforms, and (c) all begin with the string "--lt-" -+# (application programs are unlikely to have options which match -+# this pattern). -+# -+# There are only two supported options: --lt-debug and -+# --lt-dump-script. There is, deliberately, no --lt-help. -+# -+# The first argument to this parsing function should be the -+# script's $0 value, followed by "$@". -+lt_option_debug= -+func_parse_lt_options () -+{ -+ lt_script_arg0=\$0 -+ shift -+ for lt_opt -+ do -+ case \"\$lt_opt\" in -+ --lt-debug) lt_option_debug=1 ;; -+ --lt-dump-script) -+ lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\` -+ test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=. -+ lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\` -+ cat \"\$lt_dump_D/\$lt_dump_F\" -+ exit 0 -+ ;; -+ --lt-*) -+ \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2 -+ exit 1 -+ ;; -+ esac -+ done -+ -+ # Print the debug banner immediately: -+ if test -n \"\$lt_option_debug\"; then -+ echo \"${outputname}:${output}:\${LINENO}: libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\" 1>&2 -+ fi -+} -+ -+# Used when --lt-debug. Prints its arguments to stdout -+# (redirection is the responsibility of the caller) -+func_lt_dump_args () -+{ -+ lt_dump_args_N=1; -+ for lt_arg -+ do -+ \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[\$lt_dump_args_N]: \$lt_arg\" -+ lt_dump_args_N=\`expr \$lt_dump_args_N + 1\` -+ done -+} -+ -+# Core function for launching the target application -+func_exec_program_core () -+{ -+" -+ case $host in -+ # Backslashes separate directories on plain windows -+ *-*-mingw | *-*-os2* | *-cegcc*) -+ $ECHO "\ -+ if test -n \"\$lt_option_debug\"; then -+ \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir\\\\\$program\" 1>&2 -+ func_lt_dump_args \${1+\"\$@\"} 1>&2 -+ fi -+ exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} -+" -+ ;; -+ -+ *) -+ $ECHO "\ -+ if test -n \"\$lt_option_debug\"; then -+ \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir/\$program\" 1>&2 -+ func_lt_dump_args \${1+\"\$@\"} 1>&2 -+ fi -+ exec \"\$progdir/\$program\" \${1+\"\$@\"} -+" -+ ;; -+ esac -+ $ECHO "\ -+ \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 -+ exit 1 -+} -+ -+# A function to encapsulate launching the target application -+# Strips options in the --lt-* namespace from \$@ and -+# launches target application with the remaining arguments. -+func_exec_program () -+{ -+ for lt_wr_arg -+ do -+ case \$lt_wr_arg in -+ --lt-*) ;; -+ *) set x \"\$@\" \"\$lt_wr_arg\"; shift;; -+ esac -+ shift -+ done -+ func_exec_program_core \${1+\"\$@\"} -+} -+ -+ # Parse options -+ func_parse_lt_options \"\$0\" \${1+\"\$@\"} - - # Find the directory that this script lives in. - thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\` -@@ -3078,7 +4065,7 @@ - - # relink executable if necessary - if test -n \"\$relink_command\"; then -- if relink_command_output=\`eval \"\$relink_command\" 2>&1\`; then : -+ if relink_command_output=\`eval \$relink_command 2>&1\`; then : - else - $ECHO \"\$relink_command_output\" >&2 - $RM \"\$progdir/\$file\" -@@ -3102,6 +4089,18 @@ - - if test -f \"\$progdir/\$program\"; then" - -+ # fixup the dll searchpath if we need to. -+ # -+ # Fix the DLL searchpath if we need to. Do this before prepending -+ # to shlibpath, because on Windows, both are PATH and uninstalled -+ # libraries must come first. -+ if test -n "$dllsearchpath"; then -+ $ECHO "\ -+ # Add the dll search path components to the executable PATH -+ PATH=$dllsearchpath:\$PATH -+" -+ fi -+ - # Export our shlibpath_var if we have one. - if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then - $ECHO "\ -@@ -3116,35 +4115,10 @@ - " - fi - -- # fixup the dll searchpath if we need to. -- if test -n "$dllsearchpath"; then -- $ECHO "\ -- # Add the dll search path components to the executable PATH -- PATH=$dllsearchpath:\$PATH --" -- fi -- - $ECHO "\ - if test \"\$libtool_execute_magic\" != \"$magic\"; then - # Run the actual program with our arguments. --" -- case $host in -- # Backslashes separate directories on plain windows -- *-*-mingw | *-*-os2* | *-cegcc*) -- $ECHO "\ -- exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} --" -- ;; -- -- *) -- $ECHO "\ -- exec \"\$progdir/\$program\" \${1+\"\$@\"} --" -- ;; -- esac -- $ECHO "\ -- \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 -- exit 1 -+ func_exec_program \${1+\"\$@\"} - fi - else - # The program doesn't exist. -@@ -3158,166 +4132,6 @@ - } - - --# func_to_host_path arg --# --# Convert paths to host format when used with build tools. --# Intended for use with "native" mingw (where libtool itself --# is running under the msys shell), or in the following cross- --# build environments: --# $build $host --# mingw (msys) mingw [e.g. native] --# cygwin mingw --# *nix + wine mingw --# where wine is equipped with the `winepath' executable. --# In the native mingw case, the (msys) shell automatically --# converts paths for any non-msys applications it launches, --# but that facility isn't available from inside the cwrapper. --# Similar accommodations are necessary for $host mingw and --# $build cygwin. Calling this function does no harm for other --# $host/$build combinations not listed above. --# --# ARG is the path (on $build) that should be converted to --# the proper representation for $host. The result is stored --# in $func_to_host_path_result. --func_to_host_path () --{ -- func_to_host_path_result="$1" -- if test -n "$1"; then -- case $host in -- *mingw* ) -- lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' -- case $build in -- *mingw* ) # actually, msys -- # awkward: cmd appends spaces to result -- func_to_host_path_result=`( cmd //c echo "$1" ) 2>/dev/null | -- $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"` -- ;; -- *cygwin* ) -- func_to_host_path_result=`cygpath -w "$1" | -- $SED -e "$lt_sed_naive_backslashify"` -- ;; -- * ) -- # Unfortunately, winepath does not exit with a non-zero -- # error code, so we are forced to check the contents of -- # stdout. On the other hand, if the command is not -- # found, the shell will set an exit code of 127 and print -- # *an error message* to stdout. So we must check for both -- # error code of zero AND non-empty stdout, which explains -- # the odd construction: -- func_to_host_path_tmp1=`winepath -w "$1" 2>/dev/null` -- if test "$?" -eq 0 && test -n "${func_to_host_path_tmp1}"; then -- func_to_host_path_result=`$ECHO "$func_to_host_path_tmp1" | -- $SED -e "$lt_sed_naive_backslashify"` -- else -- # Allow warning below. -- func_to_host_path_result= -- fi -- ;; -- esac -- if test -z "$func_to_host_path_result" ; then -- func_error "Could not determine host path corresponding to" -- func_error " \`$1'" -- func_error "Continuing, but uninstalled executables may not work." -- # Fallback: -- func_to_host_path_result="$1" -- fi -- ;; -- esac -- fi --} --# end: func_to_host_path -- --# func_to_host_pathlist arg --# --# Convert pathlists to host format when used with build tools. --# See func_to_host_path(), above. This function supports the --# following $build/$host combinations (but does no harm for --# combinations not listed here): --# $build $host --# mingw (msys) mingw [e.g. native] --# cygwin mingw --# *nix + wine mingw --# --# Path separators are also converted from $build format to --# $host format. If ARG begins or ends with a path separator --# character, it is preserved (but converted to $host format) --# on output. --# --# ARG is a pathlist (on $build) that should be converted to --# the proper representation on $host. The result is stored --# in $func_to_host_pathlist_result. --func_to_host_pathlist () --{ -- func_to_host_pathlist_result="$1" -- if test -n "$1"; then -- case $host in -- *mingw* ) -- lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' -- # Remove leading and trailing path separator characters from -- # ARG. msys behavior is inconsistent here, cygpath turns them -- # into '.;' and ';.', and winepath ignores them completely. -- func_stripname : : "$1" -- func_to_host_pathlist_tmp1=$func_stripname_result -- case $build in -- *mingw* ) # Actually, msys. -- # Awkward: cmd appends spaces to result. -- func_to_host_pathlist_result=` -- ( cmd //c echo "$func_to_host_pathlist_tmp1" ) 2>/dev/null | -- $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"` -- ;; -- *cygwin* ) -- func_to_host_pathlist_result=`cygpath -w -p "$func_to_host_pathlist_tmp1" | -- $SED -e "$lt_sed_naive_backslashify"` -- ;; -- * ) -- # unfortunately, winepath doesn't convert pathlists -- func_to_host_pathlist_result="" -- func_to_host_pathlist_oldIFS=$IFS -- IFS=: -- for func_to_host_pathlist_f in $func_to_host_pathlist_tmp1 ; do -- IFS=$func_to_host_pathlist_oldIFS -- if test -n "$func_to_host_pathlist_f" ; then -- func_to_host_path "$func_to_host_pathlist_f" -- if test -n "$func_to_host_path_result" ; then -- if test -z "$func_to_host_pathlist_result" ; then -- func_to_host_pathlist_result="$func_to_host_path_result" -- else -- func_append func_to_host_pathlist_result ";$func_to_host_path_result" -- fi -- fi -- fi -- done -- IFS=$func_to_host_pathlist_oldIFS -- ;; -- esac -- if test -z "$func_to_host_pathlist_result"; then -- func_error "Could not determine the host path(s) corresponding to" -- func_error " \`$1'" -- func_error "Continuing, but uninstalled executables may not work." -- # Fallback. This may break if $1 contains DOS-style drive -- # specifications. The fix is not to complicate the expression -- # below, but for the user to provide a working wine installation -- # with winepath so that path translation in the cross-to-mingw -- # case works properly. -- lt_replace_pathsep_nix_to_dos="s|:|;|g" -- func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp1" |\ -- $SED -e "$lt_replace_pathsep_nix_to_dos"` -- fi -- # Now, add the leading and trailing path separators back -- case "$1" in -- :* ) func_to_host_pathlist_result=";$func_to_host_pathlist_result" -- ;; -- esac -- case "$1" in -- *: ) func_append func_to_host_pathlist_result ";" -- ;; -- esac -- ;; -- esac -- fi --} --# end: func_to_host_pathlist -- - # func_emit_cwrapperexe_src - # emit the source code for a wrapper executable on stdout - # Must ONLY be called from within func_mode_link because -@@ -3334,10 +4148,6 @@ - - This wrapper executable should never be moved out of the build directory. - If it is, it will not operate correctly. -- -- Currently, it simply execs the wrapper *script* "$SHELL $output", -- but could eventually absorb all of the scripts functionality and -- exec $objdir/$outputname directly. - */ - EOF - cat <<"EOF" -@@ -3462,22 +4272,13 @@ - if (stale) { free ((void *) stale); stale = 0; } \ - } while (0) - --#undef LTWRAPPER_DEBUGPRINTF --#if defined LT_DEBUGWRAPPER --# define LTWRAPPER_DEBUGPRINTF(args) ltwrapper_debugprintf args --static void --ltwrapper_debugprintf (const char *fmt, ...) --{ -- va_list args; -- va_start (args, fmt); -- (void) vfprintf (stderr, fmt, args); -- va_end (args); --} -+#if defined(LT_DEBUGWRAPPER) -+static int lt_debug = 1; - #else --# define LTWRAPPER_DEBUGPRINTF(args) -+static int lt_debug = 0; - #endif - --const char *program_name = NULL; -+const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */ - - void *xmalloc (size_t num); - char *xstrdup (const char *string); -@@ -3487,7 +4288,10 @@ - int make_executable (const char *path); - int check_executable (const char *path); - char *strendzap (char *str, const char *pat); --void lt_fatal (const char *message, ...); -+void lt_debugprintf (const char *file, int line, const char *fmt, ...); -+void lt_fatal (const char *file, int line, const char *message, ...); -+static const char *nonnull (const char *s); -+static const char *nonempty (const char *s); - void lt_setenv (const char *name, const char *value); - char *lt_extend_str (const char *orig_value, const char *add, int to_end); - void lt_update_exe_path (const char *name, const char *value); -@@ -3497,14 +4301,14 @@ - EOF - - cat <<EOF --const char * MAGIC_EXE = "$magic_exe"; -+volatile const char * MAGIC_EXE = "$magic_exe"; - const char * LIB_PATH_VARNAME = "$shlibpath_var"; - EOF - - if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then -- func_to_host_pathlist "$temp_rpath" -+ func_to_host_path "$temp_rpath" - cat <<EOF --const char * LIB_PATH_VALUE = "$func_to_host_pathlist_result"; -+const char * LIB_PATH_VALUE = "$func_to_host_path_result"; - EOF - else - cat <<"EOF" -@@ -3513,10 +4317,10 @@ - fi - - if test -n "$dllsearchpath"; then -- func_to_host_pathlist "$dllsearchpath:" -+ func_to_host_path "$dllsearchpath:" - cat <<EOF - const char * EXE_PATH_VARNAME = "PATH"; --const char * EXE_PATH_VALUE = "$func_to_host_pathlist_result"; -+const char * EXE_PATH_VALUE = "$func_to_host_path_result"; - EOF - else - cat <<"EOF" -@@ -3539,12 +4343,10 @@ - cat <<"EOF" - - #define LTWRAPPER_OPTION_PREFIX "--lt-" --#define LTWRAPPER_OPTION_PREFIX_LENGTH 5 - --static const size_t opt_prefix_len = LTWRAPPER_OPTION_PREFIX_LENGTH; - static const char *ltwrapper_option_prefix = LTWRAPPER_OPTION_PREFIX; -- - static const char *dumpscript_opt = LTWRAPPER_OPTION_PREFIX "dump-script"; -+static const char *debug_opt = LTWRAPPER_OPTION_PREFIX "debug"; - - int - main (int argc, char *argv[]) -@@ -3561,10 +4363,13 @@ - int i; - - program_name = (char *) xstrdup (base_name (argv[0])); -- LTWRAPPER_DEBUGPRINTF (("(main) argv[0] : %s\n", argv[0])); -- LTWRAPPER_DEBUGPRINTF (("(main) program_name : %s\n", program_name)); -+ newargz = XMALLOC (char *, argc + 1); - -- /* very simple arg parsing; don't want to rely on getopt */ -+ /* very simple arg parsing; don't want to rely on getopt -+ * also, copy all non cwrapper options to newargz, except -+ * argz[0], which is handled differently -+ */ -+ newargc=0; - for (i = 1; i < argc; i++) - { - if (strcmp (argv[i], dumpscript_opt) == 0) -@@ -3581,21 +4386,54 @@ - lt_dump_script (stdout); - return 0; - } -+ if (strcmp (argv[i], debug_opt) == 0) -+ { -+ lt_debug = 1; -+ continue; -+ } -+ if (strcmp (argv[i], ltwrapper_option_prefix) == 0) -+ { -+ /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX -+ namespace, but it is not one of the ones we know about and -+ have already dealt with, above (inluding dump-script), then -+ report an error. Otherwise, targets might begin to believe -+ they are allowed to use options in the LTWRAPPER_OPTION_PREFIX -+ namespace. The first time any user complains about this, we'll -+ need to make LTWRAPPER_OPTION_PREFIX a configure-time option -+ or a configure.ac-settable value. -+ */ -+ lt_fatal (__FILE__, __LINE__, -+ "unrecognized %s option: '%s'", -+ ltwrapper_option_prefix, argv[i]); -+ } -+ /* otherwise ... */ -+ newargz[++newargc] = xstrdup (argv[i]); - } -+ newargz[++newargc] = NULL; -+ -+EOF -+ cat <<EOF -+ /* The GNU banner must be the first non-error debug message */ -+ lt_debugprintf (__FILE__, __LINE__, "libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\n"); -+EOF -+ cat <<"EOF" -+ lt_debugprintf (__FILE__, __LINE__, "(main) argv[0]: %s\n", argv[0]); -+ lt_debugprintf (__FILE__, __LINE__, "(main) program_name: %s\n", program_name); - -- newargz = XMALLOC (char *, argc + 1); - tmp_pathspec = find_executable (argv[0]); - if (tmp_pathspec == NULL) -- lt_fatal ("Couldn't find %s", argv[0]); -- LTWRAPPER_DEBUGPRINTF (("(main) found exe (before symlink chase) at : %s\n", -- tmp_pathspec)); -+ lt_fatal (__FILE__, __LINE__, "couldn't find %s", argv[0]); -+ lt_debugprintf (__FILE__, __LINE__, -+ "(main) found exe (before symlink chase) at: %s\n", -+ tmp_pathspec); - - actual_cwrapper_path = chase_symlinks (tmp_pathspec); -- LTWRAPPER_DEBUGPRINTF (("(main) found exe (after symlink chase) at : %s\n", -- actual_cwrapper_path)); -+ lt_debugprintf (__FILE__, __LINE__, -+ "(main) found exe (after symlink chase) at: %s\n", -+ actual_cwrapper_path); - XFREE (tmp_pathspec); - -- actual_cwrapper_name = xstrdup( base_name (actual_cwrapper_path)); -+ actual_cwrapper_name = xstrdup (base_name (actual_cwrapper_path)); - strendzap (actual_cwrapper_path, actual_cwrapper_name); - - /* wrapper name transforms */ -@@ -3613,8 +4451,9 @@ - target_name = tmp_pathspec; - tmp_pathspec = 0; - -- LTWRAPPER_DEBUGPRINTF (("(main) libtool target name: %s\n", -- target_name)); -+ lt_debugprintf (__FILE__, __LINE__, -+ "(main) libtool target name: %s\n", -+ target_name); - EOF - - cat <<EOF -@@ -3664,35 +4503,19 @@ - - lt_setenv ("BIN_SH", "xpg4"); /* for Tru64 */ - lt_setenv ("DUALCASE", "1"); /* for MSK sh */ -- lt_update_lib_path (LIB_PATH_VARNAME, LIB_PATH_VALUE); -+ /* Update the DLL searchpath. EXE_PATH_VALUE ($dllsearchpath) must -+ be prepended before (that is, appear after) LIB_PATH_VALUE ($temp_rpath) -+ because on Windows, both *_VARNAMEs are PATH but uninstalled -+ libraries must come first. */ - lt_update_exe_path (EXE_PATH_VARNAME, EXE_PATH_VALUE); -+ lt_update_lib_path (LIB_PATH_VARNAME, LIB_PATH_VALUE); - -- newargc=0; -- for (i = 1; i < argc; i++) -- { -- if (strncmp (argv[i], ltwrapper_option_prefix, opt_prefix_len) == 0) -- { -- /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX -- namespace, but it is not one of the ones we know about and -- have already dealt with, above (inluding dump-script), then -- report an error. Otherwise, targets might begin to believe -- they are allowed to use options in the LTWRAPPER_OPTION_PREFIX -- namespace. The first time any user complains about this, we'll -- need to make LTWRAPPER_OPTION_PREFIX a configure-time option -- or a configure.ac-settable value. -- */ -- lt_fatal ("Unrecognized option in %s namespace: '%s'", -- ltwrapper_option_prefix, argv[i]); -- } -- /* otherwise ... */ -- newargz[++newargc] = xstrdup (argv[i]); -- } -- newargz[++newargc] = NULL; -- -- LTWRAPPER_DEBUGPRINTF (("(main) lt_argv_zero : %s\n", (lt_argv_zero ? lt_argv_zero : "<NULL>"))); -+ lt_debugprintf (__FILE__, __LINE__, "(main) lt_argv_zero: %s\n", -+ nonnull (lt_argv_zero)); - for (i = 0; i < newargc; i++) - { -- LTWRAPPER_DEBUGPRINTF (("(main) newargz[%d] : %s\n", i, (newargz[i] ? newargz[i] : "<NULL>"))); -+ lt_debugprintf (__FILE__, __LINE__, "(main) newargz[%d]: %s\n", -+ i, nonnull (newargz[i])); - } - - EOF -@@ -3706,7 +4529,9 @@ - if (rval == -1) - { - /* failed to start process */ -- LTWRAPPER_DEBUGPRINTF (("(main) failed to launch target \"%s\": errno = %d\n", lt_argv_zero, errno)); -+ lt_debugprintf (__FILE__, __LINE__, -+ "(main) failed to launch target \"%s\": %s\n", -+ lt_argv_zero, nonnull (strerror (errno))); - return 127; - } - return rval; -@@ -3728,7 +4553,7 @@ - { - void *p = (void *) malloc (num); - if (!p) -- lt_fatal ("Memory exhausted"); -+ lt_fatal (__FILE__, __LINE__, "memory exhausted"); - - return p; - } -@@ -3762,8 +4587,8 @@ - { - struct stat st; - -- LTWRAPPER_DEBUGPRINTF (("(check_executable) : %s\n", -- path ? (*path ? path : "EMPTY!") : "NULL!")); -+ lt_debugprintf (__FILE__, __LINE__, "(check_executable): %s\n", -+ nonempty (path)); - if ((!path) || (!*path)) - return 0; - -@@ -3780,8 +4605,8 @@ - int rval = 0; - struct stat st; - -- LTWRAPPER_DEBUGPRINTF (("(make_executable) : %s\n", -- path ? (*path ? path : "EMPTY!") : "NULL!")); -+ lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n", -+ nonempty (path)); - if ((!path) || (!*path)) - return 0; - -@@ -3807,8 +4632,8 @@ - int tmp_len; - char *concat_name; - -- LTWRAPPER_DEBUGPRINTF (("(find_executable) : %s\n", -- wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!")); -+ lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n", -+ nonempty (wrapper)); - - if ((wrapper == NULL) || (*wrapper == '\0')) - return NULL; -@@ -3861,7 +4686,8 @@ - { - /* empty path: current directory */ - if (getcwd (tmp, LT_PATHMAX) == NULL) -- lt_fatal ("getcwd failed"); -+ lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", -+ nonnull (strerror (errno))); - tmp_len = strlen (tmp); - concat_name = - XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); -@@ -3886,7 +4712,8 @@ - } - /* Relative path | not found in path: prepend cwd */ - if (getcwd (tmp, LT_PATHMAX) == NULL) -- lt_fatal ("getcwd failed"); -+ lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", -+ nonnull (strerror (errno))); - tmp_len = strlen (tmp); - concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); - memcpy (concat_name, tmp, tmp_len); -@@ -3912,8 +4739,9 @@ - int has_symlinks = 0; - while (strlen (tmp_pathspec) && !has_symlinks) - { -- LTWRAPPER_DEBUGPRINTF (("checking path component for symlinks: %s\n", -- tmp_pathspec)); -+ lt_debugprintf (__FILE__, __LINE__, -+ "checking path component for symlinks: %s\n", -+ tmp_pathspec); - if (lstat (tmp_pathspec, &s) == 0) - { - if (S_ISLNK (s.st_mode) != 0) -@@ -3935,8 +4763,9 @@ - } - else - { -- char *errstr = strerror (errno); -- lt_fatal ("Error accessing file %s (%s)", tmp_pathspec, errstr); -+ lt_fatal (__FILE__, __LINE__, -+ "error accessing file \"%s\": %s", -+ tmp_pathspec, nonnull (strerror (errno))); - } - } - XFREE (tmp_pathspec); -@@ -3949,7 +4778,8 @@ - tmp_pathspec = realpath (pathspec, buf); - if (tmp_pathspec == 0) - { -- lt_fatal ("Could not follow symlinks for %s", pathspec); -+ lt_fatal (__FILE__, __LINE__, -+ "could not follow symlinks for %s", pathspec); - } - return xstrdup (tmp_pathspec); - #endif -@@ -3975,11 +4805,25 @@ - return str; - } - -+void -+lt_debugprintf (const char *file, int line, const char *fmt, ...) -+{ -+ va_list args; -+ if (lt_debug) -+ { -+ (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line); -+ va_start (args, fmt); -+ (void) vfprintf (stderr, fmt, args); -+ va_end (args); -+ } -+} -+ - static void --lt_error_core (int exit_status, const char *mode, -+lt_error_core (int exit_status, const char *file, -+ int line, const char *mode, - const char *message, va_list ap) - { -- fprintf (stderr, "%s: %s: ", program_name, mode); -+ fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode); - vfprintf (stderr, message, ap); - fprintf (stderr, ".\n"); - -@@ -3988,20 +4832,32 @@ - } - - void --lt_fatal (const char *message, ...) -+lt_fatal (const char *file, int line, const char *message, ...) - { - va_list ap; - va_start (ap, message); -- lt_error_core (EXIT_FAILURE, "FATAL", message, ap); -+ lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap); - va_end (ap); - } - -+static const char * -+nonnull (const char *s) -+{ -+ return s ? s : "(null)"; -+} -+ -+static const char * -+nonempty (const char *s) -+{ -+ return (s && !*s) ? "(empty)" : nonnull (s); -+} -+ - void - lt_setenv (const char *name, const char *value) - { -- LTWRAPPER_DEBUGPRINTF (("(lt_setenv) setting '%s' to '%s'\n", -- (name ? name : "<NULL>"), -- (value ? value : "<NULL>"))); -+ lt_debugprintf (__FILE__, __LINE__, -+ "(lt_setenv) setting '%s' to '%s'\n", -+ nonnull (name), nonnull (value)); - { - #ifdef HAVE_SETENV - /* always make a copy, for consistency with !HAVE_SETENV */ -@@ -4049,9 +4905,9 @@ - void - lt_update_exe_path (const char *name, const char *value) - { -- LTWRAPPER_DEBUGPRINTF (("(lt_update_exe_path) modifying '%s' by prepending '%s'\n", -- (name ? name : "<NULL>"), -- (value ? value : "<NULL>"))); -+ lt_debugprintf (__FILE__, __LINE__, -+ "(lt_update_exe_path) modifying '%s' by prepending '%s'\n", -+ nonnull (name), nonnull (value)); - - if (name && *name && value && *value) - { -@@ -4070,9 +4926,9 @@ - void - lt_update_lib_path (const char *name, const char *value) - { -- LTWRAPPER_DEBUGPRINTF (("(lt_update_lib_path) modifying '%s' by prepending '%s'\n", -- (name ? name : "<NULL>"), -- (value ? value : "<NULL>"))); -+ lt_debugprintf (__FILE__, __LINE__, -+ "(lt_update_lib_path) modifying '%s' by prepending '%s'\n", -+ nonnull (name), nonnull (value)); - - if (name && *name && value && *value) - { -@@ -4222,7 +5078,7 @@ - func_win32_import_lib_p () - { - $opt_debug -- case `eval "$file_magic_cmd \"\$1\" 2>/dev/null" | $SED -e 10q` in -+ case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in - *import*) : ;; - *) false ;; - esac -@@ -4401,9 +5257,9 @@ - ;; - *) - if test "$prev" = dlfiles; then -- dlfiles="$dlfiles $arg" -+ func_append dlfiles " $arg" - else -- dlprefiles="$dlprefiles $arg" -+ func_append dlprefiles " $arg" - fi - prev= - continue -@@ -4427,7 +5283,7 @@ - *-*-darwin*) - case "$deplibs " in - *" $qarg.ltframework "*) ;; -- *) deplibs="$deplibs $qarg.ltframework" # this is fixed later -+ *) func_append deplibs " $qarg.ltframework" # this is fixed later - ;; - esac - ;; -@@ -4446,7 +5302,7 @@ - moreargs= - for fil in `cat "$save_arg"` - do --# moreargs="$moreargs $fil" -+# func_append moreargs " $fil" - arg=$fil - # A libtool-controlled object. - -@@ -4475,7 +5331,7 @@ - - if test "$prev" = dlfiles; then - if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then -- dlfiles="$dlfiles $pic_object" -+ func_append dlfiles " $pic_object" - prev= - continue - else -@@ -4487,7 +5343,7 @@ - # CHECK ME: I think I busted this. -Ossama - if test "$prev" = dlprefiles; then - # Preload the old-style object. -- dlprefiles="$dlprefiles $pic_object" -+ func_append dlprefiles " $pic_object" - prev= - fi - -@@ -4557,12 +5413,12 @@ - if test "$prev" = rpath; then - case "$rpath " in - *" $arg "*) ;; -- *) rpath="$rpath $arg" ;; -+ *) func_append rpath " $arg" ;; - esac - else - case "$xrpath " in - *" $arg "*) ;; -- *) xrpath="$xrpath $arg" ;; -+ *) func_append xrpath " $arg" ;; - esac - fi - prev= -@@ -4574,28 +5430,28 @@ - continue - ;; - weak) -- weak_libs="$weak_libs $arg" -+ func_append weak_libs " $arg" - prev= - continue - ;; - xcclinker) -- linker_flags="$linker_flags $qarg" -- compiler_flags="$compiler_flags $qarg" -+ func_append linker_flags " $qarg" -+ func_append compiler_flags " $qarg" - prev= - func_append compile_command " $qarg" - func_append finalize_command " $qarg" - continue - ;; - xcompiler) -- compiler_flags="$compiler_flags $qarg" -+ func_append compiler_flags " $qarg" - prev= - func_append compile_command " $qarg" - func_append finalize_command " $qarg" - continue - ;; - xlinker) -- linker_flags="$linker_flags $qarg" -- compiler_flags="$compiler_flags $wl$qarg" -+ func_append linker_flags " $qarg" -+ func_append compiler_flags " $wl$qarg" - prev= - func_append compile_command " $wl$qarg" - func_append finalize_command " $wl$qarg" -@@ -4686,15 +5542,16 @@ - ;; - - -L*) -- func_stripname '-L' '' "$arg" -- dir=$func_stripname_result -- if test -z "$dir"; then -+ func_stripname "-L" '' "$arg" -+ if test -z "$func_stripname_result"; then - if test "$#" -gt 0; then - func_fatal_error "require no space between \`-L' and \`$1'" - else - func_fatal_error "need path for \`-L' option" - fi - fi -+ func_resolve_sysroot "$func_stripname_result" -+ dir=$func_resolve_sysroot_result - # We need an absolute path. - case $dir in - [\\/]* | [A-Za-z]:[\\/]*) ;; -@@ -4706,10 +5563,16 @@ - ;; - esac - case "$deplibs " in -- *" -L$dir "*) ;; -+ *" -L$dir "* | *" $arg "*) -+ # Will only happen for absolute or sysroot arguments -+ ;; - *) -- deplibs="$deplibs -L$dir" -- lib_search_path="$lib_search_path $dir" -+ # Preserve sysroot, but never include relative directories -+ case $dir in -+ [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;; -+ *) func_append deplibs " -L$dir" ;; -+ esac -+ func_append lib_search_path " $dir" - ;; - esac - case $host in -@@ -4718,12 +5581,12 @@ - case :$dllsearchpath: in - *":$dir:"*) ;; - ::) dllsearchpath=$dir;; -- *) dllsearchpath="$dllsearchpath:$dir";; -+ *) func_append dllsearchpath ":$dir";; - esac - case :$dllsearchpath: in - *":$testbindir:"*) ;; - ::) dllsearchpath=$testbindir;; -- *) dllsearchpath="$dllsearchpath:$testbindir";; -+ *) func_append dllsearchpath ":$testbindir";; - esac - ;; - esac -@@ -4747,7 +5610,7 @@ - ;; - *-*-rhapsody* | *-*-darwin1.[012]) - # Rhapsody C and math libraries are in the System framework -- deplibs="$deplibs System.ltframework" -+ func_append deplibs " System.ltframework" - continue - ;; - *-*-sco3.2v5* | *-*-sco5v6*) -@@ -4758,9 +5621,6 @@ - # Compiler inserts libc in the correct place for threads to work - test "X$arg" = "X-lc" && continue - ;; -- *-*-linux*) -- test "X$arg" = "X-lc" && continue -- ;; - esac - elif test "X$arg" = "X-lc_r"; then - case $host in -@@ -4770,7 +5630,7 @@ - ;; - esac - fi -- deplibs="$deplibs $arg" -+ func_append deplibs " $arg" - continue - ;; - -@@ -4782,8 +5642,8 @@ - # Tru64 UNIX uses -model [arg] to determine the layout of C++ - # classes, name mangling, and exception handling. - # Darwin uses the -arch flag to determine output architecture. -- -model|-arch|-isysroot) -- compiler_flags="$compiler_flags $arg" -+ -model|-arch|-isysroot|--sysroot) -+ func_append compiler_flags " $arg" - func_append compile_command " $arg" - func_append finalize_command " $arg" - prev=xcompiler -@@ -4791,12 +5651,12 @@ - ;; - - -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) -- compiler_flags="$compiler_flags $arg" -+ func_append compiler_flags " $arg" - func_append compile_command " $arg" - func_append finalize_command " $arg" - case "$new_inherited_linker_flags " in - *" $arg "*) ;; -- * ) new_inherited_linker_flags="$new_inherited_linker_flags $arg" ;; -+ * ) func_append new_inherited_linker_flags " $arg" ;; - esac - continue - ;; -@@ -4863,13 +5723,17 @@ - # We need an absolute path. - case $dir in - [\\/]* | [A-Za-z]:[\\/]*) ;; -+ =*) -+ func_stripname '=' '' "$dir" -+ dir=$lt_sysroot$func_stripname_result -+ ;; - *) - func_fatal_error "only absolute run-paths are allowed" - ;; - esac - case "$xrpath " in - *" $dir "*) ;; -- *) xrpath="$xrpath $dir" ;; -+ *) func_append xrpath " $dir" ;; - esac - continue - ;; -@@ -4922,8 +5786,8 @@ - for flag in $args; do - IFS="$save_ifs" - func_quote_for_eval "$flag" -- arg="$arg $func_quote_for_eval_result" -- compiler_flags="$compiler_flags $func_quote_for_eval_result" -+ func_append arg " $func_quote_for_eval_result" -+ func_append compiler_flags " $func_quote_for_eval_result" - done - IFS="$save_ifs" - func_stripname ' ' '' "$arg" -@@ -4938,9 +5802,9 @@ - for flag in $args; do - IFS="$save_ifs" - func_quote_for_eval "$flag" -- arg="$arg $wl$func_quote_for_eval_result" -- compiler_flags="$compiler_flags $wl$func_quote_for_eval_result" -- linker_flags="$linker_flags $func_quote_for_eval_result" -+ func_append arg " $wl$func_quote_for_eval_result" -+ func_append compiler_flags " $wl$func_quote_for_eval_result" -+ func_append linker_flags " $func_quote_for_eval_result" - done - IFS="$save_ifs" - func_stripname ' ' '' "$arg" -@@ -4968,24 +5832,27 @@ - arg="$func_quote_for_eval_result" - ;; - -- # -64, -mips[0-9] enable 64-bit mode on the SGI compiler -- # -r[0-9][0-9]* specifies the processor on the SGI compiler -- # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler -- # +DA*, +DD* enable 64-bit mode on the HP compiler -- # -q* pass through compiler args for the IBM compiler -- # -m*, -t[45]*, -txscale* pass through architecture-specific -- # compiler args for GCC -- # -F/path gives path to uninstalled frameworks, gcc on darwin -- # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC -- # @file GCC response files -- # -tp=* Portland pgcc target processor selection -+ # Flags to be passed through unchanged, with rationale: -+ # -64, -mips[0-9] enable 64-bit mode for the SGI compiler -+ # -r[0-9][0-9]* specify processor for the SGI compiler -+ # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler -+ # +DA*, +DD* enable 64-bit mode for the HP compiler -+ # -q* compiler args for the IBM compiler -+ # -m*, -t[45]*, -txscale* architecture-specific flags for GCC -+ # -F/path path to uninstalled frameworks, gcc on darwin -+ # -p, -pg, --coverage, -fprofile-* profiling flags for GCC -+ # @file GCC response files -+ # -tp=* Portland pgcc target processor selection -+ # --sysroot=* for sysroot support -+ # -O*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization - -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ -- -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*) -+ -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \ -+ -O*|-flto*|-fwhopr*|-fuse-linker-plugin) - func_quote_for_eval "$arg" - arg="$func_quote_for_eval_result" - func_append compile_command " $arg" - func_append finalize_command " $arg" -- compiler_flags="$compiler_flags $arg" -+ func_append compiler_flags " $arg" - continue - ;; - -@@ -4997,7 +5864,7 @@ - - *.$objext) - # A standard object. -- objs="$objs $arg" -+ func_append objs " $arg" - ;; - - *.lo) -@@ -5028,7 +5895,7 @@ - - if test "$prev" = dlfiles; then - if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then -- dlfiles="$dlfiles $pic_object" -+ func_append dlfiles " $pic_object" - prev= - continue - else -@@ -5040,7 +5907,7 @@ - # CHECK ME: I think I busted this. -Ossama - if test "$prev" = dlprefiles; then - # Preload the old-style object. -- dlprefiles="$dlprefiles $pic_object" -+ func_append dlprefiles " $pic_object" - prev= - fi - -@@ -5085,24 +5952,25 @@ - - *.$libext) - # An archive. -- deplibs="$deplibs $arg" -- old_deplibs="$old_deplibs $arg" -+ func_append deplibs " $arg" -+ func_append old_deplibs " $arg" - continue - ;; - - *.la) - # A libtool-controlled library. - -+ func_resolve_sysroot "$arg" - if test "$prev" = dlfiles; then - # This library was specified with -dlopen. -- dlfiles="$dlfiles $arg" -+ func_append dlfiles " $func_resolve_sysroot_result" - prev= - elif test "$prev" = dlprefiles; then - # The library was specified with -dlpreopen. -- dlprefiles="$dlprefiles $arg" -+ func_append dlprefiles " $func_resolve_sysroot_result" - prev= - else -- deplibs="$deplibs $arg" -+ func_append deplibs " $func_resolve_sysroot_result" - fi - continue - ;; -@@ -5127,7 +5995,7 @@ - func_fatal_help "the \`$prevarg' option requires an argument" - - if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then -- eval "arg=\"$export_dynamic_flag_spec\"" -+ eval arg=\"$export_dynamic_flag_spec\" - func_append compile_command " $arg" - func_append finalize_command " $arg" - fi -@@ -5144,11 +6012,13 @@ - else - shlib_search_path= - fi -- eval "sys_lib_search_path=\"$sys_lib_search_path_spec\"" -- eval "sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"" -+ eval sys_lib_search_path=\"$sys_lib_search_path_spec\" -+ eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" - - func_dirname "$output" "/" "" - output_objdir="$func_dirname_result$objdir" -+ func_to_tool_file "$output_objdir/" -+ tool_output_objdir=$func_to_tool_file_result - # Create the object directory. - func_mkdir_p "$output_objdir" - -@@ -5169,12 +6039,12 @@ - # Find all interdependent deplibs by searching for libraries - # that are linked more than once (e.g. -la -lb -la) - for deplib in $deplibs; do -- if $opt_duplicate_deps ; then -+ if $opt_preserve_dup_deps ; then - case "$libs " in -- *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; -+ *" $deplib "*) func_append specialdeplibs " $deplib" ;; - esac - fi -- libs="$libs $deplib" -+ func_append libs " $deplib" - done - - if test "$linkmode" = lib; then -@@ -5187,9 +6057,9 @@ - if $opt_duplicate_compiler_generated_deps; then - for pre_post_dep in $predeps $postdeps; do - case "$pre_post_deps " in -- *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;; -+ *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;; - esac -- pre_post_deps="$pre_post_deps $pre_post_dep" -+ func_append pre_post_deps " $pre_post_dep" - done - fi - pre_post_deps= -@@ -5256,8 +6126,9 @@ - for lib in $dlprefiles; do - # Ignore non-libtool-libs - dependency_libs= -+ func_resolve_sysroot "$lib" - case $lib in -- *.la) func_source "$lib" ;; -+ *.la) func_source "$func_resolve_sysroot_result" ;; - esac - - # Collect preopened libtool deplibs, except any this library -@@ -5267,7 +6138,7 @@ - deplib_base=$func_basename_result - case " $weak_libs " in - *" $deplib_base "*) ;; -- *) deplibs="$deplibs $deplib" ;; -+ *) func_append deplibs " $deplib" ;; - esac - done - done -@@ -5288,11 +6159,11 @@ - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - else -- compiler_flags="$compiler_flags $deplib" -+ func_append compiler_flags " $deplib" - if test "$linkmode" = lib ; then - case "$new_inherited_linker_flags " in - *" $deplib "*) ;; -- * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;; -+ * ) func_append new_inherited_linker_flags " $deplib" ;; - esac - fi - fi -@@ -5377,7 +6248,7 @@ - if test "$linkmode" = lib ; then - case "$new_inherited_linker_flags " in - *" $deplib "*) ;; -- * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;; -+ * ) func_append new_inherited_linker_flags " $deplib" ;; - esac - fi - fi -@@ -5390,7 +6261,8 @@ - test "$pass" = conv && continue - newdependency_libs="$deplib $newdependency_libs" - func_stripname '-L' '' "$deplib" -- newlib_search_path="$newlib_search_path $func_stripname_result" -+ func_resolve_sysroot "$func_stripname_result" -+ func_append newlib_search_path " $func_resolve_sysroot_result" - ;; - prog) - if test "$pass" = conv; then -@@ -5404,7 +6276,8 @@ - finalize_deplibs="$deplib $finalize_deplibs" - fi - func_stripname '-L' '' "$deplib" -- newlib_search_path="$newlib_search_path $func_stripname_result" -+ func_resolve_sysroot "$func_stripname_result" -+ func_append newlib_search_path " $func_resolve_sysroot_result" - ;; - *) - func_warning "\`-L' is ignored for archives/objects" -@@ -5415,17 +6288,21 @@ - -R*) - if test "$pass" = link; then - func_stripname '-R' '' "$deplib" -- dir=$func_stripname_result -+ func_resolve_sysroot "$func_stripname_result" -+ dir=$func_resolve_sysroot_result - # Make sure the xrpath contains only unique directories. - case "$xrpath " in - *" $dir "*) ;; -- *) xrpath="$xrpath $dir" ;; -+ *) func_append xrpath " $dir" ;; - esac - fi - deplibs="$deplib $deplibs" - continue - ;; -- *.la) lib="$deplib" ;; -+ *.la) -+ func_resolve_sysroot "$deplib" -+ lib=$func_resolve_sysroot_result -+ ;; - *.$libext) - if test "$pass" = conv; then - deplibs="$deplib $deplibs" -@@ -5488,11 +6365,11 @@ - if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then - # If there is no dlopen support or we're linking statically, - # we need to preload. -- newdlprefiles="$newdlprefiles $deplib" -+ func_append newdlprefiles " $deplib" - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - else -- newdlfiles="$newdlfiles $deplib" -+ func_append newdlfiles " $deplib" - fi - fi - continue -@@ -5538,7 +6415,7 @@ - for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do - case " $new_inherited_linker_flags " in - *" $tmp_inherited_linker_flag "*) ;; -- *) new_inherited_linker_flags="$new_inherited_linker_flags $tmp_inherited_linker_flag";; -+ *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";; - esac - done - fi -@@ -5546,8 +6423,8 @@ - if test "$linkmode,$pass" = "lib,link" || - test "$linkmode,$pass" = "prog,scan" || - { test "$linkmode" != prog && test "$linkmode" != lib; }; then -- test -n "$dlopen" && dlfiles="$dlfiles $dlopen" -- test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen" -+ test -n "$dlopen" && func_append dlfiles " $dlopen" -+ test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen" - fi - - if test "$pass" = conv; then -@@ -5558,20 +6435,20 @@ - func_fatal_error "cannot find name of link library for \`$lib'" - fi - # It is a libtool convenience library, so add in its objects. -- convenience="$convenience $ladir/$objdir/$old_library" -- old_convenience="$old_convenience $ladir/$objdir/$old_library" -+ func_append convenience " $ladir/$objdir/$old_library" -+ func_append old_convenience " $ladir/$objdir/$old_library" - elif test "$linkmode" != prog && test "$linkmode" != lib; then - func_fatal_error "\`$lib' is not a convenience library" - fi - tmp_libs= - for deplib in $dependency_libs; do - deplibs="$deplib $deplibs" -- if $opt_duplicate_deps ; then -+ if $opt_preserve_dup_deps ; then - case "$tmp_libs " in -- *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; -+ *" $deplib "*) func_append specialdeplibs " $deplib" ;; - esac - fi -- tmp_libs="$tmp_libs $deplib" -+ func_append tmp_libs " $deplib" - done - continue - fi # $pass = conv -@@ -5579,9 +6456,15 @@ - - # Get the name of the library we link against. - linklib= -- for l in $old_library $library_names; do -- linklib="$l" -- done -+ if test -n "$old_library" && -+ { test "$prefer_static_libs" = yes || -+ test "$prefer_static_libs,$installed" = "built,no"; }; then -+ linklib=$old_library -+ else -+ for l in $old_library $library_names; do -+ linklib="$l" -+ done -+ fi - if test -z "$linklib"; then - func_fatal_error "cannot find name of link library for \`$lib'" - fi -@@ -5598,9 +6481,9 @@ - # statically, we need to preload. We also need to preload any - # dependent libraries so libltdl's deplib preloader doesn't - # bomb out in the load deplibs phase. -- dlprefiles="$dlprefiles $lib $dependency_libs" -+ func_append dlprefiles " $lib $dependency_libs" - else -- newdlfiles="$newdlfiles $lib" -+ func_append newdlfiles " $lib" - fi - continue - fi # $pass = dlopen -@@ -5622,14 +6505,14 @@ - - # Find the relevant object directory and library name. - if test "X$installed" = Xyes; then -- if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then -+ if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then - func_warning "library \`$lib' was moved." - dir="$ladir" - absdir="$abs_ladir" - libdir="$abs_ladir" - else -- dir="$libdir" -- absdir="$libdir" -+ dir="$lt_sysroot$libdir" -+ absdir="$lt_sysroot$libdir" - fi - test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes - else -@@ -5637,12 +6520,12 @@ - dir="$ladir" - absdir="$abs_ladir" - # Remove this search path later -- notinst_path="$notinst_path $abs_ladir" -+ func_append notinst_path " $abs_ladir" - else - dir="$ladir/$objdir" - absdir="$abs_ladir/$objdir" - # Remove this search path later -- notinst_path="$notinst_path $abs_ladir" -+ func_append notinst_path " $abs_ladir" - fi - fi # $installed = yes - func_stripname 'lib' '.la' "$laname" -@@ -5653,20 +6536,46 @@ - if test -z "$libdir" && test "$linkmode" = prog; then - func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'" - fi -- # Prefer using a static library (so that no silly _DYNAMIC symbols -- # are required to link). -- if test -n "$old_library"; then -- newdlprefiles="$newdlprefiles $dir/$old_library" -- # Keep a list of preopened convenience libraries to check -- # that they are being used correctly in the link pass. -- test -z "$libdir" && \ -- dlpreconveniencelibs="$dlpreconveniencelibs $dir/$old_library" -- # Otherwise, use the dlname, so that lt_dlopen finds it. -- elif test -n "$dlname"; then -- newdlprefiles="$newdlprefiles $dir/$dlname" -- else -- newdlprefiles="$newdlprefiles $dir/$linklib" -- fi -+ case "$host" in -+ # special handling for platforms with PE-DLLs. -+ *cygwin* | *mingw* | *cegcc* ) -+ # Linker will automatically link against shared library if both -+ # static and shared are present. Therefore, ensure we extract -+ # symbols from the import library if a shared library is present -+ # (otherwise, the dlopen module name will be incorrect). We do -+ # this by putting the import library name into $newdlprefiles. -+ # We recover the dlopen module name by 'saving' the la file -+ # name in a special purpose variable, and (later) extracting the -+ # dlname from the la file. -+ if test -n "$dlname"; then -+ func_tr_sh "$dir/$linklib" -+ eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname" -+ func_append newdlprefiles " $dir/$linklib" -+ else -+ func_append newdlprefiles " $dir/$old_library" -+ # Keep a list of preopened convenience libraries to check -+ # that they are being used correctly in the link pass. -+ test -z "$libdir" && \ -+ func_append dlpreconveniencelibs " $dir/$old_library" -+ fi -+ ;; -+ * ) -+ # Prefer using a static library (so that no silly _DYNAMIC symbols -+ # are required to link). -+ if test -n "$old_library"; then -+ func_append newdlprefiles " $dir/$old_library" -+ # Keep a list of preopened convenience libraries to check -+ # that they are being used correctly in the link pass. -+ test -z "$libdir" && \ -+ func_append dlpreconveniencelibs " $dir/$old_library" -+ # Otherwise, use the dlname, so that lt_dlopen finds it. -+ elif test -n "$dlname"; then -+ func_append newdlprefiles " $dir/$dlname" -+ else -+ func_append newdlprefiles " $dir/$linklib" -+ fi -+ ;; -+ esac - fi # $pass = dlpreopen - - if test -z "$libdir"; then -@@ -5684,7 +6593,7 @@ - - - if test "$linkmode" = prog && test "$pass" != link; then -- newlib_search_path="$newlib_search_path $ladir" -+ func_append newlib_search_path " $ladir" - deplibs="$lib $deplibs" - - linkalldeplibs=no -@@ -5697,7 +6606,8 @@ - for deplib in $dependency_libs; do - case $deplib in - -L*) func_stripname '-L' '' "$deplib" -- newlib_search_path="$newlib_search_path $func_stripname_result" -+ func_resolve_sysroot "$func_stripname_result" -+ func_append newlib_search_path " $func_resolve_sysroot_result" - ;; - esac - # Need to link against all dependency_libs? -@@ -5708,12 +6618,12 @@ - # or/and link against static libraries - newdependency_libs="$deplib $newdependency_libs" - fi -- if $opt_duplicate_deps ; then -+ if $opt_preserve_dup_deps ; then - case "$tmp_libs " in -- *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; -+ *" $deplib "*) func_append specialdeplibs " $deplib" ;; - esac - fi -- tmp_libs="$tmp_libs $deplib" -+ func_append tmp_libs " $deplib" - done # for deplib - continue - fi # $linkmode = prog... -@@ -5728,7 +6638,7 @@ - # Make sure the rpath contains only unique directories. - case "$temp_rpath:" in - *"$absdir:"*) ;; -- *) temp_rpath="$temp_rpath$absdir:" ;; -+ *) func_append temp_rpath "$absdir:" ;; - esac - fi - -@@ -5740,7 +6650,7 @@ - *) - case "$compile_rpath " in - *" $absdir "*) ;; -- *) compile_rpath="$compile_rpath $absdir" -+ *) func_append compile_rpath " $absdir" ;; - esac - ;; - esac -@@ -5749,7 +6659,7 @@ - *) - case "$finalize_rpath " in - *" $libdir "*) ;; -- *) finalize_rpath="$finalize_rpath $libdir" -+ *) func_append finalize_rpath " $libdir" ;; - esac - ;; - esac -@@ -5774,12 +6684,12 @@ - case $host in - *cygwin* | *mingw* | *cegcc*) - # No point in relinking DLLs because paths are not encoded -- notinst_deplibs="$notinst_deplibs $lib" -+ func_append notinst_deplibs " $lib" - need_relink=no - ;; - *) - if test "$installed" = no; then -- notinst_deplibs="$notinst_deplibs $lib" -+ func_append notinst_deplibs " $lib" - need_relink=yes - fi - ;; -@@ -5814,7 +6724,7 @@ - *) - case "$compile_rpath " in - *" $absdir "*) ;; -- *) compile_rpath="$compile_rpath $absdir" -+ *) func_append compile_rpath " $absdir" ;; - esac - ;; - esac -@@ -5823,7 +6733,7 @@ - *) - case "$finalize_rpath " in - *" $libdir "*) ;; -- *) finalize_rpath="$finalize_rpath $libdir" -+ *) func_append finalize_rpath " $libdir" ;; - esac - ;; - esac -@@ -5835,7 +6745,7 @@ - shift - realname="$1" - shift -- eval "libname=\"$libname_spec\"" -+ libname=`eval "\\$ECHO \"$libname_spec\""` - # use dlname if we got it. it's perfectly good, no? - if test -n "$dlname"; then - soname="$dlname" -@@ -5848,7 +6758,7 @@ - versuffix="-$major" - ;; - esac -- eval "soname=\"$soname_spec\"" -+ eval soname=\"$soname_spec\" - else - soname="$realname" - fi -@@ -5877,7 +6787,7 @@ - linklib=$newlib - fi # test -n "$old_archive_from_expsyms_cmds" - -- if test "$linkmode" = prog || test "$mode" != relink; then -+ if test "$linkmode" = prog || test "$opt_mode" != relink; then - add_shlibpath= - add_dir= - add= -@@ -5933,7 +6843,7 @@ - if test -n "$inst_prefix_dir"; then - case $libdir in - [\\/]*) -- add_dir="$add_dir -L$inst_prefix_dir$libdir" -+ func_append add_dir " -L$inst_prefix_dir$libdir" - ;; - esac - fi -@@ -5955,7 +6865,7 @@ - if test -n "$add_shlibpath"; then - case :$compile_shlibpath: in - *":$add_shlibpath:"*) ;; -- *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;; -+ *) func_append compile_shlibpath "$add_shlibpath:" ;; - esac - fi - if test "$linkmode" = prog; then -@@ -5969,13 +6879,13 @@ - test "$hardcode_shlibpath_var" = yes; then - case :$finalize_shlibpath: in - *":$libdir:"*) ;; -- *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; -+ *) func_append finalize_shlibpath "$libdir:" ;; - esac - fi - fi - fi - -- if test "$linkmode" = prog || test "$mode" = relink; then -+ if test "$linkmode" = prog || test "$opt_mode" = relink; then - add_shlibpath= - add_dir= - add= -@@ -5989,7 +6899,7 @@ - elif test "$hardcode_shlibpath_var" = yes; then - case :$finalize_shlibpath: in - *":$libdir:"*) ;; -- *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; -+ *) func_append finalize_shlibpath "$libdir:" ;; - esac - add="-l$name" - elif test "$hardcode_automatic" = yes; then -@@ -6001,12 +6911,12 @@ - fi - else - # We cannot seem to hardcode it, guess we'll fake it. -- add_dir="-L$libdir" -+ add_dir="-L$lt_sysroot$libdir" - # Try looking first in the location we're being installed to. - if test -n "$inst_prefix_dir"; then - case $libdir in - [\\/]*) -- add_dir="$add_dir -L$inst_prefix_dir$libdir" -+ func_append add_dir " -L$inst_prefix_dir$libdir" - ;; - esac - fi -@@ -6083,27 +6993,33 @@ - temp_xrpath=$func_stripname_result - case " $xrpath " in - *" $temp_xrpath "*) ;; -- *) xrpath="$xrpath $temp_xrpath";; -+ *) func_append xrpath " $temp_xrpath";; - esac;; -- *) temp_deplibs="$temp_deplibs $libdir";; -+ *) func_append temp_deplibs " $libdir";; - esac - done - dependency_libs="$temp_deplibs" - fi - -- newlib_search_path="$newlib_search_path $absdir" -+ func_append newlib_search_path " $absdir" - # Link against this library - test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" - # ... and its dependency_libs - tmp_libs= - for deplib in $dependency_libs; do - newdependency_libs="$deplib $newdependency_libs" -- if $opt_duplicate_deps ; then -+ case $deplib in -+ -L*) func_stripname '-L' '' "$deplib" -+ func_resolve_sysroot "$func_stripname_result";; -+ *) func_resolve_sysroot "$deplib" ;; -+ esac -+ if $opt_preserve_dup_deps ; then - case "$tmp_libs " in -- *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; -+ *" $func_resolve_sysroot_result "*) -+ func_append specialdeplibs " $func_resolve_sysroot_result" ;; - esac - fi -- tmp_libs="$tmp_libs $deplib" -+ func_append tmp_libs " $func_resolve_sysroot_result" - done - - if test "$link_all_deplibs" != no; then -@@ -6113,8 +7029,10 @@ - case $deplib in - -L*) path="$deplib" ;; - *.la) -+ func_resolve_sysroot "$deplib" -+ deplib=$func_resolve_sysroot_result - func_dirname "$deplib" "" "." -- dir="$func_dirname_result" -+ dir=$func_dirname_result - # We need an absolute path. - case $dir in - [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; -@@ -6130,7 +7048,7 @@ - case $host in - *-*-darwin*) - depdepl= -- deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` -+ eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` - if test -n "$deplibrary_names" ; then - for tmp in $deplibrary_names ; do - depdepl=$tmp -@@ -6141,8 +7059,8 @@ - if test -z "$darwin_install_name"; then - darwin_install_name=`${OTOOL64} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` - fi -- compiler_flags="$compiler_flags ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}" -- linker_flags="$linker_flags -dylib_file ${darwin_install_name}:${depdepl}" -+ func_append compiler_flags " ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}" -+ func_append linker_flags " -dylib_file ${darwin_install_name}:${depdepl}" - path= - fi - fi -@@ -6152,7 +7070,7 @@ - ;; - esac - else -- libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` -+ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` - test -z "$libdir" && \ - func_fatal_error "\`$deplib' is not a valid libtool archive" - test "$absdir" != "$libdir" && \ -@@ -6192,7 +7110,7 @@ - for dir in $newlib_search_path; do - case "$lib_search_path " in - *" $dir "*) ;; -- *) lib_search_path="$lib_search_path $dir" ;; -+ *) func_append lib_search_path " $dir" ;; - esac - done - newlib_search_path= -@@ -6205,7 +7123,7 @@ - fi - for var in $vars dependency_libs; do - # Add libraries to $var in reverse order -- eval tmp_libs=\$$var -+ eval tmp_libs=\"\$$var\" - new_libs= - for deplib in $tmp_libs; do - # FIXME: Pedantically, this is the right thing to do, so -@@ -6250,13 +7168,13 @@ - -L*) - case " $tmp_libs " in - *" $deplib "*) ;; -- *) tmp_libs="$tmp_libs $deplib" ;; -+ *) func_append tmp_libs " $deplib" ;; - esac - ;; -- *) tmp_libs="$tmp_libs $deplib" ;; -+ *) func_append tmp_libs " $deplib" ;; - esac - done -- eval $var=\$tmp_libs -+ eval $var=\"$tmp_libs\" - done # for var - fi - # Last step: remove runtime libs from dependency_libs -@@ -6269,7 +7187,7 @@ - ;; - esac - if test -n "$i" ; then -- tmp_libs="$tmp_libs $i" -+ func_append tmp_libs " $i" - fi - done - dependency_libs=$tmp_libs -@@ -6310,7 +7228,7 @@ - # Now set the variables for building old libraries. - build_libtool_libs=no - oldlibs="$output" -- objs="$objs$old_deplibs" -+ func_append objs "$old_deplibs" - ;; - - lib) -@@ -6319,8 +7237,8 @@ - lib*) - func_stripname 'lib' '.la' "$outputname" - name=$func_stripname_result -- eval "shared_ext=\"$shrext_cmds\"" -- eval "libname=\"$libname_spec\"" -+ eval shared_ext=\"$shrext_cmds\" -+ eval libname=\"$libname_spec\" - ;; - *) - test "$module" = no && \ -@@ -6330,8 +7248,8 @@ - # Add the "lib" prefix for modules if required - func_stripname '' '.la' "$outputname" - name=$func_stripname_result -- eval "shared_ext=\"$shrext_cmds\"" -- eval "libname=\"$libname_spec\"" -+ eval shared_ext=\"$shrext_cmds\" -+ eval libname=\"$libname_spec\" - else - func_stripname '' '.la' "$outputname" - libname=$func_stripname_result -@@ -6346,7 +7264,7 @@ - echo - $ECHO "*** Warning: Linking the shared library $output against the non-libtool" - $ECHO "*** objects $objs is not portable!" -- libobjs="$libobjs $objs" -+ func_append libobjs " $objs" - fi - fi - -@@ -6544,7 +7462,7 @@ - done - - # Make executables depend on our current version. -- verstring="$verstring:${current}.0" -+ func_append verstring ":${current}.0" - ;; - - qnx) -@@ -6612,10 +7530,10 @@ - fi - - func_generate_dlsyms "$libname" "$libname" "yes" -- libobjs="$libobjs $symfileobj" -+ func_append libobjs " $symfileobj" - test "X$libobjs" = "X " && libobjs= - -- if test "$mode" != relink; then -+ if test "$opt_mode" != relink; then - # Remove our outputs, but don't remove object files since they - # may have been created when compiling PIC objects. - removelist= -@@ -6631,7 +7549,7 @@ - continue - fi - fi -- removelist="$removelist $p" -+ func_append removelist " $p" - ;; - *) ;; - esac -@@ -6642,7 +7560,7 @@ - - # Now set the variables for building old libraries. - if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then -- oldlibs="$oldlibs $output_objdir/$libname.$libext" -+ func_append oldlibs " $output_objdir/$libname.$libext" - - # Transform .lo files to .o files. - oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; $lo2o" | $NL2SP` -@@ -6659,10 +7577,11 @@ - # If the user specified any rpath flags, then add them. - temp_xrpath= - for libdir in $xrpath; do -- temp_xrpath="$temp_xrpath -R$libdir" -+ func_replace_sysroot "$libdir" -+ func_append temp_xrpath " -R$func_replace_sysroot_result" - case "$finalize_rpath " in - *" $libdir "*) ;; -- *) finalize_rpath="$finalize_rpath $libdir" ;; -+ *) func_append finalize_rpath " $libdir" ;; - esac - done - if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then -@@ -6676,7 +7595,7 @@ - for lib in $old_dlfiles; do - case " $dlprefiles $dlfiles " in - *" $lib "*) ;; -- *) dlfiles="$dlfiles $lib" ;; -+ *) func_append dlfiles " $lib" ;; - esac - done - -@@ -6686,7 +7605,7 @@ - for lib in $old_dlprefiles; do - case "$dlprefiles " in - *" $lib "*) ;; -- *) dlprefiles="$dlprefiles $lib" ;; -+ *) func_append dlprefiles " $lib" ;; - esac - done - -@@ -6698,7 +7617,7 @@ - ;; - *-*-rhapsody* | *-*-darwin1.[012]) - # Rhapsody C library is in the System framework -- deplibs="$deplibs System.ltframework" -+ func_append deplibs " System.ltframework" - ;; - *-*-netbsd*) - # Don't link with libc until the a.out ld.so is fixed. -@@ -6715,7 +7634,7 @@ - *) - # Add libc to deplibs on all other systems if necessary. - if test "$build_libtool_need_lc" = "yes"; then -- deplibs="$deplibs -lc" -+ func_append deplibs " -lc" - fi - ;; - esac -@@ -6764,18 +7683,18 @@ - if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then - case " $predeps $postdeps " in - *" $i "*) -- newdeplibs="$newdeplibs $i" -+ func_append newdeplibs " $i" - i="" - ;; - esac - fi - if test -n "$i" ; then -- eval "libname=\"$libname_spec\"" -- eval "deplib_matches=\"$library_names_spec\"" -+ libname=`eval "\\$ECHO \"$libname_spec\""` -+ deplib_matches=`eval "\\$ECHO \"$library_names_spec\""` - set dummy $deplib_matches; shift - deplib_match=$1 - if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then -- newdeplibs="$newdeplibs $i" -+ func_append newdeplibs " $i" - else - droppeddeps=yes - echo -@@ -6789,7 +7708,7 @@ - fi - ;; - *) -- newdeplibs="$newdeplibs $i" -+ func_append newdeplibs " $i" - ;; - esac - done -@@ -6807,18 +7726,18 @@ - if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then - case " $predeps $postdeps " in - *" $i "*) -- newdeplibs="$newdeplibs $i" -+ func_append newdeplibs " $i" - i="" - ;; - esac - fi - if test -n "$i" ; then -- eval "libname=\"$libname_spec\"" -- eval "deplib_matches=\"$library_names_spec\"" -+ libname=`eval "\\$ECHO \"$libname_spec\""` -+ deplib_matches=`eval "\\$ECHO \"$library_names_spec\""` - set dummy $deplib_matches; shift - deplib_match=$1 - if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then -- newdeplibs="$newdeplibs $i" -+ func_append newdeplibs " $i" - else - droppeddeps=yes - echo -@@ -6840,7 +7759,7 @@ - fi - ;; - *) -- newdeplibs="$newdeplibs $i" -+ func_append newdeplibs " $i" - ;; - esac - done -@@ -6857,15 +7776,27 @@ - if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then - case " $predeps $postdeps " in - *" $a_deplib "*) -- newdeplibs="$newdeplibs $a_deplib" -+ func_append newdeplibs " $a_deplib" - a_deplib="" - ;; - esac - fi - if test -n "$a_deplib" ; then -- eval "libname=\"$libname_spec\"" -+ libname=`eval "\\$ECHO \"$libname_spec\""` -+ if test -n "$file_magic_glob"; then -+ libnameglob=`func_echo_all "$libname" | $SED -e $file_magic_glob` -+ else -+ libnameglob=$libname -+ fi -+ test "$want_nocaseglob" = yes && nocaseglob=`shopt -p nocaseglob` - for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do -- potential_libs=`ls $i/$libname[.-]* 2>/dev/null` -+ if test "$want_nocaseglob" = yes; then -+ shopt -s nocaseglob -+ potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null` -+ $nocaseglob -+ else -+ potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null` -+ fi - for potent_lib in $potential_libs; do - # Follow soft links. - if ls -lLd "$potent_lib" 2>/dev/null | -@@ -6885,10 +7816,10 @@ - *) potlib=`$ECHO "$potlib" | $SED 's,[^/]*$,,'`"$potliblink";; - esac - done -- if eval "$file_magic_cmd \"\$potlib\"" 2>/dev/null | -+ if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | - $SED -e 10q | - $EGREP "$file_magic_regex" > /dev/null; then -- newdeplibs="$newdeplibs $a_deplib" -+ func_append newdeplibs " $a_deplib" - a_deplib="" - break 2 - fi -@@ -6913,7 +7844,7 @@ - ;; - *) - # Add a -L argument. -- newdeplibs="$newdeplibs $a_deplib" -+ func_append newdeplibs " $a_deplib" - ;; - esac - done # Gone through all deplibs. -@@ -6929,20 +7860,20 @@ - if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then - case " $predeps $postdeps " in - *" $a_deplib "*) -- newdeplibs="$newdeplibs $a_deplib" -+ func_append newdeplibs " $a_deplib" - a_deplib="" - ;; - esac - fi - if test -n "$a_deplib" ; then -- eval "libname=\"$libname_spec\"" -+ libname=`eval "\\$ECHO \"$libname_spec\""` - for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do - potential_libs=`ls $i/$libname[.-]* 2>/dev/null` - for potent_lib in $potential_libs; do - potlib="$potent_lib" # see symlink-check above in file_magic test - if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \ - $EGREP "$match_pattern_regex" > /dev/null; then -- newdeplibs="$newdeplibs $a_deplib" -+ func_append newdeplibs " $a_deplib" - a_deplib="" - break 2 - fi -@@ -6967,7 +7898,7 @@ - ;; - *) - # Add a -L argument. -- newdeplibs="$newdeplibs $a_deplib" -+ func_append newdeplibs " $a_deplib" - ;; - esac - done # Gone through all deplibs. -@@ -7071,7 +8002,7 @@ - *) - case " $deplibs " in - *" -L$path/$objdir "*) -- new_libs="$new_libs -L$path/$objdir" ;; -+ func_append new_libs " -L$path/$objdir" ;; - esac - ;; - esac -@@ -7081,10 +8012,10 @@ - -L*) - case " $new_libs " in - *" $deplib "*) ;; -- *) new_libs="$new_libs $deplib" ;; -+ *) func_append new_libs " $deplib" ;; - esac - ;; -- *) new_libs="$new_libs $deplib" ;; -+ *) func_append new_libs " $deplib" ;; - esac - done - deplibs="$new_libs" -@@ -7101,10 +8032,12 @@ - hardcode_libdirs= - dep_rpath= - rpath="$finalize_rpath" -- test "$mode" != relink && rpath="$compile_rpath$rpath" -+ test "$opt_mode" != relink && rpath="$compile_rpath$rpath" - for libdir in $rpath; do - if test -n "$hardcode_libdir_flag_spec"; then - if test -n "$hardcode_libdir_separator"; then -+ func_replace_sysroot "$libdir" -+ libdir=$func_replace_sysroot_result - if test -z "$hardcode_libdirs"; then - hardcode_libdirs="$libdir" - else -@@ -7113,18 +8046,18 @@ - *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) - ;; - *) -- hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" -+ func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" - ;; - esac - fi - else -- eval "flag=\"$hardcode_libdir_flag_spec\"" -- dep_rpath="$dep_rpath $flag" -+ eval flag=\"$hardcode_libdir_flag_spec\" -+ func_append dep_rpath " $flag" - fi - elif test -n "$runpath_var"; then - case "$perm_rpath " in - *" $libdir "*) ;; -- *) perm_rpath="$perm_rpath $libdir" ;; -+ *) func_apped perm_rpath " $libdir" ;; - esac - fi - done -@@ -7133,40 +8066,38 @@ - test -n "$hardcode_libdirs"; then - libdir="$hardcode_libdirs" - if test -n "$hardcode_libdir_flag_spec_ld"; then -- eval "dep_rpath=\"$hardcode_libdir_flag_spec_ld\"" -+ eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" - else -- eval "dep_rpath=\"$hardcode_libdir_flag_spec\"" -+ eval dep_rpath=\"$hardcode_libdir_flag_spec\" - fi - fi - if test -n "$runpath_var" && test -n "$perm_rpath"; then - # We should set the runpath_var. - rpath= - for dir in $perm_rpath; do -- rpath="$rpath$dir:" -+ func_append rpath "$dir:" - done -- eval $runpath_var=\$rpath\$$runpath_var -- export $runpath_var -+ eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" - fi - test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" - fi - - shlibpath="$finalize_shlibpath" -- test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath" -+ test "$opt_mode" != relink && shlibpath="$compile_shlibpath$shlibpath" - if test -n "$shlibpath"; then -- eval $shlibpath_var=\$shlibpath\$$shlibpath_var -- export $shlibpath_var -+ eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" - fi - - # Get the real and link names of the library. -- eval "shared_ext=\"$shrext_cmds\"" -- eval "library_names=\"$library_names_spec\"" -+ eval shared_ext=\"$shrext_cmds\" -+ eval library_names=\"$library_names_spec\" - set dummy $library_names - shift - realname="$1" - shift - - if test -n "$soname_spec"; then -- eval "soname=\"$soname_spec\"" -+ eval soname=\"$soname_spec\" - else - soname="$realname" - fi -@@ -7178,7 +8109,7 @@ - linknames= - for link - do -- linknames="$linknames $link" -+ func_append linknames " $link" - done - - # Use standard objects if they are pic -@@ -7189,7 +8120,7 @@ - if test -n "$export_symbols" && test -n "$include_expsyms"; then - $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" - export_symbols="$output_objdir/$libname.uexp" -- delfiles="$delfiles $export_symbols" -+ func_append delfiles " $export_symbols" - fi - - orig_export_symbols= -@@ -7220,13 +8151,45 @@ - $opt_dry_run || $RM $export_symbols - cmds=$export_symbols_cmds - save_ifs="$IFS"; IFS='~' -- for cmd in $cmds; do -+ for cmd1 in $cmds; do - IFS="$save_ifs" -- eval "cmd=\"$cmd\"" -- func_len " $cmd" -- len=$func_len_result -- if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then -+ # Take the normal branch if the nm_file_list_spec branch -+ # doesn't work or if tool conversion is not needed. -+ case $nm_file_list_spec~$to_tool_file_cmd in -+ *~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*) -+ try_normal_branch=yes -+ eval cmd=\"$cmd1\" -+ func_len " $cmd" -+ len=$func_len_result -+ ;; -+ *) -+ try_normal_branch=no -+ ;; -+ esac -+ if test "$try_normal_branch" = yes \ -+ && { test "$len" -lt "$max_cmd_len" \ -+ || test "$max_cmd_len" -le -1; } -+ then -+ func_show_eval "$cmd" 'exit $?' -+ skipped_export=false -+ elif test -n "$nm_file_list_spec"; then -+ func_basename "$output" -+ output_la=$func_basename_result -+ save_libobjs=$libobjs -+ save_output=$output -+ output=${output_objdir}/${output_la}.nm -+ func_to_tool_file "$output" -+ libobjs=$nm_file_list_spec$func_to_tool_file_result -+ func_append delfiles " $output" -+ func_verbose "creating $NM input file list: $output" -+ for obj in $save_libobjs; do -+ func_to_tool_file "$obj" -+ $ECHO "$func_to_tool_file_result" -+ done > "$output" -+ eval cmd=\"$cmd1\" - func_show_eval "$cmd" 'exit $?' -+ output=$save_output -+ libobjs=$save_libobjs - skipped_export=false - else - # The command line is too long to execute in one step. -@@ -7248,7 +8211,7 @@ - if test -n "$export_symbols" && test -n "$include_expsyms"; then - tmp_export_symbols="$export_symbols" - test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" -- $opt_dry_run || $ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols" -+ $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' - fi - - if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then -@@ -7260,7 +8223,7 @@ - # global variables. join(1) would be nice here, but unfortunately - # isn't a blessed tool. - $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter -- delfiles="$delfiles $export_symbols $output_objdir/$libname.filter" -+ func_append delfiles " $export_symbols $output_objdir/$libname.filter" - export_symbols=$output_objdir/$libname.def - $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols - fi -@@ -7270,7 +8233,7 @@ - case " $convenience " in - *" $test_deplib "*) ;; - *) -- tmp_deplibs="$tmp_deplibs $test_deplib" -+ func_append tmp_deplibs " $test_deplib" - ;; - esac - done -@@ -7286,43 +8249,43 @@ - fi - if test -n "$whole_archive_flag_spec"; then - save_libobjs=$libobjs -- eval "libobjs=\"\$libobjs $whole_archive_flag_spec\"" -+ eval libobjs=\"\$libobjs $whole_archive_flag_spec\" - test "X$libobjs" = "X " && libobjs= - else - gentop="$output_objdir/${outputname}x" -- generated="$generated $gentop" -+ func_append generated " $gentop" - - func_extract_archives $gentop $convenience -- libobjs="$libobjs $func_extract_archives_result" -+ func_append libobjs " $func_extract_archives_result" - test "X$libobjs" = "X " && libobjs= - fi - fi - - if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then -- eval "flag=\"$thread_safe_flag_spec\"" -- linker_flags="$linker_flags $flag" -+ eval flag=\"$thread_safe_flag_spec\" -+ func_append linker_flags " $flag" - fi - - # Make a backup of the uninstalled library when relinking -- if test "$mode" = relink; then -- $opt_dry_run || (cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U) || exit $? -+ if test "$opt_mode" = relink; then -+ $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? - fi - - # Do each of the archive commands. - if test "$module" = yes && test -n "$module_cmds" ; then - if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then -- eval "test_cmds=\"$module_expsym_cmds\"" -+ eval test_cmds=\"$module_expsym_cmds\" - cmds=$module_expsym_cmds - else -- eval "test_cmds=\"$module_cmds\"" -+ eval test_cmds=\"$module_cmds\" - cmds=$module_cmds - fi - else - if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then -- eval "test_cmds=\"$archive_expsym_cmds\"" -+ eval test_cmds=\"$archive_expsym_cmds\" - cmds=$archive_expsym_cmds - else -- eval "test_cmds=\"$archive_cmds\"" -+ eval test_cmds=\"$archive_cmds\" - cmds=$archive_cmds - fi - fi -@@ -7366,10 +8329,13 @@ - echo 'INPUT (' > $output - for obj in $save_libobjs - do -- $ECHO "$obj" >> $output -+ func_to_tool_file "$obj" -+ $ECHO "$func_to_tool_file_result" >> $output - done - echo ')' >> $output -- delfiles="$delfiles $output" -+ func_append delfiles " $output" -+ func_to_tool_file "$output" -+ output=$func_to_tool_file_result - elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then - output=${output_objdir}/${output_la}.lnk - func_verbose "creating linker input file list: $output" -@@ -7383,15 +8349,17 @@ - fi - for obj - do -- $ECHO "$obj" >> $output -+ func_to_tool_file "$obj" -+ $ECHO "$func_to_tool_file_result" >> $output - done -- delfiles="$delfiles $output" -- output=$firstobj\"$file_list_spec$output\" -+ func_append delfiles " $output" -+ func_to_tool_file "$output" -+ output=$firstobj\"$file_list_spec$func_to_tool_file_result\" - else - if test -n "$save_libobjs"; then - func_verbose "creating reloadable object files..." - output=$output_objdir/$output_la-${k}.$objext -- eval "test_cmds=\"$reload_cmds\"" -+ eval test_cmds=\"$reload_cmds\" - func_len " $test_cmds" - len0=$func_len_result - len=$len0 -@@ -7411,12 +8379,12 @@ - if test "$k" -eq 1 ; then - # The first file doesn't have a previous command to add. - reload_objs=$objlist -- eval "concat_cmds=\"$reload_cmds\"" -+ eval concat_cmds=\"$reload_cmds\" - else - # All subsequent reloadable object files will link in - # the last one created. - reload_objs="$objlist $last_robj" -- eval "concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\"" -+ eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\" - fi - last_robj=$output_objdir/$output_la-${k}.$objext - func_arith $k + 1 -@@ -7433,11 +8401,11 @@ - # files will link in the last one created. - test -z "$concat_cmds" || concat_cmds=$concat_cmds~ - reload_objs="$objlist $last_robj" -- eval "concat_cmds=\"\${concat_cmds}$reload_cmds\"" -+ eval concat_cmds=\"\${concat_cmds}$reload_cmds\" - if test -n "$last_robj"; then -- eval "concat_cmds=\"\${concat_cmds}~\$RM $last_robj\"" -+ eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\" - fi -- delfiles="$delfiles $output" -+ func_append delfiles " $output" - - else - output= -@@ -7450,9 +8418,9 @@ - libobjs=$output - # Append the command to create the export file. - test -z "$concat_cmds" || concat_cmds=$concat_cmds~ -- eval "concat_cmds=\"\$concat_cmds$export_symbols_cmds\"" -+ eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\" - if test -n "$last_robj"; then -- eval "concat_cmds=\"\$concat_cmds~\$RM $last_robj\"" -+ eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" - fi - fi - -@@ -7471,7 +8439,7 @@ - lt_exit=$? - - # Restore the uninstalled library and exit -- if test "$mode" = relink; then -+ if test "$opt_mode" = relink; then - ( cd "$output_objdir" && \ - $RM "${realname}T" && \ - $MV "${realname}U" "$realname" ) -@@ -7492,7 +8460,7 @@ - if test -n "$export_symbols" && test -n "$include_expsyms"; then - tmp_export_symbols="$export_symbols" - test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" -- $opt_dry_run || $ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols" -+ $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' - fi - - if test -n "$orig_export_symbols"; then -@@ -7504,7 +8472,7 @@ - # global variables. join(1) would be nice here, but unfortunately - # isn't a blessed tool. - $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter -- delfiles="$delfiles $export_symbols $output_objdir/$libname.filter" -+ func_append delfiles " $export_symbols $output_objdir/$libname.filter" - export_symbols=$output_objdir/$libname.def - $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols - fi -@@ -7515,7 +8483,7 @@ - output=$save_output - - if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then -- eval "libobjs=\"\$libobjs $whole_archive_flag_spec\"" -+ eval libobjs=\"\$libobjs $whole_archive_flag_spec\" - test "X$libobjs" = "X " && libobjs= - fi - # Expand the library linking commands again to reset the -@@ -7539,23 +8507,23 @@ - - if test -n "$delfiles"; then - # Append the command to remove temporary files to $cmds. -- eval "cmds=\"\$cmds~\$RM $delfiles\"" -+ eval cmds=\"\$cmds~\$RM $delfiles\" - fi - - # Add any objects from preloaded convenience libraries - if test -n "$dlprefiles"; then - gentop="$output_objdir/${outputname}x" -- generated="$generated $gentop" -+ func_append generated " $gentop" - - func_extract_archives $gentop $dlprefiles -- libobjs="$libobjs $func_extract_archives_result" -+ func_append libobjs " $func_extract_archives_result" - test "X$libobjs" = "X " && libobjs= - fi - - save_ifs="$IFS"; IFS='~' - for cmd in $cmds; do - IFS="$save_ifs" -- eval "cmd=\"$cmd\"" -+ eval cmd=\"$cmd\" - $opt_silent || { - func_quote_for_expand "$cmd" - eval "func_echo $func_quote_for_expand_result" -@@ -7564,7 +8532,7 @@ - lt_exit=$? - - # Restore the uninstalled library and exit -- if test "$mode" = relink; then -+ if test "$opt_mode" = relink; then - ( cd "$output_objdir" && \ - $RM "${realname}T" && \ - $MV "${realname}U" "$realname" ) -@@ -7576,8 +8544,8 @@ - IFS="$save_ifs" - - # Restore the uninstalled library and exit -- if test "$mode" = relink; then -- $opt_dry_run || (cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname) || exit $? -+ if test "$opt_mode" = relink; then -+ $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? - - if test -n "$convenience"; then - if test -z "$whole_archive_flag_spec"; then -@@ -7656,17 +8624,20 @@ - - if test -n "$convenience"; then - if test -n "$whole_archive_flag_spec"; then -- eval "tmp_whole_archive_flags=\"$whole_archive_flag_spec\"" -+ eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" - reload_conv_objs=$reload_objs\ `$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'` - else - gentop="$output_objdir/${obj}x" -- generated="$generated $gentop" -+ func_append generated " $gentop" - - func_extract_archives $gentop $convenience - reload_conv_objs="$reload_objs $func_extract_archives_result" - fi - fi - -+ # If we're not building shared, we need to use non_pic_objs -+ test "$build_libtool_libs" != yes && libobjs="$non_pic_objects" -+ - # Create the old-style object. - reload_objs="$objs$old_deplibs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; /\.lib$/d; $lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test - -@@ -7690,7 +8661,7 @@ - # Create an invalid libtool object if no PIC, so that we don't - # accidentally link it into a program. - # $show "echo timestamp > $libobj" -- # $opt_dry_run || echo timestamp > $libobj || exit $? -+ # $opt_dry_run || eval "echo timestamp > $libobj" || exit $? - exit $EXIT_SUCCESS - fi - -@@ -7740,8 +8711,8 @@ - if test "$tagname" = CXX ; then - case ${MACOSX_DEPLOYMENT_TARGET-10.0} in - 10.[0123]) -- compile_command="$compile_command ${wl}-bind_at_load" -- finalize_command="$finalize_command ${wl}-bind_at_load" -+ func_append compile_command " ${wl}-bind_at_load" -+ func_append finalize_command " ${wl}-bind_at_load" - ;; - esac - fi -@@ -7761,7 +8732,7 @@ - *) - case " $compile_deplibs " in - *" -L$path/$objdir "*) -- new_libs="$new_libs -L$path/$objdir" ;; -+ func_append new_libs " -L$path/$objdir" ;; - esac - ;; - esac -@@ -7771,17 +8742,17 @@ - -L*) - case " $new_libs " in - *" $deplib "*) ;; -- *) new_libs="$new_libs $deplib" ;; -+ *) func_append new_libs " $deplib" ;; - esac - ;; -- *) new_libs="$new_libs $deplib" ;; -+ *) func_append new_libs " $deplib" ;; - esac - done - compile_deplibs="$new_libs" - - -- compile_command="$compile_command $compile_deplibs" -- finalize_command="$finalize_command $finalize_deplibs" -+ func_append compile_command " $compile_deplibs" -+ func_append finalize_command " $finalize_deplibs" - - if test -n "$rpath$xrpath"; then - # If the user specified any rpath flags, then add them. -@@ -7789,7 +8760,7 @@ - # This is the magic to use -rpath. - case "$finalize_rpath " in - *" $libdir "*) ;; -- *) finalize_rpath="$finalize_rpath $libdir" ;; -+ *) func_append finalize_rpath " $libdir" ;; - esac - done - fi -@@ -7808,18 +8779,18 @@ - *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) - ;; - *) -- hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" -+ func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" - ;; - esac - fi - else -- eval "flag=\"$hardcode_libdir_flag_spec\"" -- rpath="$rpath $flag" -+ eval flag=\"$hardcode_libdir_flag_spec\" -+ func_append rpath " $flag" - fi - elif test -n "$runpath_var"; then - case "$perm_rpath " in - *" $libdir "*) ;; -- *) perm_rpath="$perm_rpath $libdir" ;; -+ *) func_append perm_rpath " $libdir" ;; - esac - fi - case $host in -@@ -7828,12 +8799,12 @@ - case :$dllsearchpath: in - *":$libdir:"*) ;; - ::) dllsearchpath=$libdir;; -- *) dllsearchpath="$dllsearchpath:$libdir";; -+ *) func_append dllsearchpath ":$libdir";; - esac - case :$dllsearchpath: in - *":$testbindir:"*) ;; - ::) dllsearchpath=$testbindir;; -- *) dllsearchpath="$dllsearchpath:$testbindir";; -+ *) func_append dllsearchpath ":$testbindir";; - esac - ;; - esac -@@ -7842,7 +8813,7 @@ - if test -n "$hardcode_libdir_separator" && - test -n "$hardcode_libdirs"; then - libdir="$hardcode_libdirs" -- eval "rpath=\" $hardcode_libdir_flag_spec\"" -+ eval rpath=\" $hardcode_libdir_flag_spec\" - fi - compile_rpath="$rpath" - -@@ -7859,18 +8830,18 @@ - *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) - ;; - *) -- hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" -+ func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" - ;; - esac - fi - else -- eval "flag=\"$hardcode_libdir_flag_spec\"" -- rpath="$rpath $flag" -+ eval flag=\"$hardcode_libdir_flag_spec\" -+ func_append rpath " $flag" - fi - elif test -n "$runpath_var"; then - case "$finalize_perm_rpath " in - *" $libdir "*) ;; -- *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;; -+ *) func_append finalize_perm_rpath " $libdir" ;; - esac - fi - done -@@ -7878,7 +8849,7 @@ - if test -n "$hardcode_libdir_separator" && - test -n "$hardcode_libdirs"; then - libdir="$hardcode_libdirs" -- eval "rpath=\" $hardcode_libdir_flag_spec\"" -+ eval rpath=\" $hardcode_libdir_flag_spec\" - fi - finalize_rpath="$rpath" - -@@ -7921,6 +8892,12 @@ - exit_status=0 - func_show_eval "$link_command" 'exit_status=$?' - -+ if test -n "$postlink_cmds"; then -+ func_to_tool_file "$output" -+ postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` -+ func_execute_cmds "$postlink_cmds" 'exit $?' -+ fi -+ - # Delete the generated files. - if test -f "$output_objdir/${outputname}S.${objext}"; then - func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"' -@@ -7943,7 +8920,7 @@ - # We should set the runpath_var. - rpath= - for dir in $perm_rpath; do -- rpath="$rpath$dir:" -+ func_append rpath "$dir:" - done - compile_var="$runpath_var=\"$rpath\$$runpath_var\" " - fi -@@ -7951,7 +8928,7 @@ - # We should set the runpath_var. - rpath= - for dir in $finalize_perm_rpath; do -- rpath="$rpath$dir:" -+ func_append rpath "$dir:" - done - finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " - fi -@@ -7966,6 +8943,13 @@ - $opt_dry_run || $RM $output - # Link the executable and exit - func_show_eval "$link_command" 'exit $?' -+ -+ if test -n "$postlink_cmds"; then -+ func_to_tool_file "$output" -+ postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` -+ func_execute_cmds "$postlink_cmds" 'exit $?' -+ fi -+ - exit $EXIT_SUCCESS - fi - -@@ -7999,6 +8983,12 @@ - - func_show_eval "$link_command" 'exit $?' - -+ if test -n "$postlink_cmds"; then -+ func_to_tool_file "$output_objdir/$outputname" -+ postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` -+ func_execute_cmds "$postlink_cmds" 'exit $?' -+ fi -+ - # Now create the wrapper script. - func_verbose "creating $output" - -@@ -8096,7 +9086,7 @@ - else - oldobjs="$old_deplibs $non_pic_objects" - if test "$preload" = yes && test -f "$symfileobj"; then -- oldobjs="$oldobjs $symfileobj" -+ func_append oldobjs " $symfileobj" - fi - fi - addlibs="$old_convenience" -@@ -8104,10 +9094,10 @@ - - if test -n "$addlibs"; then - gentop="$output_objdir/${outputname}x" -- generated="$generated $gentop" -+ func_append generated " $gentop" - - func_extract_archives $gentop $addlibs -- oldobjs="$oldobjs $func_extract_archives_result" -+ func_append oldobjs " $func_extract_archives_result" - fi - - # Do each command in the archive commands. -@@ -8118,10 +9108,10 @@ - # Add any objects from preloaded convenience libraries - if test -n "$dlprefiles"; then - gentop="$output_objdir/${outputname}x" -- generated="$generated $gentop" -+ func_append generated " $gentop" - - func_extract_archives $gentop $dlprefiles -- oldobjs="$oldobjs $func_extract_archives_result" -+ func_append oldobjs " $func_extract_archives_result" - fi - - # POSIX demands no paths to be encoded in archives. We have -@@ -8139,7 +9129,7 @@ - else - echo "copying selected object files to avoid basename conflicts..." - gentop="$output_objdir/${outputname}x" -- generated="$generated $gentop" -+ func_append generated " $gentop" - func_mkdir_p "$gentop" - save_oldobjs=$oldobjs - oldobjs= -@@ -8163,18 +9153,28 @@ - esac - done - func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" -- oldobjs="$oldobjs $gentop/$newobj" -+ func_append oldobjs " $gentop/$newobj" - ;; -- *) oldobjs="$oldobjs $obj" ;; -+ *) func_append oldobjs " $obj" ;; - esac - done - fi -- eval "cmds=\"$old_archive_cmds\"" -+ eval cmds=\"$old_archive_cmds\" - - func_len " $cmds" - len=$func_len_result - if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then - cmds=$old_archive_cmds -+ elif test -n "$archiver_list_spec"; then -+ func_verbose "using command file archive linking..." -+ for obj in $oldobjs -+ do -+ func_to_tool_file "$obj" -+ $ECHO "$func_to_tool_file_result" -+ done > $output_objdir/$libname.libcmd -+ func_to_tool_file "$output_objdir/$libname.libcmd" -+ oldobjs=" $archiver_list_spec$func_to_tool_file_result" -+ cmds=$old_archive_cmds - else - # the command line is too long to link in one step, link in parts - func_verbose "using piecewise archive linking..." -@@ -8189,7 +9189,7 @@ - do - last_oldobj=$obj - done -- eval "test_cmds=\"$old_archive_cmds\"" -+ eval test_cmds=\"$old_archive_cmds\" - func_len " $test_cmds" - len0=$func_len_result - len=$len0 -@@ -8208,7 +9208,7 @@ - RANLIB=$save_RANLIB - fi - test -z "$concat_cmds" || concat_cmds=$concat_cmds~ -- eval "concat_cmds=\"\${concat_cmds}$old_archive_cmds\"" -+ eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" - objlist= - len=$len0 - fi -@@ -8216,9 +9216,9 @@ - RANLIB=$save_RANLIB - oldobjs=$objlist - if test "X$oldobjs" = "X" ; then -- eval "cmds=\"\$concat_cmds\"" -+ eval cmds=\"\$concat_cmds\" - else -- eval "cmds=\"\$concat_cmds~\$old_archive_cmds\"" -+ eval cmds=\"\$concat_cmds~\$old_archive_cmds\" - fi - fi - fi -@@ -8268,12 +9268,23 @@ - *.la) - func_basename "$deplib" - name="$func_basename_result" -- libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` -+ func_resolve_sysroot "$deplib" -+ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result` - test -z "$libdir" && \ - func_fatal_error "\`$deplib' is not a valid libtool archive" -- newdependency_libs="$newdependency_libs $libdir/$name" -+ func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name" -+ ;; -+ -L*) -+ func_stripname -L '' "$deplib" -+ func_replace_sysroot "$func_stripname_result" -+ func_append newdependency_libs " -L$func_replace_sysroot_result" - ;; -- *) newdependency_libs="$newdependency_libs $deplib" ;; -+ -R*) -+ func_stripname -R '' "$deplib" -+ func_replace_sysroot "$func_stripname_result" -+ func_append newdependency_libs " -R$func_replace_sysroot_result" -+ ;; -+ *) func_append newdependency_libs " $deplib" ;; - esac - done - dependency_libs="$newdependency_libs" -@@ -8284,12 +9295,14 @@ - *.la) - func_basename "$lib" - name="$func_basename_result" -- libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` -+ func_resolve_sysroot "$lib" -+ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result` -+ - test -z "$libdir" && \ - func_fatal_error "\`$lib' is not a valid libtool archive" -- newdlfiles="$newdlfiles $libdir/$name" -+ func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name" - ;; -- *) newdlfiles="$newdlfiles $lib" ;; -+ *) func_append newdlfiles " $lib" ;; - esac - done - dlfiles="$newdlfiles" -@@ -8303,10 +9316,11 @@ - # the library: - func_basename "$lib" - name="$func_basename_result" -- libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` -+ func_resolve_sysroot "$lib" -+ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result` - test -z "$libdir" && \ - func_fatal_error "\`$lib' is not a valid libtool archive" -- newdlprefiles="$newdlprefiles $libdir/$name" -+ func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name" - ;; - esac - done -@@ -8318,7 +9332,7 @@ - [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; - *) abs=`pwd`"/$lib" ;; - esac -- newdlfiles="$newdlfiles $abs" -+ func_append newdlfiles " $abs" - done - dlfiles="$newdlfiles" - newdlprefiles= -@@ -8327,7 +9341,7 @@ - [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; - *) abs=`pwd`"/$lib" ;; - esac -- newdlprefiles="$newdlprefiles $abs" -+ func_append newdlprefiles " $abs" - done - dlprefiles="$newdlprefiles" - fi -@@ -8412,7 +9426,7 @@ - exit $EXIT_SUCCESS - } - --{ test "$mode" = link || test "$mode" = relink; } && -+{ test "$opt_mode" = link || test "$opt_mode" = relink; } && - func_mode_link ${1+"$@"} - - -@@ -8432,9 +9446,9 @@ - for arg - do - case $arg in -- -f) RM="$RM $arg"; rmforce=yes ;; -- -*) RM="$RM $arg" ;; -- *) files="$files $arg" ;; -+ -f) func_append RM " $arg"; rmforce=yes ;; -+ -*) func_append RM " $arg" ;; -+ *) func_append files " $arg" ;; - esac - done - -@@ -8443,24 +9457,23 @@ - - rmdirs= - -- origobjdir="$objdir" - for file in $files; do - func_dirname "$file" "" "." - dir="$func_dirname_result" - if test "X$dir" = X.; then -- objdir="$origobjdir" -+ odir="$objdir" - else -- objdir="$dir/$origobjdir" -+ odir="$dir/$objdir" - fi - func_basename "$file" - name="$func_basename_result" -- test "$mode" = uninstall && objdir="$dir" -+ test "$opt_mode" = uninstall && odir="$dir" - -- # Remember objdir for removal later, being careful to avoid duplicates -- if test "$mode" = clean; then -+ # Remember odir for removal later, being careful to avoid duplicates -+ if test "$opt_mode" = clean; then - case " $rmdirs " in -- *" $objdir "*) ;; -- *) rmdirs="$rmdirs $objdir" ;; -+ *" $odir "*) ;; -+ *) func_append rmdirs " $odir" ;; - esac - fi - -@@ -8486,18 +9499,17 @@ - - # Delete the libtool libraries and symlinks. - for n in $library_names; do -- rmfiles="$rmfiles $objdir/$n" -+ func_append rmfiles " $odir/$n" - done -- test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library" -+ test -n "$old_library" && func_append rmfiles " $odir/$old_library" - -- case "$mode" in -+ case "$opt_mode" in - clean) -- case " $library_names " in -- # " " in the beginning catches empty $dlname -+ case " $library_names " in - *" $dlname "*) ;; -- *) rmfiles="$rmfiles $objdir/$dlname" ;; -+ *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;; - esac -- test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" -+ test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i" - ;; - uninstall) - if test -n "$library_names"; then -@@ -8525,19 +9537,19 @@ - # Add PIC object to the list of files to remove. - if test -n "$pic_object" && - test "$pic_object" != none; then -- rmfiles="$rmfiles $dir/$pic_object" -+ func_append rmfiles " $dir/$pic_object" - fi - - # Add non-PIC object to the list of files to remove. - if test -n "$non_pic_object" && - test "$non_pic_object" != none; then -- rmfiles="$rmfiles $dir/$non_pic_object" -+ func_append rmfiles " $dir/$non_pic_object" - fi - fi - ;; - - *) -- if test "$mode" = clean ; then -+ if test "$opt_mode" = clean ; then - noexename=$name - case $file in - *.exe) -@@ -8547,7 +9559,7 @@ - noexename=$func_stripname_result - # $file with .exe has already been added to rmfiles, - # add $file without .exe -- rmfiles="$rmfiles $file" -+ func_append rmfiles " $file" - ;; - esac - # Do a test to see if this is a libtool program. -@@ -8556,7 +9568,7 @@ - func_ltwrapper_scriptname "$file" - relink_command= - func_source $func_ltwrapper_scriptname_result -- rmfiles="$rmfiles $func_ltwrapper_scriptname_result" -+ func_append rmfiles " $func_ltwrapper_scriptname_result" - else - relink_command= - func_source $dir/$noexename -@@ -8564,12 +9576,12 @@ - - # note $name still contains .exe if it was in $file originally - # as does the version of $file that was added into $rmfiles -- rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}" -+ func_append rmfiles " $odir/$name $odir/${name}S.${objext}" - if test "$fast_install" = yes && test -n "$relink_command"; then -- rmfiles="$rmfiles $objdir/lt-$name" -+ func_append rmfiles " $odir/lt-$name" - fi - if test "X$noexename" != "X$name" ; then -- rmfiles="$rmfiles $objdir/lt-${noexename}.c" -+ func_append rmfiles " $odir/lt-${noexename}.c" - fi - fi - fi -@@ -8577,7 +9589,6 @@ - esac - func_show_eval "$RM $rmfiles" 'exit_status=1' - done -- objdir="$origobjdir" - - # Try to remove the ${objdir}s in the directories where we deleted files - for dir in $rmdirs; do -@@ -8589,16 +9600,16 @@ - exit $exit_status - } - --{ test "$mode" = uninstall || test "$mode" = clean; } && -+{ test "$opt_mode" = uninstall || test "$opt_mode" = clean; } && - func_mode_uninstall ${1+"$@"} - --test -z "$mode" && { -+test -z "$opt_mode" && { - help="$generic_help" - func_fatal_help "you must specify a MODE" - } - - test -z "$exec_cmd" && \ -- func_fatal_help "invalid operation mode \`$mode'" -+ func_fatal_help "invalid operation mode \`$opt_mode'" - - if test -n "$exec_cmd"; then - eval exec "$exec_cmd" -Index: binutils-2.24/ltoptions.m4 -=================================================================== ---- binutils-2.24.orig/ltoptions.m4 2013-11-04 07:33:40.000000000 -0800 -+++ binutils-2.24/ltoptions.m4 2013-12-15 11:10:23.867118697 -0800 -@@ -8,7 +8,7 @@ - # unlimited permission to copy and/or distribute it, with or without - # modifications, as long as this notice is preserved. - --# serial 6 ltoptions.m4 -+# serial 7 ltoptions.m4 - - # This is to help aclocal find these macros, as it can't see m4_define. - AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) -Index: binutils-2.24/ltversion.m4 -=================================================================== ---- binutils-2.24.orig/ltversion.m4 2013-11-04 07:33:40.000000000 -0800 -+++ binutils-2.24/ltversion.m4 2013-12-15 11:10:23.867118697 -0800 -@@ -7,17 +7,17 @@ - # unlimited permission to copy and/or distribute it, with or without - # modifications, as long as this notice is preserved. - --# Generated from ltversion.in. -+# @configure_input@ - --# serial 3134 ltversion.m4 -+# serial 3293 ltversion.m4 - # This file is part of GNU Libtool - --m4_define([LT_PACKAGE_VERSION], [2.2.7a]) --m4_define([LT_PACKAGE_REVISION], [1.3134]) -+m4_define([LT_PACKAGE_VERSION], [2.4]) -+m4_define([LT_PACKAGE_REVISION], [1.3293]) - - AC_DEFUN([LTVERSION_VERSION], --[macro_version='2.2.7a' --macro_revision='1.3134' -+[macro_version='2.4' -+macro_revision='1.3293' - _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) - _LT_DECL(, macro_revision, 0) - ]) -Index: binutils-2.24/lt~obsolete.m4 -=================================================================== ---- binutils-2.24.orig/lt~obsolete.m4 2013-11-04 07:33:40.000000000 -0800 -+++ binutils-2.24/lt~obsolete.m4 2013-12-15 11:10:23.867118697 -0800 -@@ -7,7 +7,7 @@ - # unlimited permission to copy and/or distribute it, with or without - # modifications, as long as this notice is preserved. - --# serial 4 lt~obsolete.m4 -+# serial 5 lt~obsolete.m4 - - # These exist entirely to fool aclocal when bootstrapping libtool. - # -Index: binutils-2.24/configure -=================================================================== ---- binutils-2.24.orig/configure 2013-12-15 11:09:51.000000000 -0800 -+++ binutils-2.24/configure 2013-12-15 11:10:23.870452030 -0800 -@@ -7921,7 +7921,7 @@ - # For an installed makeinfo, we require it to be from texinfo 4.7 or - # higher, else we use the "missing" dummy. - if ${MAKEINFO} --version \ -- | egrep 'texinfo[^0-9]*(4\.([7-9]|[1-9][0-9])|[5-9]|[1-9][0-9])' >/dev/null 2>&1; then -+ | egrep 'texinfo[^0-9]*([1-3][0-9]|4.[4-9]|4.[1-9][0-9]+|[5-9])' >/dev/null 2>&1; then - : - else - MAKEINFO="$MISSING makeinfo" -Index: binutils-2.24/bfd/configure -=================================================================== ---- binutils-2.24.orig/bfd/configure 2013-12-02 01:30:30.000000000 -0800 -+++ binutils-2.24/bfd/configure 2013-12-15 11:10:23.870452030 -0800 -@@ -668,6 +668,9 @@ - LIPO - NMEDIT - DSYMUTIL -+MANIFEST_TOOL -+ac_ct_AR -+DLLTOOL - OBJDUMP - LN_S - NM -@@ -780,6 +783,7 @@ - with_pic - enable_fast_install - with_gnu_ld -+with_libtool_sysroot - enable_libtool_lock - enable_plugins - enable_largefile -@@ -1456,6 +1460,8 @@ - --with-pic try to use only PIC/non-PIC objects [default=use - both] - --with-gnu-ld assume the C compiler uses GNU ld [default=no] -+ --with-libtool-sysroot=DIR Search for dependent libraries within DIR -+ (or the compiler's sysroot if not specified). - --with-mmap try using mmap for BFD input files if available - --with-separate-debug-dir=DIR - Look for global separate debug info in DIR -@@ -5386,8 +5392,8 @@ - - - --macro_version='2.2.7a' --macro_revision='1.3134' -+macro_version='2.4' -+macro_revision='1.3293' - - - -@@ -5427,7 +5433,7 @@ - { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5 - $as_echo_n "checking how to print strings... " >&6; } - # Test print first, because it will be a builtin if present. --if test "X`print -r -- -n 2>/dev/null`" = X-n && \ -+if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ - test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then - ECHO='print -r --' - elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then -@@ -6113,8 +6119,8 @@ - # Try some XSI features - xsi_shell=no - ( _lt_dummy="a/b/c" -- test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \ -- = c,a/b,, \ -+ test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ -+ = c,a/b,b/c, \ - && eval 'test $(( 1 + 1 )) -eq 2 \ - && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ - && xsi_shell=yes -@@ -6163,6 +6169,80 @@ - - - -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5 -+$as_echo_n "checking how to convert $build file names to $host format... " >&6; } -+if test "${lt_cv_to_host_file_cmd+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ case $host in -+ *-*-mingw* ) -+ case $build in -+ *-*-mingw* ) # actually msys -+ lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 -+ ;; -+ *-*-cygwin* ) -+ lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 -+ ;; -+ * ) # otherwise, assume *nix -+ lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 -+ ;; -+ esac -+ ;; -+ *-*-cygwin* ) -+ case $build in -+ *-*-mingw* ) # actually msys -+ lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin -+ ;; -+ *-*-cygwin* ) -+ lt_cv_to_host_file_cmd=func_convert_file_noop -+ ;; -+ * ) # otherwise, assume *nix -+ lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin -+ ;; -+ esac -+ ;; -+ * ) # unhandled hosts (and "normal" native builds) -+ lt_cv_to_host_file_cmd=func_convert_file_noop -+ ;; -+esac -+ -+fi -+ -+to_host_file_cmd=$lt_cv_to_host_file_cmd -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5 -+$as_echo "$lt_cv_to_host_file_cmd" >&6; } -+ -+ -+ -+ -+ -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5 -+$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; } -+if test "${lt_cv_to_tool_file_cmd+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ #assume ordinary cross tools, or native build. -+lt_cv_to_tool_file_cmd=func_convert_file_noop -+case $host in -+ *-*-mingw* ) -+ case $build in -+ *-*-mingw* ) # actually msys -+ lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 -+ ;; -+ esac -+ ;; -+esac -+ -+fi -+ -+to_tool_file_cmd=$lt_cv_to_tool_file_cmd -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5 -+$as_echo "$lt_cv_to_tool_file_cmd" >&6; } -+ -+ -+ -+ -+ - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 - $as_echo_n "checking for $LD option to reload object files... " >&6; } - if test "${lt_cv_ld_reload_flag+set}" = set; then : -@@ -6179,6 +6259,11 @@ - esac - reload_cmds='$LD$reload_flag -o $output$reload_objs' - case $host_os in -+ cygwin* | mingw* | pw32* | cegcc*) -+ if test "$GCC" != yes; then -+ reload_cmds=false -+ fi -+ ;; - darwin*) - if test "$GCC" = yes; then - reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' -@@ -6347,7 +6432,8 @@ - lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' - lt_cv_file_magic_cmd='func_win32_libid' - else -- lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' -+ # Keep this pattern in sync with the one in func_win32_libid. -+ lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' - lt_cv_file_magic_cmd='$OBJDUMP -f' - fi - ;; -@@ -6501,6 +6587,21 @@ - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 - $as_echo "$lt_cv_deplibs_check_method" >&6; } -+ -+file_magic_glob= -+want_nocaseglob=no -+if test "$build" = "$host"; then -+ case $host_os in -+ mingw* | pw32*) -+ if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then -+ want_nocaseglob=yes -+ else -+ file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"` -+ fi -+ ;; -+ esac -+fi -+ - file_magic_cmd=$lt_cv_file_magic_cmd - deplibs_check_method=$lt_cv_deplibs_check_method - test -z "$deplibs_check_method" && deplibs_check_method=unknown -@@ -6516,9 +6617,162 @@ - - - -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ - if test -n "$ac_tool_prefix"; then -- # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. --set dummy ${ac_tool_prefix}ar; ac_word=$2 -+ # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. -+set dummy ${ac_tool_prefix}dlltool; ac_word=$2 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+$as_echo_n "checking for $ac_word... " >&6; } -+if test "${ac_cv_prog_DLLTOOL+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ if test -n "$DLLTOOL"; then -+ ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. -+else -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then -+ ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" -+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+ done -+IFS=$as_save_IFS -+ -+fi -+fi -+DLLTOOL=$ac_cv_prog_DLLTOOL -+if test -n "$DLLTOOL"; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 -+$as_echo "$DLLTOOL" >&6; } -+else -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+$as_echo "no" >&6; } -+fi -+ -+ -+fi -+if test -z "$ac_cv_prog_DLLTOOL"; then -+ ac_ct_DLLTOOL=$DLLTOOL -+ # Extract the first word of "dlltool", so it can be a program name with args. -+set dummy dlltool; ac_word=$2 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+$as_echo_n "checking for $ac_word... " >&6; } -+if test "${ac_cv_prog_ac_ct_DLLTOOL+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ if test -n "$ac_ct_DLLTOOL"; then -+ ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. -+else -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then -+ ac_cv_prog_ac_ct_DLLTOOL="dlltool" -+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+ done -+IFS=$as_save_IFS -+ -+fi -+fi -+ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL -+if test -n "$ac_ct_DLLTOOL"; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 -+$as_echo "$ac_ct_DLLTOOL" >&6; } -+else -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+$as_echo "no" >&6; } -+fi -+ -+ if test "x$ac_ct_DLLTOOL" = x; then -+ DLLTOOL="false" -+ else -+ case $cross_compiling:$ac_tool_warned in -+yes:) -+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -+ac_tool_warned=yes ;; -+esac -+ DLLTOOL=$ac_ct_DLLTOOL -+ fi -+else -+ DLLTOOL="$ac_cv_prog_DLLTOOL" -+fi -+ -+test -z "$DLLTOOL" && DLLTOOL=dlltool -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5 -+$as_echo_n "checking how to associate runtime and link libraries... " >&6; } -+if test "${lt_cv_sharedlib_from_linklib_cmd+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ lt_cv_sharedlib_from_linklib_cmd='unknown' -+ -+case $host_os in -+cygwin* | mingw* | pw32* | cegcc*) -+ # two different shell functions defined in ltmain.sh -+ # decide which to use based on capabilities of $DLLTOOL -+ case `$DLLTOOL --help 2>&1` in -+ *--identify-strict*) -+ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib -+ ;; -+ *) -+ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback -+ ;; -+ esac -+ ;; -+*) -+ # fallback: assume linklib IS sharedlib -+ lt_cv_sharedlib_from_linklib_cmd="$ECHO" -+ ;; -+esac -+ -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5 -+$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; } -+sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd -+test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO -+ -+ -+ -+ -+ -+ -+ -+if test -n "$ac_tool_prefix"; then -+ for ac_prog in ar -+ do -+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -+set dummy $ac_tool_prefix$ac_prog; ac_word=$2 - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 - $as_echo_n "checking for $ac_word... " >&6; } - if test "${ac_cv_prog_AR+set}" = set; then : -@@ -6534,7 +6788,7 @@ - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then -- ac_cv_prog_AR="${ac_tool_prefix}ar" -+ ac_cv_prog_AR="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -@@ -6554,11 +6808,15 @@ - fi - - -+ test -n "$AR" && break -+ done - fi --if test -z "$ac_cv_prog_AR"; then -+if test -z "$AR"; then - ac_ct_AR=$AR -- # Extract the first word of "ar", so it can be a program name with args. --set dummy ar; ac_word=$2 -+ for ac_prog in ar -+do -+ # Extract the first word of "$ac_prog", so it can be a program name with args. -+set dummy $ac_prog; ac_word=$2 - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 - $as_echo_n "checking for $ac_word... " >&6; } - if test "${ac_cv_prog_ac_ct_AR+set}" = set; then : -@@ -6574,7 +6832,7 @@ - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then -- ac_cv_prog_ac_ct_AR="ar" -+ ac_cv_prog_ac_ct_AR="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -@@ -6593,6 +6851,10 @@ - $as_echo "no" >&6; } - fi - -+ -+ test -n "$ac_ct_AR" && break -+done -+ - if test "x$ac_ct_AR" = x; then - AR="false" - else -@@ -6604,16 +6866,72 @@ - esac - AR=$ac_ct_AR - fi --else -- AR="$ac_cv_prog_AR" - fi - --test -z "$AR" && AR=ar --test -z "$AR_FLAGS" && AR_FLAGS=cru -+: ${AR=ar} -+: ${AR_FLAGS=cru} -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ - -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 -+$as_echo_n "checking for archiver @FILE support... " >&6; } -+if test "${lt_cv_ar_at_file+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ lt_cv_ar_at_file=no -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+/* end confdefs.h. */ - -+int -+main () -+{ - -+ ; -+ return 0; -+} -+_ACEOF -+if ac_fn_c_try_compile "$LINENO"; then : -+ echo conftest.$ac_objext > conftest.lst -+ lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5' -+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 -+ (eval $lt_ar_try) 2>&5 -+ ac_status=$? -+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 -+ test $ac_status = 0; } -+ if test "$ac_status" -eq 0; then -+ # Ensure the archiver fails upon bogus file names. -+ rm -f conftest.$ac_objext libconftest.a -+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 -+ (eval $lt_ar_try) 2>&5 -+ ac_status=$? -+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 -+ test $ac_status = 0; } -+ if test "$ac_status" -ne 0; then -+ lt_cv_ar_at_file=@ -+ fi -+ fi -+ rm -f conftest.* libconftest.a - -+fi -+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -+ -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 -+$as_echo "$lt_cv_ar_at_file" >&6; } -+ -+if test "x$lt_cv_ar_at_file" = xno; then -+ archiver_list_spec= -+else -+ archiver_list_spec=$lt_cv_ar_at_file -+fi - - - -@@ -6955,8 +7273,8 @@ - lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" - - # Transform an extracted symbol line into symbol name and symbol address --lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" --lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" -+lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" -+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" - - # Handle CRLF in mingw tool chain - opt_cr= -@@ -6992,6 +7310,7 @@ - else - lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" - fi -+ lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" - - # Check to see that the pipe works correctly. - pipe_works=no -@@ -7033,6 +7352,18 @@ - if $GREP ' nm_test_var$' "$nlist" >/dev/null; then - if $GREP ' nm_test_func$' "$nlist" >/dev/null; then - cat <<_LT_EOF > conftest.$ac_ext -+/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ -+#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) -+/* DATA imports from DLLs on WIN32 con't be const, because runtime -+ relocations are performed -- see ld's documentation on pseudo-relocs. */ -+# define LT_DLSYM_CONST -+#elif defined(__osf__) -+/* This system does not cope well with relocations in const data. */ -+# define LT_DLSYM_CONST -+#else -+# define LT_DLSYM_CONST const -+#endif -+ - #ifdef __cplusplus - extern "C" { - #endif -@@ -7044,7 +7375,7 @@ - cat <<_LT_EOF >> conftest.$ac_ext - - /* The mapping between symbol names and symbols. */ --const struct { -+LT_DLSYM_CONST struct { - const char *name; - void *address; - } -@@ -7070,8 +7401,8 @@ - _LT_EOF - # Now try linking the two files. - mv conftest.$ac_objext conftstm.$ac_objext -- lt_save_LIBS="$LIBS" -- lt_save_CFLAGS="$CFLAGS" -+ lt_globsym_save_LIBS=$LIBS -+ lt_globsym_save_CFLAGS=$CFLAGS - LIBS="conftstm.$ac_objext" - CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 -@@ -7081,8 +7412,8 @@ - test $ac_status = 0; } && test -s conftest${ac_exeext}; then - pipe_works=yes - fi -- LIBS="$lt_save_LIBS" -- CFLAGS="$lt_save_CFLAGS" -+ LIBS=$lt_globsym_save_LIBS -+ CFLAGS=$lt_globsym_save_CFLAGS - else - echo "cannot find nm_test_func in $nlist" >&5 - fi -@@ -7119,6 +7450,20 @@ - $as_echo "ok" >&6; } - fi - -+# Response file support. -+if test "$lt_cv_nm_interface" = "MS dumpbin"; then -+ nm_file_list_spec='@' -+elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then -+ nm_file_list_spec='@' -+fi -+ -+ -+ -+ -+ -+ -+ -+ - - - -@@ -7138,6 +7483,41 @@ - - - -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 -+$as_echo_n "checking for sysroot... " >&6; } -+ -+# Check whether --with-libtool-sysroot was given. -+if test "${with_libtool_sysroot+set}" = set; then : -+ withval=$with_libtool_sysroot; -+else -+ with_libtool_sysroot=no -+fi -+ -+ -+lt_sysroot= -+case ${with_libtool_sysroot} in #( -+ yes) -+ if test "$GCC" = yes; then -+ lt_sysroot=`$CC --print-sysroot 2>/dev/null` -+ fi -+ ;; #( -+ /*) -+ lt_sysroot=`echo "$with_libtool_sysroot" | sed -e "$sed_quote_subst"` -+ ;; #( -+ no|'') -+ ;; #( -+ *) -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_libtool_sysroot}" >&5 -+$as_echo "${with_libtool_sysroot}" >&6; } -+ as_fn_error "The sysroot must be an absolute path." "$LINENO" 5 -+ ;; -+esac -+ -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5 -+$as_echo "${lt_sysroot:-no}" >&6; } -+ -+ -+ - - - # Check whether --enable-libtool-lock was given. -@@ -7346,6 +7726,123 @@ - - need_locks="$enable_libtool_lock" - -+if test -n "$ac_tool_prefix"; then -+ # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args. -+set dummy ${ac_tool_prefix}mt; ac_word=$2 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+$as_echo_n "checking for $ac_word... " >&6; } -+if test "${ac_cv_prog_MANIFEST_TOOL+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ if test -n "$MANIFEST_TOOL"; then -+ ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test. -+else -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then -+ ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt" -+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+ done -+IFS=$as_save_IFS -+ -+fi -+fi -+MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL -+if test -n "$MANIFEST_TOOL"; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5 -+$as_echo "$MANIFEST_TOOL" >&6; } -+else -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+$as_echo "no" >&6; } -+fi -+ -+ -+fi -+if test -z "$ac_cv_prog_MANIFEST_TOOL"; then -+ ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL -+ # Extract the first word of "mt", so it can be a program name with args. -+set dummy mt; ac_word=$2 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+$as_echo_n "checking for $ac_word... " >&6; } -+if test "${ac_cv_prog_ac_ct_MANIFEST_TOOL+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ if test -n "$ac_ct_MANIFEST_TOOL"; then -+ ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test. -+else -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then -+ ac_cv_prog_ac_ct_MANIFEST_TOOL="mt" -+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+ done -+IFS=$as_save_IFS -+ -+fi -+fi -+ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL -+if test -n "$ac_ct_MANIFEST_TOOL"; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5 -+$as_echo "$ac_ct_MANIFEST_TOOL" >&6; } -+else -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+$as_echo "no" >&6; } -+fi -+ -+ if test "x$ac_ct_MANIFEST_TOOL" = x; then -+ MANIFEST_TOOL=":" -+ else -+ case $cross_compiling:$ac_tool_warned in -+yes:) -+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -+ac_tool_warned=yes ;; -+esac -+ MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL -+ fi -+else -+ MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL" -+fi -+ -+test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5 -+$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; } -+if test "${lt_cv_path_mainfest_tool+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ lt_cv_path_mainfest_tool=no -+ echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5 -+ $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out -+ cat conftest.err >&5 -+ if $GREP 'Manifest Tool' conftest.out > /dev/null; then -+ lt_cv_path_mainfest_tool=yes -+ fi -+ rm -f conftest* -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5 -+$as_echo "$lt_cv_path_mainfest_tool" >&6; } -+if test "x$lt_cv_path_mainfest_tool" != xyes; then -+ MANIFEST_TOOL=: -+fi -+ -+ -+ -+ -+ - - case $host_os in - rhapsody* | darwin*) -@@ -7909,6 +8406,8 @@ - $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 - echo "$AR cru libconftest.a conftest.o" >&5 - $AR cru libconftest.a conftest.o 2>&5 -+ echo "$RANLIB libconftest.a" >&5 -+ $RANLIB libconftest.a 2>&5 - cat > conftest.c << _LT_EOF - int main() { return 0;} - _LT_EOF -@@ -8073,7 +8572,8 @@ - LIBTOOL_DEPS="$ltmain" - - # Always use our own libtool. --LIBTOOL='$(SHELL) $(top_builddir)/libtool' -+LIBTOOL='$(SHELL) $(top_builddir)' -+LIBTOOL="$LIBTOOL/${host_alias}-libtool" - - - -@@ -8162,7 +8662,7 @@ - esac - - # Global variables: --ofile=libtool -+ofile=${host_alias}-libtool - can_build_shared=yes - - # All known linkers require a `.a' archive for static linking (except MSVC, -@@ -8460,8 +8960,6 @@ - lt_prog_compiler_pic= - lt_prog_compiler_static= - --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 --$as_echo_n "checking for $compiler option to produce PIC... " >&6; } - - if test "$GCC" = yes; then - lt_prog_compiler_wl='-Wl,' -@@ -8627,6 +9125,12 @@ - lt_prog_compiler_pic='--shared' - lt_prog_compiler_static='--static' - ;; -+ nagfor*) -+ # NAG Fortran compiler -+ lt_prog_compiler_wl='-Wl,-Wl,,' -+ lt_prog_compiler_pic='-PIC' -+ lt_prog_compiler_static='-Bstatic' -+ ;; - pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) - # Portland Group compilers (*not* the Pentium gcc compiler, - # which looks to be a dead project) -@@ -8689,7 +9193,7 @@ - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-Bstatic' - case $cc_basename in -- f77* | f90* | f95*) -+ f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) - lt_prog_compiler_wl='-Qoption ld ';; - *) - lt_prog_compiler_wl='-Wl,';; -@@ -8746,13 +9250,17 @@ - lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" - ;; - esac --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic" >&5 --$as_echo "$lt_prog_compiler_pic" >&6; } -- -- -- -- - -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 -+$as_echo_n "checking for $compiler option to produce PIC... " >&6; } -+if test "${lt_cv_prog_compiler_pic+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ lt_cv_prog_compiler_pic=$lt_prog_compiler_pic -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 -+$as_echo "$lt_cv_prog_compiler_pic" >&6; } -+lt_prog_compiler_pic=$lt_cv_prog_compiler_pic - - # - # Check to make sure the PIC flag actually works. -@@ -8813,6 +9321,11 @@ - - - -+ -+ -+ -+ -+ - # - # Check to make sure the static flag actually works. - # -@@ -9163,7 +9676,8 @@ - allow_undefined_flag=unsupported - always_export_symbols=no - enable_shared_with_static_runtimes=yes -- export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' -+ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' -+ exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' - - if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' -@@ -9211,7 +9725,7 @@ - if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ - && test "$tmp_diet" = no - then -- tmp_addflag= -+ tmp_addflag=' $pic_flag' - tmp_sharedflag='-shared' - case $cc_basename,$host_cpu in - pgcc*) # Portland Group C compiler -@@ -9262,12 +9776,12 @@ - whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' - hardcode_libdir_flag_spec= - hardcode_libdir_flag_spec_ld='-rpath $libdir' -- archive_cmds='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib' -+ archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' - if test "x$supports_anon_versioning" = xyes; then - archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ - cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ - echo "local: *; };" >> $output_objdir/$libname.ver~ -- $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' -+ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' - fi - ;; - esac -@@ -9281,8 +9795,8 @@ - archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' - wlarc= - else -- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' -+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - fi - ;; - -@@ -9300,8 +9814,8 @@ - - _LT_EOF - elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then -- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' -+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - ld_shlibs=no - fi -@@ -9347,8 +9861,8 @@ - - *) - if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then -- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' -+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - ld_shlibs=no - fi -@@ -9478,7 +9992,13 @@ - allow_undefined_flag='-berok' - # Determine the default libpath from the value encoded in an - # empty executable. -- cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+ if test "${lt_cv_aix_libpath+set}" = set; then -+ aix_libpath=$lt_cv_aix_libpath -+else -+ if test "${lt_cv_aix_libpath_+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - - int -@@ -9491,22 +10011,29 @@ - _ACEOF - if ac_fn_c_try_link "$LINENO"; then : - --lt_aix_libpath_sed=' -- /Import File Strings/,/^$/ { -- /^0/ { -- s/^0 *\(.*\)$/\1/ -- p -- } -- }' --aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` --# Check for a 64-bit object if we didn't find anything. --if test -z "$aix_libpath"; then -- aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` --fi -+ lt_aix_libpath_sed=' -+ /Import File Strings/,/^$/ { -+ /^0/ { -+ s/^0 *\([^ ]*\) *$/\1/ -+ p -+ } -+ }' -+ lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -+ # Check for a 64-bit object if we didn't find anything. -+ if test -z "$lt_cv_aix_libpath_"; then -+ lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -+ fi - fi - rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext --if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi -+ if test -z "$lt_cv_aix_libpath_"; then -+ lt_cv_aix_libpath_="/usr/lib:/lib" -+ fi -+ -+fi -+ -+ aix_libpath=$lt_cv_aix_libpath_ -+fi - - hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" - archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" -@@ -9518,7 +10045,13 @@ - else - # Determine the default libpath from the value encoded in an - # empty executable. -- cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+ if test "${lt_cv_aix_libpath+set}" = set; then -+ aix_libpath=$lt_cv_aix_libpath -+else -+ if test "${lt_cv_aix_libpath_+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - - int -@@ -9531,22 +10064,29 @@ - _ACEOF - if ac_fn_c_try_link "$LINENO"; then : - --lt_aix_libpath_sed=' -- /Import File Strings/,/^$/ { -- /^0/ { -- s/^0 *\(.*\)$/\1/ -- p -- } -- }' --aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` --# Check for a 64-bit object if we didn't find anything. --if test -z "$aix_libpath"; then -- aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` --fi -+ lt_aix_libpath_sed=' -+ /Import File Strings/,/^$/ { -+ /^0/ { -+ s/^0 *\([^ ]*\) *$/\1/ -+ p -+ } -+ }' -+ lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -+ # Check for a 64-bit object if we didn't find anything. -+ if test -z "$lt_cv_aix_libpath_"; then -+ lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -+ fi - fi - rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext --if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi -+ if test -z "$lt_cv_aix_libpath_"; then -+ lt_cv_aix_libpath_="/usr/lib:/lib" -+ fi -+ -+fi -+ -+ aix_libpath=$lt_cv_aix_libpath_ -+fi - - hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" - # Warning - without using the other run time loading flags, -@@ -9591,20 +10131,63 @@ - # Microsoft Visual C++. - # hardcode_libdir_flag_spec is actually meaningless, as there is - # no search path for DLLs. -- hardcode_libdir_flag_spec=' ' -- allow_undefined_flag=unsupported -- # Tell ltmain to make .lib files, not .a files. -- libext=lib -- # Tell ltmain to make .dll files, not .so files. -- shrext_cmds=".dll" -- # FIXME: Setting linknames here is a bad hack. -- archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' -- # The linker will automatically build a .lib file if we build a DLL. -- old_archive_from_new_cmds='true' -- # FIXME: Should let the user specify the lib program. -- old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' -- fix_srcfile_path='`cygpath -w "$srcfile"`' -- enable_shared_with_static_runtimes=yes -+ case $cc_basename in -+ cl*) -+ # Native MSVC -+ hardcode_libdir_flag_spec=' ' -+ allow_undefined_flag=unsupported -+ always_export_symbols=yes -+ file_list_spec='@' -+ # Tell ltmain to make .lib files, not .a files. -+ libext=lib -+ # Tell ltmain to make .dll files, not .so files. -+ shrext_cmds=".dll" -+ # FIXME: Setting linknames here is a bad hack. -+ archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' -+ archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then -+ sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; -+ else -+ sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; -+ fi~ -+ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ -+ linknames=' -+ # The linker will not automatically build a static lib if we build a DLL. -+ # _LT_TAGVAR(old_archive_from_new_cmds, )='true' -+ enable_shared_with_static_runtimes=yes -+ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' -+ # Don't use ranlib -+ old_postinstall_cmds='chmod 644 $oldlib' -+ postlink_cmds='lt_outputfile="@OUTPUT@"~ -+ lt_tool_outputfile="@TOOL_OUTPUT@"~ -+ case $lt_outputfile in -+ *.exe|*.EXE) ;; -+ *) -+ lt_outputfile="$lt_outputfile.exe" -+ lt_tool_outputfile="$lt_tool_outputfile.exe" -+ ;; -+ esac~ -+ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then -+ $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; -+ $RM "$lt_outputfile.manifest"; -+ fi' -+ ;; -+ *) -+ # Assume MSVC wrapper -+ hardcode_libdir_flag_spec=' ' -+ allow_undefined_flag=unsupported -+ # Tell ltmain to make .lib files, not .a files. -+ libext=lib -+ # Tell ltmain to make .dll files, not .so files. -+ shrext_cmds=".dll" -+ # FIXME: Setting linknames here is a bad hack. -+ archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' -+ # The linker will automatically build a .lib file if we build a DLL. -+ old_archive_from_new_cmds='true' -+ # FIXME: Should let the user specify the lib program. -+ old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' -+ enable_shared_with_static_runtimes=yes -+ ;; -+ esac - ;; - - darwin* | rhapsody*) -@@ -9665,7 +10248,7 @@ - - # FreeBSD 3 and greater uses gcc -shared to do shared libraries. - freebsd* | dragonfly*) -- archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' -+ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - hardcode_libdir_flag_spec='-R$libdir' - hardcode_direct=yes - hardcode_shlibpath_var=no -@@ -9673,7 +10256,7 @@ - - hpux9*) - if test "$GCC" = yes; then -- archive_cmds='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' -+ archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - else - archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - fi -@@ -9689,7 +10272,7 @@ - - hpux10*) - if test "$GCC" = yes && test "$with_gnu_ld" = no; then -- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' -+ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' - fi -@@ -9713,10 +10296,10 @@ - archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - ia64*) -- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' -+ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) -- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' -+ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - ;; - esac - else -@@ -9795,23 +10378,36 @@ - - irix5* | irix6* | nonstopux*) - if test "$GCC" = yes; then -- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' -+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - # Try to use the -exported_symbol ld option, if it does not - # work, assume that -exports_file does not work either and - # implicitly export all symbols. -- save_LDFLAGS="$LDFLAGS" -- LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" -- cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+ # This should be the same for all languages, so no per-tag cache variable. -+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5 -+$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; } -+if test "${lt_cv_irix_exported_symbol+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ save_LDFLAGS="$LDFLAGS" -+ LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ --int foo(void) {} -+int foo (void) { return 0; } - _ACEOF - if ac_fn_c_try_link "$LINENO"; then : -- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' -- -+ lt_cv_irix_exported_symbol=yes -+else -+ lt_cv_irix_exported_symbol=no - fi - rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -- LDFLAGS="$save_LDFLAGS" -+ LDFLAGS="$save_LDFLAGS" -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5 -+$as_echo "$lt_cv_irix_exported_symbol" >&6; } -+ if test "$lt_cv_irix_exported_symbol" = yes; then -+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' -+ fi - else - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' - archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' -@@ -9896,7 +10492,7 @@ - osf4* | osf5*) # as osf3* with the addition of -msym flag - if test "$GCC" = yes; then - allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' -- archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' -+ archive_cmds='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - else - allow_undefined_flag=' -expect_unresolved \*' -@@ -9915,9 +10511,9 @@ - no_undefined_flag=' -z defs' - if test "$GCC" = yes; then - wlarc='${wl}' -- archive_cmds='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' -+ archive_cmds='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ -- $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' -+ $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' - else - case `$CC -V 2>&1` in - *"Compilers 5.0"*) -@@ -10493,8 +11089,9 @@ - need_version=no - need_lib_prefix=no - -- case $GCC,$host_os in -- yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) -+ case $GCC,$cc_basename in -+ yes,*) -+ # gcc - library_names_spec='$libname.dll.a' - # DLL is installed to $(libdir)/../bin by postinstall_cmds - postinstall_cmds='base_file=`basename \${file}`~ -@@ -10527,13 +11124,71 @@ - library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - ;; - esac -+ dynamic_linker='Win32 ld.exe' -+ ;; -+ -+ *,cl*) -+ # Native MSVC -+ libname_spec='$name' -+ soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' -+ library_names_spec='${libname}.dll.lib' -+ -+ case $build_os in -+ mingw*) -+ sys_lib_search_path_spec= -+ lt_save_ifs=$IFS -+ IFS=';' -+ for lt_path in $LIB -+ do -+ IFS=$lt_save_ifs -+ # Let DOS variable expansion print the short 8.3 style file name. -+ lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` -+ sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" -+ done -+ IFS=$lt_save_ifs -+ # Convert to MSYS style. -+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` -+ ;; -+ cygwin*) -+ # Convert to unix form, then to dos form, then back to unix form -+ # but this time dos style (no spaces!) so that the unix form looks -+ # like /cygdrive/c/PROGRA~1:/cygdr... -+ sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` -+ sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` -+ sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` -+ ;; -+ *) -+ sys_lib_search_path_spec="$LIB" -+ if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then -+ # It is most probably a Windows format PATH. -+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` -+ else -+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` -+ fi -+ # FIXME: find the short name or the path components, as spaces are -+ # common. (e.g. "Program Files" -> "PROGRA~1") -+ ;; -+ esac -+ -+ # DLL is installed to $(libdir)/../bin by postinstall_cmds -+ postinstall_cmds='base_file=`basename \${file}`~ -+ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ -+ dldir=$destdir/`dirname \$dlpath`~ -+ test -d \$dldir || mkdir -p \$dldir~ -+ $install_prog $dir/$dlname \$dldir/$dlname' -+ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ -+ dlpath=$dir/\$dldll~ -+ $RM \$dlpath' -+ shlibpath_overrides_runpath=yes -+ dynamic_linker='Win32 link.exe' - ;; - - *) -+ # Assume MSVC wrapper - library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' -+ dynamic_linker='Win32 ld.exe' - ;; - esac -- dynamic_linker='Win32 ld.exe' - # FIXME: first we should search . and the directory the executable is in - shlibpath_var=PATH - ;; -@@ -10625,7 +11280,7 @@ - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LIBRARY_PATH - shlibpath_overrides_runpath=yes -- sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/beos/system/lib' -+ sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' - hardcode_into_libs=yes - ;; - -@@ -11465,10 +12120,10 @@ - /* When -fvisbility=hidden is used, assume the code has been annotated - correspondingly for the symbols needed. */ - #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) --void fnord () __attribute__((visibility("default"))); -+int fnord () __attribute__((visibility("default"))); - #endif - --void fnord () { int i=42; } -+int fnord () { return 42; } - int main () - { - void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); -@@ -11571,10 +12226,10 @@ - /* When -fvisbility=hidden is used, assume the code has been annotated - correspondingly for the symbols needed. */ - #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) --void fnord () __attribute__((visibility("default"))); -+int fnord () __attribute__((visibility("default"))); - #endif - --void fnord () { int i=42; } -+int fnord () { return 42; } - int main () - { - void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); -@@ -15079,7 +15734,7 @@ - if test "$enable_shared" = "yes"; then - x=`sed -n -e 's/^[ ]*PICFLAG[ ]*=[ ]*//p' < ../libiberty/Makefile | sed -n '$p'` - if test -n "$x"; then -- SHARED_LIBADD="-L`pwd`/../libiberty/pic -liberty" -+ SHARED_LIBADD="`pwd`/../libiberty/pic/libiberty.a" - fi - - # More hacks to build DLLs on Windows. -@@ -16694,13 +17349,20 @@ - lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`' - lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`' - lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`' -+lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`' -+lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`' - reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' - reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' - OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' - deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' - file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' -+file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`' -+want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`' -+DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' -+sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' - AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' - AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' -+archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`' - STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' - RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`' - old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`' -@@ -16715,14 +17377,17 @@ - lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`' - lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`' - lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`' -+nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`' -+lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`' - objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`' - MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`' - lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`' --lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' - lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`' -+lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' - lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`' - lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`' - need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`' -+MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`' - DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`' - NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`' - LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`' -@@ -16755,12 +17420,12 @@ - hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`' - inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`' - link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`' --fix_srcfile_path='`$ECHO "$fix_srcfile_path" | $SED "$delay_single_quote_subst"`' - always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`' - export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`' - exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`' - include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`' - prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`' -+postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`' - file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`' - variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`' - need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`' -@@ -16815,8 +17480,13 @@ - OBJDUMP \ - deplibs_check_method \ - file_magic_cmd \ -+file_magic_glob \ -+want_nocaseglob \ -+DLLTOOL \ -+sharedlib_from_linklib_cmd \ - AR \ - AR_FLAGS \ -+archiver_list_spec \ - STRIP \ - RANLIB \ - CC \ -@@ -16826,12 +17496,14 @@ - lt_cv_sys_global_symbol_to_cdecl \ - lt_cv_sys_global_symbol_to_c_name_address \ - lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ -+nm_file_list_spec \ - lt_prog_compiler_no_builtin_flag \ --lt_prog_compiler_wl \ - lt_prog_compiler_pic \ -+lt_prog_compiler_wl \ - lt_prog_compiler_static \ - lt_cv_prog_compiler_c_o \ - need_locks \ -+MANIFEST_TOOL \ - DSYMUTIL \ - NMEDIT \ - LIPO \ -@@ -16847,7 +17519,6 @@ - hardcode_libdir_flag_spec \ - hardcode_libdir_flag_spec_ld \ - hardcode_libdir_separator \ --fix_srcfile_path \ - exclude_expsyms \ - include_expsyms \ - file_list_spec \ -@@ -16883,6 +17554,7 @@ - module_expsym_cmds \ - export_symbols_cmds \ - prelink_cmds \ -+postlink_cmds \ - postinstall_cmds \ - postuninstall_cmds \ - finish_cmds \ -@@ -17662,7 +18334,8 @@ - # NOTE: Changes made to this file will be lost: look at ltmain.sh. - # - # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, --# 2006, 2007, 2008, 2009 Free Software Foundation, Inc. -+# 2006, 2007, 2008, 2009, 2010 Free Software Foundation, -+# Inc. - # Written by Gordon Matzigkeit, 1996 - # - # This file is part of GNU Libtool. -@@ -17765,19 +18438,42 @@ - # turn newlines into spaces. - NL2SP=$lt_lt_NL2SP - -+# convert \$build file names to \$host format. -+to_host_file_cmd=$lt_cv_to_host_file_cmd -+ -+# convert \$build files to toolchain format. -+to_tool_file_cmd=$lt_cv_to_tool_file_cmd -+ - # An object symbol dumper. - OBJDUMP=$lt_OBJDUMP - - # Method to check whether dependent libraries are shared objects. - deplibs_check_method=$lt_deplibs_check_method - --# Command to use when deplibs_check_method == "file_magic". -+# Command to use when deplibs_check_method = "file_magic". - file_magic_cmd=$lt_file_magic_cmd - -+# How to find potential files when deplibs_check_method = "file_magic". -+file_magic_glob=$lt_file_magic_glob -+ -+# Find potential files using nocaseglob when deplibs_check_method = "file_magic". -+want_nocaseglob=$lt_want_nocaseglob -+ -+# DLL creation program. -+DLLTOOL=$lt_DLLTOOL -+ -+# Command to associate shared and link libraries. -+sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd -+ - # The archiver. - AR=$lt_AR -+ -+# Flags to create an archive. - AR_FLAGS=$lt_AR_FLAGS - -+# How to feed a file listing to the archiver. -+archiver_list_spec=$lt_archiver_list_spec -+ - # A symbol stripping program. - STRIP=$lt_STRIP - -@@ -17807,6 +18503,12 @@ - # Transform the output of nm in a C name address pair when lib prefix is needed. - global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix - -+# Specify filename containing input files for \$NM. -+nm_file_list_spec=$lt_nm_file_list_spec -+ -+# The root where to search for dependent libraries,and in which our libraries should be installed. -+lt_sysroot=$lt_sysroot -+ - # The name of the directory that contains temporary libtool files. - objdir=$objdir - -@@ -17816,6 +18518,9 @@ - # Must we lock files when doing compilation? - need_locks=$lt_need_locks - -+# Manifest tool. -+MANIFEST_TOOL=$lt_MANIFEST_TOOL -+ - # Tool to manipulate archived DWARF debug symbol files on Mac OS X. - DSYMUTIL=$lt_DSYMUTIL - -@@ -17930,12 +18635,12 @@ - # Compiler flag to turn off builtin functions. - no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag - --# How to pass a linker flag through the compiler. --wl=$lt_lt_prog_compiler_wl -- - # Additional compiler flags for building library objects. - pic_flag=$lt_lt_prog_compiler_pic - -+# How to pass a linker flag through the compiler. -+wl=$lt_lt_prog_compiler_wl -+ - # Compiler flag to prevent dynamic linking. - link_static_flag=$lt_lt_prog_compiler_static - -@@ -18022,9 +18727,6 @@ - # Whether libtool must link a program against all its dependency libraries. - link_all_deplibs=$link_all_deplibs - --# Fix the shell variable \$srcfile for the compiler. --fix_srcfile_path=$lt_fix_srcfile_path -- - # Set to "yes" if exported symbols are required. - always_export_symbols=$always_export_symbols - -@@ -18040,6 +18742,9 @@ - # Commands necessary for linking programs (against libraries) with templates. - prelink_cmds=$lt_prelink_cmds - -+# Commands necessary for finishing linking programs. -+postlink_cmds=$lt_postlink_cmds -+ - # Specify filename containing input files. - file_list_spec=$lt_file_list_spec - -@@ -18072,210 +18777,169 @@ - # if finds mixed CR/LF and LF-only lines. Since sed operates in - # text mode, it properly converts lines to CR/LF. This bash problem - # is reportedly fixed, but why not run on old versions too? -- sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ -- || (rm -f "$cfgfile"; exit 1) -- -- case $xsi_shell in -- yes) -- cat << \_LT_EOF >> "$cfgfile" -- --# func_dirname file append nondir_replacement --# Compute the dirname of FILE. If nonempty, add APPEND to the result, --# otherwise set result to NONDIR_REPLACEMENT. --func_dirname () --{ -- case ${1} in -- */*) func_dirname_result="${1%/*}${2}" ;; -- * ) func_dirname_result="${3}" ;; -- esac --} -- --# func_basename file --func_basename () --{ -- func_basename_result="${1##*/}" --} -- --# func_dirname_and_basename file append nondir_replacement --# perform func_basename and func_dirname in a single function --# call: --# dirname: Compute the dirname of FILE. If nonempty, --# add APPEND to the result, otherwise set result --# to NONDIR_REPLACEMENT. --# value returned in "$func_dirname_result" --# basename: Compute filename of FILE. --# value retuned in "$func_basename_result" --# Implementation must be kept synchronized with func_dirname --# and func_basename. For efficiency, we do not delegate to --# those functions but instead duplicate the functionality here. --func_dirname_and_basename () --{ -- case ${1} in -- */*) func_dirname_result="${1%/*}${2}" ;; -- * ) func_dirname_result="${3}" ;; -- esac -- func_basename_result="${1##*/}" --} -- --# func_stripname prefix suffix name --# strip PREFIX and SUFFIX off of NAME. --# PREFIX and SUFFIX must not contain globbing or regex special --# characters, hashes, percent signs, but SUFFIX may contain a leading --# dot (in which case that matches only a dot). --func_stripname () --{ -- # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are -- # positional parameters, so assign one to ordinary parameter first. -- func_stripname_result=${3} -- func_stripname_result=${func_stripname_result#"${1}"} -- func_stripname_result=${func_stripname_result%"${2}"} --} -- --# func_opt_split --func_opt_split () --{ -- func_opt_split_opt=${1%%=*} -- func_opt_split_arg=${1#*=} --} -- --# func_lo2o object --func_lo2o () --{ -- case ${1} in -- *.lo) func_lo2o_result=${1%.lo}.${objext} ;; -- *) func_lo2o_result=${1} ;; -- esac --} -- --# func_xform libobj-or-source --func_xform () --{ -- func_xform_result=${1%.*}.lo --} -- --# func_arith arithmetic-term... --func_arith () --{ -- func_arith_result=$(( $* )) --} -- --# func_len string --# STRING may not start with a hyphen. --func_len () --{ -- func_len_result=${#1} --} -- --_LT_EOF -- ;; -- *) # Bourne compatible functions. -- cat << \_LT_EOF >> "$cfgfile" -- --# func_dirname file append nondir_replacement --# Compute the dirname of FILE. If nonempty, add APPEND to the result, --# otherwise set result to NONDIR_REPLACEMENT. --func_dirname () --{ -- # Extract subdirectory from the argument. -- func_dirname_result=`$ECHO "${1}" | $SED "$dirname"` -- if test "X$func_dirname_result" = "X${1}"; then -- func_dirname_result="${3}" -- else -- func_dirname_result="$func_dirname_result${2}" -- fi --} -- --# func_basename file --func_basename () --{ -- func_basename_result=`$ECHO "${1}" | $SED "$basename"` --} -- -- --# func_stripname prefix suffix name --# strip PREFIX and SUFFIX off of NAME. --# PREFIX and SUFFIX must not contain globbing or regex special --# characters, hashes, percent signs, but SUFFIX may contain a leading --# dot (in which case that matches only a dot). --# func_strip_suffix prefix name --func_stripname () --{ -- case ${2} in -- .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; -- *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; -- esac --} -- --# sed scripts: --my_sed_long_opt='1s/^\(-[^=]*\)=.*/\1/;q' --my_sed_long_arg='1s/^-[^=]*=//' -- --# func_opt_split --func_opt_split () --{ -- func_opt_split_opt=`$ECHO "${1}" | $SED "$my_sed_long_opt"` -- func_opt_split_arg=`$ECHO "${1}" | $SED "$my_sed_long_arg"` --} -- --# func_lo2o object --func_lo2o () --{ -- func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"` --} -- --# func_xform libobj-or-source --func_xform () --{ -- func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'` --} -- --# func_arith arithmetic-term... --func_arith () --{ -- func_arith_result=`expr "$@"` --} -- --# func_len string --# STRING may not start with a hyphen. --func_len () --{ -- func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len` --} -- --_LT_EOF --esac -- --case $lt_shell_append in -- yes) -- cat << \_LT_EOF >> "$cfgfile" -- --# func_append var value --# Append VALUE to the end of shell variable VAR. --func_append () --{ -- eval "$1+=\$2" --} --_LT_EOF -- ;; -- *) -- cat << \_LT_EOF >> "$cfgfile" -- --# func_append var value --# Append VALUE to the end of shell variable VAR. --func_append () --{ -- eval "$1=\$$1\$2" --} -- --_LT_EOF -- ;; -- esac -+ sed '$q' "$ltmain" >> "$cfgfile" \ -+ || (rm -f "$cfgfile"; exit 1) - -+ if test x"$xsi_shell" = xyes; then -+ sed -e '/^func_dirname ()$/,/^} # func_dirname /c\ -+func_dirname ()\ -+{\ -+\ case ${1} in\ -+\ */*) func_dirname_result="${1%/*}${2}" ;;\ -+\ * ) func_dirname_result="${3}" ;;\ -+\ esac\ -+} # Extended-shell func_dirname implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_basename ()$/,/^} # func_basename /c\ -+func_basename ()\ -+{\ -+\ func_basename_result="${1##*/}"\ -+} # Extended-shell func_basename implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_dirname_and_basename ()$/,/^} # func_dirname_and_basename /c\ -+func_dirname_and_basename ()\ -+{\ -+\ case ${1} in\ -+\ */*) func_dirname_result="${1%/*}${2}" ;;\ -+\ * ) func_dirname_result="${3}" ;;\ -+\ esac\ -+\ func_basename_result="${1##*/}"\ -+} # Extended-shell func_dirname_and_basename implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_stripname ()$/,/^} # func_stripname /c\ -+func_stripname ()\ -+{\ -+\ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are\ -+\ # positional parameters, so assign one to ordinary parameter first.\ -+\ func_stripname_result=${3}\ -+\ func_stripname_result=${func_stripname_result#"${1}"}\ -+\ func_stripname_result=${func_stripname_result%"${2}"}\ -+} # Extended-shell func_stripname implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_split_long_opt ()$/,/^} # func_split_long_opt /c\ -+func_split_long_opt ()\ -+{\ -+\ func_split_long_opt_name=${1%%=*}\ -+\ func_split_long_opt_arg=${1#*=}\ -+} # Extended-shell func_split_long_opt implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_split_short_opt ()$/,/^} # func_split_short_opt /c\ -+func_split_short_opt ()\ -+{\ -+\ func_split_short_opt_arg=${1#??}\ -+\ func_split_short_opt_name=${1%"$func_split_short_opt_arg"}\ -+} # Extended-shell func_split_short_opt implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_lo2o ()$/,/^} # func_lo2o /c\ -+func_lo2o ()\ -+{\ -+\ case ${1} in\ -+\ *.lo) func_lo2o_result=${1%.lo}.${objext} ;;\ -+\ *) func_lo2o_result=${1} ;;\ -+\ esac\ -+} # Extended-shell func_lo2o implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_xform ()$/,/^} # func_xform /c\ -+func_xform ()\ -+{\ -+ func_xform_result=${1%.*}.lo\ -+} # Extended-shell func_xform implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_arith ()$/,/^} # func_arith /c\ -+func_arith ()\ -+{\ -+ func_arith_result=$(( $* ))\ -+} # Extended-shell func_arith implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_len ()$/,/^} # func_len /c\ -+func_len ()\ -+{\ -+ func_len_result=${#1}\ -+} # Extended-shell func_len implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+fi -+ -+if test x"$lt_shell_append" = xyes; then -+ sed -e '/^func_append ()$/,/^} # func_append /c\ -+func_append ()\ -+{\ -+ eval "${1}+=\\${2}"\ -+} # Extended-shell func_append implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_append_quoted ()$/,/^} # func_append_quoted /c\ -+func_append_quoted ()\ -+{\ -+\ func_quote_for_eval "${2}"\ -+\ eval "${1}+=\\\\ \\$func_quote_for_eval_result"\ -+} # Extended-shell func_append_quoted implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ # Save a `func_append' function call where possible by direct use of '+=' -+ sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+ test 0 -eq $? || _lt_function_replace_fail=: -+else -+ # Save a `func_append' function call even when '+=' is not available -+ sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+ test 0 -eq $? || _lt_function_replace_fail=: -+fi -+ -+if test x"$_lt_function_replace_fail" = x":"; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5 -+$as_echo "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;} -+fi - -- sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ -- || (rm -f "$cfgfile"; exit 1) - -- mv -f "$cfgfile" "$ofile" || -+ mv -f "$cfgfile" "$ofile" || - (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") - chmod +x "$ofile" - -Index: binutils-2.24/opcodes/configure -=================================================================== ---- binutils-2.24.orig/opcodes/configure 2013-11-04 07:33:40.000000000 -0800 -+++ binutils-2.24/opcodes/configure 2013-12-15 11:10:23.873785364 -0800 -@@ -648,6 +648,9 @@ - LIPO - NMEDIT - DSYMUTIL -+MANIFEST_TOOL -+ac_ct_AR -+DLLTOOL - OBJDUMP - LN_S - NM -@@ -760,6 +763,7 @@ - with_pic - enable_fast_install - with_gnu_ld -+with_libtool_sysroot - enable_libtool_lock - enable_targets - enable_werror -@@ -1418,6 +1422,8 @@ - --with-pic try to use only PIC/non-PIC objects [default=use - both] - --with-gnu-ld assume the C compiler uses GNU ld [default=no] -+ --with-libtool-sysroot=DIR Search for dependent libraries within DIR -+ (or the compiler's sysroot if not specified). - - Some influential environment variables: - CC C compiler command -@@ -5113,8 +5119,8 @@ - - - --macro_version='2.2.7a' --macro_revision='1.3134' -+macro_version='2.4' -+macro_revision='1.3293' - - - -@@ -5154,7 +5160,7 @@ - { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5 - $as_echo_n "checking how to print strings... " >&6; } - # Test print first, because it will be a builtin if present. --if test "X`print -r -- -n 2>/dev/null`" = X-n && \ -+if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ - test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then - ECHO='print -r --' - elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then -@@ -5840,8 +5846,8 @@ - # Try some XSI features - xsi_shell=no - ( _lt_dummy="a/b/c" -- test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \ -- = c,a/b,, \ -+ test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ -+ = c,a/b,b/c, \ - && eval 'test $(( 1 + 1 )) -eq 2 \ - && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ - && xsi_shell=yes -@@ -5890,6 +5896,80 @@ - - - -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5 -+$as_echo_n "checking how to convert $build file names to $host format... " >&6; } -+if test "${lt_cv_to_host_file_cmd+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ case $host in -+ *-*-mingw* ) -+ case $build in -+ *-*-mingw* ) # actually msys -+ lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 -+ ;; -+ *-*-cygwin* ) -+ lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 -+ ;; -+ * ) # otherwise, assume *nix -+ lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 -+ ;; -+ esac -+ ;; -+ *-*-cygwin* ) -+ case $build in -+ *-*-mingw* ) # actually msys -+ lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin -+ ;; -+ *-*-cygwin* ) -+ lt_cv_to_host_file_cmd=func_convert_file_noop -+ ;; -+ * ) # otherwise, assume *nix -+ lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin -+ ;; -+ esac -+ ;; -+ * ) # unhandled hosts (and "normal" native builds) -+ lt_cv_to_host_file_cmd=func_convert_file_noop -+ ;; -+esac -+ -+fi -+ -+to_host_file_cmd=$lt_cv_to_host_file_cmd -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5 -+$as_echo "$lt_cv_to_host_file_cmd" >&6; } -+ -+ -+ -+ -+ -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5 -+$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; } -+if test "${lt_cv_to_tool_file_cmd+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ #assume ordinary cross tools, or native build. -+lt_cv_to_tool_file_cmd=func_convert_file_noop -+case $host in -+ *-*-mingw* ) -+ case $build in -+ *-*-mingw* ) # actually msys -+ lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 -+ ;; -+ esac -+ ;; -+esac -+ -+fi -+ -+to_tool_file_cmd=$lt_cv_to_tool_file_cmd -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5 -+$as_echo "$lt_cv_to_tool_file_cmd" >&6; } -+ -+ -+ -+ -+ - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 - $as_echo_n "checking for $LD option to reload object files... " >&6; } - if test "${lt_cv_ld_reload_flag+set}" = set; then : -@@ -5906,6 +5986,11 @@ - esac - reload_cmds='$LD$reload_flag -o $output$reload_objs' - case $host_os in -+ cygwin* | mingw* | pw32* | cegcc*) -+ if test "$GCC" != yes; then -+ reload_cmds=false -+ fi -+ ;; - darwin*) - if test "$GCC" = yes; then - reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' -@@ -6074,7 +6159,8 @@ - lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' - lt_cv_file_magic_cmd='func_win32_libid' - else -- lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' -+ # Keep this pattern in sync with the one in func_win32_libid. -+ lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' - lt_cv_file_magic_cmd='$OBJDUMP -f' - fi - ;; -@@ -6228,6 +6314,21 @@ - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 - $as_echo "$lt_cv_deplibs_check_method" >&6; } -+ -+file_magic_glob= -+want_nocaseglob=no -+if test "$build" = "$host"; then -+ case $host_os in -+ mingw* | pw32*) -+ if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then -+ want_nocaseglob=yes -+ else -+ file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"` -+ fi -+ ;; -+ esac -+fi -+ - file_magic_cmd=$lt_cv_file_magic_cmd - deplibs_check_method=$lt_cv_deplibs_check_method - test -z "$deplibs_check_method" && deplibs_check_method=unknown -@@ -6243,9 +6344,162 @@ - - - -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ - if test -n "$ac_tool_prefix"; then -- # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. --set dummy ${ac_tool_prefix}ar; ac_word=$2 -+ # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. -+set dummy ${ac_tool_prefix}dlltool; ac_word=$2 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+$as_echo_n "checking for $ac_word... " >&6; } -+if test "${ac_cv_prog_DLLTOOL+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ if test -n "$DLLTOOL"; then -+ ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. -+else -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then -+ ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" -+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+ done -+IFS=$as_save_IFS -+ -+fi -+fi -+DLLTOOL=$ac_cv_prog_DLLTOOL -+if test -n "$DLLTOOL"; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 -+$as_echo "$DLLTOOL" >&6; } -+else -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+$as_echo "no" >&6; } -+fi -+ -+ -+fi -+if test -z "$ac_cv_prog_DLLTOOL"; then -+ ac_ct_DLLTOOL=$DLLTOOL -+ # Extract the first word of "dlltool", so it can be a program name with args. -+set dummy dlltool; ac_word=$2 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+$as_echo_n "checking for $ac_word... " >&6; } -+if test "${ac_cv_prog_ac_ct_DLLTOOL+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ if test -n "$ac_ct_DLLTOOL"; then -+ ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. -+else -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then -+ ac_cv_prog_ac_ct_DLLTOOL="dlltool" -+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+ done -+IFS=$as_save_IFS -+ -+fi -+fi -+ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL -+if test -n "$ac_ct_DLLTOOL"; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 -+$as_echo "$ac_ct_DLLTOOL" >&6; } -+else -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+$as_echo "no" >&6; } -+fi -+ -+ if test "x$ac_ct_DLLTOOL" = x; then -+ DLLTOOL="false" -+ else -+ case $cross_compiling:$ac_tool_warned in -+yes:) -+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -+ac_tool_warned=yes ;; -+esac -+ DLLTOOL=$ac_ct_DLLTOOL -+ fi -+else -+ DLLTOOL="$ac_cv_prog_DLLTOOL" -+fi -+ -+test -z "$DLLTOOL" && DLLTOOL=dlltool -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5 -+$as_echo_n "checking how to associate runtime and link libraries... " >&6; } -+if test "${lt_cv_sharedlib_from_linklib_cmd+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ lt_cv_sharedlib_from_linklib_cmd='unknown' -+ -+case $host_os in -+cygwin* | mingw* | pw32* | cegcc*) -+ # two different shell functions defined in ltmain.sh -+ # decide which to use based on capabilities of $DLLTOOL -+ case `$DLLTOOL --help 2>&1` in -+ *--identify-strict*) -+ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib -+ ;; -+ *) -+ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback -+ ;; -+ esac -+ ;; -+*) -+ # fallback: assume linklib IS sharedlib -+ lt_cv_sharedlib_from_linklib_cmd="$ECHO" -+ ;; -+esac -+ -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5 -+$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; } -+sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd -+test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO -+ -+ -+ -+ -+ -+ -+ -+if test -n "$ac_tool_prefix"; then -+ for ac_prog in ar -+ do -+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -+set dummy $ac_tool_prefix$ac_prog; ac_word=$2 - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 - $as_echo_n "checking for $ac_word... " >&6; } - if test "${ac_cv_prog_AR+set}" = set; then : -@@ -6261,7 +6515,7 @@ - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then -- ac_cv_prog_AR="${ac_tool_prefix}ar" -+ ac_cv_prog_AR="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -@@ -6281,11 +6535,15 @@ - fi - - -+ test -n "$AR" && break -+ done - fi --if test -z "$ac_cv_prog_AR"; then -+if test -z "$AR"; then - ac_ct_AR=$AR -- # Extract the first word of "ar", so it can be a program name with args. --set dummy ar; ac_word=$2 -+ for ac_prog in ar -+do -+ # Extract the first word of "$ac_prog", so it can be a program name with args. -+set dummy $ac_prog; ac_word=$2 - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 - $as_echo_n "checking for $ac_word... " >&6; } - if test "${ac_cv_prog_ac_ct_AR+set}" = set; then : -@@ -6301,7 +6559,7 @@ - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then -- ac_cv_prog_ac_ct_AR="ar" -+ ac_cv_prog_ac_ct_AR="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -@@ -6320,6 +6578,10 @@ - $as_echo "no" >&6; } - fi - -+ -+ test -n "$ac_ct_AR" && break -+done -+ - if test "x$ac_ct_AR" = x; then - AR="false" - else -@@ -6331,12 +6593,11 @@ - esac - AR=$ac_ct_AR - fi --else -- AR="$ac_cv_prog_AR" - fi - --test -z "$AR" && AR=ar --test -z "$AR_FLAGS" && AR_FLAGS=cru -+: ${AR=ar} -+: ${AR_FLAGS=cru} -+ - - - -@@ -6347,6 +6608,63 @@ - - - -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 -+$as_echo_n "checking for archiver @FILE support... " >&6; } -+if test "${lt_cv_ar_at_file+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ lt_cv_ar_at_file=no -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+/* end confdefs.h. */ -+ -+int -+main () -+{ -+ -+ ; -+ return 0; -+} -+_ACEOF -+if ac_fn_c_try_compile "$LINENO"; then : -+ echo conftest.$ac_objext > conftest.lst -+ lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5' -+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 -+ (eval $lt_ar_try) 2>&5 -+ ac_status=$? -+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 -+ test $ac_status = 0; } -+ if test "$ac_status" -eq 0; then -+ # Ensure the archiver fails upon bogus file names. -+ rm -f conftest.$ac_objext libconftest.a -+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 -+ (eval $lt_ar_try) 2>&5 -+ ac_status=$? -+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 -+ test $ac_status = 0; } -+ if test "$ac_status" -ne 0; then -+ lt_cv_ar_at_file=@ -+ fi -+ fi -+ rm -f conftest.* libconftest.a -+ -+fi -+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -+ -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 -+$as_echo "$lt_cv_ar_at_file" >&6; } -+ -+if test "x$lt_cv_ar_at_file" = xno; then -+ archiver_list_spec= -+else -+ archiver_list_spec=$lt_cv_ar_at_file -+fi -+ -+ -+ -+ -+ -+ - - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. -@@ -6682,8 +7000,8 @@ - lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" - - # Transform an extracted symbol line into symbol name and symbol address --lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" --lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" -+lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" -+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" - - # Handle CRLF in mingw tool chain - opt_cr= -@@ -6719,6 +7037,7 @@ - else - lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" - fi -+ lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" - - # Check to see that the pipe works correctly. - pipe_works=no -@@ -6760,6 +7079,18 @@ - if $GREP ' nm_test_var$' "$nlist" >/dev/null; then - if $GREP ' nm_test_func$' "$nlist" >/dev/null; then - cat <<_LT_EOF > conftest.$ac_ext -+/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ -+#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) -+/* DATA imports from DLLs on WIN32 con't be const, because runtime -+ relocations are performed -- see ld's documentation on pseudo-relocs. */ -+# define LT_DLSYM_CONST -+#elif defined(__osf__) -+/* This system does not cope well with relocations in const data. */ -+# define LT_DLSYM_CONST -+#else -+# define LT_DLSYM_CONST const -+#endif -+ - #ifdef __cplusplus - extern "C" { - #endif -@@ -6771,7 +7102,7 @@ - cat <<_LT_EOF >> conftest.$ac_ext - - /* The mapping between symbol names and symbols. */ --const struct { -+LT_DLSYM_CONST struct { - const char *name; - void *address; - } -@@ -6797,8 +7128,8 @@ - _LT_EOF - # Now try linking the two files. - mv conftest.$ac_objext conftstm.$ac_objext -- lt_save_LIBS="$LIBS" -- lt_save_CFLAGS="$CFLAGS" -+ lt_globsym_save_LIBS=$LIBS -+ lt_globsym_save_CFLAGS=$CFLAGS - LIBS="conftstm.$ac_objext" - CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 -@@ -6808,8 +7139,8 @@ - test $ac_status = 0; } && test -s conftest${ac_exeext}; then - pipe_works=yes - fi -- LIBS="$lt_save_LIBS" -- CFLAGS="$lt_save_CFLAGS" -+ LIBS=$lt_globsym_save_LIBS -+ CFLAGS=$lt_globsym_save_CFLAGS - else - echo "cannot find nm_test_func in $nlist" >&5 - fi -@@ -6846,6 +7177,14 @@ - $as_echo "ok" >&6; } - fi - -+# Response file support. -+if test "$lt_cv_nm_interface" = "MS dumpbin"; then -+ nm_file_list_spec='@' -+elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then -+ nm_file_list_spec='@' -+fi -+ -+ - - - -@@ -6867,6 +7206,47 @@ - - - -+ -+ -+ -+ -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 -+$as_echo_n "checking for sysroot... " >&6; } -+ -+# Check whether --with-libtool-sysroot was given. -+if test "${with_libtool_sysroot+set}" = set; then : -+ withval=$with_libtool_sysroot; -+else -+ with_libtool_sysroot=no -+fi -+ -+ -+lt_sysroot= -+case ${with_libtool_sysroot} in #( -+ yes) -+ if test "$GCC" = yes; then -+ lt_sysroot=`$CC --print-sysroot 2>/dev/null` -+ fi -+ ;; #( -+ /*) -+ lt_sysroot=`echo "$with_libtool_sysroot" | sed -e "$sed_quote_subst"` -+ ;; #( -+ no|'') -+ ;; #( -+ *) -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_libtool_sysroot}" >&5 -+$as_echo "${with_libtool_sysroot}" >&6; } -+ as_fn_error "The sysroot must be an absolute path." "$LINENO" 5 -+ ;; -+esac -+ -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5 -+$as_echo "${lt_sysroot:-no}" >&6; } -+ -+ -+ -+ -+ - # Check whether --enable-libtool-lock was given. - if test "${enable_libtool_lock+set}" = set; then : - enableval=$enable_libtool_lock; -@@ -7073,6 +7453,123 @@ - - need_locks="$enable_libtool_lock" - -+if test -n "$ac_tool_prefix"; then -+ # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args. -+set dummy ${ac_tool_prefix}mt; ac_word=$2 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+$as_echo_n "checking for $ac_word... " >&6; } -+if test "${ac_cv_prog_MANIFEST_TOOL+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ if test -n "$MANIFEST_TOOL"; then -+ ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test. -+else -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then -+ ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt" -+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+ done -+IFS=$as_save_IFS -+ -+fi -+fi -+MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL -+if test -n "$MANIFEST_TOOL"; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5 -+$as_echo "$MANIFEST_TOOL" >&6; } -+else -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+$as_echo "no" >&6; } -+fi -+ -+ -+fi -+if test -z "$ac_cv_prog_MANIFEST_TOOL"; then -+ ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL -+ # Extract the first word of "mt", so it can be a program name with args. -+set dummy mt; ac_word=$2 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+$as_echo_n "checking for $ac_word... " >&6; } -+if test "${ac_cv_prog_ac_ct_MANIFEST_TOOL+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ if test -n "$ac_ct_MANIFEST_TOOL"; then -+ ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test. -+else -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then -+ ac_cv_prog_ac_ct_MANIFEST_TOOL="mt" -+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+ done -+IFS=$as_save_IFS -+ -+fi -+fi -+ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL -+if test -n "$ac_ct_MANIFEST_TOOL"; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5 -+$as_echo "$ac_ct_MANIFEST_TOOL" >&6; } -+else -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+$as_echo "no" >&6; } -+fi -+ -+ if test "x$ac_ct_MANIFEST_TOOL" = x; then -+ MANIFEST_TOOL=":" -+ else -+ case $cross_compiling:$ac_tool_warned in -+yes:) -+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -+ac_tool_warned=yes ;; -+esac -+ MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL -+ fi -+else -+ MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL" -+fi -+ -+test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5 -+$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; } -+if test "${lt_cv_path_mainfest_tool+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ lt_cv_path_mainfest_tool=no -+ echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5 -+ $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out -+ cat conftest.err >&5 -+ if $GREP 'Manifest Tool' conftest.out > /dev/null; then -+ lt_cv_path_mainfest_tool=yes -+ fi -+ rm -f conftest* -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5 -+$as_echo "$lt_cv_path_mainfest_tool" >&6; } -+if test "x$lt_cv_path_mainfest_tool" != xyes; then -+ MANIFEST_TOOL=: -+fi -+ -+ -+ -+ -+ - - case $host_os in - rhapsody* | darwin*) -@@ -7636,6 +8133,8 @@ - $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 - echo "$AR cru libconftest.a conftest.o" >&5 - $AR cru libconftest.a conftest.o 2>&5 -+ echo "$RANLIB libconftest.a" >&5 -+ $RANLIB libconftest.a 2>&5 - cat > conftest.c << _LT_EOF - int main() { return 0;} - _LT_EOF -@@ -7801,7 +8300,8 @@ - LIBTOOL_DEPS="$ltmain" - - # Always use our own libtool. --LIBTOOL='$(SHELL) $(top_builddir)/libtool' -+LIBTOOL='$(SHELL) $(top_builddir)' -+LIBTOOL="$LIBTOOL/${host_alias}-libtool" - - - -@@ -7890,7 +8390,7 @@ - esac - - # Global variables: --ofile=libtool -+ofile=${host_alias}-libtool - can_build_shared=yes - - # All known linkers require a `.a' archive for static linking (except MSVC, -@@ -8188,8 +8688,6 @@ - lt_prog_compiler_pic= - lt_prog_compiler_static= - --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 --$as_echo_n "checking for $compiler option to produce PIC... " >&6; } - - if test "$GCC" = yes; then - lt_prog_compiler_wl='-Wl,' -@@ -8355,6 +8853,12 @@ - lt_prog_compiler_pic='--shared' - lt_prog_compiler_static='--static' - ;; -+ nagfor*) -+ # NAG Fortran compiler -+ lt_prog_compiler_wl='-Wl,-Wl,,' -+ lt_prog_compiler_pic='-PIC' -+ lt_prog_compiler_static='-Bstatic' -+ ;; - pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) - # Portland Group compilers (*not* the Pentium gcc compiler, - # which looks to be a dead project) -@@ -8417,7 +8921,7 @@ - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-Bstatic' - case $cc_basename in -- f77* | f90* | f95*) -+ f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) - lt_prog_compiler_wl='-Qoption ld ';; - *) - lt_prog_compiler_wl='-Wl,';; -@@ -8474,13 +8978,17 @@ - lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" - ;; - esac --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic" >&5 --$as_echo "$lt_prog_compiler_pic" >&6; } -- -- -- -- - -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 -+$as_echo_n "checking for $compiler option to produce PIC... " >&6; } -+if test "${lt_cv_prog_compiler_pic+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ lt_cv_prog_compiler_pic=$lt_prog_compiler_pic -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 -+$as_echo "$lt_cv_prog_compiler_pic" >&6; } -+lt_prog_compiler_pic=$lt_cv_prog_compiler_pic - - # - # Check to make sure the PIC flag actually works. -@@ -8541,6 +9049,11 @@ - - - -+ -+ -+ -+ -+ - # - # Check to make sure the static flag actually works. - # -@@ -8891,7 +9404,8 @@ - allow_undefined_flag=unsupported - always_export_symbols=no - enable_shared_with_static_runtimes=yes -- export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' -+ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' -+ exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' - - if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' -@@ -8939,7 +9453,7 @@ - if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ - && test "$tmp_diet" = no - then -- tmp_addflag= -+ tmp_addflag=' $pic_flag' - tmp_sharedflag='-shared' - case $cc_basename,$host_cpu in - pgcc*) # Portland Group C compiler -@@ -8990,12 +9504,12 @@ - whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' - hardcode_libdir_flag_spec= - hardcode_libdir_flag_spec_ld='-rpath $libdir' -- archive_cmds='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib' -+ archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' - if test "x$supports_anon_versioning" = xyes; then - archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ - cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ - echo "local: *; };" >> $output_objdir/$libname.ver~ -- $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' -+ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' - fi - ;; - esac -@@ -9009,8 +9523,8 @@ - archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' - wlarc= - else -- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' -+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - fi - ;; - -@@ -9028,8 +9542,8 @@ - - _LT_EOF - elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then -- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' -+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - ld_shlibs=no - fi -@@ -9075,8 +9589,8 @@ - - *) - if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then -- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' -+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - ld_shlibs=no - fi -@@ -9206,7 +9720,13 @@ - allow_undefined_flag='-berok' - # Determine the default libpath from the value encoded in an - # empty executable. -- cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+ if test "${lt_cv_aix_libpath+set}" = set; then -+ aix_libpath=$lt_cv_aix_libpath -+else -+ if test "${lt_cv_aix_libpath_+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - - int -@@ -9219,22 +9739,29 @@ - _ACEOF - if ac_fn_c_try_link "$LINENO"; then : - --lt_aix_libpath_sed=' -- /Import File Strings/,/^$/ { -- /^0/ { -- s/^0 *\(.*\)$/\1/ -- p -- } -- }' --aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` --# Check for a 64-bit object if we didn't find anything. --if test -z "$aix_libpath"; then -- aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` --fi -+ lt_aix_libpath_sed=' -+ /Import File Strings/,/^$/ { -+ /^0/ { -+ s/^0 *\([^ ]*\) *$/\1/ -+ p -+ } -+ }' -+ lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -+ # Check for a 64-bit object if we didn't find anything. -+ if test -z "$lt_cv_aix_libpath_"; then -+ lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -+ fi - fi - rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext --if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi -+ if test -z "$lt_cv_aix_libpath_"; then -+ lt_cv_aix_libpath_="/usr/lib:/lib" -+ fi -+ -+fi -+ -+ aix_libpath=$lt_cv_aix_libpath_ -+fi - - hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" - archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" -@@ -9246,7 +9773,13 @@ - else - # Determine the default libpath from the value encoded in an - # empty executable. -- cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+ if test "${lt_cv_aix_libpath+set}" = set; then -+ aix_libpath=$lt_cv_aix_libpath -+else -+ if test "${lt_cv_aix_libpath_+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - - int -@@ -9259,22 +9792,29 @@ - _ACEOF - if ac_fn_c_try_link "$LINENO"; then : - --lt_aix_libpath_sed=' -- /Import File Strings/,/^$/ { -- /^0/ { -- s/^0 *\(.*\)$/\1/ -- p -- } -- }' --aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` --# Check for a 64-bit object if we didn't find anything. --if test -z "$aix_libpath"; then -- aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` --fi -+ lt_aix_libpath_sed=' -+ /Import File Strings/,/^$/ { -+ /^0/ { -+ s/^0 *\([^ ]*\) *$/\1/ -+ p -+ } -+ }' -+ lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -+ # Check for a 64-bit object if we didn't find anything. -+ if test -z "$lt_cv_aix_libpath_"; then -+ lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -+ fi - fi - rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext --if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi -+ if test -z "$lt_cv_aix_libpath_"; then -+ lt_cv_aix_libpath_="/usr/lib:/lib" -+ fi -+ -+fi -+ -+ aix_libpath=$lt_cv_aix_libpath_ -+fi - - hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" - # Warning - without using the other run time loading flags, -@@ -9319,20 +9859,63 @@ - # Microsoft Visual C++. - # hardcode_libdir_flag_spec is actually meaningless, as there is - # no search path for DLLs. -- hardcode_libdir_flag_spec=' ' -- allow_undefined_flag=unsupported -- # Tell ltmain to make .lib files, not .a files. -- libext=lib -- # Tell ltmain to make .dll files, not .so files. -- shrext_cmds=".dll" -- # FIXME: Setting linknames here is a bad hack. -- archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' -- # The linker will automatically build a .lib file if we build a DLL. -- old_archive_from_new_cmds='true' -- # FIXME: Should let the user specify the lib program. -- old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' -- fix_srcfile_path='`cygpath -w "$srcfile"`' -- enable_shared_with_static_runtimes=yes -+ case $cc_basename in -+ cl*) -+ # Native MSVC -+ hardcode_libdir_flag_spec=' ' -+ allow_undefined_flag=unsupported -+ always_export_symbols=yes -+ file_list_spec='@' -+ # Tell ltmain to make .lib files, not .a files. -+ libext=lib -+ # Tell ltmain to make .dll files, not .so files. -+ shrext_cmds=".dll" -+ # FIXME: Setting linknames here is a bad hack. -+ archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' -+ archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then -+ sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; -+ else -+ sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; -+ fi~ -+ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ -+ linknames=' -+ # The linker will not automatically build a static lib if we build a DLL. -+ # _LT_TAGVAR(old_archive_from_new_cmds, )='true' -+ enable_shared_with_static_runtimes=yes -+ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' -+ # Don't use ranlib -+ old_postinstall_cmds='chmod 644 $oldlib' -+ postlink_cmds='lt_outputfile="@OUTPUT@"~ -+ lt_tool_outputfile="@TOOL_OUTPUT@"~ -+ case $lt_outputfile in -+ *.exe|*.EXE) ;; -+ *) -+ lt_outputfile="$lt_outputfile.exe" -+ lt_tool_outputfile="$lt_tool_outputfile.exe" -+ ;; -+ esac~ -+ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then -+ $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; -+ $RM "$lt_outputfile.manifest"; -+ fi' -+ ;; -+ *) -+ # Assume MSVC wrapper -+ hardcode_libdir_flag_spec=' ' -+ allow_undefined_flag=unsupported -+ # Tell ltmain to make .lib files, not .a files. -+ libext=lib -+ # Tell ltmain to make .dll files, not .so files. -+ shrext_cmds=".dll" -+ # FIXME: Setting linknames here is a bad hack. -+ archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' -+ # The linker will automatically build a .lib file if we build a DLL. -+ old_archive_from_new_cmds='true' -+ # FIXME: Should let the user specify the lib program. -+ old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' -+ enable_shared_with_static_runtimes=yes -+ ;; -+ esac - ;; - - darwin* | rhapsody*) -@@ -9393,7 +9976,7 @@ - - # FreeBSD 3 and greater uses gcc -shared to do shared libraries. - freebsd* | dragonfly*) -- archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' -+ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - hardcode_libdir_flag_spec='-R$libdir' - hardcode_direct=yes - hardcode_shlibpath_var=no -@@ -9401,7 +9984,7 @@ - - hpux9*) - if test "$GCC" = yes; then -- archive_cmds='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' -+ archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - else - archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - fi -@@ -9417,7 +10000,7 @@ - - hpux10*) - if test "$GCC" = yes && test "$with_gnu_ld" = no; then -- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' -+ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' - fi -@@ -9441,10 +10024,10 @@ - archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - ia64*) -- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' -+ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) -- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' -+ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - ;; - esac - else -@@ -9523,23 +10106,36 @@ - - irix5* | irix6* | nonstopux*) - if test "$GCC" = yes; then -- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' -+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - # Try to use the -exported_symbol ld option, if it does not - # work, assume that -exports_file does not work either and - # implicitly export all symbols. -- save_LDFLAGS="$LDFLAGS" -- LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" -- cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+ # This should be the same for all languages, so no per-tag cache variable. -+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5 -+$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; } -+if test "${lt_cv_irix_exported_symbol+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ save_LDFLAGS="$LDFLAGS" -+ LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ --int foo(void) {} -+int foo (void) { return 0; } - _ACEOF - if ac_fn_c_try_link "$LINENO"; then : -- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' -- -+ lt_cv_irix_exported_symbol=yes -+else -+ lt_cv_irix_exported_symbol=no - fi - rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -- LDFLAGS="$save_LDFLAGS" -+ LDFLAGS="$save_LDFLAGS" -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5 -+$as_echo "$lt_cv_irix_exported_symbol" >&6; } -+ if test "$lt_cv_irix_exported_symbol" = yes; then -+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' -+ fi - else - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' - archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' -@@ -9624,7 +10220,7 @@ - osf4* | osf5*) # as osf3* with the addition of -msym flag - if test "$GCC" = yes; then - allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' -- archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' -+ archive_cmds='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - else - allow_undefined_flag=' -expect_unresolved \*' -@@ -9643,9 +10239,9 @@ - no_undefined_flag=' -z defs' - if test "$GCC" = yes; then - wlarc='${wl}' -- archive_cmds='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' -+ archive_cmds='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ -- $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' -+ $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' - else - case `$CC -V 2>&1` in - *"Compilers 5.0"*) -@@ -10221,8 +10817,9 @@ - need_version=no - need_lib_prefix=no - -- case $GCC,$host_os in -- yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) -+ case $GCC,$cc_basename in -+ yes,*) -+ # gcc - library_names_spec='$libname.dll.a' - # DLL is installed to $(libdir)/../bin by postinstall_cmds - postinstall_cmds='base_file=`basename \${file}`~ -@@ -10255,13 +10852,71 @@ - library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - ;; - esac -+ dynamic_linker='Win32 ld.exe' -+ ;; -+ -+ *,cl*) -+ # Native MSVC -+ libname_spec='$name' -+ soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' -+ library_names_spec='${libname}.dll.lib' -+ -+ case $build_os in -+ mingw*) -+ sys_lib_search_path_spec= -+ lt_save_ifs=$IFS -+ IFS=';' -+ for lt_path in $LIB -+ do -+ IFS=$lt_save_ifs -+ # Let DOS variable expansion print the short 8.3 style file name. -+ lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` -+ sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" -+ done -+ IFS=$lt_save_ifs -+ # Convert to MSYS style. -+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` -+ ;; -+ cygwin*) -+ # Convert to unix form, then to dos form, then back to unix form -+ # but this time dos style (no spaces!) so that the unix form looks -+ # like /cygdrive/c/PROGRA~1:/cygdr... -+ sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` -+ sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` -+ sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` -+ ;; -+ *) -+ sys_lib_search_path_spec="$LIB" -+ if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then -+ # It is most probably a Windows format PATH. -+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` -+ else -+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` -+ fi -+ # FIXME: find the short name or the path components, as spaces are -+ # common. (e.g. "Program Files" -> "PROGRA~1") -+ ;; -+ esac -+ -+ # DLL is installed to $(libdir)/../bin by postinstall_cmds -+ postinstall_cmds='base_file=`basename \${file}`~ -+ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ -+ dldir=$destdir/`dirname \$dlpath`~ -+ test -d \$dldir || mkdir -p \$dldir~ -+ $install_prog $dir/$dlname \$dldir/$dlname' -+ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ -+ dlpath=$dir/\$dldll~ -+ $RM \$dlpath' -+ shlibpath_overrides_runpath=yes -+ dynamic_linker='Win32 link.exe' - ;; - - *) -+ # Assume MSVC wrapper - library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' -+ dynamic_linker='Win32 ld.exe' - ;; - esac -- dynamic_linker='Win32 ld.exe' - # FIXME: first we should search . and the directory the executable is in - shlibpath_var=PATH - ;; -@@ -10353,7 +11008,7 @@ - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LIBRARY_PATH - shlibpath_overrides_runpath=yes -- sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/beos/system/lib' -+ sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' - hardcode_into_libs=yes - ;; - -@@ -11193,10 +11848,10 @@ - /* When -fvisbility=hidden is used, assume the code has been annotated - correspondingly for the symbols needed. */ - #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) --void fnord () __attribute__((visibility("default"))); -+int fnord () __attribute__((visibility("default"))); - #endif - --void fnord () { int i=42; } -+int fnord () { return 42; } - int main () - { - void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); -@@ -11299,10 +11954,10 @@ - /* When -fvisbility=hidden is used, assume the code has been annotated - correspondingly for the symbols needed. */ - #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) --void fnord () __attribute__((visibility("default"))); -+int fnord () __attribute__((visibility("default"))); - #endif - --void fnord () { int i=42; } -+int fnord () { return 42; } - int main () - { - void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); -@@ -12415,7 +13070,7 @@ - # since libbfd may not pull in the entirety of libiberty. - x=`sed -n -e 's/^[ ]*PICFLAG[ ]*=[ ]*//p' < ../libiberty/Makefile | sed -n '$p'` - if test -n "$x"; then -- SHARED_LIBADD="-L`pwd`/../libiberty/pic -liberty" -+ SHARED_LIBADD="`pwd`/../libiberty/pic/libiberty.a" - fi - - case "${host}" in -@@ -13387,13 +14042,20 @@ - lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`' - lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`' - lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`' -+lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`' -+lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`' - reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' - reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' - OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' - deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' - file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' -+file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`' -+want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`' -+DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' -+sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' - AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' - AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' -+archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`' - STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' - RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`' - old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`' -@@ -13408,14 +14070,17 @@ - lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`' - lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`' - lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`' -+nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`' -+lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`' - objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`' - MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`' - lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`' --lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' - lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`' -+lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' - lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`' - lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`' - need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`' -+MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`' - DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`' - NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`' - LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`' -@@ -13448,12 +14113,12 @@ - hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`' - inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`' - link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`' --fix_srcfile_path='`$ECHO "$fix_srcfile_path" | $SED "$delay_single_quote_subst"`' - always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`' - export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`' - exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`' - include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`' - prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`' -+postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`' - file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`' - variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`' - need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`' -@@ -13508,8 +14173,13 @@ - OBJDUMP \ - deplibs_check_method \ - file_magic_cmd \ -+file_magic_glob \ -+want_nocaseglob \ -+DLLTOOL \ -+sharedlib_from_linklib_cmd \ - AR \ - AR_FLAGS \ -+archiver_list_spec \ - STRIP \ - RANLIB \ - CC \ -@@ -13519,12 +14189,14 @@ - lt_cv_sys_global_symbol_to_cdecl \ - lt_cv_sys_global_symbol_to_c_name_address \ - lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ -+nm_file_list_spec \ - lt_prog_compiler_no_builtin_flag \ --lt_prog_compiler_wl \ - lt_prog_compiler_pic \ -+lt_prog_compiler_wl \ - lt_prog_compiler_static \ - lt_cv_prog_compiler_c_o \ - need_locks \ -+MANIFEST_TOOL \ - DSYMUTIL \ - NMEDIT \ - LIPO \ -@@ -13540,7 +14212,6 @@ - hardcode_libdir_flag_spec \ - hardcode_libdir_flag_spec_ld \ - hardcode_libdir_separator \ --fix_srcfile_path \ - exclude_expsyms \ - include_expsyms \ - file_list_spec \ -@@ -13576,6 +14247,7 @@ - module_expsym_cmds \ - export_symbols_cmds \ - prelink_cmds \ -+postlink_cmds \ - postinstall_cmds \ - postuninstall_cmds \ - finish_cmds \ -@@ -14332,7 +15004,8 @@ - # NOTE: Changes made to this file will be lost: look at ltmain.sh. - # - # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, --# 2006, 2007, 2008, 2009 Free Software Foundation, Inc. -+# 2006, 2007, 2008, 2009, 2010 Free Software Foundation, -+# Inc. - # Written by Gordon Matzigkeit, 1996 - # - # This file is part of GNU Libtool. -@@ -14435,19 +15108,42 @@ - # turn newlines into spaces. - NL2SP=$lt_lt_NL2SP - -+# convert \$build file names to \$host format. -+to_host_file_cmd=$lt_cv_to_host_file_cmd -+ -+# convert \$build files to toolchain format. -+to_tool_file_cmd=$lt_cv_to_tool_file_cmd -+ - # An object symbol dumper. - OBJDUMP=$lt_OBJDUMP - - # Method to check whether dependent libraries are shared objects. - deplibs_check_method=$lt_deplibs_check_method - --# Command to use when deplibs_check_method == "file_magic". -+# Command to use when deplibs_check_method = "file_magic". - file_magic_cmd=$lt_file_magic_cmd - -+# How to find potential files when deplibs_check_method = "file_magic". -+file_magic_glob=$lt_file_magic_glob -+ -+# Find potential files using nocaseglob when deplibs_check_method = "file_magic". -+want_nocaseglob=$lt_want_nocaseglob -+ -+# DLL creation program. -+DLLTOOL=$lt_DLLTOOL -+ -+# Command to associate shared and link libraries. -+sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd -+ - # The archiver. - AR=$lt_AR -+ -+# Flags to create an archive. - AR_FLAGS=$lt_AR_FLAGS - -+# How to feed a file listing to the archiver. -+archiver_list_spec=$lt_archiver_list_spec -+ - # A symbol stripping program. - STRIP=$lt_STRIP - -@@ -14477,6 +15173,12 @@ - # Transform the output of nm in a C name address pair when lib prefix is needed. - global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix - -+# Specify filename containing input files for \$NM. -+nm_file_list_spec=$lt_nm_file_list_spec -+ -+# The root where to search for dependent libraries,and in which our libraries should be installed. -+lt_sysroot=$lt_sysroot -+ - # The name of the directory that contains temporary libtool files. - objdir=$objdir - -@@ -14486,6 +15188,9 @@ - # Must we lock files when doing compilation? - need_locks=$lt_need_locks - -+# Manifest tool. -+MANIFEST_TOOL=$lt_MANIFEST_TOOL -+ - # Tool to manipulate archived DWARF debug symbol files on Mac OS X. - DSYMUTIL=$lt_DSYMUTIL - -@@ -14600,12 +15305,12 @@ - # Compiler flag to turn off builtin functions. - no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag - --# How to pass a linker flag through the compiler. --wl=$lt_lt_prog_compiler_wl -- - # Additional compiler flags for building library objects. - pic_flag=$lt_lt_prog_compiler_pic - -+# How to pass a linker flag through the compiler. -+wl=$lt_lt_prog_compiler_wl -+ - # Compiler flag to prevent dynamic linking. - link_static_flag=$lt_lt_prog_compiler_static - -@@ -14692,9 +15397,6 @@ - # Whether libtool must link a program against all its dependency libraries. - link_all_deplibs=$link_all_deplibs - --# Fix the shell variable \$srcfile for the compiler. --fix_srcfile_path=$lt_fix_srcfile_path -- - # Set to "yes" if exported symbols are required. - always_export_symbols=$always_export_symbols - -@@ -14710,6 +15412,9 @@ - # Commands necessary for linking programs (against libraries) with templates. - prelink_cmds=$lt_prelink_cmds - -+# Commands necessary for finishing linking programs. -+postlink_cmds=$lt_postlink_cmds -+ - # Specify filename containing input files. - file_list_spec=$lt_file_list_spec - -@@ -14742,210 +15447,169 @@ - # if finds mixed CR/LF and LF-only lines. Since sed operates in - # text mode, it properly converts lines to CR/LF. This bash problem - # is reportedly fixed, but why not run on old versions too? -- sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ -- || (rm -f "$cfgfile"; exit 1) -- -- case $xsi_shell in -- yes) -- cat << \_LT_EOF >> "$cfgfile" -- --# func_dirname file append nondir_replacement --# Compute the dirname of FILE. If nonempty, add APPEND to the result, --# otherwise set result to NONDIR_REPLACEMENT. --func_dirname () --{ -- case ${1} in -- */*) func_dirname_result="${1%/*}${2}" ;; -- * ) func_dirname_result="${3}" ;; -- esac --} -- --# func_basename file --func_basename () --{ -- func_basename_result="${1##*/}" --} -- --# func_dirname_and_basename file append nondir_replacement --# perform func_basename and func_dirname in a single function --# call: --# dirname: Compute the dirname of FILE. If nonempty, --# add APPEND to the result, otherwise set result --# to NONDIR_REPLACEMENT. --# value returned in "$func_dirname_result" --# basename: Compute filename of FILE. --# value retuned in "$func_basename_result" --# Implementation must be kept synchronized with func_dirname --# and func_basename. For efficiency, we do not delegate to --# those functions but instead duplicate the functionality here. --func_dirname_and_basename () --{ -- case ${1} in -- */*) func_dirname_result="${1%/*}${2}" ;; -- * ) func_dirname_result="${3}" ;; -- esac -- func_basename_result="${1##*/}" --} -- --# func_stripname prefix suffix name --# strip PREFIX and SUFFIX off of NAME. --# PREFIX and SUFFIX must not contain globbing or regex special --# characters, hashes, percent signs, but SUFFIX may contain a leading --# dot (in which case that matches only a dot). --func_stripname () --{ -- # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are -- # positional parameters, so assign one to ordinary parameter first. -- func_stripname_result=${3} -- func_stripname_result=${func_stripname_result#"${1}"} -- func_stripname_result=${func_stripname_result%"${2}"} --} -- --# func_opt_split --func_opt_split () --{ -- func_opt_split_opt=${1%%=*} -- func_opt_split_arg=${1#*=} --} -- --# func_lo2o object --func_lo2o () --{ -- case ${1} in -- *.lo) func_lo2o_result=${1%.lo}.${objext} ;; -- *) func_lo2o_result=${1} ;; -- esac --} -- --# func_xform libobj-or-source --func_xform () --{ -- func_xform_result=${1%.*}.lo --} -- --# func_arith arithmetic-term... --func_arith () --{ -- func_arith_result=$(( $* )) --} -- --# func_len string --# STRING may not start with a hyphen. --func_len () --{ -- func_len_result=${#1} --} -- --_LT_EOF -- ;; -- *) # Bourne compatible functions. -- cat << \_LT_EOF >> "$cfgfile" -- --# func_dirname file append nondir_replacement --# Compute the dirname of FILE. If nonempty, add APPEND to the result, --# otherwise set result to NONDIR_REPLACEMENT. --func_dirname () --{ -- # Extract subdirectory from the argument. -- func_dirname_result=`$ECHO "${1}" | $SED "$dirname"` -- if test "X$func_dirname_result" = "X${1}"; then -- func_dirname_result="${3}" -- else -- func_dirname_result="$func_dirname_result${2}" -- fi --} -- --# func_basename file --func_basename () --{ -- func_basename_result=`$ECHO "${1}" | $SED "$basename"` --} -- -- --# func_stripname prefix suffix name --# strip PREFIX and SUFFIX off of NAME. --# PREFIX and SUFFIX must not contain globbing or regex special --# characters, hashes, percent signs, but SUFFIX may contain a leading --# dot (in which case that matches only a dot). --# func_strip_suffix prefix name --func_stripname () --{ -- case ${2} in -- .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; -- *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; -- esac --} -- --# sed scripts: --my_sed_long_opt='1s/^\(-[^=]*\)=.*/\1/;q' --my_sed_long_arg='1s/^-[^=]*=//' -- --# func_opt_split --func_opt_split () --{ -- func_opt_split_opt=`$ECHO "${1}" | $SED "$my_sed_long_opt"` -- func_opt_split_arg=`$ECHO "${1}" | $SED "$my_sed_long_arg"` --} -- --# func_lo2o object --func_lo2o () --{ -- func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"` --} -- --# func_xform libobj-or-source --func_xform () --{ -- func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'` --} -- --# func_arith arithmetic-term... --func_arith () --{ -- func_arith_result=`expr "$@"` --} -- --# func_len string --# STRING may not start with a hyphen. --func_len () --{ -- func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len` --} -- --_LT_EOF --esac -- --case $lt_shell_append in -- yes) -- cat << \_LT_EOF >> "$cfgfile" -- --# func_append var value --# Append VALUE to the end of shell variable VAR. --func_append () --{ -- eval "$1+=\$2" --} --_LT_EOF -- ;; -- *) -- cat << \_LT_EOF >> "$cfgfile" -- --# func_append var value --# Append VALUE to the end of shell variable VAR. --func_append () --{ -- eval "$1=\$$1\$2" --} -- --_LT_EOF -- ;; -- esac -+ sed '$q' "$ltmain" >> "$cfgfile" \ -+ || (rm -f "$cfgfile"; exit 1) - -+ if test x"$xsi_shell" = xyes; then -+ sed -e '/^func_dirname ()$/,/^} # func_dirname /c\ -+func_dirname ()\ -+{\ -+\ case ${1} in\ -+\ */*) func_dirname_result="${1%/*}${2}" ;;\ -+\ * ) func_dirname_result="${3}" ;;\ -+\ esac\ -+} # Extended-shell func_dirname implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_basename ()$/,/^} # func_basename /c\ -+func_basename ()\ -+{\ -+\ func_basename_result="${1##*/}"\ -+} # Extended-shell func_basename implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_dirname_and_basename ()$/,/^} # func_dirname_and_basename /c\ -+func_dirname_and_basename ()\ -+{\ -+\ case ${1} in\ -+\ */*) func_dirname_result="${1%/*}${2}" ;;\ -+\ * ) func_dirname_result="${3}" ;;\ -+\ esac\ -+\ func_basename_result="${1##*/}"\ -+} # Extended-shell func_dirname_and_basename implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_stripname ()$/,/^} # func_stripname /c\ -+func_stripname ()\ -+{\ -+\ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are\ -+\ # positional parameters, so assign one to ordinary parameter first.\ -+\ func_stripname_result=${3}\ -+\ func_stripname_result=${func_stripname_result#"${1}"}\ -+\ func_stripname_result=${func_stripname_result%"${2}"}\ -+} # Extended-shell func_stripname implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_split_long_opt ()$/,/^} # func_split_long_opt /c\ -+func_split_long_opt ()\ -+{\ -+\ func_split_long_opt_name=${1%%=*}\ -+\ func_split_long_opt_arg=${1#*=}\ -+} # Extended-shell func_split_long_opt implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_split_short_opt ()$/,/^} # func_split_short_opt /c\ -+func_split_short_opt ()\ -+{\ -+\ func_split_short_opt_arg=${1#??}\ -+\ func_split_short_opt_name=${1%"$func_split_short_opt_arg"}\ -+} # Extended-shell func_split_short_opt implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_lo2o ()$/,/^} # func_lo2o /c\ -+func_lo2o ()\ -+{\ -+\ case ${1} in\ -+\ *.lo) func_lo2o_result=${1%.lo}.${objext} ;;\ -+\ *) func_lo2o_result=${1} ;;\ -+\ esac\ -+} # Extended-shell func_lo2o implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_xform ()$/,/^} # func_xform /c\ -+func_xform ()\ -+{\ -+ func_xform_result=${1%.*}.lo\ -+} # Extended-shell func_xform implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_arith ()$/,/^} # func_arith /c\ -+func_arith ()\ -+{\ -+ func_arith_result=$(( $* ))\ -+} # Extended-shell func_arith implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_len ()$/,/^} # func_len /c\ -+func_len ()\ -+{\ -+ func_len_result=${#1}\ -+} # Extended-shell func_len implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+fi -+ -+if test x"$lt_shell_append" = xyes; then -+ sed -e '/^func_append ()$/,/^} # func_append /c\ -+func_append ()\ -+{\ -+ eval "${1}+=\\${2}"\ -+} # Extended-shell func_append implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_append_quoted ()$/,/^} # func_append_quoted /c\ -+func_append_quoted ()\ -+{\ -+\ func_quote_for_eval "${2}"\ -+\ eval "${1}+=\\\\ \\$func_quote_for_eval_result"\ -+} # Extended-shell func_append_quoted implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ # Save a `func_append' function call where possible by direct use of '+=' -+ sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+ test 0 -eq $? || _lt_function_replace_fail=: -+else -+ # Save a `func_append' function call even when '+=' is not available -+ sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+ test 0 -eq $? || _lt_function_replace_fail=: -+fi -+ -+if test x"$_lt_function_replace_fail" = x":"; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5 -+$as_echo "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;} -+fi - -- sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ -- || (rm -f "$cfgfile"; exit 1) - -- mv -f "$cfgfile" "$ofile" || -+ mv -f "$cfgfile" "$ofile" || - (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") - chmod +x "$ofile" - -Index: binutils-2.24/binutils/configure -=================================================================== ---- binutils-2.24.orig/binutils/configure 2013-11-04 07:33:37.000000000 -0800 -+++ binutils-2.24/binutils/configure 2013-12-15 11:10:23.877118697 -0800 -@@ -655,8 +655,11 @@ - LIPO - NMEDIT - DSYMUTIL -+MANIFEST_TOOL - RANLIB -+ac_ct_AR - AR -+DLLTOOL - OBJDUMP - LN_S - NM -@@ -769,6 +772,7 @@ - with_pic - enable_fast_install - with_gnu_ld -+with_libtool_sysroot - enable_libtool_lock - enable_targets - enable_deterministic_archives -@@ -1434,6 +1438,8 @@ - --with-pic try to use only PIC/non-PIC objects [default=use - both] - --with-gnu-ld assume the C compiler uses GNU ld [default=no] -+ --with-libtool-sysroot=DIR Search for dependent libraries within DIR -+ (or the compiler's sysroot if not specified). - --with-zlib include zlib support (auto/yes/no) default=auto - --with-gnu-ld assume the C compiler uses GNU ld default=no - --with-libiconv-prefix[=DIR] search for libiconv in DIR/include and DIR/lib -@@ -5152,8 +5158,8 @@ - - - --macro_version='2.2.7a' --macro_revision='1.3134' -+macro_version='2.4' -+macro_revision='1.3293' - - - -@@ -5193,7 +5199,7 @@ - { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5 - $as_echo_n "checking how to print strings... " >&6; } - # Test print first, because it will be a builtin if present. --if test "X`print -r -- -n 2>/dev/null`" = X-n && \ -+if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ - test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then - ECHO='print -r --' - elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then -@@ -5879,8 +5885,8 @@ - # Try some XSI features - xsi_shell=no - ( _lt_dummy="a/b/c" -- test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \ -- = c,a/b,, \ -+ test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ -+ = c,a/b,b/c, \ - && eval 'test $(( 1 + 1 )) -eq 2 \ - && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ - && xsi_shell=yes -@@ -5929,6 +5935,80 @@ - - - -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5 -+$as_echo_n "checking how to convert $build file names to $host format... " >&6; } -+if test "${lt_cv_to_host_file_cmd+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ case $host in -+ *-*-mingw* ) -+ case $build in -+ *-*-mingw* ) # actually msys -+ lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 -+ ;; -+ *-*-cygwin* ) -+ lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 -+ ;; -+ * ) # otherwise, assume *nix -+ lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 -+ ;; -+ esac -+ ;; -+ *-*-cygwin* ) -+ case $build in -+ *-*-mingw* ) # actually msys -+ lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin -+ ;; -+ *-*-cygwin* ) -+ lt_cv_to_host_file_cmd=func_convert_file_noop -+ ;; -+ * ) # otherwise, assume *nix -+ lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin -+ ;; -+ esac -+ ;; -+ * ) # unhandled hosts (and "normal" native builds) -+ lt_cv_to_host_file_cmd=func_convert_file_noop -+ ;; -+esac -+ -+fi -+ -+to_host_file_cmd=$lt_cv_to_host_file_cmd -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5 -+$as_echo "$lt_cv_to_host_file_cmd" >&6; } -+ -+ -+ -+ -+ -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5 -+$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; } -+if test "${lt_cv_to_tool_file_cmd+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ #assume ordinary cross tools, or native build. -+lt_cv_to_tool_file_cmd=func_convert_file_noop -+case $host in -+ *-*-mingw* ) -+ case $build in -+ *-*-mingw* ) # actually msys -+ lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 -+ ;; -+ esac -+ ;; -+esac -+ -+fi -+ -+to_tool_file_cmd=$lt_cv_to_tool_file_cmd -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5 -+$as_echo "$lt_cv_to_tool_file_cmd" >&6; } -+ -+ -+ -+ -+ - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 - $as_echo_n "checking for $LD option to reload object files... " >&6; } - if test "${lt_cv_ld_reload_flag+set}" = set; then : -@@ -5945,6 +6025,11 @@ - esac - reload_cmds='$LD$reload_flag -o $output$reload_objs' - case $host_os in -+ cygwin* | mingw* | pw32* | cegcc*) -+ if test "$GCC" != yes; then -+ reload_cmds=false -+ fi -+ ;; - darwin*) - if test "$GCC" = yes; then - reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' -@@ -6113,7 +6198,8 @@ - lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' - lt_cv_file_magic_cmd='func_win32_libid' - else -- lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' -+ # Keep this pattern in sync with the one in func_win32_libid. -+ lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' - lt_cv_file_magic_cmd='$OBJDUMP -f' - fi - ;; -@@ -6267,6 +6353,21 @@ - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 - $as_echo "$lt_cv_deplibs_check_method" >&6; } -+ -+file_magic_glob= -+want_nocaseglob=no -+if test "$build" = "$host"; then -+ case $host_os in -+ mingw* | pw32*) -+ if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then -+ want_nocaseglob=yes -+ else -+ file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"` -+ fi -+ ;; -+ esac -+fi -+ - file_magic_cmd=$lt_cv_file_magic_cmd - deplibs_check_method=$lt_cv_deplibs_check_method - test -z "$deplibs_check_method" && deplibs_check_method=unknown -@@ -6282,9 +6383,162 @@ - - - -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ - if test -n "$ac_tool_prefix"; then -- # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. --set dummy ${ac_tool_prefix}ar; ac_word=$2 -+ # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. -+set dummy ${ac_tool_prefix}dlltool; ac_word=$2 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+$as_echo_n "checking for $ac_word... " >&6; } -+if test "${ac_cv_prog_DLLTOOL+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ if test -n "$DLLTOOL"; then -+ ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. -+else -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then -+ ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" -+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+ done -+IFS=$as_save_IFS -+ -+fi -+fi -+DLLTOOL=$ac_cv_prog_DLLTOOL -+if test -n "$DLLTOOL"; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 -+$as_echo "$DLLTOOL" >&6; } -+else -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+$as_echo "no" >&6; } -+fi -+ -+ -+fi -+if test -z "$ac_cv_prog_DLLTOOL"; then -+ ac_ct_DLLTOOL=$DLLTOOL -+ # Extract the first word of "dlltool", so it can be a program name with args. -+set dummy dlltool; ac_word=$2 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+$as_echo_n "checking for $ac_word... " >&6; } -+if test "${ac_cv_prog_ac_ct_DLLTOOL+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ if test -n "$ac_ct_DLLTOOL"; then -+ ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. -+else -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then -+ ac_cv_prog_ac_ct_DLLTOOL="dlltool" -+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+ done -+IFS=$as_save_IFS -+ -+fi -+fi -+ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL -+if test -n "$ac_ct_DLLTOOL"; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 -+$as_echo "$ac_ct_DLLTOOL" >&6; } -+else -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+$as_echo "no" >&6; } -+fi -+ -+ if test "x$ac_ct_DLLTOOL" = x; then -+ DLLTOOL="false" -+ else -+ case $cross_compiling:$ac_tool_warned in -+yes:) -+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -+ac_tool_warned=yes ;; -+esac -+ DLLTOOL=$ac_ct_DLLTOOL -+ fi -+else -+ DLLTOOL="$ac_cv_prog_DLLTOOL" -+fi -+ -+test -z "$DLLTOOL" && DLLTOOL=dlltool -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5 -+$as_echo_n "checking how to associate runtime and link libraries... " >&6; } -+if test "${lt_cv_sharedlib_from_linklib_cmd+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ lt_cv_sharedlib_from_linklib_cmd='unknown' -+ -+case $host_os in -+cygwin* | mingw* | pw32* | cegcc*) -+ # two different shell functions defined in ltmain.sh -+ # decide which to use based on capabilities of $DLLTOOL -+ case `$DLLTOOL --help 2>&1` in -+ *--identify-strict*) -+ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib -+ ;; -+ *) -+ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback -+ ;; -+ esac -+ ;; -+*) -+ # fallback: assume linklib IS sharedlib -+ lt_cv_sharedlib_from_linklib_cmd="$ECHO" -+ ;; -+esac -+ -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5 -+$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; } -+sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd -+test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO -+ -+ -+ -+ -+ -+ -+ -+if test -n "$ac_tool_prefix"; then -+ for ac_prog in ar -+ do -+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -+set dummy $ac_tool_prefix$ac_prog; ac_word=$2 - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 - $as_echo_n "checking for $ac_word... " >&6; } - if test "${ac_cv_prog_AR+set}" = set; then : -@@ -6300,7 +6554,7 @@ - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then -- ac_cv_prog_AR="${ac_tool_prefix}ar" -+ ac_cv_prog_AR="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -@@ -6320,11 +6574,15 @@ - fi - - -+ test -n "$AR" && break -+ done - fi --if test -z "$ac_cv_prog_AR"; then -+if test -z "$AR"; then - ac_ct_AR=$AR -- # Extract the first word of "ar", so it can be a program name with args. --set dummy ar; ac_word=$2 -+ for ac_prog in ar -+do -+ # Extract the first word of "$ac_prog", so it can be a program name with args. -+set dummy $ac_prog; ac_word=$2 - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 - $as_echo_n "checking for $ac_word... " >&6; } - if test "${ac_cv_prog_ac_ct_AR+set}" = set; then : -@@ -6340,7 +6598,7 @@ - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then -- ac_cv_prog_ac_ct_AR="ar" -+ ac_cv_prog_ac_ct_AR="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -@@ -6359,6 +6617,10 @@ - $as_echo "no" >&6; } - fi - -+ -+ test -n "$ac_ct_AR" && break -+done -+ - if test "x$ac_ct_AR" = x; then - AR="false" - else -@@ -6370,12 +6632,10 @@ - esac - AR=$ac_ct_AR - fi --else -- AR="$ac_cv_prog_AR" - fi - --test -z "$AR" && AR=ar --test -z "$AR_FLAGS" && AR_FLAGS=cru -+: ${AR=ar} -+: ${AR_FLAGS=cru} - - - -@@ -6387,6 +6647,64 @@ - - - -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 -+$as_echo_n "checking for archiver @FILE support... " >&6; } -+if test "${lt_cv_ar_at_file+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ lt_cv_ar_at_file=no -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+/* end confdefs.h. */ -+ -+int -+main () -+{ -+ -+ ; -+ return 0; -+} -+_ACEOF -+if ac_fn_c_try_compile "$LINENO"; then : -+ echo conftest.$ac_objext > conftest.lst -+ lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5' -+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 -+ (eval $lt_ar_try) 2>&5 -+ ac_status=$? -+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 -+ test $ac_status = 0; } -+ if test "$ac_status" -eq 0; then -+ # Ensure the archiver fails upon bogus file names. -+ rm -f conftest.$ac_objext libconftest.a -+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 -+ (eval $lt_ar_try) 2>&5 -+ ac_status=$? -+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 -+ test $ac_status = 0; } -+ if test "$ac_status" -ne 0; then -+ lt_cv_ar_at_file=@ -+ fi -+ fi -+ rm -f conftest.* libconftest.a -+ -+fi -+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -+ -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 -+$as_echo "$lt_cv_ar_at_file" >&6; } -+ -+if test "x$lt_cv_ar_at_file" = xno; then -+ archiver_list_spec= -+else -+ archiver_list_spec=$lt_cv_ar_at_file -+fi -+ -+ -+ -+ -+ -+ -+ - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. - set dummy ${ac_tool_prefix}strip; ac_word=$2 -@@ -6721,8 +7039,8 @@ - lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" - - # Transform an extracted symbol line into symbol name and symbol address --lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" --lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" -+lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" -+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" - - # Handle CRLF in mingw tool chain - opt_cr= -@@ -6758,6 +7076,7 @@ - else - lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" - fi -+ lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" - - # Check to see that the pipe works correctly. - pipe_works=no -@@ -6799,6 +7118,18 @@ - if $GREP ' nm_test_var$' "$nlist" >/dev/null; then - if $GREP ' nm_test_func$' "$nlist" >/dev/null; then - cat <<_LT_EOF > conftest.$ac_ext -+/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ -+#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) -+/* DATA imports from DLLs on WIN32 con't be const, because runtime -+ relocations are performed -- see ld's documentation on pseudo-relocs. */ -+# define LT_DLSYM_CONST -+#elif defined(__osf__) -+/* This system does not cope well with relocations in const data. */ -+# define LT_DLSYM_CONST -+#else -+# define LT_DLSYM_CONST const -+#endif -+ - #ifdef __cplusplus - extern "C" { - #endif -@@ -6810,7 +7141,7 @@ - cat <<_LT_EOF >> conftest.$ac_ext - - /* The mapping between symbol names and symbols. */ --const struct { -+LT_DLSYM_CONST struct { - const char *name; - void *address; - } -@@ -6836,8 +7167,8 @@ - _LT_EOF - # Now try linking the two files. - mv conftest.$ac_objext conftstm.$ac_objext -- lt_save_LIBS="$LIBS" -- lt_save_CFLAGS="$CFLAGS" -+ lt_globsym_save_LIBS=$LIBS -+ lt_globsym_save_CFLAGS=$CFLAGS - LIBS="conftstm.$ac_objext" - CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 -@@ -6847,8 +7178,8 @@ - test $ac_status = 0; } && test -s conftest${ac_exeext}; then - pipe_works=yes - fi -- LIBS="$lt_save_LIBS" -- CFLAGS="$lt_save_CFLAGS" -+ LIBS=$lt_globsym_save_LIBS -+ CFLAGS=$lt_globsym_save_CFLAGS - else - echo "cannot find nm_test_func in $nlist" >&5 - fi -@@ -6885,6 +7216,19 @@ - $as_echo "ok" >&6; } - fi - -+# Response file support. -+if test "$lt_cv_nm_interface" = "MS dumpbin"; then -+ nm_file_list_spec='@' -+elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then -+ nm_file_list_spec='@' -+fi -+ -+ -+ -+ -+ -+ -+ - - - -@@ -6905,6 +7249,42 @@ - - - -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 -+$as_echo_n "checking for sysroot... " >&6; } -+ -+# Check whether --with-libtool-sysroot was given. -+if test "${with_libtool_sysroot+set}" = set; then : -+ withval=$with_libtool_sysroot; -+else -+ with_libtool_sysroot=no -+fi -+ -+ -+lt_sysroot= -+case ${with_libtool_sysroot} in #( -+ yes) -+ if test "$GCC" = yes; then -+ lt_sysroot=`$CC --print-sysroot 2>/dev/null` -+ fi -+ ;; #( -+ /*) -+ lt_sysroot=`echo "$with_libtool_sysroot" | sed -e "$sed_quote_subst"` -+ ;; #( -+ no|'') -+ ;; #( -+ *) -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_libtool_sysroot}" >&5 -+$as_echo "${with_libtool_sysroot}" >&6; } -+ as_fn_error "The sysroot must be an absolute path." "$LINENO" 5 -+ ;; -+esac -+ -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5 -+$as_echo "${lt_sysroot:-no}" >&6; } -+ -+ -+ -+ - - # Check whether --enable-libtool-lock was given. - if test "${enable_libtool_lock+set}" = set; then : -@@ -7112,6 +7492,123 @@ - - need_locks="$enable_libtool_lock" - -+if test -n "$ac_tool_prefix"; then -+ # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args. -+set dummy ${ac_tool_prefix}mt; ac_word=$2 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+$as_echo_n "checking for $ac_word... " >&6; } -+if test "${ac_cv_prog_MANIFEST_TOOL+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ if test -n "$MANIFEST_TOOL"; then -+ ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test. -+else -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then -+ ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt" -+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+ done -+IFS=$as_save_IFS -+ -+fi -+fi -+MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL -+if test -n "$MANIFEST_TOOL"; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5 -+$as_echo "$MANIFEST_TOOL" >&6; } -+else -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+$as_echo "no" >&6; } -+fi -+ -+ -+fi -+if test -z "$ac_cv_prog_MANIFEST_TOOL"; then -+ ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL -+ # Extract the first word of "mt", so it can be a program name with args. -+set dummy mt; ac_word=$2 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+$as_echo_n "checking for $ac_word... " >&6; } -+if test "${ac_cv_prog_ac_ct_MANIFEST_TOOL+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ if test -n "$ac_ct_MANIFEST_TOOL"; then -+ ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test. -+else -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then -+ ac_cv_prog_ac_ct_MANIFEST_TOOL="mt" -+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+ done -+IFS=$as_save_IFS -+ -+fi -+fi -+ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL -+if test -n "$ac_ct_MANIFEST_TOOL"; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5 -+$as_echo "$ac_ct_MANIFEST_TOOL" >&6; } -+else -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+$as_echo "no" >&6; } -+fi -+ -+ if test "x$ac_ct_MANIFEST_TOOL" = x; then -+ MANIFEST_TOOL=":" -+ else -+ case $cross_compiling:$ac_tool_warned in -+yes:) -+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -+ac_tool_warned=yes ;; -+esac -+ MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL -+ fi -+else -+ MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL" -+fi -+ -+test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5 -+$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; } -+if test "${lt_cv_path_mainfest_tool+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ lt_cv_path_mainfest_tool=no -+ echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5 -+ $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out -+ cat conftest.err >&5 -+ if $GREP 'Manifest Tool' conftest.out > /dev/null; then -+ lt_cv_path_mainfest_tool=yes -+ fi -+ rm -f conftest* -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5 -+$as_echo "$lt_cv_path_mainfest_tool" >&6; } -+if test "x$lt_cv_path_mainfest_tool" != xyes; then -+ MANIFEST_TOOL=: -+fi -+ -+ -+ -+ -+ - - case $host_os in - rhapsody* | darwin*) -@@ -7675,6 +8172,8 @@ - $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 - echo "$AR cru libconftest.a conftest.o" >&5 - $AR cru libconftest.a conftest.o 2>&5 -+ echo "$RANLIB libconftest.a" >&5 -+ $RANLIB libconftest.a 2>&5 - cat > conftest.c << _LT_EOF - int main() { return 0;} - _LT_EOF -@@ -7870,7 +8369,8 @@ - LIBTOOL_DEPS="$ltmain" - - # Always use our own libtool. --LIBTOOL='$(SHELL) $(top_builddir)/libtool' -+LIBTOOL='$(SHELL) $(top_builddir)' -+LIBTOOL="$LIBTOOL/${host_alias}-libtool" - - - -@@ -7959,7 +8459,7 @@ - esac - - # Global variables: --ofile=libtool -+ofile=${host_alias}-libtool - can_build_shared=yes - - # All known linkers require a `.a' archive for static linking (except MSVC, -@@ -8257,8 +8757,6 @@ - lt_prog_compiler_pic= - lt_prog_compiler_static= - --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 --$as_echo_n "checking for $compiler option to produce PIC... " >&6; } - - if test "$GCC" = yes; then - lt_prog_compiler_wl='-Wl,' -@@ -8424,6 +8922,12 @@ - lt_prog_compiler_pic='--shared' - lt_prog_compiler_static='--static' - ;; -+ nagfor*) -+ # NAG Fortran compiler -+ lt_prog_compiler_wl='-Wl,-Wl,,' -+ lt_prog_compiler_pic='-PIC' -+ lt_prog_compiler_static='-Bstatic' -+ ;; - pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) - # Portland Group compilers (*not* the Pentium gcc compiler, - # which looks to be a dead project) -@@ -8486,7 +8990,7 @@ - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-Bstatic' - case $cc_basename in -- f77* | f90* | f95*) -+ f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) - lt_prog_compiler_wl='-Qoption ld ';; - *) - lt_prog_compiler_wl='-Wl,';; -@@ -8543,13 +9047,17 @@ - lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" - ;; - esac --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic" >&5 --$as_echo "$lt_prog_compiler_pic" >&6; } -- -- -- -- - -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 -+$as_echo_n "checking for $compiler option to produce PIC... " >&6; } -+if test "${lt_cv_prog_compiler_pic+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ lt_cv_prog_compiler_pic=$lt_prog_compiler_pic -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 -+$as_echo "$lt_cv_prog_compiler_pic" >&6; } -+lt_prog_compiler_pic=$lt_cv_prog_compiler_pic - - # - # Check to make sure the PIC flag actually works. -@@ -8610,6 +9118,11 @@ - - - -+ -+ -+ -+ -+ - # - # Check to make sure the static flag actually works. - # -@@ -8960,7 +9473,8 @@ - allow_undefined_flag=unsupported - always_export_symbols=no - enable_shared_with_static_runtimes=yes -- export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' -+ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' -+ exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' - - if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' -@@ -9008,7 +9522,7 @@ - if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ - && test "$tmp_diet" = no - then -- tmp_addflag= -+ tmp_addflag=' $pic_flag' - tmp_sharedflag='-shared' - case $cc_basename,$host_cpu in - pgcc*) # Portland Group C compiler -@@ -9059,12 +9573,12 @@ - whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' - hardcode_libdir_flag_spec= - hardcode_libdir_flag_spec_ld='-rpath $libdir' -- archive_cmds='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib' -+ archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' - if test "x$supports_anon_versioning" = xyes; then - archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ - cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ - echo "local: *; };" >> $output_objdir/$libname.ver~ -- $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' -+ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' - fi - ;; - esac -@@ -9078,8 +9592,8 @@ - archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' - wlarc= - else -- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' -+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - fi - ;; - -@@ -9097,8 +9611,8 @@ - - _LT_EOF - elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then -- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' -+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - ld_shlibs=no - fi -@@ -9144,8 +9658,8 @@ - - *) - if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then -- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' -+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - ld_shlibs=no - fi -@@ -9275,7 +9789,13 @@ - allow_undefined_flag='-berok' - # Determine the default libpath from the value encoded in an - # empty executable. -- cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+ if test "${lt_cv_aix_libpath+set}" = set; then -+ aix_libpath=$lt_cv_aix_libpath -+else -+ if test "${lt_cv_aix_libpath_+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - - int -@@ -9288,22 +9808,29 @@ - _ACEOF - if ac_fn_c_try_link "$LINENO"; then : - --lt_aix_libpath_sed=' -- /Import File Strings/,/^$/ { -- /^0/ { -- s/^0 *\(.*\)$/\1/ -- p -- } -- }' --aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` --# Check for a 64-bit object if we didn't find anything. --if test -z "$aix_libpath"; then -- aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` --fi -+ lt_aix_libpath_sed=' -+ /Import File Strings/,/^$/ { -+ /^0/ { -+ s/^0 *\([^ ]*\) *$/\1/ -+ p -+ } -+ }' -+ lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -+ # Check for a 64-bit object if we didn't find anything. -+ if test -z "$lt_cv_aix_libpath_"; then -+ lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -+ fi - fi - rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext --if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi -+ if test -z "$lt_cv_aix_libpath_"; then -+ lt_cv_aix_libpath_="/usr/lib:/lib" -+ fi -+ -+fi -+ -+ aix_libpath=$lt_cv_aix_libpath_ -+fi - - hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" - archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" -@@ -9315,7 +9842,13 @@ - else - # Determine the default libpath from the value encoded in an - # empty executable. -- cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+ if test "${lt_cv_aix_libpath+set}" = set; then -+ aix_libpath=$lt_cv_aix_libpath -+else -+ if test "${lt_cv_aix_libpath_+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - - int -@@ -9328,22 +9861,29 @@ - _ACEOF - if ac_fn_c_try_link "$LINENO"; then : - --lt_aix_libpath_sed=' -- /Import File Strings/,/^$/ { -- /^0/ { -- s/^0 *\(.*\)$/\1/ -- p -- } -- }' --aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` --# Check for a 64-bit object if we didn't find anything. --if test -z "$aix_libpath"; then -- aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` --fi -+ lt_aix_libpath_sed=' -+ /Import File Strings/,/^$/ { -+ /^0/ { -+ s/^0 *\([^ ]*\) *$/\1/ -+ p -+ } -+ }' -+ lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -+ # Check for a 64-bit object if we didn't find anything. -+ if test -z "$lt_cv_aix_libpath_"; then -+ lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -+ fi - fi - rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext --if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi -+ if test -z "$lt_cv_aix_libpath_"; then -+ lt_cv_aix_libpath_="/usr/lib:/lib" -+ fi -+ -+fi -+ -+ aix_libpath=$lt_cv_aix_libpath_ -+fi - - hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" - # Warning - without using the other run time loading flags, -@@ -9388,20 +9928,63 @@ - # Microsoft Visual C++. - # hardcode_libdir_flag_spec is actually meaningless, as there is - # no search path for DLLs. -- hardcode_libdir_flag_spec=' ' -- allow_undefined_flag=unsupported -- # Tell ltmain to make .lib files, not .a files. -- libext=lib -- # Tell ltmain to make .dll files, not .so files. -- shrext_cmds=".dll" -- # FIXME: Setting linknames here is a bad hack. -- archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' -- # The linker will automatically build a .lib file if we build a DLL. -- old_archive_from_new_cmds='true' -- # FIXME: Should let the user specify the lib program. -- old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' -- fix_srcfile_path='`cygpath -w "$srcfile"`' -- enable_shared_with_static_runtimes=yes -+ case $cc_basename in -+ cl*) -+ # Native MSVC -+ hardcode_libdir_flag_spec=' ' -+ allow_undefined_flag=unsupported -+ always_export_symbols=yes -+ file_list_spec='@' -+ # Tell ltmain to make .lib files, not .a files. -+ libext=lib -+ # Tell ltmain to make .dll files, not .so files. -+ shrext_cmds=".dll" -+ # FIXME: Setting linknames here is a bad hack. -+ archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' -+ archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then -+ sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; -+ else -+ sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; -+ fi~ -+ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ -+ linknames=' -+ # The linker will not automatically build a static lib if we build a DLL. -+ # _LT_TAGVAR(old_archive_from_new_cmds, )='true' -+ enable_shared_with_static_runtimes=yes -+ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' -+ # Don't use ranlib -+ old_postinstall_cmds='chmod 644 $oldlib' -+ postlink_cmds='lt_outputfile="@OUTPUT@"~ -+ lt_tool_outputfile="@TOOL_OUTPUT@"~ -+ case $lt_outputfile in -+ *.exe|*.EXE) ;; -+ *) -+ lt_outputfile="$lt_outputfile.exe" -+ lt_tool_outputfile="$lt_tool_outputfile.exe" -+ ;; -+ esac~ -+ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then -+ $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; -+ $RM "$lt_outputfile.manifest"; -+ fi' -+ ;; -+ *) -+ # Assume MSVC wrapper -+ hardcode_libdir_flag_spec=' ' -+ allow_undefined_flag=unsupported -+ # Tell ltmain to make .lib files, not .a files. -+ libext=lib -+ # Tell ltmain to make .dll files, not .so files. -+ shrext_cmds=".dll" -+ # FIXME: Setting linknames here is a bad hack. -+ archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' -+ # The linker will automatically build a .lib file if we build a DLL. -+ old_archive_from_new_cmds='true' -+ # FIXME: Should let the user specify the lib program. -+ old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' -+ enable_shared_with_static_runtimes=yes -+ ;; -+ esac - ;; - - darwin* | rhapsody*) -@@ -9462,7 +10045,7 @@ - - # FreeBSD 3 and greater uses gcc -shared to do shared libraries. - freebsd* | dragonfly*) -- archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' -+ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - hardcode_libdir_flag_spec='-R$libdir' - hardcode_direct=yes - hardcode_shlibpath_var=no -@@ -9470,7 +10053,7 @@ - - hpux9*) - if test "$GCC" = yes; then -- archive_cmds='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' -+ archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - else - archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - fi -@@ -9486,7 +10069,7 @@ - - hpux10*) - if test "$GCC" = yes && test "$with_gnu_ld" = no; then -- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' -+ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' - fi -@@ -9510,10 +10093,10 @@ - archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - ia64*) -- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' -+ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) -- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' -+ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - ;; - esac - else -@@ -9592,23 +10175,36 @@ - - irix5* | irix6* | nonstopux*) - if test "$GCC" = yes; then -- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' -+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - # Try to use the -exported_symbol ld option, if it does not - # work, assume that -exports_file does not work either and - # implicitly export all symbols. -- save_LDFLAGS="$LDFLAGS" -- LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" -- cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+ # This should be the same for all languages, so no per-tag cache variable. -+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5 -+$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; } -+if test "${lt_cv_irix_exported_symbol+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ save_LDFLAGS="$LDFLAGS" -+ LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ --int foo(void) {} -+int foo (void) { return 0; } - _ACEOF - if ac_fn_c_try_link "$LINENO"; then : -- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' -- -+ lt_cv_irix_exported_symbol=yes -+else -+ lt_cv_irix_exported_symbol=no - fi - rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -- LDFLAGS="$save_LDFLAGS" -+ LDFLAGS="$save_LDFLAGS" -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5 -+$as_echo "$lt_cv_irix_exported_symbol" >&6; } -+ if test "$lt_cv_irix_exported_symbol" = yes; then -+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' -+ fi - else - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' - archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' -@@ -9693,7 +10289,7 @@ - osf4* | osf5*) # as osf3* with the addition of -msym flag - if test "$GCC" = yes; then - allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' -- archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' -+ archive_cmds='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - else - allow_undefined_flag=' -expect_unresolved \*' -@@ -9712,9 +10308,9 @@ - no_undefined_flag=' -z defs' - if test "$GCC" = yes; then - wlarc='${wl}' -- archive_cmds='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' -+ archive_cmds='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ -- $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' -+ $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' - else - case `$CC -V 2>&1` in - *"Compilers 5.0"*) -@@ -10290,8 +10886,9 @@ - need_version=no - need_lib_prefix=no - -- case $GCC,$host_os in -- yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) -+ case $GCC,$cc_basename in -+ yes,*) -+ # gcc - library_names_spec='$libname.dll.a' - # DLL is installed to $(libdir)/../bin by postinstall_cmds - postinstall_cmds='base_file=`basename \${file}`~ -@@ -10324,13 +10921,71 @@ - library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - ;; - esac -+ dynamic_linker='Win32 ld.exe' -+ ;; -+ -+ *,cl*) -+ # Native MSVC -+ libname_spec='$name' -+ soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' -+ library_names_spec='${libname}.dll.lib' -+ -+ case $build_os in -+ mingw*) -+ sys_lib_search_path_spec= -+ lt_save_ifs=$IFS -+ IFS=';' -+ for lt_path in $LIB -+ do -+ IFS=$lt_save_ifs -+ # Let DOS variable expansion print the short 8.3 style file name. -+ lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` -+ sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" -+ done -+ IFS=$lt_save_ifs -+ # Convert to MSYS style. -+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` -+ ;; -+ cygwin*) -+ # Convert to unix form, then to dos form, then back to unix form -+ # but this time dos style (no spaces!) so that the unix form looks -+ # like /cygdrive/c/PROGRA~1:/cygdr... -+ sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` -+ sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` -+ sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` -+ ;; -+ *) -+ sys_lib_search_path_spec="$LIB" -+ if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then -+ # It is most probably a Windows format PATH. -+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` -+ else -+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` -+ fi -+ # FIXME: find the short name or the path components, as spaces are -+ # common. (e.g. "Program Files" -> "PROGRA~1") -+ ;; -+ esac -+ -+ # DLL is installed to $(libdir)/../bin by postinstall_cmds -+ postinstall_cmds='base_file=`basename \${file}`~ -+ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ -+ dldir=$destdir/`dirname \$dlpath`~ -+ test -d \$dldir || mkdir -p \$dldir~ -+ $install_prog $dir/$dlname \$dldir/$dlname' -+ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ -+ dlpath=$dir/\$dldll~ -+ $RM \$dlpath' -+ shlibpath_overrides_runpath=yes -+ dynamic_linker='Win32 link.exe' - ;; - - *) -+ # Assume MSVC wrapper - library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' -+ dynamic_linker='Win32 ld.exe' - ;; - esac -- dynamic_linker='Win32 ld.exe' - # FIXME: first we should search . and the directory the executable is in - shlibpath_var=PATH - ;; -@@ -10422,7 +11077,7 @@ - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LIBRARY_PATH - shlibpath_overrides_runpath=yes -- sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/beos/system/lib' -+ sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' - hardcode_into_libs=yes - ;; - -@@ -11262,10 +11917,10 @@ - /* When -fvisbility=hidden is used, assume the code has been annotated - correspondingly for the symbols needed. */ - #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) --void fnord () __attribute__((visibility("default"))); -+int fnord () __attribute__((visibility("default"))); - #endif - --void fnord () { int i=42; } -+int fnord () { return 42; } - int main () - { - void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); -@@ -11368,10 +12023,10 @@ - /* When -fvisbility=hidden is used, assume the code has been annotated - correspondingly for the symbols needed. */ - #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) --void fnord () __attribute__((visibility("default"))); -+int fnord () __attribute__((visibility("default"))); - #endif - --void fnord () { int i=42; } -+int fnord () { return 42; } - int main () - { - void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); -@@ -14948,13 +15603,20 @@ - lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`' - lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`' - lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`' -+lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`' -+lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`' - reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' - reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' - OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' - deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' - file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' -+file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`' -+want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`' -+DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' -+sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' - AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' - AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' -+archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`' - STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' - RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`' - old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`' -@@ -14969,14 +15631,17 @@ - lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`' - lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`' - lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`' -+nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`' -+lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`' - objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`' - MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`' - lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`' --lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' - lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`' -+lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' - lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`' - lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`' - need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`' -+MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`' - DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`' - NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`' - LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`' -@@ -15009,12 +15674,12 @@ - hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`' - inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`' - link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`' --fix_srcfile_path='`$ECHO "$fix_srcfile_path" | $SED "$delay_single_quote_subst"`' - always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`' - export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`' - exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`' - include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`' - prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`' -+postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`' - file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`' - variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`' - need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`' -@@ -15069,8 +15734,13 @@ - OBJDUMP \ - deplibs_check_method \ - file_magic_cmd \ -+file_magic_glob \ -+want_nocaseglob \ -+DLLTOOL \ -+sharedlib_from_linklib_cmd \ - AR \ - AR_FLAGS \ -+archiver_list_spec \ - STRIP \ - RANLIB \ - CC \ -@@ -15080,12 +15750,14 @@ - lt_cv_sys_global_symbol_to_cdecl \ - lt_cv_sys_global_symbol_to_c_name_address \ - lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ -+nm_file_list_spec \ - lt_prog_compiler_no_builtin_flag \ --lt_prog_compiler_wl \ - lt_prog_compiler_pic \ -+lt_prog_compiler_wl \ - lt_prog_compiler_static \ - lt_cv_prog_compiler_c_o \ - need_locks \ -+MANIFEST_TOOL \ - DSYMUTIL \ - NMEDIT \ - LIPO \ -@@ -15101,7 +15773,6 @@ - hardcode_libdir_flag_spec \ - hardcode_libdir_flag_spec_ld \ - hardcode_libdir_separator \ --fix_srcfile_path \ - exclude_expsyms \ - include_expsyms \ - file_list_spec \ -@@ -15137,6 +15808,7 @@ - module_expsym_cmds \ - export_symbols_cmds \ - prelink_cmds \ -+postlink_cmds \ - postinstall_cmds \ - postuninstall_cmds \ - finish_cmds \ -@@ -15894,7 +16566,8 @@ - # NOTE: Changes made to this file will be lost: look at ltmain.sh. - # - # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, --# 2006, 2007, 2008, 2009 Free Software Foundation, Inc. -+# 2006, 2007, 2008, 2009, 2010 Free Software Foundation, -+# Inc. - # Written by Gordon Matzigkeit, 1996 - # - # This file is part of GNU Libtool. -@@ -15997,19 +16670,42 @@ - # turn newlines into spaces. - NL2SP=$lt_lt_NL2SP - -+# convert \$build file names to \$host format. -+to_host_file_cmd=$lt_cv_to_host_file_cmd -+ -+# convert \$build files to toolchain format. -+to_tool_file_cmd=$lt_cv_to_tool_file_cmd -+ - # An object symbol dumper. - OBJDUMP=$lt_OBJDUMP - - # Method to check whether dependent libraries are shared objects. - deplibs_check_method=$lt_deplibs_check_method - --# Command to use when deplibs_check_method == "file_magic". -+# Command to use when deplibs_check_method = "file_magic". - file_magic_cmd=$lt_file_magic_cmd - -+# How to find potential files when deplibs_check_method = "file_magic". -+file_magic_glob=$lt_file_magic_glob -+ -+# Find potential files using nocaseglob when deplibs_check_method = "file_magic". -+want_nocaseglob=$lt_want_nocaseglob -+ -+# DLL creation program. -+DLLTOOL=$lt_DLLTOOL -+ -+# Command to associate shared and link libraries. -+sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd -+ - # The archiver. - AR=$lt_AR -+ -+# Flags to create an archive. - AR_FLAGS=$lt_AR_FLAGS - -+# How to feed a file listing to the archiver. -+archiver_list_spec=$lt_archiver_list_spec -+ - # A symbol stripping program. - STRIP=$lt_STRIP - -@@ -16039,6 +16735,12 @@ - # Transform the output of nm in a C name address pair when lib prefix is needed. - global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix - -+# Specify filename containing input files for \$NM. -+nm_file_list_spec=$lt_nm_file_list_spec -+ -+# The root where to search for dependent libraries,and in which our libraries should be installed. -+lt_sysroot=$lt_sysroot -+ - # The name of the directory that contains temporary libtool files. - objdir=$objdir - -@@ -16048,6 +16750,9 @@ - # Must we lock files when doing compilation? - need_locks=$lt_need_locks - -+# Manifest tool. -+MANIFEST_TOOL=$lt_MANIFEST_TOOL -+ - # Tool to manipulate archived DWARF debug symbol files on Mac OS X. - DSYMUTIL=$lt_DSYMUTIL - -@@ -16162,12 +16867,12 @@ - # Compiler flag to turn off builtin functions. - no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag - --# How to pass a linker flag through the compiler. --wl=$lt_lt_prog_compiler_wl -- - # Additional compiler flags for building library objects. - pic_flag=$lt_lt_prog_compiler_pic - -+# How to pass a linker flag through the compiler. -+wl=$lt_lt_prog_compiler_wl -+ - # Compiler flag to prevent dynamic linking. - link_static_flag=$lt_lt_prog_compiler_static - -@@ -16254,9 +16959,6 @@ - # Whether libtool must link a program against all its dependency libraries. - link_all_deplibs=$link_all_deplibs - --# Fix the shell variable \$srcfile for the compiler. --fix_srcfile_path=$lt_fix_srcfile_path -- - # Set to "yes" if exported symbols are required. - always_export_symbols=$always_export_symbols - -@@ -16272,6 +16974,9 @@ - # Commands necessary for linking programs (against libraries) with templates. - prelink_cmds=$lt_prelink_cmds - -+# Commands necessary for finishing linking programs. -+postlink_cmds=$lt_postlink_cmds -+ - # Specify filename containing input files. - file_list_spec=$lt_file_list_spec - -@@ -16304,210 +17009,169 @@ - # if finds mixed CR/LF and LF-only lines. Since sed operates in - # text mode, it properly converts lines to CR/LF. This bash problem - # is reportedly fixed, but why not run on old versions too? -- sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ -- || (rm -f "$cfgfile"; exit 1) -- -- case $xsi_shell in -- yes) -- cat << \_LT_EOF >> "$cfgfile" -- --# func_dirname file append nondir_replacement --# Compute the dirname of FILE. If nonempty, add APPEND to the result, --# otherwise set result to NONDIR_REPLACEMENT. --func_dirname () --{ -- case ${1} in -- */*) func_dirname_result="${1%/*}${2}" ;; -- * ) func_dirname_result="${3}" ;; -- esac --} -- --# func_basename file --func_basename () --{ -- func_basename_result="${1##*/}" --} -- --# func_dirname_and_basename file append nondir_replacement --# perform func_basename and func_dirname in a single function --# call: --# dirname: Compute the dirname of FILE. If nonempty, --# add APPEND to the result, otherwise set result --# to NONDIR_REPLACEMENT. --# value returned in "$func_dirname_result" --# basename: Compute filename of FILE. --# value retuned in "$func_basename_result" --# Implementation must be kept synchronized with func_dirname --# and func_basename. For efficiency, we do not delegate to --# those functions but instead duplicate the functionality here. --func_dirname_and_basename () --{ -- case ${1} in -- */*) func_dirname_result="${1%/*}${2}" ;; -- * ) func_dirname_result="${3}" ;; -- esac -- func_basename_result="${1##*/}" --} -- --# func_stripname prefix suffix name --# strip PREFIX and SUFFIX off of NAME. --# PREFIX and SUFFIX must not contain globbing or regex special --# characters, hashes, percent signs, but SUFFIX may contain a leading --# dot (in which case that matches only a dot). --func_stripname () --{ -- # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are -- # positional parameters, so assign one to ordinary parameter first. -- func_stripname_result=${3} -- func_stripname_result=${func_stripname_result#"${1}"} -- func_stripname_result=${func_stripname_result%"${2}"} --} -- --# func_opt_split --func_opt_split () --{ -- func_opt_split_opt=${1%%=*} -- func_opt_split_arg=${1#*=} --} -- --# func_lo2o object --func_lo2o () --{ -- case ${1} in -- *.lo) func_lo2o_result=${1%.lo}.${objext} ;; -- *) func_lo2o_result=${1} ;; -- esac --} -- --# func_xform libobj-or-source --func_xform () --{ -- func_xform_result=${1%.*}.lo --} -- --# func_arith arithmetic-term... --func_arith () --{ -- func_arith_result=$(( $* )) --} -- --# func_len string --# STRING may not start with a hyphen. --func_len () --{ -- func_len_result=${#1} --} -- --_LT_EOF -- ;; -- *) # Bourne compatible functions. -- cat << \_LT_EOF >> "$cfgfile" -- --# func_dirname file append nondir_replacement --# Compute the dirname of FILE. If nonempty, add APPEND to the result, --# otherwise set result to NONDIR_REPLACEMENT. --func_dirname () --{ -- # Extract subdirectory from the argument. -- func_dirname_result=`$ECHO "${1}" | $SED "$dirname"` -- if test "X$func_dirname_result" = "X${1}"; then -- func_dirname_result="${3}" -- else -- func_dirname_result="$func_dirname_result${2}" -- fi --} -- --# func_basename file --func_basename () --{ -- func_basename_result=`$ECHO "${1}" | $SED "$basename"` --} -- -- --# func_stripname prefix suffix name --# strip PREFIX and SUFFIX off of NAME. --# PREFIX and SUFFIX must not contain globbing or regex special --# characters, hashes, percent signs, but SUFFIX may contain a leading --# dot (in which case that matches only a dot). --# func_strip_suffix prefix name --func_stripname () --{ -- case ${2} in -- .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; -- *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; -- esac --} -- --# sed scripts: --my_sed_long_opt='1s/^\(-[^=]*\)=.*/\1/;q' --my_sed_long_arg='1s/^-[^=]*=//' -- --# func_opt_split --func_opt_split () --{ -- func_opt_split_opt=`$ECHO "${1}" | $SED "$my_sed_long_opt"` -- func_opt_split_arg=`$ECHO "${1}" | $SED "$my_sed_long_arg"` --} -- --# func_lo2o object --func_lo2o () --{ -- func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"` --} -- --# func_xform libobj-or-source --func_xform () --{ -- func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'` --} -- --# func_arith arithmetic-term... --func_arith () --{ -- func_arith_result=`expr "$@"` --} -- --# func_len string --# STRING may not start with a hyphen. --func_len () --{ -- func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len` --} -- --_LT_EOF --esac -- --case $lt_shell_append in -- yes) -- cat << \_LT_EOF >> "$cfgfile" -- --# func_append var value --# Append VALUE to the end of shell variable VAR. --func_append () --{ -- eval "$1+=\$2" --} --_LT_EOF -- ;; -- *) -- cat << \_LT_EOF >> "$cfgfile" -- --# func_append var value --# Append VALUE to the end of shell variable VAR. --func_append () --{ -- eval "$1=\$$1\$2" --} -- --_LT_EOF -- ;; -- esac -+ sed '$q' "$ltmain" >> "$cfgfile" \ -+ || (rm -f "$cfgfile"; exit 1) - -+ if test x"$xsi_shell" = xyes; then -+ sed -e '/^func_dirname ()$/,/^} # func_dirname /c\ -+func_dirname ()\ -+{\ -+\ case ${1} in\ -+\ */*) func_dirname_result="${1%/*}${2}" ;;\ -+\ * ) func_dirname_result="${3}" ;;\ -+\ esac\ -+} # Extended-shell func_dirname implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_basename ()$/,/^} # func_basename /c\ -+func_basename ()\ -+{\ -+\ func_basename_result="${1##*/}"\ -+} # Extended-shell func_basename implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_dirname_and_basename ()$/,/^} # func_dirname_and_basename /c\ -+func_dirname_and_basename ()\ -+{\ -+\ case ${1} in\ -+\ */*) func_dirname_result="${1%/*}${2}" ;;\ -+\ * ) func_dirname_result="${3}" ;;\ -+\ esac\ -+\ func_basename_result="${1##*/}"\ -+} # Extended-shell func_dirname_and_basename implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_stripname ()$/,/^} # func_stripname /c\ -+func_stripname ()\ -+{\ -+\ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are\ -+\ # positional parameters, so assign one to ordinary parameter first.\ -+\ func_stripname_result=${3}\ -+\ func_stripname_result=${func_stripname_result#"${1}"}\ -+\ func_stripname_result=${func_stripname_result%"${2}"}\ -+} # Extended-shell func_stripname implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_split_long_opt ()$/,/^} # func_split_long_opt /c\ -+func_split_long_opt ()\ -+{\ -+\ func_split_long_opt_name=${1%%=*}\ -+\ func_split_long_opt_arg=${1#*=}\ -+} # Extended-shell func_split_long_opt implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_split_short_opt ()$/,/^} # func_split_short_opt /c\ -+func_split_short_opt ()\ -+{\ -+\ func_split_short_opt_arg=${1#??}\ -+\ func_split_short_opt_name=${1%"$func_split_short_opt_arg"}\ -+} # Extended-shell func_split_short_opt implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_lo2o ()$/,/^} # func_lo2o /c\ -+func_lo2o ()\ -+{\ -+\ case ${1} in\ -+\ *.lo) func_lo2o_result=${1%.lo}.${objext} ;;\ -+\ *) func_lo2o_result=${1} ;;\ -+\ esac\ -+} # Extended-shell func_lo2o implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_xform ()$/,/^} # func_xform /c\ -+func_xform ()\ -+{\ -+ func_xform_result=${1%.*}.lo\ -+} # Extended-shell func_xform implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_arith ()$/,/^} # func_arith /c\ -+func_arith ()\ -+{\ -+ func_arith_result=$(( $* ))\ -+} # Extended-shell func_arith implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_len ()$/,/^} # func_len /c\ -+func_len ()\ -+{\ -+ func_len_result=${#1}\ -+} # Extended-shell func_len implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+fi -+ -+if test x"$lt_shell_append" = xyes; then -+ sed -e '/^func_append ()$/,/^} # func_append /c\ -+func_append ()\ -+{\ -+ eval "${1}+=\\${2}"\ -+} # Extended-shell func_append implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_append_quoted ()$/,/^} # func_append_quoted /c\ -+func_append_quoted ()\ -+{\ -+\ func_quote_for_eval "${2}"\ -+\ eval "${1}+=\\\\ \\$func_quote_for_eval_result"\ -+} # Extended-shell func_append_quoted implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ # Save a `func_append' function call where possible by direct use of '+=' -+ sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+ test 0 -eq $? || _lt_function_replace_fail=: -+else -+ # Save a `func_append' function call even when '+=' is not available -+ sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+ test 0 -eq $? || _lt_function_replace_fail=: -+fi -+ -+if test x"$_lt_function_replace_fail" = x":"; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5 -+$as_echo "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;} -+fi - -- sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ -- || (rm -f "$cfgfile"; exit 1) - -- mv -f "$cfgfile" "$ofile" || -+ mv -f "$cfgfile" "$ofile" || - (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") - chmod +x "$ofile" - -Index: binutils-2.24/gas/configure -=================================================================== ---- binutils-2.24.orig/gas/configure 2013-11-04 07:33:37.000000000 -0800 -+++ binutils-2.24/gas/configure 2013-12-15 11:10:23.880452030 -0800 -@@ -645,8 +645,11 @@ - LIPO - NMEDIT - DSYMUTIL -+MANIFEST_TOOL - RANLIB -+ac_ct_AR - AR -+DLLTOOL - OBJDUMP - LN_S - NM -@@ -759,6 +762,7 @@ - with_pic - enable_fast_install - with_gnu_ld -+with_libtool_sysroot - enable_libtool_lock - enable_targets - enable_checking -@@ -1420,6 +1424,8 @@ - --with-pic try to use only PIC/non-PIC objects [default=use - both] - --with-gnu-ld assume the C compiler uses GNU ld [default=no] -+ --with-libtool-sysroot=DIR Search for dependent libraries within DIR -+ (or the compiler's sysroot if not specified). - --with-zlib include zlib support (auto/yes/no) default=auto - - Some influential environment variables: -@@ -5135,8 +5141,8 @@ - - - --macro_version='2.2.7a' --macro_revision='1.3134' -+macro_version='2.4' -+macro_revision='1.3293' - - - -@@ -5176,7 +5182,7 @@ - { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5 - $as_echo_n "checking how to print strings... " >&6; } - # Test print first, because it will be a builtin if present. --if test "X`print -r -- -n 2>/dev/null`" = X-n && \ -+if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ - test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then - ECHO='print -r --' - elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then -@@ -5862,8 +5868,8 @@ - # Try some XSI features - xsi_shell=no - ( _lt_dummy="a/b/c" -- test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \ -- = c,a/b,, \ -+ test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ -+ = c,a/b,b/c, \ - && eval 'test $(( 1 + 1 )) -eq 2 \ - && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ - && xsi_shell=yes -@@ -5912,6 +5918,80 @@ - - - -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5 -+$as_echo_n "checking how to convert $build file names to $host format... " >&6; } -+if test "${lt_cv_to_host_file_cmd+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ case $host in -+ *-*-mingw* ) -+ case $build in -+ *-*-mingw* ) # actually msys -+ lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 -+ ;; -+ *-*-cygwin* ) -+ lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 -+ ;; -+ * ) # otherwise, assume *nix -+ lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 -+ ;; -+ esac -+ ;; -+ *-*-cygwin* ) -+ case $build in -+ *-*-mingw* ) # actually msys -+ lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin -+ ;; -+ *-*-cygwin* ) -+ lt_cv_to_host_file_cmd=func_convert_file_noop -+ ;; -+ * ) # otherwise, assume *nix -+ lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin -+ ;; -+ esac -+ ;; -+ * ) # unhandled hosts (and "normal" native builds) -+ lt_cv_to_host_file_cmd=func_convert_file_noop -+ ;; -+esac -+ -+fi -+ -+to_host_file_cmd=$lt_cv_to_host_file_cmd -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5 -+$as_echo "$lt_cv_to_host_file_cmd" >&6; } -+ -+ -+ -+ -+ -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5 -+$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; } -+if test "${lt_cv_to_tool_file_cmd+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ #assume ordinary cross tools, or native build. -+lt_cv_to_tool_file_cmd=func_convert_file_noop -+case $host in -+ *-*-mingw* ) -+ case $build in -+ *-*-mingw* ) # actually msys -+ lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 -+ ;; -+ esac -+ ;; -+esac -+ -+fi -+ -+to_tool_file_cmd=$lt_cv_to_tool_file_cmd -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5 -+$as_echo "$lt_cv_to_tool_file_cmd" >&6; } -+ -+ -+ -+ -+ - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 - $as_echo_n "checking for $LD option to reload object files... " >&6; } - if test "${lt_cv_ld_reload_flag+set}" = set; then : -@@ -5928,6 +6008,11 @@ - esac - reload_cmds='$LD$reload_flag -o $output$reload_objs' - case $host_os in -+ cygwin* | mingw* | pw32* | cegcc*) -+ if test "$GCC" != yes; then -+ reload_cmds=false -+ fi -+ ;; - darwin*) - if test "$GCC" = yes; then - reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' -@@ -6096,7 +6181,8 @@ - lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' - lt_cv_file_magic_cmd='func_win32_libid' - else -- lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' -+ # Keep this pattern in sync with the one in func_win32_libid. -+ lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' - lt_cv_file_magic_cmd='$OBJDUMP -f' - fi - ;; -@@ -6250,6 +6336,21 @@ - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 - $as_echo "$lt_cv_deplibs_check_method" >&6; } -+ -+file_magic_glob= -+want_nocaseglob=no -+if test "$build" = "$host"; then -+ case $host_os in -+ mingw* | pw32*) -+ if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then -+ want_nocaseglob=yes -+ else -+ file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"` -+ fi -+ ;; -+ esac -+fi -+ - file_magic_cmd=$lt_cv_file_magic_cmd - deplibs_check_method=$lt_cv_deplibs_check_method - test -z "$deplibs_check_method" && deplibs_check_method=unknown -@@ -6265,9 +6366,162 @@ - - - -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+if test -n "$ac_tool_prefix"; then -+ # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. -+set dummy ${ac_tool_prefix}dlltool; ac_word=$2 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+$as_echo_n "checking for $ac_word... " >&6; } -+if test "${ac_cv_prog_DLLTOOL+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ if test -n "$DLLTOOL"; then -+ ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. -+else -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then -+ ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" -+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+ done -+IFS=$as_save_IFS -+ -+fi -+fi -+DLLTOOL=$ac_cv_prog_DLLTOOL -+if test -n "$DLLTOOL"; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 -+$as_echo "$DLLTOOL" >&6; } -+else -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+$as_echo "no" >&6; } -+fi -+ -+ -+fi -+if test -z "$ac_cv_prog_DLLTOOL"; then -+ ac_ct_DLLTOOL=$DLLTOOL -+ # Extract the first word of "dlltool", so it can be a program name with args. -+set dummy dlltool; ac_word=$2 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+$as_echo_n "checking for $ac_word... " >&6; } -+if test "${ac_cv_prog_ac_ct_DLLTOOL+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ if test -n "$ac_ct_DLLTOOL"; then -+ ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. -+else -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then -+ ac_cv_prog_ac_ct_DLLTOOL="dlltool" -+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+ done -+IFS=$as_save_IFS -+ -+fi -+fi -+ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL -+if test -n "$ac_ct_DLLTOOL"; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 -+$as_echo "$ac_ct_DLLTOOL" >&6; } -+else -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+$as_echo "no" >&6; } -+fi -+ -+ if test "x$ac_ct_DLLTOOL" = x; then -+ DLLTOOL="false" -+ else -+ case $cross_compiling:$ac_tool_warned in -+yes:) -+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -+ac_tool_warned=yes ;; -+esac -+ DLLTOOL=$ac_ct_DLLTOOL -+ fi -+else -+ DLLTOOL="$ac_cv_prog_DLLTOOL" -+fi -+ -+test -z "$DLLTOOL" && DLLTOOL=dlltool -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5 -+$as_echo_n "checking how to associate runtime and link libraries... " >&6; } -+if test "${lt_cv_sharedlib_from_linklib_cmd+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ lt_cv_sharedlib_from_linklib_cmd='unknown' -+ -+case $host_os in -+cygwin* | mingw* | pw32* | cegcc*) -+ # two different shell functions defined in ltmain.sh -+ # decide which to use based on capabilities of $DLLTOOL -+ case `$DLLTOOL --help 2>&1` in -+ *--identify-strict*) -+ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib -+ ;; -+ *) -+ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback -+ ;; -+ esac -+ ;; -+*) -+ # fallback: assume linklib IS sharedlib -+ lt_cv_sharedlib_from_linklib_cmd="$ECHO" -+ ;; -+esac -+ -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5 -+$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; } -+sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd -+test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO -+ -+ -+ -+ -+ -+ -+ - if test -n "$ac_tool_prefix"; then -- # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. --set dummy ${ac_tool_prefix}ar; ac_word=$2 -+ for ac_prog in ar -+ do -+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -+set dummy $ac_tool_prefix$ac_prog; ac_word=$2 - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 - $as_echo_n "checking for $ac_word... " >&6; } - if test "${ac_cv_prog_AR+set}" = set; then : -@@ -6283,7 +6537,7 @@ - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then -- ac_cv_prog_AR="${ac_tool_prefix}ar" -+ ac_cv_prog_AR="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -@@ -6303,11 +6557,15 @@ - fi - - -+ test -n "$AR" && break -+ done - fi --if test -z "$ac_cv_prog_AR"; then -+if test -z "$AR"; then - ac_ct_AR=$AR -- # Extract the first word of "ar", so it can be a program name with args. --set dummy ar; ac_word=$2 -+ for ac_prog in ar -+do -+ # Extract the first word of "$ac_prog", so it can be a program name with args. -+set dummy $ac_prog; ac_word=$2 - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 - $as_echo_n "checking for $ac_word... " >&6; } - if test "${ac_cv_prog_ac_ct_AR+set}" = set; then : -@@ -6323,7 +6581,7 @@ - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then -- ac_cv_prog_ac_ct_AR="ar" -+ ac_cv_prog_ac_ct_AR="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -@@ -6342,6 +6600,10 @@ - $as_echo "no" >&6; } - fi - -+ -+ test -n "$ac_ct_AR" && break -+done -+ - if test "x$ac_ct_AR" = x; then - AR="false" - else -@@ -6353,16 +6615,72 @@ - esac - AR=$ac_ct_AR - fi --else -- AR="$ac_cv_prog_AR" - fi - --test -z "$AR" && AR=ar --test -z "$AR_FLAGS" && AR_FLAGS=cru -+: ${AR=ar} -+: ${AR_FLAGS=cru} -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 -+$as_echo_n "checking for archiver @FILE support... " >&6; } -+if test "${lt_cv_ar_at_file+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ lt_cv_ar_at_file=no -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+/* end confdefs.h. */ -+ -+int -+main () -+{ - -+ ; -+ return 0; -+} -+_ACEOF -+if ac_fn_c_try_compile "$LINENO"; then : -+ echo conftest.$ac_objext > conftest.lst -+ lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5' -+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 -+ (eval $lt_ar_try) 2>&5 -+ ac_status=$? -+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 -+ test $ac_status = 0; } -+ if test "$ac_status" -eq 0; then -+ # Ensure the archiver fails upon bogus file names. -+ rm -f conftest.$ac_objext libconftest.a -+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 -+ (eval $lt_ar_try) 2>&5 -+ ac_status=$? -+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 -+ test $ac_status = 0; } -+ if test "$ac_status" -ne 0; then -+ lt_cv_ar_at_file=@ -+ fi -+ fi -+ rm -f conftest.* libconftest.a - -+fi -+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 -+$as_echo "$lt_cv_ar_at_file" >&6; } - -+if test "x$lt_cv_ar_at_file" = xno; then -+ archiver_list_spec= -+else -+ archiver_list_spec=$lt_cv_ar_at_file -+fi - - - -@@ -6704,8 +7022,8 @@ - lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" - - # Transform an extracted symbol line into symbol name and symbol address --lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" --lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" -+lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" -+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" - - # Handle CRLF in mingw tool chain - opt_cr= -@@ -6741,6 +7059,7 @@ - else - lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" - fi -+ lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" - - # Check to see that the pipe works correctly. - pipe_works=no -@@ -6782,6 +7101,18 @@ - if $GREP ' nm_test_var$' "$nlist" >/dev/null; then - if $GREP ' nm_test_func$' "$nlist" >/dev/null; then - cat <<_LT_EOF > conftest.$ac_ext -+/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ -+#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) -+/* DATA imports from DLLs on WIN32 con't be const, because runtime -+ relocations are performed -- see ld's documentation on pseudo-relocs. */ -+# define LT_DLSYM_CONST -+#elif defined(__osf__) -+/* This system does not cope well with relocations in const data. */ -+# define LT_DLSYM_CONST -+#else -+# define LT_DLSYM_CONST const -+#endif -+ - #ifdef __cplusplus - extern "C" { - #endif -@@ -6793,7 +7124,7 @@ - cat <<_LT_EOF >> conftest.$ac_ext - - /* The mapping between symbol names and symbols. */ --const struct { -+LT_DLSYM_CONST struct { - const char *name; - void *address; - } -@@ -6819,8 +7150,8 @@ - _LT_EOF - # Now try linking the two files. - mv conftest.$ac_objext conftstm.$ac_objext -- lt_save_LIBS="$LIBS" -- lt_save_CFLAGS="$CFLAGS" -+ lt_globsym_save_LIBS=$LIBS -+ lt_globsym_save_CFLAGS=$CFLAGS - LIBS="conftstm.$ac_objext" - CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 -@@ -6830,8 +7161,8 @@ - test $ac_status = 0; } && test -s conftest${ac_exeext}; then - pipe_works=yes - fi -- LIBS="$lt_save_LIBS" -- CFLAGS="$lt_save_CFLAGS" -+ LIBS=$lt_globsym_save_LIBS -+ CFLAGS=$lt_globsym_save_CFLAGS - else - echo "cannot find nm_test_func in $nlist" >&5 - fi -@@ -6868,6 +7199,19 @@ - $as_echo "ok" >&6; } - fi - -+# Response file support. -+if test "$lt_cv_nm_interface" = "MS dumpbin"; then -+ nm_file_list_spec='@' -+elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then -+ nm_file_list_spec='@' -+fi -+ -+ -+ -+ -+ -+ -+ - - - -@@ -6888,6 +7232,42 @@ - - - -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 -+$as_echo_n "checking for sysroot... " >&6; } -+ -+# Check whether --with-libtool-sysroot was given. -+if test "${with_libtool_sysroot+set}" = set; then : -+ withval=$with_libtool_sysroot; -+else -+ with_libtool_sysroot=no -+fi -+ -+ -+lt_sysroot= -+case ${with_libtool_sysroot} in #( -+ yes) -+ if test "$GCC" = yes; then -+ lt_sysroot=`$CC --print-sysroot 2>/dev/null` -+ fi -+ ;; #( -+ /*) -+ lt_sysroot=`echo "$with_libtool_sysroot" | sed -e "$sed_quote_subst"` -+ ;; #( -+ no|'') -+ ;; #( -+ *) -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_libtool_sysroot}" >&5 -+$as_echo "${with_libtool_sysroot}" >&6; } -+ as_fn_error "The sysroot must be an absolute path." "$LINENO" 5 -+ ;; -+esac -+ -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5 -+$as_echo "${lt_sysroot:-no}" >&6; } -+ -+ -+ -+ - - # Check whether --enable-libtool-lock was given. - if test "${enable_libtool_lock+set}" = set; then : -@@ -7095,6 +7475,123 @@ - - need_locks="$enable_libtool_lock" - -+if test -n "$ac_tool_prefix"; then -+ # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args. -+set dummy ${ac_tool_prefix}mt; ac_word=$2 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+$as_echo_n "checking for $ac_word... " >&6; } -+if test "${ac_cv_prog_MANIFEST_TOOL+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ if test -n "$MANIFEST_TOOL"; then -+ ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test. -+else -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then -+ ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt" -+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+ done -+IFS=$as_save_IFS -+ -+fi -+fi -+MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL -+if test -n "$MANIFEST_TOOL"; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5 -+$as_echo "$MANIFEST_TOOL" >&6; } -+else -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+$as_echo "no" >&6; } -+fi -+ -+ -+fi -+if test -z "$ac_cv_prog_MANIFEST_TOOL"; then -+ ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL -+ # Extract the first word of "mt", so it can be a program name with args. -+set dummy mt; ac_word=$2 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+$as_echo_n "checking for $ac_word... " >&6; } -+if test "${ac_cv_prog_ac_ct_MANIFEST_TOOL+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ if test -n "$ac_ct_MANIFEST_TOOL"; then -+ ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test. -+else -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then -+ ac_cv_prog_ac_ct_MANIFEST_TOOL="mt" -+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+ done -+IFS=$as_save_IFS -+ -+fi -+fi -+ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL -+if test -n "$ac_ct_MANIFEST_TOOL"; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5 -+$as_echo "$ac_ct_MANIFEST_TOOL" >&6; } -+else -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+$as_echo "no" >&6; } -+fi -+ -+ if test "x$ac_ct_MANIFEST_TOOL" = x; then -+ MANIFEST_TOOL=":" -+ else -+ case $cross_compiling:$ac_tool_warned in -+yes:) -+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -+ac_tool_warned=yes ;; -+esac -+ MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL -+ fi -+else -+ MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL" -+fi -+ -+test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5 -+$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; } -+if test "${lt_cv_path_mainfest_tool+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ lt_cv_path_mainfest_tool=no -+ echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5 -+ $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out -+ cat conftest.err >&5 -+ if $GREP 'Manifest Tool' conftest.out > /dev/null; then -+ lt_cv_path_mainfest_tool=yes -+ fi -+ rm -f conftest* -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5 -+$as_echo "$lt_cv_path_mainfest_tool" >&6; } -+if test "x$lt_cv_path_mainfest_tool" != xyes; then -+ MANIFEST_TOOL=: -+fi -+ -+ -+ -+ -+ - - case $host_os in - rhapsody* | darwin*) -@@ -7658,6 +8155,8 @@ - $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 - echo "$AR cru libconftest.a conftest.o" >&5 - $AR cru libconftest.a conftest.o 2>&5 -+ echo "$RANLIB libconftest.a" >&5 -+ $RANLIB libconftest.a 2>&5 - cat > conftest.c << _LT_EOF - int main() { return 0;} - _LT_EOF -@@ -7853,7 +8352,8 @@ - LIBTOOL_DEPS="$ltmain" - - # Always use our own libtool. --LIBTOOL='$(SHELL) $(top_builddir)/libtool' -+LIBTOOL='$(SHELL) $(top_builddir)' -+LIBTOOL="$LIBTOOL/${host_alias}-libtool" - - - -@@ -7942,7 +8442,7 @@ - esac - - # Global variables: --ofile=libtool -+ofile=${host_alias}-libtool - can_build_shared=yes - - # All known linkers require a `.a' archive for static linking (except MSVC, -@@ -8240,8 +8740,6 @@ - lt_prog_compiler_pic= - lt_prog_compiler_static= - --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 --$as_echo_n "checking for $compiler option to produce PIC... " >&6; } - - if test "$GCC" = yes; then - lt_prog_compiler_wl='-Wl,' -@@ -8407,6 +8905,12 @@ - lt_prog_compiler_pic='--shared' - lt_prog_compiler_static='--static' - ;; -+ nagfor*) -+ # NAG Fortran compiler -+ lt_prog_compiler_wl='-Wl,-Wl,,' -+ lt_prog_compiler_pic='-PIC' -+ lt_prog_compiler_static='-Bstatic' -+ ;; - pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) - # Portland Group compilers (*not* the Pentium gcc compiler, - # which looks to be a dead project) -@@ -8469,7 +8973,7 @@ - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-Bstatic' - case $cc_basename in -- f77* | f90* | f95*) -+ f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) - lt_prog_compiler_wl='-Qoption ld ';; - *) - lt_prog_compiler_wl='-Wl,';; -@@ -8526,13 +9030,17 @@ - lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" - ;; - esac --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic" >&5 --$as_echo "$lt_prog_compiler_pic" >&6; } -- -- -- -- - -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 -+$as_echo_n "checking for $compiler option to produce PIC... " >&6; } -+if test "${lt_cv_prog_compiler_pic+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ lt_cv_prog_compiler_pic=$lt_prog_compiler_pic -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 -+$as_echo "$lt_cv_prog_compiler_pic" >&6; } -+lt_prog_compiler_pic=$lt_cv_prog_compiler_pic - - # - # Check to make sure the PIC flag actually works. -@@ -8593,6 +9101,11 @@ - - - -+ -+ -+ -+ -+ - # - # Check to make sure the static flag actually works. - # -@@ -8943,7 +9456,8 @@ - allow_undefined_flag=unsupported - always_export_symbols=no - enable_shared_with_static_runtimes=yes -- export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' -+ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' -+ exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' - - if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' -@@ -8991,7 +9505,7 @@ - if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ - && test "$tmp_diet" = no - then -- tmp_addflag= -+ tmp_addflag=' $pic_flag' - tmp_sharedflag='-shared' - case $cc_basename,$host_cpu in - pgcc*) # Portland Group C compiler -@@ -9042,12 +9556,12 @@ - whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' - hardcode_libdir_flag_spec= - hardcode_libdir_flag_spec_ld='-rpath $libdir' -- archive_cmds='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib' -+ archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' - if test "x$supports_anon_versioning" = xyes; then - archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ - cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ - echo "local: *; };" >> $output_objdir/$libname.ver~ -- $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' -+ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' - fi - ;; - esac -@@ -9061,8 +9575,8 @@ - archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' - wlarc= - else -- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' -+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - fi - ;; - -@@ -9080,8 +9594,8 @@ - - _LT_EOF - elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then -- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' -+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - ld_shlibs=no - fi -@@ -9127,8 +9641,8 @@ - - *) - if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then -- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' -+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - ld_shlibs=no - fi -@@ -9258,7 +9772,13 @@ - allow_undefined_flag='-berok' - # Determine the default libpath from the value encoded in an - # empty executable. -- cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+ if test "${lt_cv_aix_libpath+set}" = set; then -+ aix_libpath=$lt_cv_aix_libpath -+else -+ if test "${lt_cv_aix_libpath_+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - - int -@@ -9271,22 +9791,29 @@ - _ACEOF - if ac_fn_c_try_link "$LINENO"; then : - --lt_aix_libpath_sed=' -- /Import File Strings/,/^$/ { -- /^0/ { -- s/^0 *\(.*\)$/\1/ -- p -- } -- }' --aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` --# Check for a 64-bit object if we didn't find anything. --if test -z "$aix_libpath"; then -- aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` --fi -+ lt_aix_libpath_sed=' -+ /Import File Strings/,/^$/ { -+ /^0/ { -+ s/^0 *\([^ ]*\) *$/\1/ -+ p -+ } -+ }' -+ lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -+ # Check for a 64-bit object if we didn't find anything. -+ if test -z "$lt_cv_aix_libpath_"; then -+ lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -+ fi - fi - rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext --if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi -+ if test -z "$lt_cv_aix_libpath_"; then -+ lt_cv_aix_libpath_="/usr/lib:/lib" -+ fi -+ -+fi -+ -+ aix_libpath=$lt_cv_aix_libpath_ -+fi - - hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" - archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" -@@ -9298,7 +9825,13 @@ - else - # Determine the default libpath from the value encoded in an - # empty executable. -- cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+ if test "${lt_cv_aix_libpath+set}" = set; then -+ aix_libpath=$lt_cv_aix_libpath -+else -+ if test "${lt_cv_aix_libpath_+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - - int -@@ -9311,22 +9844,29 @@ - _ACEOF - if ac_fn_c_try_link "$LINENO"; then : - --lt_aix_libpath_sed=' -- /Import File Strings/,/^$/ { -- /^0/ { -- s/^0 *\(.*\)$/\1/ -- p -- } -- }' --aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` --# Check for a 64-bit object if we didn't find anything. --if test -z "$aix_libpath"; then -- aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` --fi -+ lt_aix_libpath_sed=' -+ /Import File Strings/,/^$/ { -+ /^0/ { -+ s/^0 *\([^ ]*\) *$/\1/ -+ p -+ } -+ }' -+ lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -+ # Check for a 64-bit object if we didn't find anything. -+ if test -z "$lt_cv_aix_libpath_"; then -+ lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -+ fi - fi - rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext --if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi -+ if test -z "$lt_cv_aix_libpath_"; then -+ lt_cv_aix_libpath_="/usr/lib:/lib" -+ fi -+ -+fi -+ -+ aix_libpath=$lt_cv_aix_libpath_ -+fi - - hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" - # Warning - without using the other run time loading flags, -@@ -9371,20 +9911,63 @@ - # Microsoft Visual C++. - # hardcode_libdir_flag_spec is actually meaningless, as there is - # no search path for DLLs. -- hardcode_libdir_flag_spec=' ' -- allow_undefined_flag=unsupported -- # Tell ltmain to make .lib files, not .a files. -- libext=lib -- # Tell ltmain to make .dll files, not .so files. -- shrext_cmds=".dll" -- # FIXME: Setting linknames here is a bad hack. -- archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' -- # The linker will automatically build a .lib file if we build a DLL. -- old_archive_from_new_cmds='true' -- # FIXME: Should let the user specify the lib program. -- old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' -- fix_srcfile_path='`cygpath -w "$srcfile"`' -- enable_shared_with_static_runtimes=yes -+ case $cc_basename in -+ cl*) -+ # Native MSVC -+ hardcode_libdir_flag_spec=' ' -+ allow_undefined_flag=unsupported -+ always_export_symbols=yes -+ file_list_spec='@' -+ # Tell ltmain to make .lib files, not .a files. -+ libext=lib -+ # Tell ltmain to make .dll files, not .so files. -+ shrext_cmds=".dll" -+ # FIXME: Setting linknames here is a bad hack. -+ archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' -+ archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then -+ sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; -+ else -+ sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; -+ fi~ -+ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ -+ linknames=' -+ # The linker will not automatically build a static lib if we build a DLL. -+ # _LT_TAGVAR(old_archive_from_new_cmds, )='true' -+ enable_shared_with_static_runtimes=yes -+ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' -+ # Don't use ranlib -+ old_postinstall_cmds='chmod 644 $oldlib' -+ postlink_cmds='lt_outputfile="@OUTPUT@"~ -+ lt_tool_outputfile="@TOOL_OUTPUT@"~ -+ case $lt_outputfile in -+ *.exe|*.EXE) ;; -+ *) -+ lt_outputfile="$lt_outputfile.exe" -+ lt_tool_outputfile="$lt_tool_outputfile.exe" -+ ;; -+ esac~ -+ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then -+ $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; -+ $RM "$lt_outputfile.manifest"; -+ fi' -+ ;; -+ *) -+ # Assume MSVC wrapper -+ hardcode_libdir_flag_spec=' ' -+ allow_undefined_flag=unsupported -+ # Tell ltmain to make .lib files, not .a files. -+ libext=lib -+ # Tell ltmain to make .dll files, not .so files. -+ shrext_cmds=".dll" -+ # FIXME: Setting linknames here is a bad hack. -+ archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' -+ # The linker will automatically build a .lib file if we build a DLL. -+ old_archive_from_new_cmds='true' -+ # FIXME: Should let the user specify the lib program. -+ old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' -+ enable_shared_with_static_runtimes=yes -+ ;; -+ esac - ;; - - darwin* | rhapsody*) -@@ -9445,7 +10028,7 @@ - - # FreeBSD 3 and greater uses gcc -shared to do shared libraries. - freebsd* | dragonfly*) -- archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' -+ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - hardcode_libdir_flag_spec='-R$libdir' - hardcode_direct=yes - hardcode_shlibpath_var=no -@@ -9453,7 +10036,7 @@ - - hpux9*) - if test "$GCC" = yes; then -- archive_cmds='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' -+ archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - else - archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - fi -@@ -9469,7 +10052,7 @@ - - hpux10*) - if test "$GCC" = yes && test "$with_gnu_ld" = no; then -- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' -+ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' - fi -@@ -9493,10 +10076,10 @@ - archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - ia64*) -- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' -+ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) -- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' -+ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - ;; - esac - else -@@ -9575,23 +10158,36 @@ - - irix5* | irix6* | nonstopux*) - if test "$GCC" = yes; then -- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' -+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - # Try to use the -exported_symbol ld option, if it does not - # work, assume that -exports_file does not work either and - # implicitly export all symbols. -- save_LDFLAGS="$LDFLAGS" -- LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" -- cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+ # This should be the same for all languages, so no per-tag cache variable. -+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5 -+$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; } -+if test "${lt_cv_irix_exported_symbol+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ save_LDFLAGS="$LDFLAGS" -+ LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ --int foo(void) {} -+int foo (void) { return 0; } - _ACEOF - if ac_fn_c_try_link "$LINENO"; then : -- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' -- -+ lt_cv_irix_exported_symbol=yes -+else -+ lt_cv_irix_exported_symbol=no - fi - rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -- LDFLAGS="$save_LDFLAGS" -+ LDFLAGS="$save_LDFLAGS" -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5 -+$as_echo "$lt_cv_irix_exported_symbol" >&6; } -+ if test "$lt_cv_irix_exported_symbol" = yes; then -+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' -+ fi - else - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' - archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' -@@ -9676,7 +10272,7 @@ - osf4* | osf5*) # as osf3* with the addition of -msym flag - if test "$GCC" = yes; then - allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' -- archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' -+ archive_cmds='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - else - allow_undefined_flag=' -expect_unresolved \*' -@@ -9695,9 +10291,9 @@ - no_undefined_flag=' -z defs' - if test "$GCC" = yes; then - wlarc='${wl}' -- archive_cmds='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' -+ archive_cmds='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ -- $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' -+ $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' - else - case `$CC -V 2>&1` in - *"Compilers 5.0"*) -@@ -10273,8 +10869,9 @@ - need_version=no - need_lib_prefix=no - -- case $GCC,$host_os in -- yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) -+ case $GCC,$cc_basename in -+ yes,*) -+ # gcc - library_names_spec='$libname.dll.a' - # DLL is installed to $(libdir)/../bin by postinstall_cmds - postinstall_cmds='base_file=`basename \${file}`~ -@@ -10307,13 +10904,71 @@ - library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - ;; - esac -+ dynamic_linker='Win32 ld.exe' -+ ;; -+ -+ *,cl*) -+ # Native MSVC -+ libname_spec='$name' -+ soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' -+ library_names_spec='${libname}.dll.lib' -+ -+ case $build_os in -+ mingw*) -+ sys_lib_search_path_spec= -+ lt_save_ifs=$IFS -+ IFS=';' -+ for lt_path in $LIB -+ do -+ IFS=$lt_save_ifs -+ # Let DOS variable expansion print the short 8.3 style file name. -+ lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` -+ sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" -+ done -+ IFS=$lt_save_ifs -+ # Convert to MSYS style. -+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` -+ ;; -+ cygwin*) -+ # Convert to unix form, then to dos form, then back to unix form -+ # but this time dos style (no spaces!) so that the unix form looks -+ # like /cygdrive/c/PROGRA~1:/cygdr... -+ sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` -+ sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` -+ sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` -+ ;; -+ *) -+ sys_lib_search_path_spec="$LIB" -+ if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then -+ # It is most probably a Windows format PATH. -+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` -+ else -+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` -+ fi -+ # FIXME: find the short name or the path components, as spaces are -+ # common. (e.g. "Program Files" -> "PROGRA~1") -+ ;; -+ esac -+ -+ # DLL is installed to $(libdir)/../bin by postinstall_cmds -+ postinstall_cmds='base_file=`basename \${file}`~ -+ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ -+ dldir=$destdir/`dirname \$dlpath`~ -+ test -d \$dldir || mkdir -p \$dldir~ -+ $install_prog $dir/$dlname \$dldir/$dlname' -+ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ -+ dlpath=$dir/\$dldll~ -+ $RM \$dlpath' -+ shlibpath_overrides_runpath=yes -+ dynamic_linker='Win32 link.exe' - ;; - - *) -+ # Assume MSVC wrapper - library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' -+ dynamic_linker='Win32 ld.exe' - ;; - esac -- dynamic_linker='Win32 ld.exe' - # FIXME: first we should search . and the directory the executable is in - shlibpath_var=PATH - ;; -@@ -10405,7 +11060,7 @@ - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LIBRARY_PATH - shlibpath_overrides_runpath=yes -- sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/beos/system/lib' -+ sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' - hardcode_into_libs=yes - ;; - -@@ -11245,10 +11900,10 @@ - /* When -fvisbility=hidden is used, assume the code has been annotated - correspondingly for the symbols needed. */ - #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) --void fnord () __attribute__((visibility("default"))); -+int fnord () __attribute__((visibility("default"))); - #endif - --void fnord () { int i=42; } -+int fnord () { return 42; } - int main () - { - void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); -@@ -11351,10 +12006,10 @@ - /* When -fvisbility=hidden is used, assume the code has been annotated - correspondingly for the symbols needed. */ - #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) --void fnord () __attribute__((visibility("default"))); -+int fnord () __attribute__((visibility("default"))); - #endif - --void fnord () { int i=42; } -+int fnord () { return 42; } - int main () - { - void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); -@@ -15064,13 +15719,20 @@ - lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`' - lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`' - lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`' -+lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`' -+lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`' - reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' - reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' - OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' - deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' - file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' -+file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`' -+want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`' -+DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' -+sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' - AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' - AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' -+archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`' - STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' - RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`' - old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`' -@@ -15085,14 +15747,17 @@ - lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`' - lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`' - lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`' -+nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`' -+lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`' - objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`' - MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`' - lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`' --lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' - lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`' -+lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' - lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`' - lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`' - need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`' -+MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`' - DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`' - NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`' - LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`' -@@ -15125,12 +15790,12 @@ - hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`' - inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`' - link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`' --fix_srcfile_path='`$ECHO "$fix_srcfile_path" | $SED "$delay_single_quote_subst"`' - always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`' - export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`' - exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`' - include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`' - prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`' -+postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`' - file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`' - variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`' - need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`' -@@ -15185,8 +15850,13 @@ - OBJDUMP \ - deplibs_check_method \ - file_magic_cmd \ -+file_magic_glob \ -+want_nocaseglob \ -+DLLTOOL \ -+sharedlib_from_linklib_cmd \ - AR \ - AR_FLAGS \ -+archiver_list_spec \ - STRIP \ - RANLIB \ - CC \ -@@ -15196,12 +15866,14 @@ - lt_cv_sys_global_symbol_to_cdecl \ - lt_cv_sys_global_symbol_to_c_name_address \ - lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ -+nm_file_list_spec \ - lt_prog_compiler_no_builtin_flag \ --lt_prog_compiler_wl \ - lt_prog_compiler_pic \ -+lt_prog_compiler_wl \ - lt_prog_compiler_static \ - lt_cv_prog_compiler_c_o \ - need_locks \ -+MANIFEST_TOOL \ - DSYMUTIL \ - NMEDIT \ - LIPO \ -@@ -15217,7 +15889,6 @@ - hardcode_libdir_flag_spec \ - hardcode_libdir_flag_spec_ld \ - hardcode_libdir_separator \ --fix_srcfile_path \ - exclude_expsyms \ - include_expsyms \ - file_list_spec \ -@@ -15253,6 +15924,7 @@ - module_expsym_cmds \ - export_symbols_cmds \ - prelink_cmds \ -+postlink_cmds \ - postinstall_cmds \ - postuninstall_cmds \ - finish_cmds \ -@@ -16017,7 +16689,8 @@ - # NOTE: Changes made to this file will be lost: look at ltmain.sh. - # - # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, --# 2006, 2007, 2008, 2009 Free Software Foundation, Inc. -+# 2006, 2007, 2008, 2009, 2010 Free Software Foundation, -+# Inc. - # Written by Gordon Matzigkeit, 1996 - # - # This file is part of GNU Libtool. -@@ -16120,19 +16793,42 @@ - # turn newlines into spaces. - NL2SP=$lt_lt_NL2SP - -+# convert \$build file names to \$host format. -+to_host_file_cmd=$lt_cv_to_host_file_cmd -+ -+# convert \$build files to toolchain format. -+to_tool_file_cmd=$lt_cv_to_tool_file_cmd -+ - # An object symbol dumper. - OBJDUMP=$lt_OBJDUMP - - # Method to check whether dependent libraries are shared objects. - deplibs_check_method=$lt_deplibs_check_method - --# Command to use when deplibs_check_method == "file_magic". -+# Command to use when deplibs_check_method = "file_magic". - file_magic_cmd=$lt_file_magic_cmd - -+# How to find potential files when deplibs_check_method = "file_magic". -+file_magic_glob=$lt_file_magic_glob -+ -+# Find potential files using nocaseglob when deplibs_check_method = "file_magic". -+want_nocaseglob=$lt_want_nocaseglob -+ -+# DLL creation program. -+DLLTOOL=$lt_DLLTOOL -+ -+# Command to associate shared and link libraries. -+sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd -+ - # The archiver. - AR=$lt_AR -+ -+# Flags to create an archive. - AR_FLAGS=$lt_AR_FLAGS - -+# How to feed a file listing to the archiver. -+archiver_list_spec=$lt_archiver_list_spec -+ - # A symbol stripping program. - STRIP=$lt_STRIP - -@@ -16162,6 +16858,12 @@ - # Transform the output of nm in a C name address pair when lib prefix is needed. - global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix - -+# Specify filename containing input files for \$NM. -+nm_file_list_spec=$lt_nm_file_list_spec -+ -+# The root where to search for dependent libraries,and in which our libraries should be installed. -+lt_sysroot=$lt_sysroot -+ - # The name of the directory that contains temporary libtool files. - objdir=$objdir - -@@ -16171,6 +16873,9 @@ - # Must we lock files when doing compilation? - need_locks=$lt_need_locks - -+# Manifest tool. -+MANIFEST_TOOL=$lt_MANIFEST_TOOL -+ - # Tool to manipulate archived DWARF debug symbol files on Mac OS X. - DSYMUTIL=$lt_DSYMUTIL - -@@ -16285,12 +16990,12 @@ - # Compiler flag to turn off builtin functions. - no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag - --# How to pass a linker flag through the compiler. --wl=$lt_lt_prog_compiler_wl -- - # Additional compiler flags for building library objects. - pic_flag=$lt_lt_prog_compiler_pic - -+# How to pass a linker flag through the compiler. -+wl=$lt_lt_prog_compiler_wl -+ - # Compiler flag to prevent dynamic linking. - link_static_flag=$lt_lt_prog_compiler_static - -@@ -16377,9 +17082,6 @@ - # Whether libtool must link a program against all its dependency libraries. - link_all_deplibs=$link_all_deplibs - --# Fix the shell variable \$srcfile for the compiler. --fix_srcfile_path=$lt_fix_srcfile_path -- - # Set to "yes" if exported symbols are required. - always_export_symbols=$always_export_symbols - -@@ -16395,6 +17097,9 @@ - # Commands necessary for linking programs (against libraries) with templates. - prelink_cmds=$lt_prelink_cmds - -+# Commands necessary for finishing linking programs. -+postlink_cmds=$lt_postlink_cmds -+ - # Specify filename containing input files. - file_list_spec=$lt_file_list_spec - -@@ -16427,210 +17132,169 @@ - # if finds mixed CR/LF and LF-only lines. Since sed operates in - # text mode, it properly converts lines to CR/LF. This bash problem - # is reportedly fixed, but why not run on old versions too? -- sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ -- || (rm -f "$cfgfile"; exit 1) -- -- case $xsi_shell in -- yes) -- cat << \_LT_EOF >> "$cfgfile" -- --# func_dirname file append nondir_replacement --# Compute the dirname of FILE. If nonempty, add APPEND to the result, --# otherwise set result to NONDIR_REPLACEMENT. --func_dirname () --{ -- case ${1} in -- */*) func_dirname_result="${1%/*}${2}" ;; -- * ) func_dirname_result="${3}" ;; -- esac --} -- --# func_basename file --func_basename () --{ -- func_basename_result="${1##*/}" --} -- --# func_dirname_and_basename file append nondir_replacement --# perform func_basename and func_dirname in a single function --# call: --# dirname: Compute the dirname of FILE. If nonempty, --# add APPEND to the result, otherwise set result --# to NONDIR_REPLACEMENT. --# value returned in "$func_dirname_result" --# basename: Compute filename of FILE. --# value retuned in "$func_basename_result" --# Implementation must be kept synchronized with func_dirname --# and func_basename. For efficiency, we do not delegate to --# those functions but instead duplicate the functionality here. --func_dirname_and_basename () --{ -- case ${1} in -- */*) func_dirname_result="${1%/*}${2}" ;; -- * ) func_dirname_result="${3}" ;; -- esac -- func_basename_result="${1##*/}" --} -- --# func_stripname prefix suffix name --# strip PREFIX and SUFFIX off of NAME. --# PREFIX and SUFFIX must not contain globbing or regex special --# characters, hashes, percent signs, but SUFFIX may contain a leading --# dot (in which case that matches only a dot). --func_stripname () --{ -- # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are -- # positional parameters, so assign one to ordinary parameter first. -- func_stripname_result=${3} -- func_stripname_result=${func_stripname_result#"${1}"} -- func_stripname_result=${func_stripname_result%"${2}"} --} -- --# func_opt_split --func_opt_split () --{ -- func_opt_split_opt=${1%%=*} -- func_opt_split_arg=${1#*=} --} -- --# func_lo2o object --func_lo2o () --{ -- case ${1} in -- *.lo) func_lo2o_result=${1%.lo}.${objext} ;; -- *) func_lo2o_result=${1} ;; -- esac --} -- --# func_xform libobj-or-source --func_xform () --{ -- func_xform_result=${1%.*}.lo --} -- --# func_arith arithmetic-term... --func_arith () --{ -- func_arith_result=$(( $* )) --} -- --# func_len string --# STRING may not start with a hyphen. --func_len () --{ -- func_len_result=${#1} --} -- --_LT_EOF -- ;; -- *) # Bourne compatible functions. -- cat << \_LT_EOF >> "$cfgfile" -- --# func_dirname file append nondir_replacement --# Compute the dirname of FILE. If nonempty, add APPEND to the result, --# otherwise set result to NONDIR_REPLACEMENT. --func_dirname () --{ -- # Extract subdirectory from the argument. -- func_dirname_result=`$ECHO "${1}" | $SED "$dirname"` -- if test "X$func_dirname_result" = "X${1}"; then -- func_dirname_result="${3}" -- else -- func_dirname_result="$func_dirname_result${2}" -- fi --} -- --# func_basename file --func_basename () --{ -- func_basename_result=`$ECHO "${1}" | $SED "$basename"` --} -- -- --# func_stripname prefix suffix name --# strip PREFIX and SUFFIX off of NAME. --# PREFIX and SUFFIX must not contain globbing or regex special --# characters, hashes, percent signs, but SUFFIX may contain a leading --# dot (in which case that matches only a dot). --# func_strip_suffix prefix name --func_stripname () --{ -- case ${2} in -- .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; -- *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; -- esac --} -- --# sed scripts: --my_sed_long_opt='1s/^\(-[^=]*\)=.*/\1/;q' --my_sed_long_arg='1s/^-[^=]*=//' -- --# func_opt_split --func_opt_split () --{ -- func_opt_split_opt=`$ECHO "${1}" | $SED "$my_sed_long_opt"` -- func_opt_split_arg=`$ECHO "${1}" | $SED "$my_sed_long_arg"` --} -- --# func_lo2o object --func_lo2o () --{ -- func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"` --} -- --# func_xform libobj-or-source --func_xform () --{ -- func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'` --} -- --# func_arith arithmetic-term... --func_arith () --{ -- func_arith_result=`expr "$@"` --} -- --# func_len string --# STRING may not start with a hyphen. --func_len () --{ -- func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len` --} -- --_LT_EOF --esac -- --case $lt_shell_append in -- yes) -- cat << \_LT_EOF >> "$cfgfile" -- --# func_append var value --# Append VALUE to the end of shell variable VAR. --func_append () --{ -- eval "$1+=\$2" --} --_LT_EOF -- ;; -- *) -- cat << \_LT_EOF >> "$cfgfile" -- --# func_append var value --# Append VALUE to the end of shell variable VAR. --func_append () --{ -- eval "$1=\$$1\$2" --} -- --_LT_EOF -- ;; -- esac -+ sed '$q' "$ltmain" >> "$cfgfile" \ -+ || (rm -f "$cfgfile"; exit 1) - -+ if test x"$xsi_shell" = xyes; then -+ sed -e '/^func_dirname ()$/,/^} # func_dirname /c\ -+func_dirname ()\ -+{\ -+\ case ${1} in\ -+\ */*) func_dirname_result="${1%/*}${2}" ;;\ -+\ * ) func_dirname_result="${3}" ;;\ -+\ esac\ -+} # Extended-shell func_dirname implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_basename ()$/,/^} # func_basename /c\ -+func_basename ()\ -+{\ -+\ func_basename_result="${1##*/}"\ -+} # Extended-shell func_basename implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_dirname_and_basename ()$/,/^} # func_dirname_and_basename /c\ -+func_dirname_and_basename ()\ -+{\ -+\ case ${1} in\ -+\ */*) func_dirname_result="${1%/*}${2}" ;;\ -+\ * ) func_dirname_result="${3}" ;;\ -+\ esac\ -+\ func_basename_result="${1##*/}"\ -+} # Extended-shell func_dirname_and_basename implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_stripname ()$/,/^} # func_stripname /c\ -+func_stripname ()\ -+{\ -+\ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are\ -+\ # positional parameters, so assign one to ordinary parameter first.\ -+\ func_stripname_result=${3}\ -+\ func_stripname_result=${func_stripname_result#"${1}"}\ -+\ func_stripname_result=${func_stripname_result%"${2}"}\ -+} # Extended-shell func_stripname implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_split_long_opt ()$/,/^} # func_split_long_opt /c\ -+func_split_long_opt ()\ -+{\ -+\ func_split_long_opt_name=${1%%=*}\ -+\ func_split_long_opt_arg=${1#*=}\ -+} # Extended-shell func_split_long_opt implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_split_short_opt ()$/,/^} # func_split_short_opt /c\ -+func_split_short_opt ()\ -+{\ -+\ func_split_short_opt_arg=${1#??}\ -+\ func_split_short_opt_name=${1%"$func_split_short_opt_arg"}\ -+} # Extended-shell func_split_short_opt implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_lo2o ()$/,/^} # func_lo2o /c\ -+func_lo2o ()\ -+{\ -+\ case ${1} in\ -+\ *.lo) func_lo2o_result=${1%.lo}.${objext} ;;\ -+\ *) func_lo2o_result=${1} ;;\ -+\ esac\ -+} # Extended-shell func_lo2o implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_xform ()$/,/^} # func_xform /c\ -+func_xform ()\ -+{\ -+ func_xform_result=${1%.*}.lo\ -+} # Extended-shell func_xform implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_arith ()$/,/^} # func_arith /c\ -+func_arith ()\ -+{\ -+ func_arith_result=$(( $* ))\ -+} # Extended-shell func_arith implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_len ()$/,/^} # func_len /c\ -+func_len ()\ -+{\ -+ func_len_result=${#1}\ -+} # Extended-shell func_len implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+fi -+ -+if test x"$lt_shell_append" = xyes; then -+ sed -e '/^func_append ()$/,/^} # func_append /c\ -+func_append ()\ -+{\ -+ eval "${1}+=\\${2}"\ -+} # Extended-shell func_append implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_append_quoted ()$/,/^} # func_append_quoted /c\ -+func_append_quoted ()\ -+{\ -+\ func_quote_for_eval "${2}"\ -+\ eval "${1}+=\\\\ \\$func_quote_for_eval_result"\ -+} # Extended-shell func_append_quoted implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ # Save a `func_append' function call where possible by direct use of '+=' -+ sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+ test 0 -eq $? || _lt_function_replace_fail=: -+else -+ # Save a `func_append' function call even when '+=' is not available -+ sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+ test 0 -eq $? || _lt_function_replace_fail=: -+fi -+ -+if test x"$_lt_function_replace_fail" = x":"; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5 -+$as_echo "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;} -+fi - -- sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ -- || (rm -f "$cfgfile"; exit 1) - -- mv -f "$cfgfile" "$ofile" || -+ mv -f "$cfgfile" "$ofile" || - (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") - chmod +x "$ofile" - -Index: binutils-2.24/gprof/configure -=================================================================== ---- binutils-2.24.orig/gprof/configure 2013-12-15 11:09:51.443785606 -0800 -+++ binutils-2.24/gprof/configure 2013-12-15 11:10:23.880452030 -0800 -@@ -629,8 +629,11 @@ - LIPO - NMEDIT - DSYMUTIL -+MANIFEST_TOOL - RANLIB -+ac_ct_AR - AR -+DLLTOOL - OBJDUMP - LN_S - NM -@@ -743,6 +746,7 @@ - with_pic - enable_fast_install - with_gnu_ld -+with_libtool_sysroot - enable_libtool_lock - enable_nls - enable_maintainer_mode -@@ -1397,6 +1401,8 @@ - --with-pic try to use only PIC/non-PIC objects [default=use - both] - --with-gnu-ld assume the C compiler uses GNU ld [default=no] -+ --with-libtool-sysroot=DIR Search for dependent libraries within DIR -+ (or the compiler's sysroot if not specified). - - Some influential environment variables: - CC C compiler command -@@ -5065,8 +5071,8 @@ - - - --macro_version='2.2.7a' --macro_revision='1.3134' -+macro_version='2.4' -+macro_revision='1.3293' - - - -@@ -5106,7 +5112,7 @@ - { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5 - $as_echo_n "checking how to print strings... " >&6; } - # Test print first, because it will be a builtin if present. --if test "X`print -r -- -n 2>/dev/null`" = X-n && \ -+if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ - test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then - ECHO='print -r --' - elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then -@@ -5792,8 +5798,8 @@ - # Try some XSI features - xsi_shell=no - ( _lt_dummy="a/b/c" -- test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \ -- = c,a/b,, \ -+ test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ -+ = c,a/b,b/c, \ - && eval 'test $(( 1 + 1 )) -eq 2 \ - && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ - && xsi_shell=yes -@@ -5842,6 +5848,80 @@ - - - -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5 -+$as_echo_n "checking how to convert $build file names to $host format... " >&6; } -+if test "${lt_cv_to_host_file_cmd+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ case $host in -+ *-*-mingw* ) -+ case $build in -+ *-*-mingw* ) # actually msys -+ lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 -+ ;; -+ *-*-cygwin* ) -+ lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 -+ ;; -+ * ) # otherwise, assume *nix -+ lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 -+ ;; -+ esac -+ ;; -+ *-*-cygwin* ) -+ case $build in -+ *-*-mingw* ) # actually msys -+ lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin -+ ;; -+ *-*-cygwin* ) -+ lt_cv_to_host_file_cmd=func_convert_file_noop -+ ;; -+ * ) # otherwise, assume *nix -+ lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin -+ ;; -+ esac -+ ;; -+ * ) # unhandled hosts (and "normal" native builds) -+ lt_cv_to_host_file_cmd=func_convert_file_noop -+ ;; -+esac -+ -+fi -+ -+to_host_file_cmd=$lt_cv_to_host_file_cmd -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5 -+$as_echo "$lt_cv_to_host_file_cmd" >&6; } -+ -+ -+ -+ -+ -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5 -+$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; } -+if test "${lt_cv_to_tool_file_cmd+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ #assume ordinary cross tools, or native build. -+lt_cv_to_tool_file_cmd=func_convert_file_noop -+case $host in -+ *-*-mingw* ) -+ case $build in -+ *-*-mingw* ) # actually msys -+ lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 -+ ;; -+ esac -+ ;; -+esac -+ -+fi -+ -+to_tool_file_cmd=$lt_cv_to_tool_file_cmd -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5 -+$as_echo "$lt_cv_to_tool_file_cmd" >&6; } -+ -+ -+ -+ -+ - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 - $as_echo_n "checking for $LD option to reload object files... " >&6; } - if test "${lt_cv_ld_reload_flag+set}" = set; then : -@@ -5858,6 +5938,11 @@ - esac - reload_cmds='$LD$reload_flag -o $output$reload_objs' - case $host_os in -+ cygwin* | mingw* | pw32* | cegcc*) -+ if test "$GCC" != yes; then -+ reload_cmds=false -+ fi -+ ;; - darwin*) - if test "$GCC" = yes; then - reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' -@@ -6026,7 +6111,8 @@ - lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' - lt_cv_file_magic_cmd='func_win32_libid' - else -- lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' -+ # Keep this pattern in sync with the one in func_win32_libid. -+ lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' - lt_cv_file_magic_cmd='$OBJDUMP -f' - fi - ;; -@@ -6103,11 +6189,6 @@ - lt_cv_deplibs_check_method=pass_all - ;; - --linux-uclibc*) -- lt_cv_deplibs_check_method=pass_all -- lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so` -- ;; -- - netbsd*) - if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then - lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' -@@ -6185,6 +6266,21 @@ - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 - $as_echo "$lt_cv_deplibs_check_method" >&6; } -+ -+file_magic_glob= -+want_nocaseglob=no -+if test "$build" = "$host"; then -+ case $host_os in -+ mingw* | pw32*) -+ if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then -+ want_nocaseglob=yes -+ else -+ file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"` -+ fi -+ ;; -+ esac -+fi -+ - file_magic_cmd=$lt_cv_file_magic_cmd - deplibs_check_method=$lt_cv_deplibs_check_method - test -z "$deplibs_check_method" && deplibs_check_method=unknown -@@ -6200,9 +6296,162 @@ - - - -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ - if test -n "$ac_tool_prefix"; then -- # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. --set dummy ${ac_tool_prefix}ar; ac_word=$2 -+ # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. -+set dummy ${ac_tool_prefix}dlltool; ac_word=$2 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+$as_echo_n "checking for $ac_word... " >&6; } -+if test "${ac_cv_prog_DLLTOOL+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ if test -n "$DLLTOOL"; then -+ ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. -+else -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then -+ ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" -+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+ done -+IFS=$as_save_IFS -+ -+fi -+fi -+DLLTOOL=$ac_cv_prog_DLLTOOL -+if test -n "$DLLTOOL"; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 -+$as_echo "$DLLTOOL" >&6; } -+else -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+$as_echo "no" >&6; } -+fi -+ -+ -+fi -+if test -z "$ac_cv_prog_DLLTOOL"; then -+ ac_ct_DLLTOOL=$DLLTOOL -+ # Extract the first word of "dlltool", so it can be a program name with args. -+set dummy dlltool; ac_word=$2 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+$as_echo_n "checking for $ac_word... " >&6; } -+if test "${ac_cv_prog_ac_ct_DLLTOOL+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ if test -n "$ac_ct_DLLTOOL"; then -+ ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. -+else -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then -+ ac_cv_prog_ac_ct_DLLTOOL="dlltool" -+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+ done -+IFS=$as_save_IFS -+ -+fi -+fi -+ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL -+if test -n "$ac_ct_DLLTOOL"; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 -+$as_echo "$ac_ct_DLLTOOL" >&6; } -+else -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+$as_echo "no" >&6; } -+fi -+ -+ if test "x$ac_ct_DLLTOOL" = x; then -+ DLLTOOL="false" -+ else -+ case $cross_compiling:$ac_tool_warned in -+yes:) -+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -+ac_tool_warned=yes ;; -+esac -+ DLLTOOL=$ac_ct_DLLTOOL -+ fi -+else -+ DLLTOOL="$ac_cv_prog_DLLTOOL" -+fi -+ -+test -z "$DLLTOOL" && DLLTOOL=dlltool -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5 -+$as_echo_n "checking how to associate runtime and link libraries... " >&6; } -+if test "${lt_cv_sharedlib_from_linklib_cmd+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ lt_cv_sharedlib_from_linklib_cmd='unknown' -+ -+case $host_os in -+cygwin* | mingw* | pw32* | cegcc*) -+ # two different shell functions defined in ltmain.sh -+ # decide which to use based on capabilities of $DLLTOOL -+ case `$DLLTOOL --help 2>&1` in -+ *--identify-strict*) -+ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib -+ ;; -+ *) -+ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback -+ ;; -+ esac -+ ;; -+*) -+ # fallback: assume linklib IS sharedlib -+ lt_cv_sharedlib_from_linklib_cmd="$ECHO" -+ ;; -+esac -+ -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5 -+$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; } -+sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd -+test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO -+ -+ -+ -+ -+ -+ -+ -+if test -n "$ac_tool_prefix"; then -+ for ac_prog in ar -+ do -+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -+set dummy $ac_tool_prefix$ac_prog; ac_word=$2 - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 - $as_echo_n "checking for $ac_word... " >&6; } - if test "${ac_cv_prog_AR+set}" = set; then : -@@ -6218,7 +6467,7 @@ - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then -- ac_cv_prog_AR="${ac_tool_prefix}ar" -+ ac_cv_prog_AR="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -@@ -6238,11 +6487,15 @@ - fi - - -+ test -n "$AR" && break -+ done - fi --if test -z "$ac_cv_prog_AR"; then -+if test -z "$AR"; then - ac_ct_AR=$AR -- # Extract the first word of "ar", so it can be a program name with args. --set dummy ar; ac_word=$2 -+ for ac_prog in ar -+do -+ # Extract the first word of "$ac_prog", so it can be a program name with args. -+set dummy $ac_prog; ac_word=$2 - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 - $as_echo_n "checking for $ac_word... " >&6; } - if test "${ac_cv_prog_ac_ct_AR+set}" = set; then : -@@ -6258,7 +6511,7 @@ - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then -- ac_cv_prog_ac_ct_AR="ar" -+ ac_cv_prog_ac_ct_AR="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -@@ -6277,6 +6530,10 @@ - $as_echo "no" >&6; } - fi - -+ -+ test -n "$ac_ct_AR" && break -+done -+ - if test "x$ac_ct_AR" = x; then - AR="false" - else -@@ -6288,16 +6545,72 @@ - esac - AR=$ac_ct_AR - fi --else -- AR="$ac_cv_prog_AR" - fi - --test -z "$AR" && AR=ar --test -z "$AR_FLAGS" && AR_FLAGS=cru -+: ${AR=ar} -+: ${AR_FLAGS=cru} -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 -+$as_echo_n "checking for archiver @FILE support... " >&6; } -+if test "${lt_cv_ar_at_file+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ lt_cv_ar_at_file=no -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+/* end confdefs.h. */ -+ -+int -+main () -+{ - -+ ; -+ return 0; -+} -+_ACEOF -+if ac_fn_c_try_compile "$LINENO"; then : -+ echo conftest.$ac_objext > conftest.lst -+ lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5' -+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 -+ (eval $lt_ar_try) 2>&5 -+ ac_status=$? -+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 -+ test $ac_status = 0; } -+ if test "$ac_status" -eq 0; then -+ # Ensure the archiver fails upon bogus file names. -+ rm -f conftest.$ac_objext libconftest.a -+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 -+ (eval $lt_ar_try) 2>&5 -+ ac_status=$? -+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 -+ test $ac_status = 0; } -+ if test "$ac_status" -ne 0; then -+ lt_cv_ar_at_file=@ -+ fi -+ fi -+ rm -f conftest.* libconftest.a - -+fi -+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 -+$as_echo "$lt_cv_ar_at_file" >&6; } - -+if test "x$lt_cv_ar_at_file" = xno; then -+ archiver_list_spec= -+else -+ archiver_list_spec=$lt_cv_ar_at_file -+fi - - - -@@ -6639,8 +6952,8 @@ - lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" - - # Transform an extracted symbol line into symbol name and symbol address --lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" --lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" -+lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" -+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" - - # Handle CRLF in mingw tool chain - opt_cr= -@@ -6676,6 +6989,7 @@ - else - lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" - fi -+ lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" - - # Check to see that the pipe works correctly. - pipe_works=no -@@ -6717,6 +7031,18 @@ - if $GREP ' nm_test_var$' "$nlist" >/dev/null; then - if $GREP ' nm_test_func$' "$nlist" >/dev/null; then - cat <<_LT_EOF > conftest.$ac_ext -+/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ -+#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) -+/* DATA imports from DLLs on WIN32 con't be const, because runtime -+ relocations are performed -- see ld's documentation on pseudo-relocs. */ -+# define LT_DLSYM_CONST -+#elif defined(__osf__) -+/* This system does not cope well with relocations in const data. */ -+# define LT_DLSYM_CONST -+#else -+# define LT_DLSYM_CONST const -+#endif -+ - #ifdef __cplusplus - extern "C" { - #endif -@@ -6728,7 +7054,7 @@ - cat <<_LT_EOF >> conftest.$ac_ext - - /* The mapping between symbol names and symbols. */ --const struct { -+LT_DLSYM_CONST struct { - const char *name; - void *address; - } -@@ -6754,8 +7080,8 @@ - _LT_EOF - # Now try linking the two files. - mv conftest.$ac_objext conftstm.$ac_objext -- lt_save_LIBS="$LIBS" -- lt_save_CFLAGS="$CFLAGS" -+ lt_globsym_save_LIBS=$LIBS -+ lt_globsym_save_CFLAGS=$CFLAGS - LIBS="conftstm.$ac_objext" - CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 -@@ -6765,8 +7091,8 @@ - test $ac_status = 0; } && test -s conftest${ac_exeext}; then - pipe_works=yes - fi -- LIBS="$lt_save_LIBS" -- CFLAGS="$lt_save_CFLAGS" -+ LIBS=$lt_globsym_save_LIBS -+ CFLAGS=$lt_globsym_save_CFLAGS - else - echo "cannot find nm_test_func in $nlist" >&5 - fi -@@ -6803,6 +7129,17 @@ - $as_echo "ok" >&6; } - fi - -+# Response file support. -+if test "$lt_cv_nm_interface" = "MS dumpbin"; then -+ nm_file_list_spec='@' -+elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then -+ nm_file_list_spec='@' -+fi -+ -+ -+ -+ -+ - - - -@@ -6824,6 +7161,44 @@ - - - -+ -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 -+$as_echo_n "checking for sysroot... " >&6; } -+ -+# Check whether --with-libtool-sysroot was given. -+if test "${with_libtool_sysroot+set}" = set; then : -+ withval=$with_libtool_sysroot; -+else -+ with_libtool_sysroot=no -+fi -+ -+ -+lt_sysroot= -+case ${with_libtool_sysroot} in #( -+ yes) -+ if test "$GCC" = yes; then -+ lt_sysroot=`$CC --print-sysroot 2>/dev/null` -+ fi -+ ;; #( -+ /*) -+ lt_sysroot=`echo "$with_libtool_sysroot" | sed -e "$sed_quote_subst"` -+ ;; #( -+ no|'') -+ ;; #( -+ *) -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_libtool_sysroot}" >&5 -+$as_echo "${with_libtool_sysroot}" >&6; } -+ as_fn_error "The sysroot must be an absolute path." "$LINENO" 5 -+ ;; -+esac -+ -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5 -+$as_echo "${lt_sysroot:-no}" >&6; } -+ -+ -+ -+ -+ - # Check whether --enable-libtool-lock was given. - if test "${enable_libtool_lock+set}" = set; then : - enableval=$enable_libtool_lock; -@@ -7030,6 +7405,123 @@ - - need_locks="$enable_libtool_lock" - -+if test -n "$ac_tool_prefix"; then -+ # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args. -+set dummy ${ac_tool_prefix}mt; ac_word=$2 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+$as_echo_n "checking for $ac_word... " >&6; } -+if test "${ac_cv_prog_MANIFEST_TOOL+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ if test -n "$MANIFEST_TOOL"; then -+ ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test. -+else -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then -+ ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt" -+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+ done -+IFS=$as_save_IFS -+ -+fi -+fi -+MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL -+if test -n "$MANIFEST_TOOL"; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5 -+$as_echo "$MANIFEST_TOOL" >&6; } -+else -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+$as_echo "no" >&6; } -+fi -+ -+ -+fi -+if test -z "$ac_cv_prog_MANIFEST_TOOL"; then -+ ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL -+ # Extract the first word of "mt", so it can be a program name with args. -+set dummy mt; ac_word=$2 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+$as_echo_n "checking for $ac_word... " >&6; } -+if test "${ac_cv_prog_ac_ct_MANIFEST_TOOL+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ if test -n "$ac_ct_MANIFEST_TOOL"; then -+ ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test. -+else -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then -+ ac_cv_prog_ac_ct_MANIFEST_TOOL="mt" -+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+ done -+IFS=$as_save_IFS -+ -+fi -+fi -+ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL -+if test -n "$ac_ct_MANIFEST_TOOL"; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5 -+$as_echo "$ac_ct_MANIFEST_TOOL" >&6; } -+else -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+$as_echo "no" >&6; } -+fi -+ -+ if test "x$ac_ct_MANIFEST_TOOL" = x; then -+ MANIFEST_TOOL=":" -+ else -+ case $cross_compiling:$ac_tool_warned in -+yes:) -+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -+ac_tool_warned=yes ;; -+esac -+ MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL -+ fi -+else -+ MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL" -+fi -+ -+test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5 -+$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; } -+if test "${lt_cv_path_mainfest_tool+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ lt_cv_path_mainfest_tool=no -+ echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5 -+ $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out -+ cat conftest.err >&5 -+ if $GREP 'Manifest Tool' conftest.out > /dev/null; then -+ lt_cv_path_mainfest_tool=yes -+ fi -+ rm -f conftest* -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5 -+$as_echo "$lt_cv_path_mainfest_tool" >&6; } -+if test "x$lt_cv_path_mainfest_tool" != xyes; then -+ MANIFEST_TOOL=: -+fi -+ -+ -+ -+ -+ - - case $host_os in - rhapsody* | darwin*) -@@ -7593,6 +8085,8 @@ - $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 - echo "$AR cru libconftest.a conftest.o" >&5 - $AR cru libconftest.a conftest.o 2>&5 -+ echo "$RANLIB libconftest.a" >&5 -+ $RANLIB libconftest.a 2>&5 - cat > conftest.c << _LT_EOF - int main() { return 0;} - _LT_EOF -@@ -7788,7 +8282,8 @@ - LIBTOOL_DEPS="$ltmain" - - # Always use our own libtool. --LIBTOOL='$(SHELL) $(top_builddir)/libtool' -+LIBTOOL='$(SHELL) $(top_builddir)' -+LIBTOOL="$LIBTOOL/${host_alias}-libtool" - - - -@@ -7877,7 +8372,7 @@ - esac - - # Global variables: --ofile=libtool -+ofile=${host_alias}-libtool - can_build_shared=yes - - # All known linkers require a `.a' archive for static linking (except MSVC, -@@ -8175,8 +8670,6 @@ - lt_prog_compiler_pic= - lt_prog_compiler_static= - --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 --$as_echo_n "checking for $compiler option to produce PIC... " >&6; } - - if test "$GCC" = yes; then - lt_prog_compiler_wl='-Wl,' -@@ -8342,6 +8835,12 @@ - lt_prog_compiler_pic='--shared' - lt_prog_compiler_static='--static' - ;; -+ nagfor*) -+ # NAG Fortran compiler -+ lt_prog_compiler_wl='-Wl,-Wl,,' -+ lt_prog_compiler_pic='-PIC' -+ lt_prog_compiler_static='-Bstatic' -+ ;; - pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) - # Portland Group compilers (*not* the Pentium gcc compiler, - # which looks to be a dead project) -@@ -8404,7 +8903,7 @@ - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-Bstatic' - case $cc_basename in -- f77* | f90* | f95*) -+ f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) - lt_prog_compiler_wl='-Qoption ld ';; - *) - lt_prog_compiler_wl='-Wl,';; -@@ -8461,13 +8960,17 @@ - lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" - ;; - esac --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic" >&5 --$as_echo "$lt_prog_compiler_pic" >&6; } -- -- -- -- - -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 -+$as_echo_n "checking for $compiler option to produce PIC... " >&6; } -+if test "${lt_cv_prog_compiler_pic+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ lt_cv_prog_compiler_pic=$lt_prog_compiler_pic -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 -+$as_echo "$lt_cv_prog_compiler_pic" >&6; } -+lt_prog_compiler_pic=$lt_cv_prog_compiler_pic - - # - # Check to make sure the PIC flag actually works. -@@ -8528,6 +9031,11 @@ - - - -+ -+ -+ -+ -+ - # - # Check to make sure the static flag actually works. - # -@@ -8878,7 +9386,8 @@ - allow_undefined_flag=unsupported - always_export_symbols=no - enable_shared_with_static_runtimes=yes -- export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' -+ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' -+ exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' - - if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' -@@ -8926,7 +9435,7 @@ - if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ - && test "$tmp_diet" = no - then -- tmp_addflag= -+ tmp_addflag=' $pic_flag' - tmp_sharedflag='-shared' - case $cc_basename,$host_cpu in - pgcc*) # Portland Group C compiler -@@ -8977,12 +9486,12 @@ - whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' - hardcode_libdir_flag_spec= - hardcode_libdir_flag_spec_ld='-rpath $libdir' -- archive_cmds='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib' -+ archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' - if test "x$supports_anon_versioning" = xyes; then - archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ - cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ - echo "local: *; };" >> $output_objdir/$libname.ver~ -- $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' -+ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' - fi - ;; - esac -@@ -8996,8 +9505,8 @@ - archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' - wlarc= - else -- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' -+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - fi - ;; - -@@ -9015,8 +9524,8 @@ - - _LT_EOF - elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then -- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' -+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - ld_shlibs=no - fi -@@ -9062,8 +9571,8 @@ - - *) - if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then -- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' -+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - ld_shlibs=no - fi -@@ -9193,7 +9702,13 @@ - allow_undefined_flag='-berok' - # Determine the default libpath from the value encoded in an - # empty executable. -- cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+ if test "${lt_cv_aix_libpath+set}" = set; then -+ aix_libpath=$lt_cv_aix_libpath -+else -+ if test "${lt_cv_aix_libpath_+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - - int -@@ -9206,22 +9721,29 @@ - _ACEOF - if ac_fn_c_try_link "$LINENO"; then : - --lt_aix_libpath_sed=' -- /Import File Strings/,/^$/ { -- /^0/ { -- s/^0 *\(.*\)$/\1/ -- p -- } -- }' --aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` --# Check for a 64-bit object if we didn't find anything. --if test -z "$aix_libpath"; then -- aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` --fi -+ lt_aix_libpath_sed=' -+ /Import File Strings/,/^$/ { -+ /^0/ { -+ s/^0 *\([^ ]*\) *$/\1/ -+ p -+ } -+ }' -+ lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -+ # Check for a 64-bit object if we didn't find anything. -+ if test -z "$lt_cv_aix_libpath_"; then -+ lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -+ fi - fi - rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext --if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi -+ if test -z "$lt_cv_aix_libpath_"; then -+ lt_cv_aix_libpath_="/usr/lib:/lib" -+ fi -+ -+fi -+ -+ aix_libpath=$lt_cv_aix_libpath_ -+fi - - hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" - archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" -@@ -9233,7 +9755,13 @@ - else - # Determine the default libpath from the value encoded in an - # empty executable. -- cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+ if test "${lt_cv_aix_libpath+set}" = set; then -+ aix_libpath=$lt_cv_aix_libpath -+else -+ if test "${lt_cv_aix_libpath_+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - - int -@@ -9246,22 +9774,29 @@ - _ACEOF - if ac_fn_c_try_link "$LINENO"; then : - --lt_aix_libpath_sed=' -- /Import File Strings/,/^$/ { -- /^0/ { -- s/^0 *\(.*\)$/\1/ -- p -- } -- }' --aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` --# Check for a 64-bit object if we didn't find anything. --if test -z "$aix_libpath"; then -- aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` --fi -+ lt_aix_libpath_sed=' -+ /Import File Strings/,/^$/ { -+ /^0/ { -+ s/^0 *\([^ ]*\) *$/\1/ -+ p -+ } -+ }' -+ lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -+ # Check for a 64-bit object if we didn't find anything. -+ if test -z "$lt_cv_aix_libpath_"; then -+ lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -+ fi - fi - rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext --if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi -+ if test -z "$lt_cv_aix_libpath_"; then -+ lt_cv_aix_libpath_="/usr/lib:/lib" -+ fi -+ -+fi -+ -+ aix_libpath=$lt_cv_aix_libpath_ -+fi - - hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" - # Warning - without using the other run time loading flags, -@@ -9306,20 +9841,63 @@ - # Microsoft Visual C++. - # hardcode_libdir_flag_spec is actually meaningless, as there is - # no search path for DLLs. -- hardcode_libdir_flag_spec=' ' -- allow_undefined_flag=unsupported -- # Tell ltmain to make .lib files, not .a files. -- libext=lib -- # Tell ltmain to make .dll files, not .so files. -- shrext_cmds=".dll" -- # FIXME: Setting linknames here is a bad hack. -- archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' -- # The linker will automatically build a .lib file if we build a DLL. -- old_archive_from_new_cmds='true' -- # FIXME: Should let the user specify the lib program. -- old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' -- fix_srcfile_path='`cygpath -w "$srcfile"`' -- enable_shared_with_static_runtimes=yes -+ case $cc_basename in -+ cl*) -+ # Native MSVC -+ hardcode_libdir_flag_spec=' ' -+ allow_undefined_flag=unsupported -+ always_export_symbols=yes -+ file_list_spec='@' -+ # Tell ltmain to make .lib files, not .a files. -+ libext=lib -+ # Tell ltmain to make .dll files, not .so files. -+ shrext_cmds=".dll" -+ # FIXME: Setting linknames here is a bad hack. -+ archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' -+ archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then -+ sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; -+ else -+ sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; -+ fi~ -+ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ -+ linknames=' -+ # The linker will not automatically build a static lib if we build a DLL. -+ # _LT_TAGVAR(old_archive_from_new_cmds, )='true' -+ enable_shared_with_static_runtimes=yes -+ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' -+ # Don't use ranlib -+ old_postinstall_cmds='chmod 644 $oldlib' -+ postlink_cmds='lt_outputfile="@OUTPUT@"~ -+ lt_tool_outputfile="@TOOL_OUTPUT@"~ -+ case $lt_outputfile in -+ *.exe|*.EXE) ;; -+ *) -+ lt_outputfile="$lt_outputfile.exe" -+ lt_tool_outputfile="$lt_tool_outputfile.exe" -+ ;; -+ esac~ -+ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then -+ $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; -+ $RM "$lt_outputfile.manifest"; -+ fi' -+ ;; -+ *) -+ # Assume MSVC wrapper -+ hardcode_libdir_flag_spec=' ' -+ allow_undefined_flag=unsupported -+ # Tell ltmain to make .lib files, not .a files. -+ libext=lib -+ # Tell ltmain to make .dll files, not .so files. -+ shrext_cmds=".dll" -+ # FIXME: Setting linknames here is a bad hack. -+ archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' -+ # The linker will automatically build a .lib file if we build a DLL. -+ old_archive_from_new_cmds='true' -+ # FIXME: Should let the user specify the lib program. -+ old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' -+ enable_shared_with_static_runtimes=yes -+ ;; -+ esac - ;; - - darwin* | rhapsody*) -@@ -9380,7 +9958,7 @@ - - # FreeBSD 3 and greater uses gcc -shared to do shared libraries. - freebsd* | dragonfly*) -- archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' -+ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - hardcode_libdir_flag_spec='-R$libdir' - hardcode_direct=yes - hardcode_shlibpath_var=no -@@ -9388,7 +9966,7 @@ - - hpux9*) - if test "$GCC" = yes; then -- archive_cmds='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' -+ archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - else - archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - fi -@@ -9404,7 +9982,7 @@ - - hpux10*) - if test "$GCC" = yes && test "$with_gnu_ld" = no; then -- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' -+ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' - fi -@@ -9428,10 +10006,10 @@ - archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - ia64*) -- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' -+ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) -- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' -+ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - ;; - esac - else -@@ -9510,23 +10088,36 @@ - - irix5* | irix6* | nonstopux*) - if test "$GCC" = yes; then -- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' -+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - # Try to use the -exported_symbol ld option, if it does not - # work, assume that -exports_file does not work either and - # implicitly export all symbols. -- save_LDFLAGS="$LDFLAGS" -- LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" -- cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+ # This should be the same for all languages, so no per-tag cache variable. -+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5 -+$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; } -+if test "${lt_cv_irix_exported_symbol+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ save_LDFLAGS="$LDFLAGS" -+ LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ --int foo(void) {} -+int foo (void) { return 0; } - _ACEOF - if ac_fn_c_try_link "$LINENO"; then : -- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' -- -+ lt_cv_irix_exported_symbol=yes -+else -+ lt_cv_irix_exported_symbol=no - fi - rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -- LDFLAGS="$save_LDFLAGS" -+ LDFLAGS="$save_LDFLAGS" -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5 -+$as_echo "$lt_cv_irix_exported_symbol" >&6; } -+ if test "$lt_cv_irix_exported_symbol" = yes; then -+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' -+ fi - else - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' - archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' -@@ -9611,7 +10202,7 @@ - osf4* | osf5*) # as osf3* with the addition of -msym flag - if test "$GCC" = yes; then - allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' -- archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' -+ archive_cmds='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - else - allow_undefined_flag=' -expect_unresolved \*' -@@ -9630,9 +10221,9 @@ - no_undefined_flag=' -z defs' - if test "$GCC" = yes; then - wlarc='${wl}' -- archive_cmds='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' -+ archive_cmds='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ -- $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' -+ $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' - else - case `$CC -V 2>&1` in - *"Compilers 5.0"*) -@@ -10208,8 +10799,9 @@ - need_version=no - need_lib_prefix=no - -- case $GCC,$host_os in -- yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) -+ case $GCC,$cc_basename in -+ yes,*) -+ # gcc - library_names_spec='$libname.dll.a' - # DLL is installed to $(libdir)/../bin by postinstall_cmds - postinstall_cmds='base_file=`basename \${file}`~ -@@ -10242,13 +10834,71 @@ - library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - ;; - esac -+ dynamic_linker='Win32 ld.exe' -+ ;; -+ -+ *,cl*) -+ # Native MSVC -+ libname_spec='$name' -+ soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' -+ library_names_spec='${libname}.dll.lib' -+ -+ case $build_os in -+ mingw*) -+ sys_lib_search_path_spec= -+ lt_save_ifs=$IFS -+ IFS=';' -+ for lt_path in $LIB -+ do -+ IFS=$lt_save_ifs -+ # Let DOS variable expansion print the short 8.3 style file name. -+ lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` -+ sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" -+ done -+ IFS=$lt_save_ifs -+ # Convert to MSYS style. -+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` -+ ;; -+ cygwin*) -+ # Convert to unix form, then to dos form, then back to unix form -+ # but this time dos style (no spaces!) so that the unix form looks -+ # like /cygdrive/c/PROGRA~1:/cygdr... -+ sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` -+ sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` -+ sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` -+ ;; -+ *) -+ sys_lib_search_path_spec="$LIB" -+ if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then -+ # It is most probably a Windows format PATH. -+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` -+ else -+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` -+ fi -+ # FIXME: find the short name or the path components, as spaces are -+ # common. (e.g. "Program Files" -> "PROGRA~1") -+ ;; -+ esac -+ -+ # DLL is installed to $(libdir)/../bin by postinstall_cmds -+ postinstall_cmds='base_file=`basename \${file}`~ -+ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ -+ dldir=$destdir/`dirname \$dlpath`~ -+ test -d \$dldir || mkdir -p \$dldir~ -+ $install_prog $dir/$dlname \$dldir/$dlname' -+ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ -+ dlpath=$dir/\$dldll~ -+ $RM \$dlpath' -+ shlibpath_overrides_runpath=yes -+ dynamic_linker='Win32 link.exe' - ;; - - *) -+ # Assume MSVC wrapper - library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' -+ dynamic_linker='Win32 ld.exe' - ;; - esac -- dynamic_linker='Win32 ld.exe' - # FIXME: first we should search . and the directory the executable is in - shlibpath_var=PATH - ;; -@@ -10340,7 +10990,7 @@ - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LIBRARY_PATH - shlibpath_overrides_runpath=yes -- sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/beos/system/lib' -+ sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' - hardcode_into_libs=yes - ;; - -@@ -11180,10 +11830,10 @@ - /* When -fvisbility=hidden is used, assume the code has been annotated - correspondingly for the symbols needed. */ - #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) --void fnord () __attribute__((visibility("default"))); -+int fnord () __attribute__((visibility("default"))); - #endif - --void fnord () { int i=42; } -+int fnord () { return 42; } - int main () - { - void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); -@@ -11286,10 +11936,10 @@ - /* When -fvisbility=hidden is used, assume the code has been annotated - correspondingly for the symbols needed. */ - #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) --void fnord () __attribute__((visibility("default"))); -+int fnord () __attribute__((visibility("default"))); - #endif - --void fnord () { int i=42; } -+int fnord () { return 42; } - int main () - { - void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); -@@ -12831,13 +13481,20 @@ - lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`' - lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`' - lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`' -+lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`' -+lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`' - reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' - reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' - OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' - deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' - file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' -+file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`' -+want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`' -+DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' -+sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' - AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' - AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' -+archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`' - STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' - RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`' - old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`' -@@ -12852,14 +13509,17 @@ - lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`' - lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`' - lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`' -+nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`' -+lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`' - objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`' - MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`' - lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`' --lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' - lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`' -+lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' - lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`' - lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`' - need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`' -+MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`' - DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`' - NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`' - LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`' -@@ -12892,12 +13552,12 @@ - hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`' - inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`' - link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`' --fix_srcfile_path='`$ECHO "$fix_srcfile_path" | $SED "$delay_single_quote_subst"`' - always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`' - export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`' - exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`' - include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`' - prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`' -+postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`' - file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`' - variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`' - need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`' -@@ -12952,8 +13612,13 @@ - OBJDUMP \ - deplibs_check_method \ - file_magic_cmd \ -+file_magic_glob \ -+want_nocaseglob \ -+DLLTOOL \ -+sharedlib_from_linklib_cmd \ - AR \ - AR_FLAGS \ -+archiver_list_spec \ - STRIP \ - RANLIB \ - CC \ -@@ -12963,12 +13628,14 @@ - lt_cv_sys_global_symbol_to_cdecl \ - lt_cv_sys_global_symbol_to_c_name_address \ - lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ -+nm_file_list_spec \ - lt_prog_compiler_no_builtin_flag \ --lt_prog_compiler_wl \ - lt_prog_compiler_pic \ -+lt_prog_compiler_wl \ - lt_prog_compiler_static \ - lt_cv_prog_compiler_c_o \ - need_locks \ -+MANIFEST_TOOL \ - DSYMUTIL \ - NMEDIT \ - LIPO \ -@@ -12984,7 +13651,6 @@ - hardcode_libdir_flag_spec \ - hardcode_libdir_flag_spec_ld \ - hardcode_libdir_separator \ --fix_srcfile_path \ - exclude_expsyms \ - include_expsyms \ - file_list_spec \ -@@ -13020,6 +13686,7 @@ - module_expsym_cmds \ - export_symbols_cmds \ - prelink_cmds \ -+postlink_cmds \ - postinstall_cmds \ - postuninstall_cmds \ - finish_cmds \ -@@ -13776,7 +14443,8 @@ - # NOTE: Changes made to this file will be lost: look at ltmain.sh. - # - # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, --# 2006, 2007, 2008, 2009 Free Software Foundation, Inc. -+# 2006, 2007, 2008, 2009, 2010 Free Software Foundation, -+# Inc. - # Written by Gordon Matzigkeit, 1996 - # - # This file is part of GNU Libtool. -@@ -13879,19 +14547,42 @@ - # turn newlines into spaces. - NL2SP=$lt_lt_NL2SP - -+# convert \$build file names to \$host format. -+to_host_file_cmd=$lt_cv_to_host_file_cmd -+ -+# convert \$build files to toolchain format. -+to_tool_file_cmd=$lt_cv_to_tool_file_cmd -+ - # An object symbol dumper. - OBJDUMP=$lt_OBJDUMP - - # Method to check whether dependent libraries are shared objects. - deplibs_check_method=$lt_deplibs_check_method - --# Command to use when deplibs_check_method == "file_magic". -+# Command to use when deplibs_check_method = "file_magic". - file_magic_cmd=$lt_file_magic_cmd - -+# How to find potential files when deplibs_check_method = "file_magic". -+file_magic_glob=$lt_file_magic_glob -+ -+# Find potential files using nocaseglob when deplibs_check_method = "file_magic". -+want_nocaseglob=$lt_want_nocaseglob -+ -+# DLL creation program. -+DLLTOOL=$lt_DLLTOOL -+ -+# Command to associate shared and link libraries. -+sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd -+ - # The archiver. - AR=$lt_AR -+ -+# Flags to create an archive. - AR_FLAGS=$lt_AR_FLAGS - -+# How to feed a file listing to the archiver. -+archiver_list_spec=$lt_archiver_list_spec -+ - # A symbol stripping program. - STRIP=$lt_STRIP - -@@ -13921,6 +14612,12 @@ - # Transform the output of nm in a C name address pair when lib prefix is needed. - global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix - -+# Specify filename containing input files for \$NM. -+nm_file_list_spec=$lt_nm_file_list_spec -+ -+# The root where to search for dependent libraries,and in which our libraries should be installed. -+lt_sysroot=$lt_sysroot -+ - # The name of the directory that contains temporary libtool files. - objdir=$objdir - -@@ -13930,6 +14627,9 @@ - # Must we lock files when doing compilation? - need_locks=$lt_need_locks - -+# Manifest tool. -+MANIFEST_TOOL=$lt_MANIFEST_TOOL -+ - # Tool to manipulate archived DWARF debug symbol files on Mac OS X. - DSYMUTIL=$lt_DSYMUTIL - -@@ -14044,12 +14744,12 @@ - # Compiler flag to turn off builtin functions. - no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag - --# How to pass a linker flag through the compiler. --wl=$lt_lt_prog_compiler_wl -- - # Additional compiler flags for building library objects. - pic_flag=$lt_lt_prog_compiler_pic - -+# How to pass a linker flag through the compiler. -+wl=$lt_lt_prog_compiler_wl -+ - # Compiler flag to prevent dynamic linking. - link_static_flag=$lt_lt_prog_compiler_static - -@@ -14136,9 +14836,6 @@ - # Whether libtool must link a program against all its dependency libraries. - link_all_deplibs=$link_all_deplibs - --# Fix the shell variable \$srcfile for the compiler. --fix_srcfile_path=$lt_fix_srcfile_path -- - # Set to "yes" if exported symbols are required. - always_export_symbols=$always_export_symbols - -@@ -14154,6 +14851,9 @@ - # Commands necessary for linking programs (against libraries) with templates. - prelink_cmds=$lt_prelink_cmds - -+# Commands necessary for finishing linking programs. -+postlink_cmds=$lt_postlink_cmds -+ - # Specify filename containing input files. - file_list_spec=$lt_file_list_spec - -@@ -14186,210 +14886,169 @@ - # if finds mixed CR/LF and LF-only lines. Since sed operates in - # text mode, it properly converts lines to CR/LF. This bash problem - # is reportedly fixed, but why not run on old versions too? -- sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ -- || (rm -f "$cfgfile"; exit 1) -- -- case $xsi_shell in -- yes) -- cat << \_LT_EOF >> "$cfgfile" -- --# func_dirname file append nondir_replacement --# Compute the dirname of FILE. If nonempty, add APPEND to the result, --# otherwise set result to NONDIR_REPLACEMENT. --func_dirname () --{ -- case ${1} in -- */*) func_dirname_result="${1%/*}${2}" ;; -- * ) func_dirname_result="${3}" ;; -- esac --} -- --# func_basename file --func_basename () --{ -- func_basename_result="${1##*/}" --} -- --# func_dirname_and_basename file append nondir_replacement --# perform func_basename and func_dirname in a single function --# call: --# dirname: Compute the dirname of FILE. If nonempty, --# add APPEND to the result, otherwise set result --# to NONDIR_REPLACEMENT. --# value returned in "$func_dirname_result" --# basename: Compute filename of FILE. --# value retuned in "$func_basename_result" --# Implementation must be kept synchronized with func_dirname --# and func_basename. For efficiency, we do not delegate to --# those functions but instead duplicate the functionality here. --func_dirname_and_basename () --{ -- case ${1} in -- */*) func_dirname_result="${1%/*}${2}" ;; -- * ) func_dirname_result="${3}" ;; -- esac -- func_basename_result="${1##*/}" --} -- --# func_stripname prefix suffix name --# strip PREFIX and SUFFIX off of NAME. --# PREFIX and SUFFIX must not contain globbing or regex special --# characters, hashes, percent signs, but SUFFIX may contain a leading --# dot (in which case that matches only a dot). --func_stripname () --{ -- # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are -- # positional parameters, so assign one to ordinary parameter first. -- func_stripname_result=${3} -- func_stripname_result=${func_stripname_result#"${1}"} -- func_stripname_result=${func_stripname_result%"${2}"} --} -- --# func_opt_split --func_opt_split () --{ -- func_opt_split_opt=${1%%=*} -- func_opt_split_arg=${1#*=} --} -- --# func_lo2o object --func_lo2o () --{ -- case ${1} in -- *.lo) func_lo2o_result=${1%.lo}.${objext} ;; -- *) func_lo2o_result=${1} ;; -- esac --} -- --# func_xform libobj-or-source --func_xform () --{ -- func_xform_result=${1%.*}.lo --} -- --# func_arith arithmetic-term... --func_arith () --{ -- func_arith_result=$(( $* )) --} -- --# func_len string --# STRING may not start with a hyphen. --func_len () --{ -- func_len_result=${#1} --} -- --_LT_EOF -- ;; -- *) # Bourne compatible functions. -- cat << \_LT_EOF >> "$cfgfile" -- --# func_dirname file append nondir_replacement --# Compute the dirname of FILE. If nonempty, add APPEND to the result, --# otherwise set result to NONDIR_REPLACEMENT. --func_dirname () --{ -- # Extract subdirectory from the argument. -- func_dirname_result=`$ECHO "${1}" | $SED "$dirname"` -- if test "X$func_dirname_result" = "X${1}"; then -- func_dirname_result="${3}" -- else -- func_dirname_result="$func_dirname_result${2}" -- fi --} -- --# func_basename file --func_basename () --{ -- func_basename_result=`$ECHO "${1}" | $SED "$basename"` --} -- -- --# func_stripname prefix suffix name --# strip PREFIX and SUFFIX off of NAME. --# PREFIX and SUFFIX must not contain globbing or regex special --# characters, hashes, percent signs, but SUFFIX may contain a leading --# dot (in which case that matches only a dot). --# func_strip_suffix prefix name --func_stripname () --{ -- case ${2} in -- .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; -- *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; -- esac --} -- --# sed scripts: --my_sed_long_opt='1s/^\(-[^=]*\)=.*/\1/;q' --my_sed_long_arg='1s/^-[^=]*=//' -- --# func_opt_split --func_opt_split () --{ -- func_opt_split_opt=`$ECHO "${1}" | $SED "$my_sed_long_opt"` -- func_opt_split_arg=`$ECHO "${1}" | $SED "$my_sed_long_arg"` --} -- --# func_lo2o object --func_lo2o () --{ -- func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"` --} -- --# func_xform libobj-or-source --func_xform () --{ -- func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'` --} -- --# func_arith arithmetic-term... --func_arith () --{ -- func_arith_result=`expr "$@"` --} -- --# func_len string --# STRING may not start with a hyphen. --func_len () --{ -- func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len` --} -- --_LT_EOF --esac -- --case $lt_shell_append in -- yes) -- cat << \_LT_EOF >> "$cfgfile" -- --# func_append var value --# Append VALUE to the end of shell variable VAR. --func_append () --{ -- eval "$1+=\$2" --} --_LT_EOF -- ;; -- *) -- cat << \_LT_EOF >> "$cfgfile" -- --# func_append var value --# Append VALUE to the end of shell variable VAR. --func_append () --{ -- eval "$1=\$$1\$2" --} -- --_LT_EOF -- ;; -- esac -+ sed '$q' "$ltmain" >> "$cfgfile" \ -+ || (rm -f "$cfgfile"; exit 1) - -+ if test x"$xsi_shell" = xyes; then -+ sed -e '/^func_dirname ()$/,/^} # func_dirname /c\ -+func_dirname ()\ -+{\ -+\ case ${1} in\ -+\ */*) func_dirname_result="${1%/*}${2}" ;;\ -+\ * ) func_dirname_result="${3}" ;;\ -+\ esac\ -+} # Extended-shell func_dirname implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_basename ()$/,/^} # func_basename /c\ -+func_basename ()\ -+{\ -+\ func_basename_result="${1##*/}"\ -+} # Extended-shell func_basename implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_dirname_and_basename ()$/,/^} # func_dirname_and_basename /c\ -+func_dirname_and_basename ()\ -+{\ -+\ case ${1} in\ -+\ */*) func_dirname_result="${1%/*}${2}" ;;\ -+\ * ) func_dirname_result="${3}" ;;\ -+\ esac\ -+\ func_basename_result="${1##*/}"\ -+} # Extended-shell func_dirname_and_basename implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_stripname ()$/,/^} # func_stripname /c\ -+func_stripname ()\ -+{\ -+\ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are\ -+\ # positional parameters, so assign one to ordinary parameter first.\ -+\ func_stripname_result=${3}\ -+\ func_stripname_result=${func_stripname_result#"${1}"}\ -+\ func_stripname_result=${func_stripname_result%"${2}"}\ -+} # Extended-shell func_stripname implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_split_long_opt ()$/,/^} # func_split_long_opt /c\ -+func_split_long_opt ()\ -+{\ -+\ func_split_long_opt_name=${1%%=*}\ -+\ func_split_long_opt_arg=${1#*=}\ -+} # Extended-shell func_split_long_opt implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_split_short_opt ()$/,/^} # func_split_short_opt /c\ -+func_split_short_opt ()\ -+{\ -+\ func_split_short_opt_arg=${1#??}\ -+\ func_split_short_opt_name=${1%"$func_split_short_opt_arg"}\ -+} # Extended-shell func_split_short_opt implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_lo2o ()$/,/^} # func_lo2o /c\ -+func_lo2o ()\ -+{\ -+\ case ${1} in\ -+\ *.lo) func_lo2o_result=${1%.lo}.${objext} ;;\ -+\ *) func_lo2o_result=${1} ;;\ -+\ esac\ -+} # Extended-shell func_lo2o implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_xform ()$/,/^} # func_xform /c\ -+func_xform ()\ -+{\ -+ func_xform_result=${1%.*}.lo\ -+} # Extended-shell func_xform implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_arith ()$/,/^} # func_arith /c\ -+func_arith ()\ -+{\ -+ func_arith_result=$(( $* ))\ -+} # Extended-shell func_arith implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_len ()$/,/^} # func_len /c\ -+func_len ()\ -+{\ -+ func_len_result=${#1}\ -+} # Extended-shell func_len implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+fi -+ -+if test x"$lt_shell_append" = xyes; then -+ sed -e '/^func_append ()$/,/^} # func_append /c\ -+func_append ()\ -+{\ -+ eval "${1}+=\\${2}"\ -+} # Extended-shell func_append implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_append_quoted ()$/,/^} # func_append_quoted /c\ -+func_append_quoted ()\ -+{\ -+\ func_quote_for_eval "${2}"\ -+\ eval "${1}+=\\\\ \\$func_quote_for_eval_result"\ -+} # Extended-shell func_append_quoted implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ # Save a `func_append' function call where possible by direct use of '+=' -+ sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+ test 0 -eq $? || _lt_function_replace_fail=: -+else -+ # Save a `func_append' function call even when '+=' is not available -+ sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+ test 0 -eq $? || _lt_function_replace_fail=: -+fi -+ -+if test x"$_lt_function_replace_fail" = x":"; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5 -+$as_echo "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;} -+fi - -- sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ -- || (rm -f "$cfgfile"; exit 1) - -- mv -f "$cfgfile" "$ofile" || -+ mv -f "$cfgfile" "$ofile" || - (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") - chmod +x "$ofile" - -Index: binutils-2.24/ld/configure -=================================================================== ---- binutils-2.24.orig/ld/configure 2013-11-04 07:33:39.000000000 -0800 -+++ binutils-2.24/ld/configure 2013-12-15 11:12:06.120451266 -0800 -@@ -654,8 +654,11 @@ OTOOL - LIPO - NMEDIT - DSYMUTIL -+MANIFEST_TOOL - RANLIB -+ac_ct_AR - AR -+DLLTOOL - OBJDUMP - LN_S - NM -@@ -776,6 +779,7 @@ enable_static - with_pic - enable_fast_install - with_gnu_ld -+with_libtool_sysroot - enable_libtool_lock - enable_plugins - enable_largefile -@@ -1453,6 +1457,8 @@ Optional Packages: - --with-pic try to use only PIC/non-PIC objects [default=use - both] - --with-gnu-ld assume the C compiler uses GNU ld [default=no] -+ --with-libtool-sysroot=DIR Search for dependent libraries within DIR -+ (or the compiler's sysroot if not specified). - --with-lib-path=dir1:dir2... set default LIB_PATH - --with-sysroot=DIR Search for usr/lib et al within DIR. - --with-zlib include zlib support (auto/yes/no) default=auto -@@ -5645,8 +5651,8 @@ esac - - - --macro_version='2.2.7a' --macro_revision='1.3134' -+macro_version='2.4' -+macro_revision='1.3293' - - - -@@ -5686,7 +5692,7 @@ ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO - { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5 - $as_echo_n "checking how to print strings... " >&6; } - # Test print first, because it will be a builtin if present. --if test "X`print -r -- -n 2>/dev/null`" = X-n && \ -+if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ - test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then - ECHO='print -r --' - elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then -@@ -6372,8 +6378,8 @@ $as_echo_n "checking whether the shell understands some XSI constructs... " >&6; - # Try some XSI features - xsi_shell=no - ( _lt_dummy="a/b/c" -- test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \ -- = c,a/b,, \ -+ test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ -+ = c,a/b,b/c, \ - && eval 'test $(( 1 + 1 )) -eq 2 \ - && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ - && xsi_shell=yes -@@ -6422,6 +6428,80 @@ esac - - - -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5 -+$as_echo_n "checking how to convert $build file names to $host format... " >&6; } -+if test "${lt_cv_to_host_file_cmd+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ case $host in -+ *-*-mingw* ) -+ case $build in -+ *-*-mingw* ) # actually msys -+ lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 -+ ;; -+ *-*-cygwin* ) -+ lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 -+ ;; -+ * ) # otherwise, assume *nix -+ lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 -+ ;; -+ esac -+ ;; -+ *-*-cygwin* ) -+ case $build in -+ *-*-mingw* ) # actually msys -+ lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin -+ ;; -+ *-*-cygwin* ) -+ lt_cv_to_host_file_cmd=func_convert_file_noop -+ ;; -+ * ) # otherwise, assume *nix -+ lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin -+ ;; -+ esac -+ ;; -+ * ) # unhandled hosts (and "normal" native builds) -+ lt_cv_to_host_file_cmd=func_convert_file_noop -+ ;; -+esac -+ -+fi -+ -+to_host_file_cmd=$lt_cv_to_host_file_cmd -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5 -+$as_echo "$lt_cv_to_host_file_cmd" >&6; } -+ -+ -+ -+ -+ -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5 -+$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; } -+if test "${lt_cv_to_tool_file_cmd+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ #assume ordinary cross tools, or native build. -+lt_cv_to_tool_file_cmd=func_convert_file_noop -+case $host in -+ *-*-mingw* ) -+ case $build in -+ *-*-mingw* ) # actually msys -+ lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 -+ ;; -+ esac -+ ;; -+esac -+ -+fi -+ -+to_tool_file_cmd=$lt_cv_to_tool_file_cmd -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5 -+$as_echo "$lt_cv_to_tool_file_cmd" >&6; } -+ -+ -+ -+ -+ - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 - $as_echo_n "checking for $LD option to reload object files... " >&6; } - if test "${lt_cv_ld_reload_flag+set}" = set; then : -@@ -6438,6 +6518,11 @@ case $reload_flag in - esac - reload_cmds='$LD$reload_flag -o $output$reload_objs' - case $host_os in -+ cygwin* | mingw* | pw32* | cegcc*) -+ if test "$GCC" != yes; then -+ reload_cmds=false -+ fi -+ ;; - darwin*) - if test "$GCC" = yes; then - reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' -@@ -6606,7 +6691,8 @@ mingw* | pw32*) - lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' - lt_cv_file_magic_cmd='func_win32_libid' - else -- lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' -+ # Keep this pattern in sync with the one in func_win32_libid. -+ lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' - lt_cv_file_magic_cmd='$OBJDUMP -f' - fi - ;; -@@ -6760,6 +6846,21 @@ esac - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 - $as_echo "$lt_cv_deplibs_check_method" >&6; } -+ -+file_magic_glob= -+want_nocaseglob=no -+if test "$build" = "$host"; then -+ case $host_os in -+ mingw* | pw32*) -+ if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then -+ want_nocaseglob=yes -+ else -+ file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"` -+ fi -+ ;; -+ esac -+fi -+ - file_magic_cmd=$lt_cv_file_magic_cmd - deplibs_check_method=$lt_cv_deplibs_check_method - test -z "$deplibs_check_method" && deplibs_check_method=unknown -@@ -6775,9 +6876,162 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown - - - -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+if test -n "$ac_tool_prefix"; then -+ # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. -+set dummy ${ac_tool_prefix}dlltool; ac_word=$2 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+$as_echo_n "checking for $ac_word... " >&6; } -+if test "${ac_cv_prog_DLLTOOL+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ if test -n "$DLLTOOL"; then -+ ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. -+else -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then -+ ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" -+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+ done -+IFS=$as_save_IFS -+ -+fi -+fi -+DLLTOOL=$ac_cv_prog_DLLTOOL -+if test -n "$DLLTOOL"; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 -+$as_echo "$DLLTOOL" >&6; } -+else -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+$as_echo "no" >&6; } -+fi -+ -+ -+fi -+if test -z "$ac_cv_prog_DLLTOOL"; then -+ ac_ct_DLLTOOL=$DLLTOOL -+ # Extract the first word of "dlltool", so it can be a program name with args. -+set dummy dlltool; ac_word=$2 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+$as_echo_n "checking for $ac_word... " >&6; } -+if test "${ac_cv_prog_ac_ct_DLLTOOL+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ if test -n "$ac_ct_DLLTOOL"; then -+ ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. -+else -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then -+ ac_cv_prog_ac_ct_DLLTOOL="dlltool" -+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+ done -+IFS=$as_save_IFS -+ -+fi -+fi -+ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL -+if test -n "$ac_ct_DLLTOOL"; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 -+$as_echo "$ac_ct_DLLTOOL" >&6; } -+else -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+$as_echo "no" >&6; } -+fi -+ -+ if test "x$ac_ct_DLLTOOL" = x; then -+ DLLTOOL="false" -+ else -+ case $cross_compiling:$ac_tool_warned in -+yes:) -+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -+ac_tool_warned=yes ;; -+esac -+ DLLTOOL=$ac_ct_DLLTOOL -+ fi -+else -+ DLLTOOL="$ac_cv_prog_DLLTOOL" -+fi -+ -+test -z "$DLLTOOL" && DLLTOOL=dlltool -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5 -+$as_echo_n "checking how to associate runtime and link libraries... " >&6; } -+if test "${lt_cv_sharedlib_from_linklib_cmd+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ lt_cv_sharedlib_from_linklib_cmd='unknown' -+ -+case $host_os in -+cygwin* | mingw* | pw32* | cegcc*) -+ # two different shell functions defined in ltmain.sh -+ # decide which to use based on capabilities of $DLLTOOL -+ case `$DLLTOOL --help 2>&1` in -+ *--identify-strict*) -+ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib -+ ;; -+ *) -+ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback -+ ;; -+ esac -+ ;; -+*) -+ # fallback: assume linklib IS sharedlib -+ lt_cv_sharedlib_from_linklib_cmd="$ECHO" -+ ;; -+esac -+ -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5 -+$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; } -+sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd -+test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO -+ -+ -+ -+ -+ -+ -+ - if test -n "$ac_tool_prefix"; then -- # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. --set dummy ${ac_tool_prefix}ar; ac_word=$2 -+ for ac_prog in ar -+ do -+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -+set dummy $ac_tool_prefix$ac_prog; ac_word=$2 - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 - $as_echo_n "checking for $ac_word... " >&6; } - if test "${ac_cv_prog_AR+set}" = set; then : -@@ -6793,7 +7047,7 @@ do - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then -- ac_cv_prog_AR="${ac_tool_prefix}ar" -+ ac_cv_prog_AR="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -@@ -6813,11 +7067,15 @@ $as_echo "no" >&6; } - fi - - -+ test -n "$AR" && break -+ done - fi --if test -z "$ac_cv_prog_AR"; then -+if test -z "$AR"; then - ac_ct_AR=$AR -- # Extract the first word of "ar", so it can be a program name with args. --set dummy ar; ac_word=$2 -+ for ac_prog in ar -+do -+ # Extract the first word of "$ac_prog", so it can be a program name with args. -+set dummy $ac_prog; ac_word=$2 - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 - $as_echo_n "checking for $ac_word... " >&6; } - if test "${ac_cv_prog_ac_ct_AR+set}" = set; then : -@@ -6833,7 +7091,7 @@ do - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then -- ac_cv_prog_ac_ct_AR="ar" -+ ac_cv_prog_ac_ct_AR="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -@@ -6852,6 +7110,10 @@ else - $as_echo "no" >&6; } - fi - -+ -+ test -n "$ac_ct_AR" && break -+done -+ - if test "x$ac_ct_AR" = x; then - AR="false" - else -@@ -6863,12 +7125,12 @@ ac_tool_warned=yes ;; - esac - AR=$ac_ct_AR - fi --else -- AR="$ac_cv_prog_AR" - fi - --test -z "$AR" && AR=ar --test -z "$AR_FLAGS" && AR_FLAGS=cru -+: ${AR=ar} -+: ${AR_FLAGS=cru} -+ -+ - - - -@@ -6878,6 +7140,62 @@ test -z "$AR_FLAGS" && AR_FLAGS=cru - - - -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 -+$as_echo_n "checking for archiver @FILE support... " >&6; } -+if test "${lt_cv_ar_at_file+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ lt_cv_ar_at_file=no -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+/* end confdefs.h. */ -+ -+int -+main () -+{ -+ -+ ; -+ return 0; -+} -+_ACEOF -+if ac_fn_c_try_compile "$LINENO"; then : -+ echo conftest.$ac_objext > conftest.lst -+ lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5' -+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 -+ (eval $lt_ar_try) 2>&5 -+ ac_status=$? -+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 -+ test $ac_status = 0; } -+ if test "$ac_status" -eq 0; then -+ # Ensure the archiver fails upon bogus file names. -+ rm -f conftest.$ac_objext libconftest.a -+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 -+ (eval $lt_ar_try) 2>&5 -+ ac_status=$? -+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 -+ test $ac_status = 0; } -+ if test "$ac_status" -ne 0; then -+ lt_cv_ar_at_file=@ -+ fi -+ fi -+ rm -f conftest.* libconftest.a -+ -+fi -+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -+ -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 -+$as_echo "$lt_cv_ar_at_file" >&6; } -+ -+if test "x$lt_cv_ar_at_file" = xno; then -+ archiver_list_spec= -+else -+ archiver_list_spec=$lt_cv_ar_at_file -+fi -+ -+ -+ -+ -+ - - - if test -n "$ac_tool_prefix"; then -@@ -7214,8 +7532,8 @@ esac - lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" - - # Transform an extracted symbol line into symbol name and symbol address --lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" --lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" -+lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" -+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" - - # Handle CRLF in mingw tool chain - opt_cr= -@@ -7251,6 +7569,7 @@ for ac_symprfx in "" "_"; do - else - lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" - fi -+ lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" - - # Check to see that the pipe works correctly. - pipe_works=no -@@ -7292,6 +7611,18 @@ _LT_EOF - if $GREP ' nm_test_var$' "$nlist" >/dev/null; then - if $GREP ' nm_test_func$' "$nlist" >/dev/null; then - cat <<_LT_EOF > conftest.$ac_ext -+/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ -+#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) -+/* DATA imports from DLLs on WIN32 con't be const, because runtime -+ relocations are performed -- see ld's documentation on pseudo-relocs. */ -+# define LT_DLSYM_CONST -+#elif defined(__osf__) -+/* This system does not cope well with relocations in const data. */ -+# define LT_DLSYM_CONST -+#else -+# define LT_DLSYM_CONST const -+#endif -+ - #ifdef __cplusplus - extern "C" { - #endif -@@ -7303,7 +7634,7 @@ _LT_EOF - cat <<_LT_EOF >> conftest.$ac_ext - - /* The mapping between symbol names and symbols. */ --const struct { -+LT_DLSYM_CONST struct { - const char *name; - void *address; - } -@@ -7329,8 +7660,8 @@ static const void *lt_preloaded_setup() { - _LT_EOF - # Now try linking the two files. - mv conftest.$ac_objext conftstm.$ac_objext -- lt_save_LIBS="$LIBS" -- lt_save_CFLAGS="$CFLAGS" -+ lt_globsym_save_LIBS=$LIBS -+ lt_globsym_save_CFLAGS=$CFLAGS - LIBS="conftstm.$ac_objext" - CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 -@@ -7340,8 +7671,8 @@ _LT_EOF - test $ac_status = 0; } && test -s conftest${ac_exeext}; then - pipe_works=yes - fi -- LIBS="$lt_save_LIBS" -- CFLAGS="$lt_save_CFLAGS" -+ LIBS=$lt_globsym_save_LIBS -+ CFLAGS=$lt_globsym_save_CFLAGS - else - echo "cannot find nm_test_func in $nlist" >&5 - fi -@@ -7378,6 +7709,19 @@ else - $as_echo "ok" >&6; } - fi - -+# Response file support. -+if test "$lt_cv_nm_interface" = "MS dumpbin"; then -+ nm_file_list_spec='@' -+elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then -+ nm_file_list_spec='@' -+fi -+ -+ -+ -+ -+ -+ -+ - - - -@@ -7398,6 +7742,42 @@ fi - - - -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 -+$as_echo_n "checking for sysroot... " >&6; } -+ -+# Check whether --with-libtool-sysroot was given. -+if test "${with_libtool_sysroot+set}" = set; then : -+ withval=$with_libtool_sysroot; -+else -+ with_libtool_sysroot=no -+fi -+ -+ -+lt_sysroot= -+case ${with_libtool_sysroot} in #( -+ yes) -+ if test "$GCC" = yes; then -+ lt_sysroot=`$CC --print-sysroot 2>/dev/null` -+ fi -+ ;; #( -+ /*) -+ lt_sysroot=`echo "$with_libtool_sysroot" | sed -e "$sed_quote_subst"` -+ ;; #( -+ no|'') -+ ;; #( -+ *) -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_libtool_sysroot}" >&5 -+$as_echo "${with_libtool_sysroot}" >&6; } -+ as_fn_error "The sysroot must be an absolute path." "$LINENO" 5 -+ ;; -+esac -+ -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5 -+$as_echo "${lt_sysroot:-no}" >&6; } -+ -+ -+ -+ - - # Check whether --enable-libtool-lock was given. - if test "${enable_libtool_lock+set}" = set; then : -@@ -7605,6 +7985,123 @@ esac - - need_locks="$enable_libtool_lock" - -+if test -n "$ac_tool_prefix"; then -+ # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args. -+set dummy ${ac_tool_prefix}mt; ac_word=$2 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+$as_echo_n "checking for $ac_word... " >&6; } -+if test "${ac_cv_prog_MANIFEST_TOOL+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ if test -n "$MANIFEST_TOOL"; then -+ ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test. -+else -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then -+ ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt" -+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+ done -+IFS=$as_save_IFS -+ -+fi -+fi -+MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL -+if test -n "$MANIFEST_TOOL"; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5 -+$as_echo "$MANIFEST_TOOL" >&6; } -+else -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+$as_echo "no" >&6; } -+fi -+ -+ -+fi -+if test -z "$ac_cv_prog_MANIFEST_TOOL"; then -+ ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL -+ # Extract the first word of "mt", so it can be a program name with args. -+set dummy mt; ac_word=$2 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+$as_echo_n "checking for $ac_word... " >&6; } -+if test "${ac_cv_prog_ac_ct_MANIFEST_TOOL+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ if test -n "$ac_ct_MANIFEST_TOOL"; then -+ ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test. -+else -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then -+ ac_cv_prog_ac_ct_MANIFEST_TOOL="mt" -+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+ done -+IFS=$as_save_IFS -+ -+fi -+fi -+ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL -+if test -n "$ac_ct_MANIFEST_TOOL"; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5 -+$as_echo "$ac_ct_MANIFEST_TOOL" >&6; } -+else -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+$as_echo "no" >&6; } -+fi -+ -+ if test "x$ac_ct_MANIFEST_TOOL" = x; then -+ MANIFEST_TOOL=":" -+ else -+ case $cross_compiling:$ac_tool_warned in -+yes:) -+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -+ac_tool_warned=yes ;; -+esac -+ MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL -+ fi -+else -+ MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL" -+fi -+ -+test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5 -+$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; } -+if test "${lt_cv_path_mainfest_tool+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ lt_cv_path_mainfest_tool=no -+ echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5 -+ $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out -+ cat conftest.err >&5 -+ if $GREP 'Manifest Tool' conftest.out > /dev/null; then -+ lt_cv_path_mainfest_tool=yes -+ fi -+ rm -f conftest* -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5 -+$as_echo "$lt_cv_path_mainfest_tool" >&6; } -+if test "x$lt_cv_path_mainfest_tool" != xyes; then -+ MANIFEST_TOOL=: -+fi -+ -+ -+ -+ -+ - - case $host_os in - rhapsody* | darwin*) -@@ -8168,6 +8665,8 @@ _LT_EOF - $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 - echo "$AR cru libconftest.a conftest.o" >&5 - $AR cru libconftest.a conftest.o 2>&5 -+ echo "$RANLIB libconftest.a" >&5 -+ $RANLIB libconftest.a 2>&5 - cat > conftest.c << _LT_EOF - int main() { return 0;} - _LT_EOF -@@ -8236,6 +8735,16 @@ done - - - -+func_stripname_cnf () -+{ -+ case ${2} in -+ .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; -+ *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; -+ esac -+} # func_stripname_cnf -+ -+ -+ - - - # Set options -@@ -8364,7 +8873,8 @@ fi - LIBTOOL_DEPS="$ltmain" - - # Always use our own libtool. --LIBTOOL='$(SHELL) $(top_builddir)/libtool' -+LIBTOOL='$(SHELL) $(top_builddir)' -+LIBTOOL="$LIBTOOL/${host_alias}-libtool" - - - -@@ -8453,7 +8963,7 @@ aix3*) - esac - - # Global variables: --ofile=libtool -+ofile=${host_alias}-libtool - can_build_shared=yes - - # All known linkers require a `.a' archive for static linking (except MSVC, -@@ -8751,8 +9261,6 @@ fi - lt_prog_compiler_pic= - lt_prog_compiler_static= - --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 --$as_echo_n "checking for $compiler option to produce PIC... " >&6; } - - if test "$GCC" = yes; then - lt_prog_compiler_wl='-Wl,' -@@ -8918,6 +9426,12 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; } - lt_prog_compiler_pic='--shared' - lt_prog_compiler_static='--static' - ;; -+ nagfor*) -+ # NAG Fortran compiler -+ lt_prog_compiler_wl='-Wl,-Wl,,' -+ lt_prog_compiler_pic='-PIC' -+ lt_prog_compiler_static='-Bstatic' -+ ;; - pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) - # Portland Group compilers (*not* the Pentium gcc compiler, - # which looks to be a dead project) -@@ -8980,7 +9494,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; } - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-Bstatic' - case $cc_basename in -- f77* | f90* | f95*) -+ f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) - lt_prog_compiler_wl='-Qoption ld ';; - *) - lt_prog_compiler_wl='-Wl,';; -@@ -9037,13 +9551,17 @@ case $host_os in - lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" - ;; - esac --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic" >&5 --$as_echo "$lt_prog_compiler_pic" >&6; } -- -- -- -- - -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 -+$as_echo_n "checking for $compiler option to produce PIC... " >&6; } -+if test "${lt_cv_prog_compiler_pic+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ lt_cv_prog_compiler_pic=$lt_prog_compiler_pic -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 -+$as_echo "$lt_cv_prog_compiler_pic" >&6; } -+lt_prog_compiler_pic=$lt_cv_prog_compiler_pic - - # - # Check to make sure the PIC flag actually works. -@@ -9104,6 +9622,11 @@ fi - - - -+ -+ -+ -+ -+ - # - # Check to make sure the static flag actually works. - # -@@ -9454,7 +9977,8 @@ _LT_EOF - allow_undefined_flag=unsupported - always_export_symbols=no - enable_shared_with_static_runtimes=yes -- export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' -+ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' -+ exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' - - if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' -@@ -9502,7 +10026,7 @@ _LT_EOF - if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ - && test "$tmp_diet" = no - then -- tmp_addflag= -+ tmp_addflag=' $pic_flag' - tmp_sharedflag='-shared' - case $cc_basename,$host_cpu in - pgcc*) # Portland Group C compiler -@@ -9553,12 +10077,12 @@ _LT_EOF - whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' - hardcode_libdir_flag_spec= - hardcode_libdir_flag_spec_ld='-rpath $libdir' -- archive_cmds='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib' -+ archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' - if test "x$supports_anon_versioning" = xyes; then - archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ - cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ - echo "local: *; };" >> $output_objdir/$libname.ver~ -- $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' -+ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' - fi - ;; - esac -@@ -9572,8 +10096,8 @@ _LT_EOF - archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' - wlarc= - else -- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' -+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - fi - ;; - -@@ -9591,8 +10115,8 @@ _LT_EOF - - _LT_EOF - elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then -- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' -+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - ld_shlibs=no - fi -@@ -9638,8 +10162,8 @@ _LT_EOF - - *) - if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then -- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' -+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - ld_shlibs=no - fi -@@ -9769,7 +10293,13 @@ _LT_EOF - allow_undefined_flag='-berok' - # Determine the default libpath from the value encoded in an - # empty executable. -- cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+ if test "${lt_cv_aix_libpath+set}" = set; then -+ aix_libpath=$lt_cv_aix_libpath -+else -+ if test "${lt_cv_aix_libpath_+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - - int -@@ -9782,22 +10312,29 @@ main () - _ACEOF - if ac_fn_c_try_link "$LINENO"; then : - --lt_aix_libpath_sed=' -- /Import File Strings/,/^$/ { -- /^0/ { -- s/^0 *\(.*\)$/\1/ -- p -- } -- }' --aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` --# Check for a 64-bit object if we didn't find anything. --if test -z "$aix_libpath"; then -- aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` --fi -+ lt_aix_libpath_sed=' -+ /Import File Strings/,/^$/ { -+ /^0/ { -+ s/^0 *\([^ ]*\) *$/\1/ -+ p -+ } -+ }' -+ lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -+ # Check for a 64-bit object if we didn't find anything. -+ if test -z "$lt_cv_aix_libpath_"; then -+ lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -+ fi - fi - rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext --if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi -+ if test -z "$lt_cv_aix_libpath_"; then -+ lt_cv_aix_libpath_="/usr/lib:/lib" -+ fi -+ -+fi -+ -+ aix_libpath=$lt_cv_aix_libpath_ -+fi - - hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" - archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" -@@ -9809,7 +10346,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi - else - # Determine the default libpath from the value encoded in an - # empty executable. -- cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+ if test "${lt_cv_aix_libpath+set}" = set; then -+ aix_libpath=$lt_cv_aix_libpath -+else -+ if test "${lt_cv_aix_libpath_+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - - int -@@ -9822,22 +10365,29 @@ main () - _ACEOF - if ac_fn_c_try_link "$LINENO"; then : - --lt_aix_libpath_sed=' -- /Import File Strings/,/^$/ { -- /^0/ { -- s/^0 *\(.*\)$/\1/ -- p -- } -- }' --aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` --# Check for a 64-bit object if we didn't find anything. --if test -z "$aix_libpath"; then -- aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` --fi -+ lt_aix_libpath_sed=' -+ /Import File Strings/,/^$/ { -+ /^0/ { -+ s/^0 *\([^ ]*\) *$/\1/ -+ p -+ } -+ }' -+ lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -+ # Check for a 64-bit object if we didn't find anything. -+ if test -z "$lt_cv_aix_libpath_"; then -+ lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -+ fi - fi - rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext --if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi -+ if test -z "$lt_cv_aix_libpath_"; then -+ lt_cv_aix_libpath_="/usr/lib:/lib" -+ fi -+ -+fi -+ -+ aix_libpath=$lt_cv_aix_libpath_ -+fi - - hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" - # Warning - without using the other run time loading flags, -@@ -9881,21 +10431,64 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi - # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. - # hardcode_libdir_flag_spec is actually meaningless, as there is -- # no search path for DLLs. -- hardcode_libdir_flag_spec=' ' -- allow_undefined_flag=unsupported -- # Tell ltmain to make .lib files, not .a files. -- libext=lib -- # Tell ltmain to make .dll files, not .so files. -- shrext_cmds=".dll" -- # FIXME: Setting linknames here is a bad hack. -- archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' -- # The linker will automatically build a .lib file if we build a DLL. -- old_archive_from_new_cmds='true' -- # FIXME: Should let the user specify the lib program. -- old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' -- fix_srcfile_path='`cygpath -w "$srcfile"`' -- enable_shared_with_static_runtimes=yes -+ # no search path for DLLs. -+ case $cc_basename in -+ cl*) -+ # Native MSVC -+ hardcode_libdir_flag_spec=' ' -+ allow_undefined_flag=unsupported -+ always_export_symbols=yes -+ file_list_spec='@' -+ # Tell ltmain to make .lib files, not .a files. -+ libext=lib -+ # Tell ltmain to make .dll files, not .so files. -+ shrext_cmds=".dll" -+ # FIXME: Setting linknames here is a bad hack. -+ archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' -+ archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then -+ sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; -+ else -+ sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; -+ fi~ -+ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ -+ linknames=' -+ # The linker will not automatically build a static lib if we build a DLL. -+ # _LT_TAGVAR(old_archive_from_new_cmds, )='true' -+ enable_shared_with_static_runtimes=yes -+ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' -+ # Don't use ranlib -+ old_postinstall_cmds='chmod 644 $oldlib' -+ postlink_cmds='lt_outputfile="@OUTPUT@"~ -+ lt_tool_outputfile="@TOOL_OUTPUT@"~ -+ case $lt_outputfile in -+ *.exe|*.EXE) ;; -+ *) -+ lt_outputfile="$lt_outputfile.exe" -+ lt_tool_outputfile="$lt_tool_outputfile.exe" -+ ;; -+ esac~ -+ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then -+ $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; -+ $RM "$lt_outputfile.manifest"; -+ fi' -+ ;; -+ *) -+ # Assume MSVC wrapper -+ hardcode_libdir_flag_spec=' ' -+ allow_undefined_flag=unsupported -+ # Tell ltmain to make .lib files, not .a files. -+ libext=lib -+ # Tell ltmain to make .dll files, not .so files. -+ shrext_cmds=".dll" -+ # FIXME: Setting linknames here is a bad hack. -+ archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' -+ # The linker will automatically build a .lib file if we build a DLL. -+ old_archive_from_new_cmds='true' -+ # FIXME: Should let the user specify the lib program. -+ old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' -+ enable_shared_with_static_runtimes=yes -+ ;; -+ esac - ;; - - darwin* | rhapsody*) -@@ -9956,7 +10549,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi - - # FreeBSD 3 and greater uses gcc -shared to do shared libraries. - freebsd* | dragonfly*) -- archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' -+ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - hardcode_libdir_flag_spec='-R$libdir' - hardcode_direct=yes - hardcode_shlibpath_var=no -@@ -9964,7 +10557,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi - - hpux9*) - if test "$GCC" = yes; then -- archive_cmds='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' -+ archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - else - archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - fi -@@ -9980,7 +10573,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi - - hpux10*) - if test "$GCC" = yes && test "$with_gnu_ld" = no; then -- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' -+ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' - fi -@@ -10004,10 +10597,10 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi - archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - ia64*) -- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' -+ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) -- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' -+ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - ;; - esac - else -@@ -10086,23 +10679,36 @@ fi - - irix5* | irix6* | nonstopux*) - if test "$GCC" = yes; then -- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' -+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - # Try to use the -exported_symbol ld option, if it does not - # work, assume that -exports_file does not work either and - # implicitly export all symbols. -- save_LDFLAGS="$LDFLAGS" -- LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" -- cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+ # This should be the same for all languages, so no per-tag cache variable. -+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5 -+$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; } -+if test "${lt_cv_irix_exported_symbol+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ save_LDFLAGS="$LDFLAGS" -+ LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ --int foo(void) {} -+int foo (void) { return 0; } - _ACEOF - if ac_fn_c_try_link "$LINENO"; then : -- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' -- -+ lt_cv_irix_exported_symbol=yes -+else -+ lt_cv_irix_exported_symbol=no - fi - rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -- LDFLAGS="$save_LDFLAGS" -+ LDFLAGS="$save_LDFLAGS" -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5 -+$as_echo "$lt_cv_irix_exported_symbol" >&6; } -+ if test "$lt_cv_irix_exported_symbol" = yes; then -+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' -+ fi - else - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' - archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' -@@ -10187,7 +10793,7 @@ rm -f core conftest.err conftest.$ac_objext \ - osf4* | osf5*) # as osf3* with the addition of -msym flag - if test "$GCC" = yes; then - allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' -- archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' -+ archive_cmds='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - else - allow_undefined_flag=' -expect_unresolved \*' -@@ -10206,9 +10812,9 @@ rm -f core conftest.err conftest.$ac_objext \ - no_undefined_flag=' -z defs' - if test "$GCC" = yes; then - wlarc='${wl}' -- archive_cmds='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' -+ archive_cmds='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ -- $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' -+ $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' - else - case `$CC -V 2>&1` in - *"Compilers 5.0"*) -@@ -10784,8 +11390,9 @@ cygwin* | mingw* | pw32* | cegcc*) - need_version=no - need_lib_prefix=no - -- case $GCC,$host_os in -- yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) -+ case $GCC,$cc_basename in -+ yes,*) -+ # gcc - library_names_spec='$libname.dll.a' - # DLL is installed to $(libdir)/../bin by postinstall_cmds - postinstall_cmds='base_file=`basename \${file}`~ -@@ -10818,13 +11425,71 @@ cygwin* | mingw* | pw32* | cegcc*) - library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - ;; - esac -+ dynamic_linker='Win32 ld.exe' -+ ;; -+ -+ *,cl*) -+ # Native MSVC -+ libname_spec='$name' -+ soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' -+ library_names_spec='${libname}.dll.lib' -+ -+ case $build_os in -+ mingw*) -+ sys_lib_search_path_spec= -+ lt_save_ifs=$IFS -+ IFS=';' -+ for lt_path in $LIB -+ do -+ IFS=$lt_save_ifs -+ # Let DOS variable expansion print the short 8.3 style file name. -+ lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` -+ sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" -+ done -+ IFS=$lt_save_ifs -+ # Convert to MSYS style. -+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` -+ ;; -+ cygwin*) -+ # Convert to unix form, then to dos form, then back to unix form -+ # but this time dos style (no spaces!) so that the unix form looks -+ # like /cygdrive/c/PROGRA~1:/cygdr... -+ sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` -+ sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` -+ sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` -+ ;; -+ *) -+ sys_lib_search_path_spec="$LIB" -+ if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then -+ # It is most probably a Windows format PATH. -+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` -+ else -+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` -+ fi -+ # FIXME: find the short name or the path components, as spaces are -+ # common. (e.g. "Program Files" -> "PROGRA~1") -+ ;; -+ esac -+ -+ # DLL is installed to $(libdir)/../bin by postinstall_cmds -+ postinstall_cmds='base_file=`basename \${file}`~ -+ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ -+ dldir=$destdir/`dirname \$dlpath`~ -+ test -d \$dldir || mkdir -p \$dldir~ -+ $install_prog $dir/$dlname \$dldir/$dlname' -+ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ -+ dlpath=$dir/\$dldll~ -+ $RM \$dlpath' -+ shlibpath_overrides_runpath=yes -+ dynamic_linker='Win32 link.exe' - ;; - - *) -+ # Assume MSVC wrapper - library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' -+ dynamic_linker='Win32 ld.exe' - ;; - esac -- dynamic_linker='Win32 ld.exe' - # FIXME: first we should search . and the directory the executable is in - shlibpath_var=PATH - ;; -@@ -10916,7 +11581,7 @@ haiku*) - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LIBRARY_PATH - shlibpath_overrides_runpath=yes -- sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/beos/system/lib' -+ sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' - hardcode_into_libs=yes - ;; - -@@ -11712,7 +12377,7 @@ else - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext <<_LT_EOF --#line 11715 "configure" -+#line $LINENO "configure" - #include "confdefs.h" - - #if HAVE_DLFCN_H -@@ -11756,10 +12421,10 @@ else - /* When -fvisbility=hidden is used, assume the code has been annotated - correspondingly for the symbols needed. */ - #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) --void fnord () __attribute__((visibility("default"))); -+int fnord () __attribute__((visibility("default"))); - #endif - --void fnord () { int i=42; } -+int fnord () { return 42; } - int main () - { - void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); -@@ -11818,7 +12483,7 @@ else - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext <<_LT_EOF --#line 11821 "configure" -+#line $LINENO "configure" - #include "confdefs.h" - - #if HAVE_DLFCN_H -@@ -11862,10 +12527,10 @@ else - /* When -fvisbility=hidden is used, assume the code has been annotated - correspondingly for the symbols needed. */ - #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) --void fnord () __attribute__((visibility("default"))); -+int fnord () __attribute__((visibility("default"))); - #endif - --void fnord () { int i=42; } -+int fnord () { return 42; } - int main () - { - void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); -@@ -12257,6 +12922,7 @@ $RM -r conftest* - - # Allow CC to be a program name with arguments. - lt_save_CC=$CC -+ lt_save_CFLAGS=$CFLAGS - lt_save_LD=$LD - lt_save_GCC=$GCC - GCC=$GXX -@@ -12274,6 +12940,7 @@ $RM -r conftest* - fi - test -z "${LDCXX+set}" || LD=$LDCXX - CC=${CXX-"c++"} -+ CFLAGS=$CXXFLAGS - compiler=$CC - compiler_CXX=$CC - for cc_temp in $compiler""; do -@@ -12413,8 +13080,8 @@ with_gnu_ld=$lt_cv_prog_gnu_ld - # Check if GNU C++ uses GNU ld as the underlying linker, since the - # archiving commands below assume that GNU ld is being used. - if test "$with_gnu_ld" = yes; then -- archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' -- archive_expsym_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' -+ archive_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' -+ archive_expsym_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - - hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' - export_dynamic_flag_spec_CXX='${wl}--export-dynamic' -@@ -12556,7 +13223,13 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie - allow_undefined_flag_CXX='-berok' - # Determine the default libpath from the value encoded in an empty - # executable. -- cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+ if test "${lt_cv_aix_libpath+set}" = set; then -+ aix_libpath=$lt_cv_aix_libpath -+else -+ if test "${lt_cv_aix_libpath__CXX+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - - int -@@ -12569,22 +13242,29 @@ main () - _ACEOF - if ac_fn_cxx_try_link "$LINENO"; then : - --lt_aix_libpath_sed=' -- /Import File Strings/,/^$/ { -- /^0/ { -- s/^0 *\(.*\)$/\1/ -- p -- } -- }' --aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` --# Check for a 64-bit object if we didn't find anything. --if test -z "$aix_libpath"; then -- aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` --fi -+ lt_aix_libpath_sed=' -+ /Import File Strings/,/^$/ { -+ /^0/ { -+ s/^0 *\([^ ]*\) *$/\1/ -+ p -+ } -+ }' -+ lt_cv_aix_libpath__CXX=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -+ # Check for a 64-bit object if we didn't find anything. -+ if test -z "$lt_cv_aix_libpath__CXX"; then -+ lt_cv_aix_libpath__CXX=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -+ fi - fi - rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext --if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi -+ if test -z "$lt_cv_aix_libpath__CXX"; then -+ lt_cv_aix_libpath__CXX="/usr/lib:/lib" -+ fi -+ -+fi -+ -+ aix_libpath=$lt_cv_aix_libpath__CXX -+fi - - hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" - -@@ -12597,7 +13277,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi - else - # Determine the default libpath from the value encoded in an - # empty executable. -- cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+ if test "${lt_cv_aix_libpath+set}" = set; then -+ aix_libpath=$lt_cv_aix_libpath -+else -+ if test "${lt_cv_aix_libpath__CXX+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - - int -@@ -12610,22 +13296,29 @@ main () - _ACEOF - if ac_fn_cxx_try_link "$LINENO"; then : - --lt_aix_libpath_sed=' -- /Import File Strings/,/^$/ { -- /^0/ { -- s/^0 *\(.*\)$/\1/ -- p -- } -- }' --aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` --# Check for a 64-bit object if we didn't find anything. --if test -z "$aix_libpath"; then -- aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` --fi -+ lt_aix_libpath_sed=' -+ /Import File Strings/,/^$/ { -+ /^0/ { -+ s/^0 *\([^ ]*\) *$/\1/ -+ p -+ } -+ }' -+ lt_cv_aix_libpath__CXX=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -+ # Check for a 64-bit object if we didn't find anything. -+ if test -z "$lt_cv_aix_libpath__CXX"; then -+ lt_cv_aix_libpath__CXX=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -+ fi - fi - rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext --if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi -+ if test -z "$lt_cv_aix_libpath__CXX"; then -+ lt_cv_aix_libpath__CXX="/usr/lib:/lib" -+ fi -+ -+fi -+ -+ aix_libpath=$lt_cv_aix_libpath__CXX -+fi - - hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" - # Warning - without using the other run time loading flags, -@@ -12668,29 +13361,75 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi - ;; - - cygwin* | mingw* | pw32* | cegcc*) -- # _LT_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless, -- # as there is no search path for DLLs. -- hardcode_libdir_flag_spec_CXX='-L$libdir' -- export_dynamic_flag_spec_CXX='${wl}--export-all-symbols' -- allow_undefined_flag_CXX=unsupported -- always_export_symbols_CXX=no -- enable_shared_with_static_runtimes_CXX=yes -- -- if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then -- archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' -- # If the export-symbols file already is a .def file (1st line -- # is EXPORTS), use it as is; otherwise, prepend... -- archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then -- cp $export_symbols $output_objdir/$soname.def; -- else -- echo EXPORTS > $output_objdir/$soname.def; -- cat $export_symbols >> $output_objdir/$soname.def; -- fi~ -- $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' -- else -- ld_shlibs_CXX=no -- fi -- ;; -+ case $GXX,$cc_basename in -+ ,cl* | no,cl*) -+ # Native MSVC -+ # hardcode_libdir_flag_spec is actually meaningless, as there is -+ # no search path for DLLs. -+ hardcode_libdir_flag_spec_CXX=' ' -+ allow_undefined_flag_CXX=unsupported -+ always_export_symbols_CXX=yes -+ file_list_spec_CXX='@' -+ # Tell ltmain to make .lib files, not .a files. -+ libext=lib -+ # Tell ltmain to make .dll files, not .so files. -+ shrext_cmds=".dll" -+ # FIXME: Setting linknames here is a bad hack. -+ archive_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' -+ archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then -+ $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; -+ else -+ $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; -+ fi~ -+ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ -+ linknames=' -+ # The linker will not automatically build a static lib if we build a DLL. -+ # _LT_TAGVAR(old_archive_from_new_cmds, CXX)='true' -+ enable_shared_with_static_runtimes_CXX=yes -+ # Don't use ranlib -+ old_postinstall_cmds_CXX='chmod 644 $oldlib' -+ postlink_cmds_CXX='lt_outputfile="@OUTPUT@"~ -+ lt_tool_outputfile="@TOOL_OUTPUT@"~ -+ case $lt_outputfile in -+ *.exe|*.EXE) ;; -+ *) -+ lt_outputfile="$lt_outputfile.exe" -+ lt_tool_outputfile="$lt_tool_outputfile.exe" -+ ;; -+ esac~ -+ func_to_tool_file "$lt_outputfile"~ -+ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then -+ $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; -+ $RM "$lt_outputfile.manifest"; -+ fi' -+ ;; -+ *) -+ # g++ -+ # _LT_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless, -+ # as there is no search path for DLLs. -+ hardcode_libdir_flag_spec_CXX='-L$libdir' -+ export_dynamic_flag_spec_CXX='${wl}--export-all-symbols' -+ allow_undefined_flag_CXX=unsupported -+ always_export_symbols_CXX=no -+ enable_shared_with_static_runtimes_CXX=yes -+ -+ if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then -+ archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' -+ # If the export-symbols file already is a .def file (1st line -+ # is EXPORTS), use it as is; otherwise, prepend... -+ archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then -+ cp $export_symbols $output_objdir/$soname.def; -+ else -+ echo EXPORTS > $output_objdir/$soname.def; -+ cat $export_symbols >> $output_objdir/$soname.def; -+ fi~ -+ $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' -+ else -+ ld_shlibs_CXX=no -+ fi -+ ;; -+ esac -+ ;; - darwin* | rhapsody*) - - -@@ -12796,7 +13535,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi - ;; - *) - if test "$GXX" = yes; then -- archive_cmds_CXX='$RM $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' -+ archive_cmds_CXX='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - else - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no -@@ -12867,10 +13606,10 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi - archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - ia64*) -- archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' -+ archive_cmds_CXX='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - *) -- archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' -+ archive_cmds_CXX='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - esac - fi -@@ -12911,9 +13650,9 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi - *) - if test "$GXX" = yes; then - if test "$with_gnu_ld" = no; then -- archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' -+ archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - else -- archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib' -+ archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib' - fi - fi - link_all_deplibs_CXX=yes -@@ -12983,20 +13722,20 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi - prelink_cmds_CXX='tpldir=Template.dir~ - rm -rf $tpldir~ - $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ -- compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"' -+ compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' - old_archive_cmds_CXX='tpldir=Template.dir~ - rm -rf $tpldir~ - $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ -- $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~ -+ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ - $RANLIB $oldlib' - archive_cmds_CXX='tpldir=Template.dir~ - rm -rf $tpldir~ - $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ -- $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' -+ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' - archive_expsym_cmds_CXX='tpldir=Template.dir~ - rm -rf $tpldir~ - $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ -- $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' -+ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' - ;; - *) # Version 6 and above use weak symbols - archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' -@@ -13191,7 +13930,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi - archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - ;; - *) -- archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' -+ archive_cmds_CXX='$CC -shared $pic_flag -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - ;; - esac - -@@ -13237,7 +13976,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi - - solaris*) - case $cc_basename in -- CC*) -+ CC* | sunCC*) - # Sun C++ 4.2, 5.x and Centerline C++ - archive_cmds_need_lc_CXX=yes - no_undefined_flag_CXX=' -zdefs' -@@ -13278,9 +14017,9 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi - if test "$GXX" = yes && test "$with_gnu_ld" = no; then - no_undefined_flag_CXX=' ${wl}-z ${wl}defs' - if $CC --version | $GREP -v '^2\.7' > /dev/null; then -- archive_cmds_CXX='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' -+ archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' - archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ -- $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' -+ $CC -shared $pic_flag -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when -@@ -13415,6 +14154,13 @@ private: - }; - _LT_EOF - -+ -+_lt_libdeps_save_CFLAGS=$CFLAGS -+case "$CC $CFLAGS " in #( -+*\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;; -+*\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;; -+esac -+ - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 - (eval $ac_compile) 2>&5 - ac_status=$? -@@ -13428,7 +14174,7 @@ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 - pre_test_object_deps_done=no - - for p in `eval "$output_verbose_link_cmd"`; do -- case $p in -+ case ${prev}${p} in - - -L* | -R* | -l*) - # Some compilers place space between "-{L,R}" and the path. -@@ -13437,13 +14183,22 @@ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 - test $p = "-R"; then - prev=$p - continue -- else -- prev= - fi - -+ # Expand the sysroot to ease extracting the directories later. -+ if test -z "$prev"; then -+ case $p in -+ -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;; -+ -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;; -+ -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;; -+ esac -+ fi -+ case $p in -+ =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;; -+ esac - if test "$pre_test_object_deps_done" = no; then -- case $p in -- -L* | -R*) -+ case ${prev} in -+ -L | -R) - # Internal compiler library paths should come after those - # provided the user. The postdeps already come after the - # user supplied libs so there is no need to process them. -@@ -13463,8 +14218,10 @@ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 - postdeps_CXX="${postdeps_CXX} ${prev}${p}" - fi - fi -+ prev= - ;; - -+ *.lto.$objext) ;; # Ignore GCC LTO objects - *.$objext) - # This assumes that the test object file only shows up - # once in the compiler output. -@@ -13500,6 +14257,7 @@ else - fi - - $RM -f confest.$objext -+CFLAGS=$_lt_libdeps_save_CFLAGS - - # PORTME: override above test on systems where it is broken - case $host_os in -@@ -13535,7 +14293,7 @@ linux*) - - solaris*) - case $cc_basename in -- CC*) -+ CC* | sunCC*) - # The more standards-conforming stlport4 library is - # incompatible with the Cstd library. Avoid specifying - # it if it's in CXXFLAGS. Ignore libCrun as -@@ -13600,8 +14358,6 @@ fi - lt_prog_compiler_pic_CXX= - lt_prog_compiler_static_CXX= - --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 --$as_echo_n "checking for $compiler option to produce PIC... " >&6; } - - # C++ specific cases for pic, static, wl, etc. - if test "$GXX" = yes; then -@@ -13706,6 +14462,11 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; } - ;; - esac - ;; -+ mingw* | cygwin* | os2* | pw32* | cegcc*) -+ # This hack is so that the source file can tell whether it is being -+ # built for inclusion in a dll (and should export symbols for example). -+ lt_prog_compiler_pic_CXX='-DDLL_EXPORT' -+ ;; - dgux*) - case $cc_basename in - ec++*) -@@ -13858,7 +14619,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; } - ;; - solaris*) - case $cc_basename in -- CC*) -+ CC* | sunCC*) - # Sun C++ 4.2, 5.x and Centerline C++ - lt_prog_compiler_pic_CXX='-KPIC' - lt_prog_compiler_static_CXX='-Bstatic' -@@ -13923,10 +14684,17 @@ case $host_os in - lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX -DPIC" - ;; - esac --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic_CXX" >&5 --$as_echo "$lt_prog_compiler_pic_CXX" >&6; } -- - -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 -+$as_echo_n "checking for $compiler option to produce PIC... " >&6; } -+if test "${lt_cv_prog_compiler_pic_CXX+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ lt_cv_prog_compiler_pic_CXX=$lt_prog_compiler_pic_CXX -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_CXX" >&5 -+$as_echo "$lt_cv_prog_compiler_pic_CXX" >&6; } -+lt_prog_compiler_pic_CXX=$lt_cv_prog_compiler_pic_CXX - - # - # Check to make sure the PIC flag actually works. -@@ -13984,6 +14752,8 @@ fi - - - -+ -+ - # - # Check to make sure the static flag actually works. - # -@@ -14161,6 +14931,7 @@ fi - $as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } - - export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' -+ exclude_expsyms_CXX='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' - case $host_os in - aix[4-9]*) - # If we're using GNU nm, then we don't want the "-C" option. -@@ -14175,15 +14946,20 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie - ;; - pw32*) - export_symbols_cmds_CXX="$ltdll_cmds" -- ;; -+ ;; - cygwin* | mingw* | cegcc*) -- export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;/^.*[ ]__nm__/s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' -- ;; -+ case $cc_basename in -+ cl*) ;; -+ *) -+ export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' -+ exclude_expsyms_CXX='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' -+ ;; -+ esac -+ ;; - *) - export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' -- ;; -+ ;; - esac -- exclude_expsyms_CXX='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5 - $as_echo "$ld_shlibs_CXX" >&6; } -@@ -14446,8 +15222,9 @@ cygwin* | mingw* | pw32* | cegcc*) - need_version=no - need_lib_prefix=no - -- case $GCC,$host_os in -- yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) -+ case $GCC,$cc_basename in -+ yes,*) -+ # gcc - library_names_spec='$libname.dll.a' - # DLL is installed to $(libdir)/../bin by postinstall_cmds - postinstall_cmds='base_file=`basename \${file}`~ -@@ -14479,13 +15256,71 @@ cygwin* | mingw* | pw32* | cegcc*) - library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - ;; - esac -+ dynamic_linker='Win32 ld.exe' -+ ;; -+ -+ *,cl*) -+ # Native MSVC -+ libname_spec='$name' -+ soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' -+ library_names_spec='${libname}.dll.lib' -+ -+ case $build_os in -+ mingw*) -+ sys_lib_search_path_spec= -+ lt_save_ifs=$IFS -+ IFS=';' -+ for lt_path in $LIB -+ do -+ IFS=$lt_save_ifs -+ # Let DOS variable expansion print the short 8.3 style file name. -+ lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` -+ sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" -+ done -+ IFS=$lt_save_ifs -+ # Convert to MSYS style. -+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` -+ ;; -+ cygwin*) -+ # Convert to unix form, then to dos form, then back to unix form -+ # but this time dos style (no spaces!) so that the unix form looks -+ # like /cygdrive/c/PROGRA~1:/cygdr... -+ sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` -+ sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` -+ sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` -+ ;; -+ *) -+ sys_lib_search_path_spec="$LIB" -+ if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then -+ # It is most probably a Windows format PATH. -+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` -+ else -+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` -+ fi -+ # FIXME: find the short name or the path components, as spaces are -+ # common. (e.g. "Program Files" -> "PROGRA~1") -+ ;; -+ esac -+ -+ # DLL is installed to $(libdir)/../bin by postinstall_cmds -+ postinstall_cmds='base_file=`basename \${file}`~ -+ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ -+ dldir=$destdir/`dirname \$dlpath`~ -+ test -d \$dldir || mkdir -p \$dldir~ -+ $install_prog $dir/$dlname \$dldir/$dlname' -+ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ -+ dlpath=$dir/\$dldll~ -+ $RM \$dlpath' -+ shlibpath_overrides_runpath=yes -+ dynamic_linker='Win32 link.exe' - ;; - - *) -+ # Assume MSVC wrapper - library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' -+ dynamic_linker='Win32 ld.exe' - ;; - esac -- dynamic_linker='Win32 ld.exe' - # FIXME: first we should search . and the directory the executable is in - shlibpath_var=PATH - ;; -@@ -14576,7 +15411,7 @@ haiku*) - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LIBRARY_PATH - shlibpath_overrides_runpath=yes -- sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/beos/system/lib' -+ sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' - hardcode_into_libs=yes - ;; - -@@ -15035,6 +15870,7 @@ fi - fi # test -n "$compiler" - - CC=$lt_save_CC -+ CFLAGS=$lt_save_CFLAGS - LDCXX=$LD - LD=$lt_save_LD - GCC=$lt_save_GCC -@@ -17807,13 +18643,20 @@ exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`' - lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`' - lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`' - lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`' -+lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`' -+lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`' - reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' - reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' - OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' - deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' - file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' -+file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`' -+want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`' -+DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' -+sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' - AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' - AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' -+archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`' - STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' - RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`' - old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`' -@@ -17828,14 +18671,17 @@ lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$de - lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`' - lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`' - lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`' -+nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`' -+lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`' - objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`' - MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`' - lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`' --lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' - lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`' -+lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' - lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`' - lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`' - need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`' -+MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`' - DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`' - NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`' - LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`' -@@ -17868,12 +18714,12 @@ hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_q - hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`' - inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`' - link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`' --fix_srcfile_path='`$ECHO "$fix_srcfile_path" | $SED "$delay_single_quote_subst"`' - always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`' - export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`' - exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`' - include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`' - prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`' -+postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`' - file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`' - variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`' - need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`' -@@ -17912,8 +18758,8 @@ old_archive_cmds_CXX='`$ECHO "$old_archive_cmds_CXX" | $SED "$delay_single_quote - compiler_CXX='`$ECHO "$compiler_CXX" | $SED "$delay_single_quote_subst"`' - GCC_CXX='`$ECHO "$GCC_CXX" | $SED "$delay_single_quote_subst"`' - lt_prog_compiler_no_builtin_flag_CXX='`$ECHO "$lt_prog_compiler_no_builtin_flag_CXX" | $SED "$delay_single_quote_subst"`' --lt_prog_compiler_wl_CXX='`$ECHO "$lt_prog_compiler_wl_CXX" | $SED "$delay_single_quote_subst"`' - lt_prog_compiler_pic_CXX='`$ECHO "$lt_prog_compiler_pic_CXX" | $SED "$delay_single_quote_subst"`' -+lt_prog_compiler_wl_CXX='`$ECHO "$lt_prog_compiler_wl_CXX" | $SED "$delay_single_quote_subst"`' - lt_prog_compiler_static_CXX='`$ECHO "$lt_prog_compiler_static_CXX" | $SED "$delay_single_quote_subst"`' - lt_cv_prog_compiler_c_o_CXX='`$ECHO "$lt_cv_prog_compiler_c_o_CXX" | $SED "$delay_single_quote_subst"`' - archive_cmds_need_lc_CXX='`$ECHO "$archive_cmds_need_lc_CXX" | $SED "$delay_single_quote_subst"`' -@@ -17940,12 +18786,12 @@ hardcode_shlibpath_var_CXX='`$ECHO "$hardcode_shlibpath_var_CXX" | $SED "$delay_ - hardcode_automatic_CXX='`$ECHO "$hardcode_automatic_CXX" | $SED "$delay_single_quote_subst"`' - inherit_rpath_CXX='`$ECHO "$inherit_rpath_CXX" | $SED "$delay_single_quote_subst"`' - link_all_deplibs_CXX='`$ECHO "$link_all_deplibs_CXX" | $SED "$delay_single_quote_subst"`' --fix_srcfile_path_CXX='`$ECHO "$fix_srcfile_path_CXX" | $SED "$delay_single_quote_subst"`' - always_export_symbols_CXX='`$ECHO "$always_export_symbols_CXX" | $SED "$delay_single_quote_subst"`' - export_symbols_cmds_CXX='`$ECHO "$export_symbols_cmds_CXX" | $SED "$delay_single_quote_subst"`' - exclude_expsyms_CXX='`$ECHO "$exclude_expsyms_CXX" | $SED "$delay_single_quote_subst"`' - include_expsyms_CXX='`$ECHO "$include_expsyms_CXX" | $SED "$delay_single_quote_subst"`' - prelink_cmds_CXX='`$ECHO "$prelink_cmds_CXX" | $SED "$delay_single_quote_subst"`' -+postlink_cmds_CXX='`$ECHO "$postlink_cmds_CXX" | $SED "$delay_single_quote_subst"`' - file_list_spec_CXX='`$ECHO "$file_list_spec_CXX" | $SED "$delay_single_quote_subst"`' - hardcode_action_CXX='`$ECHO "$hardcode_action_CXX" | $SED "$delay_single_quote_subst"`' - compiler_lib_search_dirs_CXX='`$ECHO "$compiler_lib_search_dirs_CXX" | $SED "$delay_single_quote_subst"`' -@@ -17983,8 +18829,13 @@ reload_flag \ - OBJDUMP \ - deplibs_check_method \ - file_magic_cmd \ -+file_magic_glob \ -+want_nocaseglob \ -+DLLTOOL \ -+sharedlib_from_linklib_cmd \ - AR \ - AR_FLAGS \ -+archiver_list_spec \ - STRIP \ - RANLIB \ - CC \ -@@ -17994,12 +18845,14 @@ lt_cv_sys_global_symbol_pipe \ - lt_cv_sys_global_symbol_to_cdecl \ - lt_cv_sys_global_symbol_to_c_name_address \ - lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ -+nm_file_list_spec \ - lt_prog_compiler_no_builtin_flag \ --lt_prog_compiler_wl \ - lt_prog_compiler_pic \ -+lt_prog_compiler_wl \ - lt_prog_compiler_static \ - lt_cv_prog_compiler_c_o \ - need_locks \ -+MANIFEST_TOOL \ - DSYMUTIL \ - NMEDIT \ - LIPO \ -@@ -18015,7 +18868,6 @@ no_undefined_flag \ - hardcode_libdir_flag_spec \ - hardcode_libdir_flag_spec_ld \ - hardcode_libdir_separator \ --fix_srcfile_path \ - exclude_expsyms \ - include_expsyms \ - file_list_spec \ -@@ -18037,8 +18889,8 @@ LD_CXX \ - reload_flag_CXX \ - compiler_CXX \ - lt_prog_compiler_no_builtin_flag_CXX \ --lt_prog_compiler_wl_CXX \ - lt_prog_compiler_pic_CXX \ -+lt_prog_compiler_wl_CXX \ - lt_prog_compiler_static_CXX \ - lt_cv_prog_compiler_c_o_CXX \ - export_dynamic_flag_spec_CXX \ -@@ -18050,7 +18902,6 @@ no_undefined_flag_CXX \ - hardcode_libdir_flag_spec_CXX \ - hardcode_libdir_flag_spec_ld_CXX \ - hardcode_libdir_separator_CXX \ --fix_srcfile_path_CXX \ - exclude_expsyms_CXX \ - include_expsyms_CXX \ - file_list_spec_CXX \ -@@ -18084,6 +18935,7 @@ module_cmds \ - module_expsym_cmds \ - export_symbols_cmds \ - prelink_cmds \ -+postlink_cmds \ - postinstall_cmds \ - postuninstall_cmds \ - finish_cmds \ -@@ -18098,7 +18950,8 @@ archive_expsym_cmds_CXX \ - module_cmds_CXX \ - module_expsym_cmds_CXX \ - export_symbols_cmds_CXX \ --prelink_cmds_CXX; do -+prelink_cmds_CXX \ -+postlink_cmds_CXX; do - case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in - *[\\\\\\\`\\"\\\$]*) - eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" -@@ -18891,7 +19744,8 @@ $as_echo X"$file" | - # NOTE: Changes made to this file will be lost: look at ltmain.sh. - # - # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, --# 2006, 2007, 2008, 2009 Free Software Foundation, Inc. -+# 2006, 2007, 2008, 2009, 2010 Free Software Foundation, -+# Inc. - # Written by Gordon Matzigkeit, 1996 - # - # This file is part of GNU Libtool. -@@ -18994,19 +19848,42 @@ SP2NL=$lt_lt_SP2NL - # turn newlines into spaces. - NL2SP=$lt_lt_NL2SP - -+# convert \$build file names to \$host format. -+to_host_file_cmd=$lt_cv_to_host_file_cmd -+ -+# convert \$build files to toolchain format. -+to_tool_file_cmd=$lt_cv_to_tool_file_cmd -+ - # An object symbol dumper. - OBJDUMP=$lt_OBJDUMP - - # Method to check whether dependent libraries are shared objects. - deplibs_check_method=$lt_deplibs_check_method - --# Command to use when deplibs_check_method == "file_magic". -+# Command to use when deplibs_check_method = "file_magic". - file_magic_cmd=$lt_file_magic_cmd - -+# How to find potential files when deplibs_check_method = "file_magic". -+file_magic_glob=$lt_file_magic_glob -+ -+# Find potential files using nocaseglob when deplibs_check_method = "file_magic". -+want_nocaseglob=$lt_want_nocaseglob -+ -+# DLL creation program. -+DLLTOOL=$lt_DLLTOOL -+ -+# Command to associate shared and link libraries. -+sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd -+ - # The archiver. - AR=$lt_AR -+ -+# Flags to create an archive. - AR_FLAGS=$lt_AR_FLAGS - -+# How to feed a file listing to the archiver. -+archiver_list_spec=$lt_archiver_list_spec -+ - # A symbol stripping program. - STRIP=$lt_STRIP - -@@ -19036,6 +19913,12 @@ global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address - # Transform the output of nm in a C name address pair when lib prefix is needed. - global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix - -+# Specify filename containing input files for \$NM. -+nm_file_list_spec=$lt_nm_file_list_spec -+ -+# The root where to search for dependent libraries,and in which our libraries should be installed. -+lt_sysroot=$lt_sysroot -+ - # The name of the directory that contains temporary libtool files. - objdir=$objdir - -@@ -19045,6 +19928,9 @@ MAGIC_CMD=$MAGIC_CMD - # Must we lock files when doing compilation? - need_locks=$lt_need_locks - -+# Manifest tool. -+MANIFEST_TOOL=$lt_MANIFEST_TOOL -+ - # Tool to manipulate archived DWARF debug symbol files on Mac OS X. - DSYMUTIL=$lt_DSYMUTIL - -@@ -19159,12 +20045,12 @@ with_gcc=$GCC - # Compiler flag to turn off builtin functions. - no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag - --# How to pass a linker flag through the compiler. --wl=$lt_lt_prog_compiler_wl -- - # Additional compiler flags for building library objects. - pic_flag=$lt_lt_prog_compiler_pic - -+# How to pass a linker flag through the compiler. -+wl=$lt_lt_prog_compiler_wl -+ - # Compiler flag to prevent dynamic linking. - link_static_flag=$lt_lt_prog_compiler_static - -@@ -19251,9 +20137,6 @@ inherit_rpath=$inherit_rpath - # Whether libtool must link a program against all its dependency libraries. - link_all_deplibs=$link_all_deplibs - --# Fix the shell variable \$srcfile for the compiler. --fix_srcfile_path=$lt_fix_srcfile_path -- - # Set to "yes" if exported symbols are required. - always_export_symbols=$always_export_symbols - -@@ -19269,6 +20152,9 @@ include_expsyms=$lt_include_expsyms - # Commands necessary for linking programs (against libraries) with templates. - prelink_cmds=$lt_prelink_cmds - -+# Commands necessary for finishing linking programs. -+postlink_cmds=$lt_postlink_cmds -+ - # Specify filename containing input files. - file_list_spec=$lt_file_list_spec - -@@ -19315,210 +20201,169 @@ ltmain="$ac_aux_dir/ltmain.sh" - # if finds mixed CR/LF and LF-only lines. Since sed operates in - # text mode, it properly converts lines to CR/LF. This bash problem - # is reportedly fixed, but why not run on old versions too? -- sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ -- || (rm -f "$cfgfile"; exit 1) -- -- case $xsi_shell in -- yes) -- cat << \_LT_EOF >> "$cfgfile" -- --# func_dirname file append nondir_replacement --# Compute the dirname of FILE. If nonempty, add APPEND to the result, --# otherwise set result to NONDIR_REPLACEMENT. --func_dirname () --{ -- case ${1} in -- */*) func_dirname_result="${1%/*}${2}" ;; -- * ) func_dirname_result="${3}" ;; -- esac --} -- --# func_basename file --func_basename () --{ -- func_basename_result="${1##*/}" --} -- --# func_dirname_and_basename file append nondir_replacement --# perform func_basename and func_dirname in a single function --# call: --# dirname: Compute the dirname of FILE. If nonempty, --# add APPEND to the result, otherwise set result --# to NONDIR_REPLACEMENT. --# value returned in "$func_dirname_result" --# basename: Compute filename of FILE. --# value retuned in "$func_basename_result" --# Implementation must be kept synchronized with func_dirname --# and func_basename. For efficiency, we do not delegate to --# those functions but instead duplicate the functionality here. --func_dirname_and_basename () --{ -- case ${1} in -- */*) func_dirname_result="${1%/*}${2}" ;; -- * ) func_dirname_result="${3}" ;; -- esac -- func_basename_result="${1##*/}" --} -- --# func_stripname prefix suffix name --# strip PREFIX and SUFFIX off of NAME. --# PREFIX and SUFFIX must not contain globbing or regex special --# characters, hashes, percent signs, but SUFFIX may contain a leading --# dot (in which case that matches only a dot). --func_stripname () --{ -- # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are -- # positional parameters, so assign one to ordinary parameter first. -- func_stripname_result=${3} -- func_stripname_result=${func_stripname_result#"${1}"} -- func_stripname_result=${func_stripname_result%"${2}"} --} -- --# func_opt_split --func_opt_split () --{ -- func_opt_split_opt=${1%%=*} -- func_opt_split_arg=${1#*=} --} -- --# func_lo2o object --func_lo2o () --{ -- case ${1} in -- *.lo) func_lo2o_result=${1%.lo}.${objext} ;; -- *) func_lo2o_result=${1} ;; -- esac --} -- --# func_xform libobj-or-source --func_xform () --{ -- func_xform_result=${1%.*}.lo --} -- --# func_arith arithmetic-term... --func_arith () --{ -- func_arith_result=$(( $* )) --} -- --# func_len string --# STRING may not start with a hyphen. --func_len () --{ -- func_len_result=${#1} --} -- --_LT_EOF -- ;; -- *) # Bourne compatible functions. -- cat << \_LT_EOF >> "$cfgfile" -- --# func_dirname file append nondir_replacement --# Compute the dirname of FILE. If nonempty, add APPEND to the result, --# otherwise set result to NONDIR_REPLACEMENT. --func_dirname () --{ -- # Extract subdirectory from the argument. -- func_dirname_result=`$ECHO "${1}" | $SED "$dirname"` -- if test "X$func_dirname_result" = "X${1}"; then -- func_dirname_result="${3}" -- else -- func_dirname_result="$func_dirname_result${2}" -- fi --} -- --# func_basename file --func_basename () --{ -- func_basename_result=`$ECHO "${1}" | $SED "$basename"` --} -- -- --# func_stripname prefix suffix name --# strip PREFIX and SUFFIX off of NAME. --# PREFIX and SUFFIX must not contain globbing or regex special --# characters, hashes, percent signs, but SUFFIX may contain a leading --# dot (in which case that matches only a dot). --# func_strip_suffix prefix name --func_stripname () --{ -- case ${2} in -- .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; -- *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; -- esac --} -- --# sed scripts: --my_sed_long_opt='1s/^\(-[^=]*\)=.*/\1/;q' --my_sed_long_arg='1s/^-[^=]*=//' -- --# func_opt_split --func_opt_split () --{ -- func_opt_split_opt=`$ECHO "${1}" | $SED "$my_sed_long_opt"` -- func_opt_split_arg=`$ECHO "${1}" | $SED "$my_sed_long_arg"` --} -- --# func_lo2o object --func_lo2o () --{ -- func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"` --} -- --# func_xform libobj-or-source --func_xform () --{ -- func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'` --} -- --# func_arith arithmetic-term... --func_arith () --{ -- func_arith_result=`expr "$@"` --} -- --# func_len string --# STRING may not start with a hyphen. --func_len () --{ -- func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len` --} -- --_LT_EOF --esac -- --case $lt_shell_append in -- yes) -- cat << \_LT_EOF >> "$cfgfile" -- --# func_append var value --# Append VALUE to the end of shell variable VAR. --func_append () --{ -- eval "$1+=\$2" --} --_LT_EOF -- ;; -- *) -- cat << \_LT_EOF >> "$cfgfile" -- --# func_append var value --# Append VALUE to the end of shell variable VAR. --func_append () --{ -- eval "$1=\$$1\$2" --} -- --_LT_EOF -- ;; -- esac -- -- -- sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ -- || (rm -f "$cfgfile"; exit 1) -- -- mv -f "$cfgfile" "$ofile" || -+ sed '$q' "$ltmain" >> "$cfgfile" \ -+ || (rm -f "$cfgfile"; exit 1) -+ -+ if test x"$xsi_shell" = xyes; then -+ sed -e '/^func_dirname ()$/,/^} # func_dirname /c\ -+func_dirname ()\ -+{\ -+\ case ${1} in\ -+\ */*) func_dirname_result="${1%/*}${2}" ;;\ -+\ * ) func_dirname_result="${3}" ;;\ -+\ esac\ -+} # Extended-shell func_dirname implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_basename ()$/,/^} # func_basename /c\ -+func_basename ()\ -+{\ -+\ func_basename_result="${1##*/}"\ -+} # Extended-shell func_basename implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_dirname_and_basename ()$/,/^} # func_dirname_and_basename /c\ -+func_dirname_and_basename ()\ -+{\ -+\ case ${1} in\ -+\ */*) func_dirname_result="${1%/*}${2}" ;;\ -+\ * ) func_dirname_result="${3}" ;;\ -+\ esac\ -+\ func_basename_result="${1##*/}"\ -+} # Extended-shell func_dirname_and_basename implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_stripname ()$/,/^} # func_stripname /c\ -+func_stripname ()\ -+{\ -+\ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are\ -+\ # positional parameters, so assign one to ordinary parameter first.\ -+\ func_stripname_result=${3}\ -+\ func_stripname_result=${func_stripname_result#"${1}"}\ -+\ func_stripname_result=${func_stripname_result%"${2}"}\ -+} # Extended-shell func_stripname implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_split_long_opt ()$/,/^} # func_split_long_opt /c\ -+func_split_long_opt ()\ -+{\ -+\ func_split_long_opt_name=${1%%=*}\ -+\ func_split_long_opt_arg=${1#*=}\ -+} # Extended-shell func_split_long_opt implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_split_short_opt ()$/,/^} # func_split_short_opt /c\ -+func_split_short_opt ()\ -+{\ -+\ func_split_short_opt_arg=${1#??}\ -+\ func_split_short_opt_name=${1%"$func_split_short_opt_arg"}\ -+} # Extended-shell func_split_short_opt implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_lo2o ()$/,/^} # func_lo2o /c\ -+func_lo2o ()\ -+{\ -+\ case ${1} in\ -+\ *.lo) func_lo2o_result=${1%.lo}.${objext} ;;\ -+\ *) func_lo2o_result=${1} ;;\ -+\ esac\ -+} # Extended-shell func_lo2o implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_xform ()$/,/^} # func_xform /c\ -+func_xform ()\ -+{\ -+ func_xform_result=${1%.*}.lo\ -+} # Extended-shell func_xform implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_arith ()$/,/^} # func_arith /c\ -+func_arith ()\ -+{\ -+ func_arith_result=$(( $* ))\ -+} # Extended-shell func_arith implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_len ()$/,/^} # func_len /c\ -+func_len ()\ -+{\ -+ func_len_result=${#1}\ -+} # Extended-shell func_len implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+fi -+ -+if test x"$lt_shell_append" = xyes; then -+ sed -e '/^func_append ()$/,/^} # func_append /c\ -+func_append ()\ -+{\ -+ eval "${1}+=\\${2}"\ -+} # Extended-shell func_append implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_append_quoted ()$/,/^} # func_append_quoted /c\ -+func_append_quoted ()\ -+{\ -+\ func_quote_for_eval "${2}"\ -+\ eval "${1}+=\\\\ \\$func_quote_for_eval_result"\ -+} # Extended-shell func_append_quoted implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ # Save a `func_append' function call where possible by direct use of '+=' -+ sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+ test 0 -eq $? || _lt_function_replace_fail=: -+else -+ # Save a `func_append' function call even when '+=' is not available -+ sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+ test 0 -eq $? || _lt_function_replace_fail=: -+fi -+ -+if test x"$_lt_function_replace_fail" = x":"; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5 -+$as_echo "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;} -+fi -+ -+ -+ mv -f "$cfgfile" "$ofile" || - (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") - chmod +x "$ofile" - -@@ -19546,12 +20391,12 @@ with_gcc=$GCC_CXX - # Compiler flag to turn off builtin functions. - no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX - --# How to pass a linker flag through the compiler. --wl=$lt_lt_prog_compiler_wl_CXX -- - # Additional compiler flags for building library objects. - pic_flag=$lt_lt_prog_compiler_pic_CXX - -+# How to pass a linker flag through the compiler. -+wl=$lt_lt_prog_compiler_wl_CXX -+ - # Compiler flag to prevent dynamic linking. - link_static_flag=$lt_lt_prog_compiler_static_CXX - -@@ -19638,9 +20483,6 @@ inherit_rpath=$inherit_rpath_CXX - # Whether libtool must link a program against all its dependency libraries. - link_all_deplibs=$link_all_deplibs_CXX - --# Fix the shell variable \$srcfile for the compiler. --fix_srcfile_path=$lt_fix_srcfile_path_CXX -- - # Set to "yes" if exported symbols are required. - always_export_symbols=$always_export_symbols_CXX - -@@ -19656,6 +20498,9 @@ include_expsyms=$lt_include_expsyms_CXX - # Commands necessary for linking programs (against libraries) with templates. - prelink_cmds=$lt_prelink_cmds_CXX - -+# Commands necessary for finishing linking programs. -+postlink_cmds=$lt_postlink_cmds_CXX -+ - # Specify filename containing input files. - file_list_spec=$lt_file_list_spec_CXX - -Index: binutils-2.24/bfd/configure.ac -=================================================================== ---- binutils-2.24.orig/bfd/configure.ac 2013-12-02 01:30:28.000000000 -0800 -+++ binutils-2.24/bfd/configure.ac 2013-12-15 11:10:23.887118697 -0800 -@@ -568,7 +568,7 @@ - x=`sed -n -e 's/^[ ]*PICFLAG[ ]*=[ ]*//p' < ../libiberty/Makefile | sed -n '$p'` - changequote([,])dnl - if test -n "$x"; then -- SHARED_LIBADD="-L`pwd`/../libiberty/pic -liberty" -+ SHARED_LIBADD="`pwd`/../libiberty/pic/libiberty.a" - fi - - # More hacks to build DLLs on Windows. -Index: binutils-2.24/opcodes/configure.ac -=================================================================== ---- binutils-2.24.orig/opcodes/configure.ac 2013-11-04 07:33:40.000000000 -0800 -+++ binutils-2.24/opcodes/configure.ac 2013-12-15 11:10:23.887118697 -0800 -@@ -162,7 +162,7 @@ - x=`sed -n -e 's/^[ ]*PICFLAG[ ]*=[ ]*//p' < ../libiberty/Makefile | sed -n '$p'` - changequote([,])dnl - if test -n "$x"; then -- SHARED_LIBADD="-L`pwd`/../libiberty/pic -liberty" -+ SHARED_LIBADD="`pwd`/../libiberty/pic/libiberty.a" - fi - - case "${host}" in diff --git a/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.25/libtool-rpath-fix.patch b/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.25/libtool-rpath-fix.patch deleted file mode 100644 index 52409108..00000000 --- a/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.25/libtool-rpath-fix.patch +++ /dev/null @@ -1,39 +0,0 @@ -Upstream-Status: Inappropriate [embedded specific] - -Enabling sysroot support in libtool exposed a bug where the final -library had an RPATH encoded into it which still pointed to the -sysroot. This works around the issue until it gets sorted out -upstream. - -Fix suggested by Richard Purdie <richard.purdie@linuxfoundation.org> -Signed-off-by: Scott Garman <scott.a.garman@intel.com> - -Forward ported to 2.25 by Koen Kooi <koen.kooi@linaro.org> - --- -diff --git a/ltmain.sh b/ltmain.sh -index 9503ec8..639f201 100644 ---- a/ltmain.sh -+++ b/ltmain.sh -@@ -7104,6 +7104,10 @@ EOF - test "$mode" != relink && rpath="$compile_rpath$rpath" - for libdir in $rpath; do - if test -n "$hardcode_libdir_flag_spec"; then -+ func_replace_sysroot "$libdir" -+ libdir=$func_replace_sysroot_result -+ func_stripname '=' '' "$libdir" -+ libdir=$func_stripname_result - if test -n "$hardcode_libdir_separator"; then - if test -z "$hardcode_libdirs"; then - hardcode_libdirs="$libdir" -@@ -7799,6 +7803,10 @@ EOF - hardcode_libdirs= - for libdir in $compile_rpath $finalize_rpath; do - if test -n "$hardcode_libdir_flag_spec"; then -+ func_replace_sysroot "$libdir" -+ libdir=$func_replace_sysroot_result -+ func_stripname '=' '' "$libdir" -+ libdir=$func_stripname_result - if test -n "$hardcode_libdir_separator"; then - if test -z "$hardcode_libdirs"; then - hardcode_libdirs="$libdir" diff --git a/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.25/relocatable_sdk.patch b/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.25/relocatable_sdk.patch deleted file mode 100644 index 7408c31a..00000000 --- a/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.25/relocatable_sdk.patch +++ /dev/null @@ -1,49 +0,0 @@ -Upstream-Status: Inappropriate [SDK specific] - -This patch will modify the ELF linker scripts so that the crosssdk linker will -generate binaries with a 4096 bytes PT_INTERP section. When the binaries will -be relocated, at SDK install time, the interpreter path can be easily changed -by the relocating script. - -Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com> - -Index: binutils_git/ld/genscripts.sh -=================================================================== ---- binutils_git.orig/ld/genscripts.sh 2012-11-21 11:58:23.325441925 +0200 -+++ binutils_git/ld/genscripts.sh 2012-11-21 12:03:42.106815400 +0200 -@@ -290,6 +290,7 @@ - LD_FLAG=r - DATA_ALIGNMENT=${DATA_ALIGNMENT_r} - DEFAULT_DATA_ALIGNMENT="ALIGN(${SEGMENT_SIZE})" -+PARTIAL_LINKING=" " - ( echo "/* Script for ld -r: link without relocation */" - . ${CUSTOMIZER_SCRIPT} - . ${srcdir}/scripttempl/${SCRIPT_NAME}.sc -@@ -298,10 +299,12 @@ - LD_FLAG=u - DATA_ALIGNMENT=${DATA_ALIGNMENT_u} - CONSTRUCTING=" " -+PARTIAL_LINKING=" " - ( echo "/* Script for ld -Ur: link w/out relocation, do create constructors */" - . ${CUSTOMIZER_SCRIPT} - . ${srcdir}/scripttempl/${SCRIPT_NAME}.sc - ) | sed -e '/^ *$/d;s/[ ]*$//' > ldscripts/${EMULATION_NAME}.xu -+unset PARTIAL_LINKING - - LD_FLAG= - DATA_ALIGNMENT=${DATA_ALIGNMENT_} -Index: binutils_git/ld/scripttempl/elf.sc -=================================================================== ---- binutils_git.orig/ld/scripttempl/elf.sc 2012-11-21 12:02:26.800377384 +0200 -+++ binutils_git/ld/scripttempl/elf.sc 2012-11-21 12:04:16.166109621 +0200 -@@ -124,8 +124,8 @@ - DATA_SEGMENT_END=". = DATA_SEGMENT_END (.);" - DATA_SEGMENT_RELRO_END=". = DATA_SEGMENT_RELRO_END (${SEPARATE_GOTPLT-0}, .);" - fi --if test -z "${INITIAL_READONLY_SECTIONS}${CREATE_SHLIB}"; then -- INITIAL_READONLY_SECTIONS=".interp ${RELOCATING-0} : { *(.interp) }" -+if test -z "${INITIAL_READONLY_SECTIONS}${CREATE_SHLIB}${PARTIAL_LINKING}"; then -+ INITIAL_READONLY_SECTIONS=".interp ${RELOCATING-0} : { *(.interp); . = 0x1000; }" - fi - if test -z "$PLT"; then - IPLT=".iplt ${RELOCATING-0} : { *(.iplt) }" diff --git a/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.25/replace_macros_with_static_inline.patch b/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.25/replace_macros_with_static_inline.patch deleted file mode 100644 index 834f55cf..00000000 --- a/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.25/replace_macros_with_static_inline.patch +++ /dev/null @@ -1,188 +0,0 @@ -Upstream-Status: Backport - -From 27b829ee701e29804216b3803fbaeb629be27491 Mon Sep 17 00:00:00 2001 -From: Nick Clifton <nickc@redhat.com> -Date: Wed, 29 Jan 2014 13:46:39 +0000 -Subject: [PATCH 1/1] Following up on Tom's suggestion I am checking in a patch to replace the various - bfd_xxx_set macros with static inline functions, so that we can avoid compile time - warnings about comma expressions with unused values. - - * bfd-in.h (bfd_set_section_vma): Delete. - (bfd_set_section_alignment): Delete. - (bfd_set_section_userdata): Delete. - (bfd_set_cacheable): Delete. - * bfd.c (bfd_set_cacheable): New static inline function. - * section.c (bfd_set_section_userdata): Likewise. - (bfd_set_section_vma): Likewise. - (bfd_set_section_alignment): Likewise. - * bfd-in2.h: Regenerate. ---- - bfd/ChangeLog | 12 ++++++++++++ - bfd/bfd-in.h | 5 ----- - bfd/bfd-in2.h | 41 +++++++++++++++++++++++++++++++++++------ - bfd/bfd.c | 8 ++++++++ - bfd/section.c | 26 ++++++++++++++++++++++++++ - 5 files changed, 81 insertions(+), 11 deletions(-) - -diff --git a/bfd/bfd-in.h b/bfd/bfd-in.h -index 3afd71b..c7c5a7d 100644 ---- a/bfd/bfd-in.h -+++ b/bfd/bfd-in.h -@@ -292,9 +292,6 @@ typedef struct bfd_section *sec_ptr; - - #define bfd_is_com_section(ptr) (((ptr)->flags & SEC_IS_COMMON) != 0) - --#define bfd_set_section_vma(bfd, ptr, val) (((ptr)->vma = (ptr)->lma = (val)), ((ptr)->user_set_vma = TRUE), TRUE) --#define bfd_set_section_alignment(bfd, ptr, val) (((ptr)->alignment_power = (val)),TRUE) --#define bfd_set_section_userdata(bfd, ptr, val) (((ptr)->userdata = (val)),TRUE) - /* Find the address one past the end of SEC. */ - #define bfd_get_section_limit(bfd, sec) \ - (((bfd)->direction != write_direction && (sec)->rawsize != 0 \ -@@ -517,8 +514,6 @@ extern void warn_deprecated (const char *, const char *, int, const char *); - - #define bfd_get_symbol_leading_char(abfd) ((abfd)->xvec->symbol_leading_char) - --#define bfd_set_cacheable(abfd,bool) (((abfd)->cacheable = bool), TRUE) -- - extern bfd_boolean bfd_cache_close - (bfd *abfd); - /* NB: This declaration should match the autogenerated one in libbfd.h. */ -diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h -index 71996db..b5aeb40 100644 ---- a/bfd/bfd-in2.h -+++ b/bfd/bfd-in2.h -@@ -299,9 +299,6 @@ typedef struct bfd_section *sec_ptr; - - #define bfd_is_com_section(ptr) (((ptr)->flags & SEC_IS_COMMON) != 0) - --#define bfd_set_section_vma(bfd, ptr, val) (((ptr)->vma = (ptr)->lma = (val)), ((ptr)->user_set_vma = TRUE), TRUE) --#define bfd_set_section_alignment(bfd, ptr, val) (((ptr)->alignment_power = (val)),TRUE) --#define bfd_set_section_userdata(bfd, ptr, val) (((ptr)->userdata = (val)),TRUE) - /* Find the address one past the end of SEC. */ - #define bfd_get_section_limit(bfd, sec) \ - (((bfd)->direction != write_direction && (sec)->rawsize != 0 \ -@@ -524,8 +521,6 @@ extern void warn_deprecated (const char *, const char *, int, const char *); - - #define bfd_get_symbol_leading_char(abfd) ((abfd)->xvec->symbol_leading_char) - --#define bfd_set_cacheable(abfd,bool) (((abfd)->cacheable = bool), TRUE) -- - extern bfd_boolean bfd_cache_close - (bfd *abfd); - /* NB: This declaration should match the autogenerated one in libbfd.h. */ -@@ -1029,7 +1024,7 @@ bfd *bfd_openr (const char *filename, const char *target); - - bfd *bfd_fdopenr (const char *filename, const char *target, int fd); - --bfd *bfd_openstreamr (const char *, const char *, void *); -+bfd *bfd_openstreamr (const char * filename, const char * target, void * stream); - - bfd *bfd_openr_iovec (const char *filename, const char *target, - void *(*open_func) (struct bfd *nbfd, -@@ -1596,6 +1591,32 @@ struct relax_table { - int size; - }; - -+/* Note: the following are provided as inline functions rather than macros -+ because not all callers use the return value. A macro implementation -+ would use a comma expression, eg: "((ptr)->foo = val, TRUE)" and some -+ compilers will complain about comma expressions that have no effect. */ -+static inline bfd_boolean -+bfd_set_section_userdata (bfd * abfd ATTRIBUTE_UNUSED, asection * ptr, void * val) -+{ -+ ptr->userdata = val; -+ return TRUE; -+} -+ -+static inline bfd_boolean -+bfd_set_section_vma (bfd * abfd ATTRIBUTE_UNUSED, asection * ptr, bfd_vma val) -+{ -+ ptr->vma = ptr->lma = val; -+ ptr->user_set_vma = TRUE; -+ return TRUE; -+} -+ -+static inline bfd_boolean -+bfd_set_section_alignment (bfd * abfd ATTRIBUTE_UNUSED, asection * ptr, unsigned int val) -+{ -+ ptr->alignment_power = val; -+ return TRUE; -+} -+ - /* These sections are global, and are managed by BFD. The application - and target back end are not permitted to change the values in - these sections. */ -@@ -6415,6 +6436,14 @@ struct bfd - unsigned int selective_search : 1; - }; - -+/* See note beside bfd_set_section_userdata. */ -+static inline bfd_boolean -+bfd_set_cacheable (bfd * abfd, bfd_boolean val) -+{ -+ abfd->cacheable = val; -+ return TRUE; -+} -+ - typedef enum bfd_error - { - bfd_error_no_error = 0, -diff --git a/bfd/bfd.c b/bfd/bfd.c -index 8d0580c..2d174f3 100644 ---- a/bfd/bfd.c -+++ b/bfd/bfd.c -@@ -311,6 +311,14 @@ CODE_FRAGMENT - . unsigned int selective_search : 1; - .}; - . -+.{* See note beside bfd_set_section_userdata. *} -+.static inline bfd_boolean -+.bfd_set_cacheable (bfd * abfd, bfd_boolean val) -+.{ -+. abfd->cacheable = val; -+. return TRUE; -+.} -+. - */ - - #include "sysdep.h" -diff --git a/bfd/section.c b/bfd/section.c -index fb19d8c..a661228 100644 ---- a/bfd/section.c -+++ b/bfd/section.c -@@ -542,6 +542,32 @@ CODE_FRAGMENT - . int size; - .}; - . -+.{* Note: the following are provided as inline functions rather than macros -+. because not all callers use the return value. A macro implementation -+. would use a comma expression, eg: "((ptr)->foo = val, TRUE)" and some -+. compilers will complain about comma expressions that have no effect. *} -+.static inline bfd_boolean -+.bfd_set_section_userdata (bfd * abfd ATTRIBUTE_UNUSED, asection * ptr, void * val) -+.{ -+. ptr->userdata = val; -+. return TRUE; -+.} -+. -+.static inline bfd_boolean -+.bfd_set_section_vma (bfd * abfd ATTRIBUTE_UNUSED, asection * ptr, bfd_vma val) -+.{ -+. ptr->vma = ptr->lma = val; -+. ptr->user_set_vma = TRUE; -+. return TRUE; -+.} -+. -+.static inline bfd_boolean -+.bfd_set_section_alignment (bfd * abfd ATTRIBUTE_UNUSED, asection * ptr, unsigned int val) -+.{ -+. ptr->alignment_power = val; -+. return TRUE; -+.} -+. - .{* These sections are global, and are managed by BFD. The application - . and target back end are not permitted to change the values in - . these sections. *} --- -1.7.1 - diff --git a/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.27.inc b/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.27.inc deleted file mode 100644 index f7a79925..00000000 --- a/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.27.inc +++ /dev/null @@ -1,41 +0,0 @@ -BPV = "2.27.0" -MMYY = "16.10" -RELEASE = "20${MMYY}" -PR = "r20${MMYY}" - -LIC_FILES_CHKSUM="\ - file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552\ - file://COPYING.LIB;md5=9f604d8a4f8e74f4f5140845a21b6674\ - file://COPYING3;md5=d32239bcb673463ab874e80d47fae504\ - file://COPYING3.LIB;md5=6a6a8e020838b23406c81b19c1d46df6\ - file://gas/COPYING;md5=d32239bcb673463ab874e80d47fae504\ - file://include/COPYING;md5=59530bdf33659b29e73d4adb9f9f6552\ - file://include/COPYING3;md5=d32239bcb673463ab874e80d47fae504\ - file://libiberty/COPYING.LIB;md5=a916467b91076e631dd8edb7424769c7\ - file://bfd/COPYING;md5=d32239bcb673463ab874e80d47fae504\ - " - -SRCREV = "5fe53ce37f9d9dd544ec8cc9e2863b68e1a61f4c" -SRC_URI = "\ - git://git.linaro.org/toolchain/binutils-gdb.git;protocol=https;branch=linaro_binutils-2_27-branch \ - file://0002-configure-widen-the-regexp-for-SH-architectures.patch \ - file://0003-Point-scripts-location-to-libdir.patch \ - file://0004-Only-generate-an-RPATH-entry-if-LD_RUN_PATH-is-not-e.patch \ - file://0005-Explicitly-link-with-libm-on-uclibc.patch \ - file://0006-Use-libtool-2.4.patch \ - file://0007-Add-the-armv5e-architecture-to-binutils.patch \ - file://0008-don-t-let-the-distro-compiler-point-to-the-wrong-ins.patch \ - file://0009-warn-for-uses-of-system-directories-when-cross-linki.patch \ - file://0010-Fix-rpath-in-libtool-when-sysroot-is-enabled.patch \ - file://0011-Change-default-emulation-for-mips64-linux.patch \ - file://0012-Add-support-for-Netlogic-XLP.patch \ - file://0013-fix-the-incorrect-assembling-for-ppc-wait-mnemonic.patch \ - file://0014-libtool-remove-rpath.patch \ - file://0015-binutils-mips-gas-pic-relax-linkonce.diff \ - file://0015-Refine-.cfi_sections-check-to-only-consider-compact-.patch \ -" -S = "${WORKDIR}/git" - -do_configure_prepend () { - rm -rf ${S}/gdb ${S}/libdecnumber ${S}/readline ${S}/sim -} diff --git a/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.27/0001-Generate-relocatable-SDKs.patch b/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.27/0001-Generate-relocatable-SDKs.patch deleted file mode 100644 index cad704a7..00000000 --- a/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.27/0001-Generate-relocatable-SDKs.patch +++ /dev/null @@ -1,62 +0,0 @@ -From 2dae6b137ce609fd008f2063034a4403d95484c5 Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Mon, 2 Mar 2015 01:58:54 +0000 -Subject: [PATCH 01/13] Generate relocatable SDKs - -This patch will modify the ELF linker scripts so that the crosssdk -linker will generate binaries with a 4096 bytes PT_INTERP section. When the binaries -will be relocated, at SDK install time, the interpreter path can be easily -changed by the relocating script. - -Upstream-Status: Inappropriate [SDK specific] - -Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com> -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - ld/genscripts.sh | 3 +++ - ld/scripttempl/elf.sc | 4 ++-- - 2 files changed, 5 insertions(+), 2 deletions(-) - -diff --git a/ld/genscripts.sh b/ld/genscripts.sh -index eb262e7..1a3b8bc 100755 ---- a/ld/genscripts.sh -+++ b/ld/genscripts.sh -@@ -277,6 +277,7 @@ DATA_ALIGNMENT_u="${DATA_ALIGNMENT_u-${DATA_ALIGNMENT_r}}" - LD_FLAG=r - DATA_ALIGNMENT=${DATA_ALIGNMENT_r} - DEFAULT_DATA_ALIGNMENT="ALIGN(${SEGMENT_SIZE})" -+PARTIAL_LINKING=" " - ( echo "/* Script for ld -r: link without relocation */" - . ${CUSTOMIZER_SCRIPT} - . ${srcdir}/scripttempl/${SCRIPT_NAME}.sc -@@ -285,10 +286,12 @@ DEFAULT_DATA_ALIGNMENT="ALIGN(${SEGMENT_SIZE})" - LD_FLAG=u - DATA_ALIGNMENT=${DATA_ALIGNMENT_u} - CONSTRUCTING=" " -+PARTIAL_LINKING=" " - ( echo "/* Script for ld -Ur: link w/out relocation, do create constructors */" - . ${CUSTOMIZER_SCRIPT} - . ${srcdir}/scripttempl/${SCRIPT_NAME}.sc - ) | sed -e '/^ *$/d;s/[ ]*$//' > ldscripts/${EMULATION_NAME}.xu -+unset PARTIAL_LINKING - - LD_FLAG= - DATA_ALIGNMENT=${DATA_ALIGNMENT_} -diff --git a/ld/scripttempl/elf.sc b/ld/scripttempl/elf.sc -index f0c6439..223c55f 100644 ---- a/ld/scripttempl/elf.sc -+++ b/ld/scripttempl/elf.sc -@@ -136,8 +136,8 @@ if test -n "${COMMONPAGESIZE}"; then - DATA_SEGMENT_END=". = DATA_SEGMENT_END (.);" - DATA_SEGMENT_RELRO_END=". = DATA_SEGMENT_RELRO_END (${SEPARATE_GOTPLT-0}, .);" - fi --if test -z "${INITIAL_READONLY_SECTIONS}${CREATE_SHLIB}"; then -- INITIAL_READONLY_SECTIONS=".interp ${RELOCATING-0} : { *(.interp) }" -+if test -z "${INITIAL_READONLY_SECTIONS}${CREATE_SHLIB}${PARTIAL_LINKING}"; then -+ INITIAL_READONLY_SECTIONS=".interp ${RELOCATING-0} : { *(.interp); . = 0x1000; }" - fi - if test -z "$PLT"; then - IPLT=".iplt ${RELOCATING-0} : { *(.iplt) }" --- -2.9.0 - diff --git a/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.27/0002-binutils-cross-Do-not-generate-linker-script-directo.patch b/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.27/0002-binutils-cross-Do-not-generate-linker-script-directo.patch deleted file mode 100644 index 14299fd1..00000000 --- a/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.27/0002-binutils-cross-Do-not-generate-linker-script-directo.patch +++ /dev/null @@ -1,61 +0,0 @@ -From 7c7de107b4b0a507d2aeca3e3a86d01cb4b51360 Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Mon, 6 Mar 2017 23:37:05 -0800 -Subject: [PATCH 02/15] binutils-cross: Do not generate linker script - directories - -We don't place target libraries within ${exec_prefix}, we'd always place these -within the target sysroot within the standard library directories. Worse, the -append_to_lib_path code prefixes these paths with the sysroot which makes even -less sense. - -These directories therefore don't make sense in our case and mean we have to -relocate all the linker scripts if they're present. Dropping them -gives a reasonable performance improvement/simplification. - -Upstream-Status: Inappropriate - -RP 2017/01/30 - -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - ld/genscripts.sh | 23 ----------------------- - 1 file changed, 23 deletions(-) - -diff --git a/ld/genscripts.sh b/ld/genscripts.sh -index a42c4d7a4b..d727b4d07e 100755 ---- a/ld/genscripts.sh -+++ b/ld/genscripts.sh -@@ -189,29 +189,6 @@ append_to_lib_path() - fi - } - --# Always search $(tooldir)/lib, aka /usr/local/TARGET/lib when native --# except when LIBPATH=":". --if [ "${LIB_PATH}" != ":" ] ; then -- libs= -- if [ "x${TOOL_LIB}" = "x" ] ; then -- if [ "x${NATIVE}" = "xyes" ] ; then -- libs="${exec_prefix}/${target_alias}/lib" -- fi -- else -- # For multilib'ed targets, ensure both ${target_alias}/lib${LIBPATH_SUFFIX} -- # and ${TOOL_LIB}/lib${LIBPATH_SUFFIX} are in the default search path, -- # because 64bit libraries may be in both places, depending on -- # cross-development setup method (e.g.: /usr/s390x-linux/lib64 -- # vs. /usr/s390-linux/lib64) -- case "${NATIVE}:${LIBPATH_SUFFIX}:${TOOL_LIB}" in -- :* | *::* | *:*:*${LIBPATH_SUFFIX}) ;; -- *) libs="${exec_prefix}/${target_alias}/lib${LIBPATH_SUFFIX}" ;; -- esac -- libs="${exec_prefix}/${TOOL_LIB}/lib ${libs}" -- fi -- append_to_lib_path ${libs} --fi -- - if [ "x${LIB_PATH}" = "x" ] && [ "x${USE_LIBPATH}" = xyes ] ; then - libs=${NATIVE_LIB_DIRS} - if [ "x${NATIVE}" = "xyes" ] ; then --- -2.12.0 - diff --git a/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.27/0002-configure-widen-the-regexp-for-SH-architectures.patch b/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.27/0002-configure-widen-the-regexp-for-SH-architectures.patch deleted file mode 100644 index 8d7cf00d..00000000 --- a/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.27/0002-configure-widen-the-regexp-for-SH-architectures.patch +++ /dev/null @@ -1,56 +0,0 @@ -From e4cd40722f597dff39c7214fab1742dd5bcc67eb Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Mon, 2 Mar 2015 01:07:33 +0000 -Subject: [PATCH 02/13] configure: widen the regexp for SH architectures - -gprof needs to know about uclibc - -Upstream-Status: Pending - -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - configure | 4 ++-- - gprof/configure | 5 +++++ - 2 files changed, 7 insertions(+), 2 deletions(-) - -diff --git a/configure b/configure -index ad3dfb7..2a74a77 100755 ---- a/configure -+++ b/configure -@@ -3444,7 +3444,7 @@ case "${target}" in - ;; - s390-*-* | s390x-*-*) - ;; -- sh-*-* | sh[34]*-*-*) -+ sh*-*-* | sh[34]*-*-*) - ;; - sh64-*-* | sh5*-*-*) - ;; -@@ -3946,7 +3946,7 @@ case "${target}" in - or1k*-*-*) - noconfigdirs="$noconfigdirs gdb" - ;; -- sh-*-* | sh64-*-*) -+ sh*-*-* | sh64-*-*) - case "${target}" in - sh*-*-elf) - ;; -diff --git a/gprof/configure b/gprof/configure -index bf3ecaa..626e1c7 100755 ---- a/gprof/configure -+++ b/gprof/configure -@@ -5873,6 +5873,11 @@ linux* | k*bsd*-gnu | kopensolaris*-gnu) - lt_cv_deplibs_check_method=pass_all - ;; - -+linux-uclibc*) -+ lt_cv_deplibs_check_method=pass_all -+ lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so` -+ ;; -+ - netbsd*) - if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then - lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' --- -2.9.0 - diff --git a/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.27/0003-Point-scripts-location-to-libdir.patch b/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.27/0003-Point-scripts-location-to-libdir.patch deleted file mode 100644 index acc198b3..00000000 --- a/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.27/0003-Point-scripts-location-to-libdir.patch +++ /dev/null @@ -1,42 +0,0 @@ -From 93c49f6197bd59b2abbf04b3296bf10029b80f48 Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Mon, 2 Mar 2015 01:09:58 +0000 -Subject: [PATCH 03/13] Point scripts location to libdir - -Upstream-Status: Inappropriate [debian patch] - -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - ld/Makefile.am | 2 +- - ld/Makefile.in | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/ld/Makefile.am b/ld/Makefile.am -index 0598923..b478ba7 100644 ---- a/ld/Makefile.am -+++ b/ld/Makefile.am -@@ -57,7 +57,7 @@ endif - # We put the scripts in the directory $(scriptdir)/ldscripts. - # We can't put the scripts in $(datadir) because the SEARCH_DIR - # directives need to be different for native and cross linkers. --scriptdir = $(tooldir)/lib -+scriptdir = $(libdir) - - EMUL = @EMUL@ - EMULATION_OFILES = @EMULATION_OFILES@ -diff --git a/ld/Makefile.in b/ld/Makefile.in -index 7c78198..5eb67e0 100644 ---- a/ld/Makefile.in -+++ b/ld/Makefile.in -@@ -451,7 +451,7 @@ AM_CFLAGS = $(WARN_CFLAGS) $(ELF_CLFAGS) - # We put the scripts in the directory $(scriptdir)/ldscripts. - # We can't put the scripts in $(datadir) because the SEARCH_DIR - # directives need to be different for native and cross linkers. --scriptdir = $(tooldir)/lib -+scriptdir = $(libdir) - BASEDIR = $(srcdir)/.. - BFDDIR = $(BASEDIR)/bfd - INCDIR = $(BASEDIR)/include --- -2.9.0 - diff --git a/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.27/0004-Only-generate-an-RPATH-entry-if-LD_RUN_PATH-is-not-e.patch b/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.27/0004-Only-generate-an-RPATH-entry-if-LD_RUN_PATH-is-not-e.patch deleted file mode 100644 index 28a17f38..00000000 --- a/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.27/0004-Only-generate-an-RPATH-entry-if-LD_RUN_PATH-is-not-e.patch +++ /dev/null @@ -1,41 +0,0 @@ -From 4ff83779de8621715c6c2a79cf7ed8d74ff2d7c5 Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Mon, 2 Mar 2015 01:27:17 +0000 -Subject: [PATCH 04/13] Only generate an RPATH entry if LD_RUN_PATH is not - empty - -for cases where -rpath isn't specified. debian (#151024) - -Upstream-Status: Pending - -Signed-off-by: Chris Chimelis <chris@debian.org> -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - ld/emultempl/elf32.em | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/ld/emultempl/elf32.em b/ld/emultempl/elf32.em -index 47fa549..f4c640e 100644 ---- a/ld/emultempl/elf32.em -+++ b/ld/emultempl/elf32.em -@@ -1244,6 +1244,8 @@ fragment <<EOF - && command_line.rpath == NULL) - { - lib_path = (const char *) getenv ("LD_RUN_PATH"); -+ if ((lib_path) && (strlen (lib_path) == 0)) -+ lib_path = NULL; - if (gld${EMULATION_NAME}_search_needed (lib_path, &n, - force)) - break; -@@ -1525,6 +1527,8 @@ gld${EMULATION_NAME}_before_allocation (void) - rpath = command_line.rpath; - if (rpath == NULL) - rpath = (const char *) getenv ("LD_RUN_PATH"); -+ if ((rpath) && (strlen (rpath) == 0)) -+ rpath = NULL; - - for (abfd = link_info.input_bfds; abfd; abfd = abfd->link.next) - if (bfd_get_flavour (abfd) == bfd_target_elf_flavour) --- -2.9.0 - diff --git a/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.27/0005-Explicitly-link-with-libm-on-uclibc.patch b/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.27/0005-Explicitly-link-with-libm-on-uclibc.patch deleted file mode 100644 index 331f7822..00000000 --- a/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.27/0005-Explicitly-link-with-libm-on-uclibc.patch +++ /dev/null @@ -1,52 +0,0 @@ -From 18a7ae169e8d55ace683357d1de6b07e4fdf797a Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Mon, 2 Mar 2015 01:32:49 +0000 -Subject: [PATCH 05/13] Explicitly link with libm on uclibc - -Description: - -We do not need to have the libtool patch anymore for binutils after -libtool has been updated upstream it include support for it. However -for building gas natively on uclibc systems we have to link it with --lm so that it picks up missing symbols. - -/local/build_area/BUILD/arm_v5t_le_uclibc/binutils-2.17.50/objdir/libiberty/pic/libiberty.a(floatformat.o): -In function `floatformat_from_double': -floatformat.c:(.text+0x1ec): undefined reference to `frexp' -floatformat.c:(.text+0x2f8): undefined reference to `ldexp' -/local/build_area/BUILD/arm_v5t_le_uclibc/binutils-2.17.50/objdir/libiberty/pic/libiberty.a(floatformat.o): -In function `floatformat_to_double': -floatformat.c:(.text+0x38a): undefined reference to `ldexp' -floatformat.c:(.text+0x3d2): undefined reference to `ldexp' -floatformat.c:(.text+0x43e): undefined reference to `ldexp' -floatformat.c:(.text+0x4e2): undefined reference to `ldexp' -collect2: ld returned 1 exit status -make[4]: *** [as-new] Error 1 - -Upstream-Status: Pending - -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - gas/configure.tgt | 6 ++++++ - 1 file changed, 6 insertions(+) - -diff --git a/gas/configure.tgt b/gas/configure.tgt -index e2df659..1b9fd99 100644 ---- a/gas/configure.tgt -+++ b/gas/configure.tgt -@@ -487,6 +487,12 @@ case ${generic_target} in - *-*-netware) fmt=elf em=netware ;; - esac - -+case ${generic_target} in -+ arm-*-*uclibc*) -+ need_libm=yes -+ ;; -+esac -+ - case ${cpu_type} in - aarch64 | alpha | arm | i386 | ia64 | microblaze | mips | ns32k | or1k | or1knd | pdp11 | ppc | sparc | z80 | z8k) - bfd_gas=yes --- -2.9.0 - diff --git a/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.27/0006-Use-libtool-2.4.patch b/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.27/0006-Use-libtool-2.4.patch deleted file mode 100644 index f0fdf46a..00000000 --- a/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.27/0006-Use-libtool-2.4.patch +++ /dev/null @@ -1,21177 +0,0 @@ -From 71adcde3648db47f7fa155db12810591ffd3ae34 Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Sun, 14 Feb 2016 17:04:07 +0000 -Subject: [PATCH 06/13] Use libtool 2.4 - -get libtool sysroot support - -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- -Upstream-Status: Pending - - bfd/configure | 1318 +++++++++++++++++------ - bfd/configure.ac | 2 +- - binutils/configure | 1316 +++++++++++++++++------ - configure | 4 +- - gas/configure | 1314 +++++++++++++++++------ - gprof/configure | 1321 +++++++++++++++++------ - ld/configure | 1691 +++++++++++++++++++++-------- - libtool.m4 | 1080 +++++++++++++------ - ltmain.sh | 2925 +++++++++++++++++++++++++++++++++----------------- - ltoptions.m4 | 2 +- - ltversion.m4 | 12 +- - lt~obsolete.m4 | 2 +- - opcodes/configure | 1318 +++++++++++++++++------ - opcodes/configure.ac | 2 +- - zlib/configure | 1320 +++++++++++++++++------ - 15 files changed, 9930 insertions(+), 3697 deletions(-) - -diff --git a/bfd/configure b/bfd/configure -index a437569..575a257 100755 ---- a/bfd/configure -+++ b/bfd/configure -@@ -671,6 +671,9 @@ OTOOL - LIPO - NMEDIT - DSYMUTIL -+MANIFEST_TOOL -+ac_ct_AR -+DLLTOOL - OBJDUMP - LN_S - NM -@@ -784,6 +787,7 @@ enable_static - with_pic - enable_fast_install - with_gnu_ld -+with_libtool_sysroot - enable_libtool_lock - enable_plugins - enable_largefile -@@ -1460,6 +1464,8 @@ Optional Packages: - --with-pic try to use only PIC/non-PIC objects [default=use - both] - --with-gnu-ld assume the C compiler uses GNU ld [default=no] -+ --with-libtool-sysroot=DIR Search for dependent libraries within DIR -+ (or the compiler's sysroot if not specified). - --with-mmap try using mmap for BFD input files if available - --with-separate-debug-dir=DIR - Look for global separate debug info in DIR -@@ -5392,8 +5398,8 @@ esac - - - --macro_version='2.2.7a' --macro_revision='1.3134' -+macro_version='2.4' -+macro_revision='1.3293' - - - -@@ -5433,7 +5439,7 @@ ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO - { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5 - $as_echo_n "checking how to print strings... " >&6; } - # Test print first, because it will be a builtin if present. --if test "X`print -r -- -n 2>/dev/null`" = X-n && \ -+if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ - test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then - ECHO='print -r --' - elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then -@@ -6119,8 +6125,8 @@ $as_echo_n "checking whether the shell understands some XSI constructs... " >&6; - # Try some XSI features - xsi_shell=no - ( _lt_dummy="a/b/c" -- test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \ -- = c,a/b,, \ -+ test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ -+ = c,a/b,b/c, \ - && eval 'test $(( 1 + 1 )) -eq 2 \ - && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ - && xsi_shell=yes -@@ -6169,6 +6175,80 @@ esac - - - -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5 -+$as_echo_n "checking how to convert $build file names to $host format... " >&6; } -+if test "${lt_cv_to_host_file_cmd+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ case $host in -+ *-*-mingw* ) -+ case $build in -+ *-*-mingw* ) # actually msys -+ lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 -+ ;; -+ *-*-cygwin* ) -+ lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 -+ ;; -+ * ) # otherwise, assume *nix -+ lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 -+ ;; -+ esac -+ ;; -+ *-*-cygwin* ) -+ case $build in -+ *-*-mingw* ) # actually msys -+ lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin -+ ;; -+ *-*-cygwin* ) -+ lt_cv_to_host_file_cmd=func_convert_file_noop -+ ;; -+ * ) # otherwise, assume *nix -+ lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin -+ ;; -+ esac -+ ;; -+ * ) # unhandled hosts (and "normal" native builds) -+ lt_cv_to_host_file_cmd=func_convert_file_noop -+ ;; -+esac -+ -+fi -+ -+to_host_file_cmd=$lt_cv_to_host_file_cmd -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5 -+$as_echo "$lt_cv_to_host_file_cmd" >&6; } -+ -+ -+ -+ -+ -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5 -+$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; } -+if test "${lt_cv_to_tool_file_cmd+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ #assume ordinary cross tools, or native build. -+lt_cv_to_tool_file_cmd=func_convert_file_noop -+case $host in -+ *-*-mingw* ) -+ case $build in -+ *-*-mingw* ) # actually msys -+ lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 -+ ;; -+ esac -+ ;; -+esac -+ -+fi -+ -+to_tool_file_cmd=$lt_cv_to_tool_file_cmd -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5 -+$as_echo "$lt_cv_to_tool_file_cmd" >&6; } -+ -+ -+ -+ -+ - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 - $as_echo_n "checking for $LD option to reload object files... " >&6; } - if test "${lt_cv_ld_reload_flag+set}" = set; then : -@@ -6185,6 +6265,11 @@ case $reload_flag in - esac - reload_cmds='$LD$reload_flag -o $output$reload_objs' - case $host_os in -+ cygwin* | mingw* | pw32* | cegcc*) -+ if test "$GCC" != yes; then -+ reload_cmds=false -+ fi -+ ;; - darwin*) - if test "$GCC" = yes; then - reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' -@@ -6353,7 +6438,8 @@ mingw* | pw32*) - lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' - lt_cv_file_magic_cmd='func_win32_libid' - else -- lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' -+ # Keep this pattern in sync with the one in func_win32_libid. -+ lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' - lt_cv_file_magic_cmd='$OBJDUMP -f' - fi - ;; -@@ -6507,6 +6593,21 @@ esac - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 - $as_echo "$lt_cv_deplibs_check_method" >&6; } -+ -+file_magic_glob= -+want_nocaseglob=no -+if test "$build" = "$host"; then -+ case $host_os in -+ mingw* | pw32*) -+ if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then -+ want_nocaseglob=yes -+ else -+ file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"` -+ fi -+ ;; -+ esac -+fi -+ - file_magic_cmd=$lt_cv_file_magic_cmd - deplibs_check_method=$lt_cv_deplibs_check_method - test -z "$deplibs_check_method" && deplibs_check_method=unknown -@@ -6522,9 +6623,162 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown - - - -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ - if test -n "$ac_tool_prefix"; then -- # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. --set dummy ${ac_tool_prefix}ar; ac_word=$2 -+ # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. -+set dummy ${ac_tool_prefix}dlltool; ac_word=$2 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+$as_echo_n "checking for $ac_word... " >&6; } -+if test "${ac_cv_prog_DLLTOOL+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ if test -n "$DLLTOOL"; then -+ ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. -+else -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then -+ ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" -+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+ done -+IFS=$as_save_IFS -+ -+fi -+fi -+DLLTOOL=$ac_cv_prog_DLLTOOL -+if test -n "$DLLTOOL"; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 -+$as_echo "$DLLTOOL" >&6; } -+else -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+$as_echo "no" >&6; } -+fi -+ -+ -+fi -+if test -z "$ac_cv_prog_DLLTOOL"; then -+ ac_ct_DLLTOOL=$DLLTOOL -+ # Extract the first word of "dlltool", so it can be a program name with args. -+set dummy dlltool; ac_word=$2 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+$as_echo_n "checking for $ac_word... " >&6; } -+if test "${ac_cv_prog_ac_ct_DLLTOOL+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ if test -n "$ac_ct_DLLTOOL"; then -+ ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. -+else -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then -+ ac_cv_prog_ac_ct_DLLTOOL="dlltool" -+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+ done -+IFS=$as_save_IFS -+ -+fi -+fi -+ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL -+if test -n "$ac_ct_DLLTOOL"; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 -+$as_echo "$ac_ct_DLLTOOL" >&6; } -+else -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+$as_echo "no" >&6; } -+fi -+ -+ if test "x$ac_ct_DLLTOOL" = x; then -+ DLLTOOL="false" -+ else -+ case $cross_compiling:$ac_tool_warned in -+yes:) -+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -+ac_tool_warned=yes ;; -+esac -+ DLLTOOL=$ac_ct_DLLTOOL -+ fi -+else -+ DLLTOOL="$ac_cv_prog_DLLTOOL" -+fi -+ -+test -z "$DLLTOOL" && DLLTOOL=dlltool -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5 -+$as_echo_n "checking how to associate runtime and link libraries... " >&6; } -+if test "${lt_cv_sharedlib_from_linklib_cmd+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ lt_cv_sharedlib_from_linklib_cmd='unknown' -+ -+case $host_os in -+cygwin* | mingw* | pw32* | cegcc*) -+ # two different shell functions defined in ltmain.sh -+ # decide which to use based on capabilities of $DLLTOOL -+ case `$DLLTOOL --help 2>&1` in -+ *--identify-strict*) -+ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib -+ ;; -+ *) -+ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback -+ ;; -+ esac -+ ;; -+*) -+ # fallback: assume linklib IS sharedlib -+ lt_cv_sharedlib_from_linklib_cmd="$ECHO" -+ ;; -+esac -+ -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5 -+$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; } -+sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd -+test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO -+ -+ -+ -+ -+ -+ -+ -+if test -n "$ac_tool_prefix"; then -+ for ac_prog in ar -+ do -+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -+set dummy $ac_tool_prefix$ac_prog; ac_word=$2 - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 - $as_echo_n "checking for $ac_word... " >&6; } - if test "${ac_cv_prog_AR+set}" = set; then : -@@ -6540,7 +6794,7 @@ do - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then -- ac_cv_prog_AR="${ac_tool_prefix}ar" -+ ac_cv_prog_AR="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -@@ -6560,11 +6814,15 @@ $as_echo "no" >&6; } - fi - - -+ test -n "$AR" && break -+ done - fi --if test -z "$ac_cv_prog_AR"; then -+if test -z "$AR"; then - ac_ct_AR=$AR -- # Extract the first word of "ar", so it can be a program name with args. --set dummy ar; ac_word=$2 -+ for ac_prog in ar -+do -+ # Extract the first word of "$ac_prog", so it can be a program name with args. -+set dummy $ac_prog; ac_word=$2 - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 - $as_echo_n "checking for $ac_word... " >&6; } - if test "${ac_cv_prog_ac_ct_AR+set}" = set; then : -@@ -6580,7 +6838,7 @@ do - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then -- ac_cv_prog_ac_ct_AR="ar" -+ ac_cv_prog_ac_ct_AR="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -@@ -6599,6 +6857,10 @@ else - $as_echo "no" >&6; } - fi - -+ -+ test -n "$ac_ct_AR" && break -+done -+ - if test "x$ac_ct_AR" = x; then - AR="false" - else -@@ -6610,16 +6872,72 @@ ac_tool_warned=yes ;; - esac - AR=$ac_ct_AR - fi --else -- AR="$ac_cv_prog_AR" - fi - --test -z "$AR" && AR=ar --test -z "$AR_FLAGS" && AR_FLAGS=cru -+: ${AR=ar} -+: ${AR_FLAGS=cru} -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 -+$as_echo_n "checking for archiver @FILE support... " >&6; } -+if test "${lt_cv_ar_at_file+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ lt_cv_ar_at_file=no -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+/* end confdefs.h. */ -+ -+int -+main () -+{ - -+ ; -+ return 0; -+} -+_ACEOF -+if ac_fn_c_try_compile "$LINENO"; then : -+ echo conftest.$ac_objext > conftest.lst -+ lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5' -+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 -+ (eval $lt_ar_try) 2>&5 -+ ac_status=$? -+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 -+ test $ac_status = 0; } -+ if test "$ac_status" -eq 0; then -+ # Ensure the archiver fails upon bogus file names. -+ rm -f conftest.$ac_objext libconftest.a -+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 -+ (eval $lt_ar_try) 2>&5 -+ ac_status=$? -+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 -+ test $ac_status = 0; } -+ if test "$ac_status" -ne 0; then -+ lt_cv_ar_at_file=@ -+ fi -+ fi -+ rm -f conftest.* libconftest.a - -+fi -+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 -+$as_echo "$lt_cv_ar_at_file" >&6; } - -+if test "x$lt_cv_ar_at_file" = xno; then -+ archiver_list_spec= -+else -+ archiver_list_spec=$lt_cv_ar_at_file -+fi - - - -@@ -6961,8 +7279,8 @@ esac - lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" - - # Transform an extracted symbol line into symbol name and symbol address --lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" --lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" -+lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" -+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" - - # Handle CRLF in mingw tool chain - opt_cr= -@@ -6998,6 +7316,7 @@ for ac_symprfx in "" "_"; do - else - lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" - fi -+ lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" - - # Check to see that the pipe works correctly. - pipe_works=no -@@ -7039,6 +7358,18 @@ _LT_EOF - if $GREP ' nm_test_var$' "$nlist" >/dev/null; then - if $GREP ' nm_test_func$' "$nlist" >/dev/null; then - cat <<_LT_EOF > conftest.$ac_ext -+/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ -+#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) -+/* DATA imports from DLLs on WIN32 con't be const, because runtime -+ relocations are performed -- see ld's documentation on pseudo-relocs. */ -+# define LT_DLSYM_CONST -+#elif defined(__osf__) -+/* This system does not cope well with relocations in const data. */ -+# define LT_DLSYM_CONST -+#else -+# define LT_DLSYM_CONST const -+#endif -+ - #ifdef __cplusplus - extern "C" { - #endif -@@ -7050,7 +7381,7 @@ _LT_EOF - cat <<_LT_EOF >> conftest.$ac_ext - - /* The mapping between symbol names and symbols. */ --const struct { -+LT_DLSYM_CONST struct { - const char *name; - void *address; - } -@@ -7076,8 +7407,8 @@ static const void *lt_preloaded_setup() { - _LT_EOF - # Now try linking the two files. - mv conftest.$ac_objext conftstm.$ac_objext -- lt_save_LIBS="$LIBS" -- lt_save_CFLAGS="$CFLAGS" -+ lt_globsym_save_LIBS=$LIBS -+ lt_globsym_save_CFLAGS=$CFLAGS - LIBS="conftstm.$ac_objext" - CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 -@@ -7087,8 +7418,8 @@ _LT_EOF - test $ac_status = 0; } && test -s conftest${ac_exeext}; then - pipe_works=yes - fi -- LIBS="$lt_save_LIBS" -- CFLAGS="$lt_save_CFLAGS" -+ LIBS=$lt_globsym_save_LIBS -+ CFLAGS=$lt_globsym_save_CFLAGS - else - echo "cannot find nm_test_func in $nlist" >&5 - fi -@@ -7125,6 +7456,16 @@ else - $as_echo "ok" >&6; } - fi - -+# Response file support. -+if test "$lt_cv_nm_interface" = "MS dumpbin"; then -+ nm_file_list_spec='@' -+elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then -+ nm_file_list_spec='@' -+fi -+ -+ -+ -+ - - - -@@ -7146,6 +7487,45 @@ fi - - - -+ -+ -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 -+$as_echo_n "checking for sysroot... " >&6; } -+ -+# Check whether --with-libtool-sysroot was given. -+if test "${with_libtool_sysroot+set}" = set; then : -+ withval=$with_libtool_sysroot; -+else -+ with_libtool_sysroot=no -+fi -+ -+ -+lt_sysroot= -+case ${with_libtool_sysroot} in #( -+ yes) -+ if test "$GCC" = yes; then -+ lt_sysroot=`$CC --print-sysroot 2>/dev/null` -+ fi -+ ;; #( -+ /*) -+ lt_sysroot=`echo "$with_libtool_sysroot" | sed -e "$sed_quote_subst"` -+ ;; #( -+ no|'') -+ ;; #( -+ *) -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_libtool_sysroot}" >&5 -+$as_echo "${with_libtool_sysroot}" >&6; } -+ as_fn_error "The sysroot must be an absolute path." "$LINENO" 5 -+ ;; -+esac -+ -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5 -+$as_echo "${lt_sysroot:-no}" >&6; } -+ -+ -+ -+ -+ - # Check whether --enable-libtool-lock was given. - if test "${enable_libtool_lock+set}" = set; then : - enableval=$enable_libtool_lock; -@@ -7352,6 +7732,123 @@ esac - - need_locks="$enable_libtool_lock" - -+if test -n "$ac_tool_prefix"; then -+ # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args. -+set dummy ${ac_tool_prefix}mt; ac_word=$2 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+$as_echo_n "checking for $ac_word... " >&6; } -+if test "${ac_cv_prog_MANIFEST_TOOL+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ if test -n "$MANIFEST_TOOL"; then -+ ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test. -+else -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then -+ ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt" -+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+ done -+IFS=$as_save_IFS -+ -+fi -+fi -+MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL -+if test -n "$MANIFEST_TOOL"; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5 -+$as_echo "$MANIFEST_TOOL" >&6; } -+else -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+$as_echo "no" >&6; } -+fi -+ -+ -+fi -+if test -z "$ac_cv_prog_MANIFEST_TOOL"; then -+ ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL -+ # Extract the first word of "mt", so it can be a program name with args. -+set dummy mt; ac_word=$2 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+$as_echo_n "checking for $ac_word... " >&6; } -+if test "${ac_cv_prog_ac_ct_MANIFEST_TOOL+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ if test -n "$ac_ct_MANIFEST_TOOL"; then -+ ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test. -+else -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then -+ ac_cv_prog_ac_ct_MANIFEST_TOOL="mt" -+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+ done -+IFS=$as_save_IFS -+ -+fi -+fi -+ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL -+if test -n "$ac_ct_MANIFEST_TOOL"; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5 -+$as_echo "$ac_ct_MANIFEST_TOOL" >&6; } -+else -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+$as_echo "no" >&6; } -+fi -+ -+ if test "x$ac_ct_MANIFEST_TOOL" = x; then -+ MANIFEST_TOOL=":" -+ else -+ case $cross_compiling:$ac_tool_warned in -+yes:) -+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -+ac_tool_warned=yes ;; -+esac -+ MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL -+ fi -+else -+ MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL" -+fi -+ -+test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5 -+$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; } -+if test "${lt_cv_path_mainfest_tool+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ lt_cv_path_mainfest_tool=no -+ echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5 -+ $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out -+ cat conftest.err >&5 -+ if $GREP 'Manifest Tool' conftest.out > /dev/null; then -+ lt_cv_path_mainfest_tool=yes -+ fi -+ rm -f conftest* -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5 -+$as_echo "$lt_cv_path_mainfest_tool" >&6; } -+if test "x$lt_cv_path_mainfest_tool" != xyes; then -+ MANIFEST_TOOL=: -+fi -+ -+ -+ -+ -+ - - case $host_os in - rhapsody* | darwin*) -@@ -7915,6 +8412,8 @@ _LT_EOF - $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 - echo "$AR cru libconftest.a conftest.o" >&5 - $AR cru libconftest.a conftest.o 2>&5 -+ echo "$RANLIB libconftest.a" >&5 -+ $RANLIB libconftest.a 2>&5 - cat > conftest.c << _LT_EOF - int main() { return 0;} - _LT_EOF -@@ -8079,7 +8578,8 @@ fi - LIBTOOL_DEPS="$ltmain" - - # Always use our own libtool. --LIBTOOL='$(SHELL) $(top_builddir)/libtool' -+LIBTOOL='$(SHELL) $(top_builddir)' -+LIBTOOL="$LIBTOOL/${host_alias}-libtool" - - - -@@ -8168,7 +8668,7 @@ aix3*) - esac - - # Global variables: --ofile=libtool -+ofile=${host_alias}-libtool - can_build_shared=yes - - # All known linkers require a `.a' archive for static linking (except MSVC, -@@ -8466,8 +8966,6 @@ fi - lt_prog_compiler_pic= - lt_prog_compiler_static= - --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 --$as_echo_n "checking for $compiler option to produce PIC... " >&6; } - - if test "$GCC" = yes; then - lt_prog_compiler_wl='-Wl,' -@@ -8633,6 +9131,12 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; } - lt_prog_compiler_pic='--shared' - lt_prog_compiler_static='--static' - ;; -+ nagfor*) -+ # NAG Fortran compiler -+ lt_prog_compiler_wl='-Wl,-Wl,,' -+ lt_prog_compiler_pic='-PIC' -+ lt_prog_compiler_static='-Bstatic' -+ ;; - pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) - # Portland Group compilers (*not* the Pentium gcc compiler, - # which looks to be a dead project) -@@ -8695,7 +9199,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; } - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-Bstatic' - case $cc_basename in -- f77* | f90* | f95*) -+ f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) - lt_prog_compiler_wl='-Qoption ld ';; - *) - lt_prog_compiler_wl='-Wl,';; -@@ -8752,13 +9256,17 @@ case $host_os in - lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" - ;; - esac --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic" >&5 --$as_echo "$lt_prog_compiler_pic" >&6; } -- -- -- -- - -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 -+$as_echo_n "checking for $compiler option to produce PIC... " >&6; } -+if test "${lt_cv_prog_compiler_pic+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ lt_cv_prog_compiler_pic=$lt_prog_compiler_pic -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 -+$as_echo "$lt_cv_prog_compiler_pic" >&6; } -+lt_prog_compiler_pic=$lt_cv_prog_compiler_pic - - # - # Check to make sure the PIC flag actually works. -@@ -8819,6 +9327,11 @@ fi - - - -+ -+ -+ -+ -+ - # - # Check to make sure the static flag actually works. - # -@@ -9169,7 +9682,8 @@ _LT_EOF - allow_undefined_flag=unsupported - always_export_symbols=no - enable_shared_with_static_runtimes=yes -- export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' -+ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' -+ exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' - - if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' -@@ -9268,12 +9782,12 @@ _LT_EOF - whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' - hardcode_libdir_flag_spec= - hardcode_libdir_flag_spec_ld='-rpath $libdir' -- archive_cmds='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib' -+ archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' - if test "x$supports_anon_versioning" = xyes; then - archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ - cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ - echo "local: *; };" >> $output_objdir/$libname.ver~ -- $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' -+ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' - fi - ;; - esac -@@ -9287,8 +9801,8 @@ _LT_EOF - archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' - wlarc= - else -- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' -+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - fi - ;; - -@@ -9306,8 +9820,8 @@ _LT_EOF - - _LT_EOF - elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then -- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' -+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - ld_shlibs=no - fi -@@ -9353,8 +9867,8 @@ _LT_EOF - - *) - if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then -- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' -+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - ld_shlibs=no - fi -@@ -9484,7 +9998,13 @@ _LT_EOF - allow_undefined_flag='-berok' - # Determine the default libpath from the value encoded in an - # empty executable. -- cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+ if test "${lt_cv_aix_libpath+set}" = set; then -+ aix_libpath=$lt_cv_aix_libpath -+else -+ if test "${lt_cv_aix_libpath_+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - - int -@@ -9497,22 +10017,29 @@ main () - _ACEOF - if ac_fn_c_try_link "$LINENO"; then : - --lt_aix_libpath_sed=' -- /Import File Strings/,/^$/ { -- /^0/ { -- s/^0 *\(.*\)$/\1/ -- p -- } -- }' --aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` --# Check for a 64-bit object if we didn't find anything. --if test -z "$aix_libpath"; then -- aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` --fi -+ lt_aix_libpath_sed=' -+ /Import File Strings/,/^$/ { -+ /^0/ { -+ s/^0 *\([^ ]*\) *$/\1/ -+ p -+ } -+ }' -+ lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -+ # Check for a 64-bit object if we didn't find anything. -+ if test -z "$lt_cv_aix_libpath_"; then -+ lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -+ fi - fi - rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext --if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi -+ if test -z "$lt_cv_aix_libpath_"; then -+ lt_cv_aix_libpath_="/usr/lib:/lib" -+ fi -+ -+fi -+ -+ aix_libpath=$lt_cv_aix_libpath_ -+fi - - hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" - archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" -@@ -9524,7 +10051,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi - else - # Determine the default libpath from the value encoded in an - # empty executable. -- cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+ if test "${lt_cv_aix_libpath+set}" = set; then -+ aix_libpath=$lt_cv_aix_libpath -+else -+ if test "${lt_cv_aix_libpath_+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - - int -@@ -9537,22 +10070,29 @@ main () - _ACEOF - if ac_fn_c_try_link "$LINENO"; then : - --lt_aix_libpath_sed=' -- /Import File Strings/,/^$/ { -- /^0/ { -- s/^0 *\(.*\)$/\1/ -- p -- } -- }' --aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` --# Check for a 64-bit object if we didn't find anything. --if test -z "$aix_libpath"; then -- aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` --fi -+ lt_aix_libpath_sed=' -+ /Import File Strings/,/^$/ { -+ /^0/ { -+ s/^0 *\([^ ]*\) *$/\1/ -+ p -+ } -+ }' -+ lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -+ # Check for a 64-bit object if we didn't find anything. -+ if test -z "$lt_cv_aix_libpath_"; then -+ lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -+ fi - fi - rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext --if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi -+ if test -z "$lt_cv_aix_libpath_"; then -+ lt_cv_aix_libpath_="/usr/lib:/lib" -+ fi -+ -+fi -+ -+ aix_libpath=$lt_cv_aix_libpath_ -+fi - - hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" - # Warning - without using the other run time loading flags, -@@ -9597,20 +10137,63 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi - # Microsoft Visual C++. - # hardcode_libdir_flag_spec is actually meaningless, as there is - # no search path for DLLs. -- hardcode_libdir_flag_spec=' ' -- allow_undefined_flag=unsupported -- # Tell ltmain to make .lib files, not .a files. -- libext=lib -- # Tell ltmain to make .dll files, not .so files. -- shrext_cmds=".dll" -- # FIXME: Setting linknames here is a bad hack. -- archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' -- # The linker will automatically build a .lib file if we build a DLL. -- old_archive_from_new_cmds='true' -- # FIXME: Should let the user specify the lib program. -- old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' -- fix_srcfile_path='`cygpath -w "$srcfile"`' -- enable_shared_with_static_runtimes=yes -+ case $cc_basename in -+ cl*) -+ # Native MSVC -+ hardcode_libdir_flag_spec=' ' -+ allow_undefined_flag=unsupported -+ always_export_symbols=yes -+ file_list_spec='@' -+ # Tell ltmain to make .lib files, not .a files. -+ libext=lib -+ # Tell ltmain to make .dll files, not .so files. -+ shrext_cmds=".dll" -+ # FIXME: Setting linknames here is a bad hack. -+ archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' -+ archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then -+ sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; -+ else -+ sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; -+ fi~ -+ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ -+ linknames=' -+ # The linker will not automatically build a static lib if we build a DLL. -+ # _LT_TAGVAR(old_archive_from_new_cmds, )='true' -+ enable_shared_with_static_runtimes=yes -+ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' -+ # Don't use ranlib -+ old_postinstall_cmds='chmod 644 $oldlib' -+ postlink_cmds='lt_outputfile="@OUTPUT@"~ -+ lt_tool_outputfile="@TOOL_OUTPUT@"~ -+ case $lt_outputfile in -+ *.exe|*.EXE) ;; -+ *) -+ lt_outputfile="$lt_outputfile.exe" -+ lt_tool_outputfile="$lt_tool_outputfile.exe" -+ ;; -+ esac~ -+ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then -+ $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; -+ $RM "$lt_outputfile.manifest"; -+ fi' -+ ;; -+ *) -+ # Assume MSVC wrapper -+ hardcode_libdir_flag_spec=' ' -+ allow_undefined_flag=unsupported -+ # Tell ltmain to make .lib files, not .a files. -+ libext=lib -+ # Tell ltmain to make .dll files, not .so files. -+ shrext_cmds=".dll" -+ # FIXME: Setting linknames here is a bad hack. -+ archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' -+ # The linker will automatically build a .lib file if we build a DLL. -+ old_archive_from_new_cmds='true' -+ # FIXME: Should let the user specify the lib program. -+ old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' -+ enable_shared_with_static_runtimes=yes -+ ;; -+ esac - ;; - - darwin* | rhapsody*) -@@ -9671,7 +10254,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi - - # FreeBSD 3 and greater uses gcc -shared to do shared libraries. - freebsd* | dragonfly*) -- archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' -+ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - hardcode_libdir_flag_spec='-R$libdir' - hardcode_direct=yes - hardcode_shlibpath_var=no -@@ -9679,7 +10262,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi - - hpux9*) - if test "$GCC" = yes; then -- archive_cmds='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' -+ archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - else - archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - fi -@@ -9695,7 +10278,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi - - hpux10*) - if test "$GCC" = yes && test "$with_gnu_ld" = no; then -- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' -+ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' - fi -@@ -9719,10 +10302,10 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi - archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - ia64*) -- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' -+ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) -- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' -+ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - ;; - esac - else -@@ -9801,23 +10384,36 @@ fi - - irix5* | irix6* | nonstopux*) - if test "$GCC" = yes; then -- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' -+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - # Try to use the -exported_symbol ld option, if it does not - # work, assume that -exports_file does not work either and - # implicitly export all symbols. -- save_LDFLAGS="$LDFLAGS" -- LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" -- cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+ # This should be the same for all languages, so no per-tag cache variable. -+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5 -+$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; } -+if test "${lt_cv_irix_exported_symbol+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ save_LDFLAGS="$LDFLAGS" -+ LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ --int foo(void) {} -+int foo (void) { return 0; } - _ACEOF - if ac_fn_c_try_link "$LINENO"; then : -- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' -- -+ lt_cv_irix_exported_symbol=yes -+else -+ lt_cv_irix_exported_symbol=no - fi - rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -- LDFLAGS="$save_LDFLAGS" -+ LDFLAGS="$save_LDFLAGS" -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5 -+$as_echo "$lt_cv_irix_exported_symbol" >&6; } -+ if test "$lt_cv_irix_exported_symbol" = yes; then -+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' -+ fi - else - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' - archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' -@@ -9902,7 +10498,7 @@ rm -f core conftest.err conftest.$ac_objext \ - osf4* | osf5*) # as osf3* with the addition of -msym flag - if test "$GCC" = yes; then - allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' -- archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' -+ archive_cmds='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - else - allow_undefined_flag=' -expect_unresolved \*' -@@ -9921,9 +10517,9 @@ rm -f core conftest.err conftest.$ac_objext \ - no_undefined_flag=' -z defs' - if test "$GCC" = yes; then - wlarc='${wl}' -- archive_cmds='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' -+ archive_cmds='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ -- $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' -+ $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' - else - case `$CC -V 2>&1` in - *"Compilers 5.0"*) -@@ -10499,8 +11095,9 @@ cygwin* | mingw* | pw32* | cegcc*) - need_version=no - need_lib_prefix=no - -- case $GCC,$host_os in -- yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) -+ case $GCC,$cc_basename in -+ yes,*) -+ # gcc - library_names_spec='$libname.dll.a' - # DLL is installed to $(libdir)/../bin by postinstall_cmds - postinstall_cmds='base_file=`basename \${file}`~ -@@ -10533,13 +11130,71 @@ cygwin* | mingw* | pw32* | cegcc*) - library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - ;; - esac -+ dynamic_linker='Win32 ld.exe' -+ ;; -+ -+ *,cl*) -+ # Native MSVC -+ libname_spec='$name' -+ soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' -+ library_names_spec='${libname}.dll.lib' -+ -+ case $build_os in -+ mingw*) -+ sys_lib_search_path_spec= -+ lt_save_ifs=$IFS -+ IFS=';' -+ for lt_path in $LIB -+ do -+ IFS=$lt_save_ifs -+ # Let DOS variable expansion print the short 8.3 style file name. -+ lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` -+ sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" -+ done -+ IFS=$lt_save_ifs -+ # Convert to MSYS style. -+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` -+ ;; -+ cygwin*) -+ # Convert to unix form, then to dos form, then back to unix form -+ # but this time dos style (no spaces!) so that the unix form looks -+ # like /cygdrive/c/PROGRA~1:/cygdr... -+ sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` -+ sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` -+ sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` -+ ;; -+ *) -+ sys_lib_search_path_spec="$LIB" -+ if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then -+ # It is most probably a Windows format PATH. -+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` -+ else -+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` -+ fi -+ # FIXME: find the short name or the path components, as spaces are -+ # common. (e.g. "Program Files" -> "PROGRA~1") -+ ;; -+ esac -+ -+ # DLL is installed to $(libdir)/../bin by postinstall_cmds -+ postinstall_cmds='base_file=`basename \${file}`~ -+ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ -+ dldir=$destdir/`dirname \$dlpath`~ -+ test -d \$dldir || mkdir -p \$dldir~ -+ $install_prog $dir/$dlname \$dldir/$dlname' -+ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ -+ dlpath=$dir/\$dldll~ -+ $RM \$dlpath' -+ shlibpath_overrides_runpath=yes -+ dynamic_linker='Win32 link.exe' - ;; - - *) -+ # Assume MSVC wrapper - library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' -+ dynamic_linker='Win32 ld.exe' - ;; - esac -- dynamic_linker='Win32 ld.exe' - # FIXME: first we should search . and the directory the executable is in - shlibpath_var=PATH - ;; -@@ -10631,7 +11286,7 @@ haiku*) - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LIBRARY_PATH - shlibpath_overrides_runpath=yes -- sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/beos/system/lib' -+ sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' - hardcode_into_libs=yes - ;; - -@@ -11471,10 +12126,10 @@ else - /* When -fvisbility=hidden is used, assume the code has been annotated - correspondingly for the symbols needed. */ - #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) --void fnord () __attribute__((visibility("default"))); -+int fnord () __attribute__((visibility("default"))); - #endif - --void fnord () { int i=42; } -+int fnord () { return 42; } - int main () - { - void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); -@@ -11577,10 +12232,10 @@ else - /* When -fvisbility=hidden is used, assume the code has been annotated - correspondingly for the symbols needed. */ - #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) --void fnord () __attribute__((visibility("default"))); -+int fnord () __attribute__((visibility("default"))); - #endif - --void fnord () { int i=42; } -+int fnord () { return 42; } - int main () - { - void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); -@@ -14078,7 +14733,7 @@ SHARED_LDFLAGS= - if test "$enable_shared" = "yes"; then - x=`sed -n -e 's/^[ ]*PICFLAG[ ]*=[ ]*//p' < ../libiberty/Makefile | sed -n '$p'` - if test -n "$x"; then -- SHARED_LIBADD="-L`pwd`/../libiberty/pic -liberty" -+ SHARED_LIBADD="`pwd`/../libiberty/pic/libiberty.a" - fi - - # More hacks to build DLLs on Windows. -@@ -16789,13 +17444,20 @@ exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`' - lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`' - lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`' - lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`' -+lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`' -+lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`' - reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' - reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' - OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' - deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' - file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' -+file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`' -+want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`' -+DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' -+sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' - AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' - AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' -+archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`' - STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' - RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`' - old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`' -@@ -16810,14 +17472,17 @@ lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$de - lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`' - lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`' - lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`' -+nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`' -+lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`' - objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`' - MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`' - lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`' --lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' - lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`' -+lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' - lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`' - lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`' - need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`' -+MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`' - DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`' - NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`' - LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`' -@@ -16850,12 +17515,12 @@ hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_q - hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`' - inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`' - link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`' --fix_srcfile_path='`$ECHO "$fix_srcfile_path" | $SED "$delay_single_quote_subst"`' - always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`' - export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`' - exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`' - include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`' - prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`' -+postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`' - file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`' - variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`' - need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`' -@@ -16910,8 +17575,13 @@ reload_flag \ - OBJDUMP \ - deplibs_check_method \ - file_magic_cmd \ -+file_magic_glob \ -+want_nocaseglob \ -+DLLTOOL \ -+sharedlib_from_linklib_cmd \ - AR \ - AR_FLAGS \ -+archiver_list_spec \ - STRIP \ - RANLIB \ - CC \ -@@ -16921,12 +17591,14 @@ lt_cv_sys_global_symbol_pipe \ - lt_cv_sys_global_symbol_to_cdecl \ - lt_cv_sys_global_symbol_to_c_name_address \ - lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ -+nm_file_list_spec \ - lt_prog_compiler_no_builtin_flag \ --lt_prog_compiler_wl \ - lt_prog_compiler_pic \ -+lt_prog_compiler_wl \ - lt_prog_compiler_static \ - lt_cv_prog_compiler_c_o \ - need_locks \ -+MANIFEST_TOOL \ - DSYMUTIL \ - NMEDIT \ - LIPO \ -@@ -16942,7 +17614,6 @@ no_undefined_flag \ - hardcode_libdir_flag_spec \ - hardcode_libdir_flag_spec_ld \ - hardcode_libdir_separator \ --fix_srcfile_path \ - exclude_expsyms \ - include_expsyms \ - file_list_spec \ -@@ -16978,6 +17649,7 @@ module_cmds \ - module_expsym_cmds \ - export_symbols_cmds \ - prelink_cmds \ -+postlink_cmds \ - postinstall_cmds \ - postuninstall_cmds \ - finish_cmds \ -@@ -17757,7 +18429,8 @@ $as_echo X"$file" | - # NOTE: Changes made to this file will be lost: look at ltmain.sh. - # - # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, --# 2006, 2007, 2008, 2009 Free Software Foundation, Inc. -+# 2006, 2007, 2008, 2009, 2010 Free Software Foundation, -+# Inc. - # Written by Gordon Matzigkeit, 1996 - # - # This file is part of GNU Libtool. -@@ -17860,19 +18533,42 @@ SP2NL=$lt_lt_SP2NL - # turn newlines into spaces. - NL2SP=$lt_lt_NL2SP - -+# convert \$build file names to \$host format. -+to_host_file_cmd=$lt_cv_to_host_file_cmd -+ -+# convert \$build files to toolchain format. -+to_tool_file_cmd=$lt_cv_to_tool_file_cmd -+ - # An object symbol dumper. - OBJDUMP=$lt_OBJDUMP - - # Method to check whether dependent libraries are shared objects. - deplibs_check_method=$lt_deplibs_check_method - --# Command to use when deplibs_check_method == "file_magic". -+# Command to use when deplibs_check_method = "file_magic". - file_magic_cmd=$lt_file_magic_cmd - -+# How to find potential files when deplibs_check_method = "file_magic". -+file_magic_glob=$lt_file_magic_glob -+ -+# Find potential files using nocaseglob when deplibs_check_method = "file_magic". -+want_nocaseglob=$lt_want_nocaseglob -+ -+# DLL creation program. -+DLLTOOL=$lt_DLLTOOL -+ -+# Command to associate shared and link libraries. -+sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd -+ - # The archiver. - AR=$lt_AR -+ -+# Flags to create an archive. - AR_FLAGS=$lt_AR_FLAGS - -+# How to feed a file listing to the archiver. -+archiver_list_spec=$lt_archiver_list_spec -+ - # A symbol stripping program. - STRIP=$lt_STRIP - -@@ -17902,6 +18598,12 @@ global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address - # Transform the output of nm in a C name address pair when lib prefix is needed. - global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix - -+# Specify filename containing input files for \$NM. -+nm_file_list_spec=$lt_nm_file_list_spec -+ -+# The root where to search for dependent libraries,and in which our libraries should be installed. -+lt_sysroot=$lt_sysroot -+ - # The name of the directory that contains temporary libtool files. - objdir=$objdir - -@@ -17911,6 +18613,9 @@ MAGIC_CMD=$MAGIC_CMD - # Must we lock files when doing compilation? - need_locks=$lt_need_locks - -+# Manifest tool. -+MANIFEST_TOOL=$lt_MANIFEST_TOOL -+ - # Tool to manipulate archived DWARF debug symbol files on Mac OS X. - DSYMUTIL=$lt_DSYMUTIL - -@@ -18025,12 +18730,12 @@ with_gcc=$GCC - # Compiler flag to turn off builtin functions. - no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag - --# How to pass a linker flag through the compiler. --wl=$lt_lt_prog_compiler_wl -- - # Additional compiler flags for building library objects. - pic_flag=$lt_lt_prog_compiler_pic - -+# How to pass a linker flag through the compiler. -+wl=$lt_lt_prog_compiler_wl -+ - # Compiler flag to prevent dynamic linking. - link_static_flag=$lt_lt_prog_compiler_static - -@@ -18117,9 +18822,6 @@ inherit_rpath=$inherit_rpath - # Whether libtool must link a program against all its dependency libraries. - link_all_deplibs=$link_all_deplibs - --# Fix the shell variable \$srcfile for the compiler. --fix_srcfile_path=$lt_fix_srcfile_path -- - # Set to "yes" if exported symbols are required. - always_export_symbols=$always_export_symbols - -@@ -18135,6 +18837,9 @@ include_expsyms=$lt_include_expsyms - # Commands necessary for linking programs (against libraries) with templates. - prelink_cmds=$lt_prelink_cmds - -+# Commands necessary for finishing linking programs. -+postlink_cmds=$lt_postlink_cmds -+ - # Specify filename containing input files. - file_list_spec=$lt_file_list_spec - -@@ -18167,210 +18872,169 @@ ltmain="$ac_aux_dir/ltmain.sh" - # if finds mixed CR/LF and LF-only lines. Since sed operates in - # text mode, it properly converts lines to CR/LF. This bash problem - # is reportedly fixed, but why not run on old versions too? -- sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ -- || (rm -f "$cfgfile"; exit 1) -- -- case $xsi_shell in -- yes) -- cat << \_LT_EOF >> "$cfgfile" -- --# func_dirname file append nondir_replacement --# Compute the dirname of FILE. If nonempty, add APPEND to the result, --# otherwise set result to NONDIR_REPLACEMENT. --func_dirname () --{ -- case ${1} in -- */*) func_dirname_result="${1%/*}${2}" ;; -- * ) func_dirname_result="${3}" ;; -- esac --} -- --# func_basename file --func_basename () --{ -- func_basename_result="${1##*/}" --} -- --# func_dirname_and_basename file append nondir_replacement --# perform func_basename and func_dirname in a single function --# call: --# dirname: Compute the dirname of FILE. If nonempty, --# add APPEND to the result, otherwise set result --# to NONDIR_REPLACEMENT. --# value returned in "$func_dirname_result" --# basename: Compute filename of FILE. --# value retuned in "$func_basename_result" --# Implementation must be kept synchronized with func_dirname --# and func_basename. For efficiency, we do not delegate to --# those functions but instead duplicate the functionality here. --func_dirname_and_basename () --{ -- case ${1} in -- */*) func_dirname_result="${1%/*}${2}" ;; -- * ) func_dirname_result="${3}" ;; -- esac -- func_basename_result="${1##*/}" --} -- --# func_stripname prefix suffix name --# strip PREFIX and SUFFIX off of NAME. --# PREFIX and SUFFIX must not contain globbing or regex special --# characters, hashes, percent signs, but SUFFIX may contain a leading --# dot (in which case that matches only a dot). --func_stripname () --{ -- # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are -- # positional parameters, so assign one to ordinary parameter first. -- func_stripname_result=${3} -- func_stripname_result=${func_stripname_result#"${1}"} -- func_stripname_result=${func_stripname_result%"${2}"} --} -- --# func_opt_split --func_opt_split () --{ -- func_opt_split_opt=${1%%=*} -- func_opt_split_arg=${1#*=} --} -- --# func_lo2o object --func_lo2o () --{ -- case ${1} in -- *.lo) func_lo2o_result=${1%.lo}.${objext} ;; -- *) func_lo2o_result=${1} ;; -- esac --} -- --# func_xform libobj-or-source --func_xform () --{ -- func_xform_result=${1%.*}.lo --} -- --# func_arith arithmetic-term... --func_arith () --{ -- func_arith_result=$(( $* )) --} -- --# func_len string --# STRING may not start with a hyphen. --func_len () --{ -- func_len_result=${#1} --} -- --_LT_EOF -- ;; -- *) # Bourne compatible functions. -- cat << \_LT_EOF >> "$cfgfile" -- --# func_dirname file append nondir_replacement --# Compute the dirname of FILE. If nonempty, add APPEND to the result, --# otherwise set result to NONDIR_REPLACEMENT. --func_dirname () --{ -- # Extract subdirectory from the argument. -- func_dirname_result=`$ECHO "${1}" | $SED "$dirname"` -- if test "X$func_dirname_result" = "X${1}"; then -- func_dirname_result="${3}" -- else -- func_dirname_result="$func_dirname_result${2}" -- fi --} -- --# func_basename file --func_basename () --{ -- func_basename_result=`$ECHO "${1}" | $SED "$basename"` --} -- -- --# func_stripname prefix suffix name --# strip PREFIX and SUFFIX off of NAME. --# PREFIX and SUFFIX must not contain globbing or regex special --# characters, hashes, percent signs, but SUFFIX may contain a leading --# dot (in which case that matches only a dot). --# func_strip_suffix prefix name --func_stripname () --{ -- case ${2} in -- .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; -- *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; -- esac --} -- --# sed scripts: --my_sed_long_opt='1s/^\(-[^=]*\)=.*/\1/;q' --my_sed_long_arg='1s/^-[^=]*=//' -- --# func_opt_split --func_opt_split () --{ -- func_opt_split_opt=`$ECHO "${1}" | $SED "$my_sed_long_opt"` -- func_opt_split_arg=`$ECHO "${1}" | $SED "$my_sed_long_arg"` --} -- --# func_lo2o object --func_lo2o () --{ -- func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"` --} -- --# func_xform libobj-or-source --func_xform () --{ -- func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'` --} -- --# func_arith arithmetic-term... --func_arith () --{ -- func_arith_result=`expr "$@"` --} -- --# func_len string --# STRING may not start with a hyphen. --func_len () --{ -- func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len` --} -- --_LT_EOF --esac -- --case $lt_shell_append in -- yes) -- cat << \_LT_EOF >> "$cfgfile" -- --# func_append var value --# Append VALUE to the end of shell variable VAR. --func_append () --{ -- eval "$1+=\$2" --} --_LT_EOF -- ;; -- *) -- cat << \_LT_EOF >> "$cfgfile" -- --# func_append var value --# Append VALUE to the end of shell variable VAR. --func_append () --{ -- eval "$1=\$$1\$2" --} -- --_LT_EOF -- ;; -- esac -- -- -- sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ -- || (rm -f "$cfgfile"; exit 1) -- -- mv -f "$cfgfile" "$ofile" || -+ sed '$q' "$ltmain" >> "$cfgfile" \ -+ || (rm -f "$cfgfile"; exit 1) -+ -+ if test x"$xsi_shell" = xyes; then -+ sed -e '/^func_dirname ()$/,/^} # func_dirname /c\ -+func_dirname ()\ -+{\ -+\ case ${1} in\ -+\ */*) func_dirname_result="${1%/*}${2}" ;;\ -+\ * ) func_dirname_result="${3}" ;;\ -+\ esac\ -+} # Extended-shell func_dirname implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_basename ()$/,/^} # func_basename /c\ -+func_basename ()\ -+{\ -+\ func_basename_result="${1##*/}"\ -+} # Extended-shell func_basename implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_dirname_and_basename ()$/,/^} # func_dirname_and_basename /c\ -+func_dirname_and_basename ()\ -+{\ -+\ case ${1} in\ -+\ */*) func_dirname_result="${1%/*}${2}" ;;\ -+\ * ) func_dirname_result="${3}" ;;\ -+\ esac\ -+\ func_basename_result="${1##*/}"\ -+} # Extended-shell func_dirname_and_basename implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_stripname ()$/,/^} # func_stripname /c\ -+func_stripname ()\ -+{\ -+\ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are\ -+\ # positional parameters, so assign one to ordinary parameter first.\ -+\ func_stripname_result=${3}\ -+\ func_stripname_result=${func_stripname_result#"${1}"}\ -+\ func_stripname_result=${func_stripname_result%"${2}"}\ -+} # Extended-shell func_stripname implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_split_long_opt ()$/,/^} # func_split_long_opt /c\ -+func_split_long_opt ()\ -+{\ -+\ func_split_long_opt_name=${1%%=*}\ -+\ func_split_long_opt_arg=${1#*=}\ -+} # Extended-shell func_split_long_opt implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_split_short_opt ()$/,/^} # func_split_short_opt /c\ -+func_split_short_opt ()\ -+{\ -+\ func_split_short_opt_arg=${1#??}\ -+\ func_split_short_opt_name=${1%"$func_split_short_opt_arg"}\ -+} # Extended-shell func_split_short_opt implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_lo2o ()$/,/^} # func_lo2o /c\ -+func_lo2o ()\ -+{\ -+\ case ${1} in\ -+\ *.lo) func_lo2o_result=${1%.lo}.${objext} ;;\ -+\ *) func_lo2o_result=${1} ;;\ -+\ esac\ -+} # Extended-shell func_lo2o implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_xform ()$/,/^} # func_xform /c\ -+func_xform ()\ -+{\ -+ func_xform_result=${1%.*}.lo\ -+} # Extended-shell func_xform implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_arith ()$/,/^} # func_arith /c\ -+func_arith ()\ -+{\ -+ func_arith_result=$(( $* ))\ -+} # Extended-shell func_arith implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_len ()$/,/^} # func_len /c\ -+func_len ()\ -+{\ -+ func_len_result=${#1}\ -+} # Extended-shell func_len implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+fi -+ -+if test x"$lt_shell_append" = xyes; then -+ sed -e '/^func_append ()$/,/^} # func_append /c\ -+func_append ()\ -+{\ -+ eval "${1}+=\\${2}"\ -+} # Extended-shell func_append implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_append_quoted ()$/,/^} # func_append_quoted /c\ -+func_append_quoted ()\ -+{\ -+\ func_quote_for_eval "${2}"\ -+\ eval "${1}+=\\\\ \\$func_quote_for_eval_result"\ -+} # Extended-shell func_append_quoted implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ # Save a `func_append' function call where possible by direct use of '+=' -+ sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+ test 0 -eq $? || _lt_function_replace_fail=: -+else -+ # Save a `func_append' function call even when '+=' is not available -+ sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+ test 0 -eq $? || _lt_function_replace_fail=: -+fi -+ -+if test x"$_lt_function_replace_fail" = x":"; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5 -+$as_echo "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;} -+fi -+ -+ -+ mv -f "$cfgfile" "$ofile" || - (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") - chmod +x "$ofile" - -diff --git a/bfd/configure.ac b/bfd/configure.ac -index 669cff7..5f57877 100644 ---- a/bfd/configure.ac -+++ b/bfd/configure.ac -@@ -253,7 +253,7 @@ changequote(,)dnl - x=`sed -n -e 's/^[ ]*PICFLAG[ ]*=[ ]*//p' < ../libiberty/Makefile | sed -n '$p'` - changequote([,])dnl - if test -n "$x"; then -- SHARED_LIBADD="-L`pwd`/../libiberty/pic -liberty" -+ SHARED_LIBADD="`pwd`/../libiberty/pic/libiberty.a" - fi - - # More hacks to build DLLs on Windows. -diff --git a/binutils/configure b/binutils/configure -index 6cbf17c..6d20600 100755 ---- a/binutils/configure -+++ b/binutils/configure -@@ -658,8 +658,11 @@ OTOOL - LIPO - NMEDIT - DSYMUTIL -+MANIFEST_TOOL - RANLIB -+ac_ct_AR - AR -+DLLTOOL - OBJDUMP - LN_S - NM -@@ -771,6 +774,7 @@ enable_static - with_pic - enable_fast_install - with_gnu_ld -+with_libtool_sysroot - enable_libtool_lock - enable_plugins - enable_largefile -@@ -1443,6 +1447,8 @@ Optional Packages: - --with-pic try to use only PIC/non-PIC objects [default=use - both] - --with-gnu-ld assume the C compiler uses GNU ld [default=no] -+ --with-libtool-sysroot=DIR Search for dependent libraries within DIR -+ (or the compiler's sysroot if not specified). - --with-system-zlib use installed libz - --with-gnu-ld assume the C compiler uses GNU ld default=no - --with-libiconv-prefix[=DIR] search for libiconv in DIR/include and DIR/lib -@@ -5159,8 +5165,8 @@ esac - - - --macro_version='2.2.7a' --macro_revision='1.3134' -+macro_version='2.4' -+macro_revision='1.3293' - - - -@@ -5200,7 +5206,7 @@ ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO - { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5 - $as_echo_n "checking how to print strings... " >&6; } - # Test print first, because it will be a builtin if present. --if test "X`print -r -- -n 2>/dev/null`" = X-n && \ -+if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ - test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then - ECHO='print -r --' - elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then -@@ -5886,8 +5892,8 @@ $as_echo_n "checking whether the shell understands some XSI constructs... " >&6; - # Try some XSI features - xsi_shell=no - ( _lt_dummy="a/b/c" -- test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \ -- = c,a/b,, \ -+ test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ -+ = c,a/b,b/c, \ - && eval 'test $(( 1 + 1 )) -eq 2 \ - && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ - && xsi_shell=yes -@@ -5936,6 +5942,80 @@ esac - - - -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5 -+$as_echo_n "checking how to convert $build file names to $host format... " >&6; } -+if test "${lt_cv_to_host_file_cmd+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ case $host in -+ *-*-mingw* ) -+ case $build in -+ *-*-mingw* ) # actually msys -+ lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 -+ ;; -+ *-*-cygwin* ) -+ lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 -+ ;; -+ * ) # otherwise, assume *nix -+ lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 -+ ;; -+ esac -+ ;; -+ *-*-cygwin* ) -+ case $build in -+ *-*-mingw* ) # actually msys -+ lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin -+ ;; -+ *-*-cygwin* ) -+ lt_cv_to_host_file_cmd=func_convert_file_noop -+ ;; -+ * ) # otherwise, assume *nix -+ lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin -+ ;; -+ esac -+ ;; -+ * ) # unhandled hosts (and "normal" native builds) -+ lt_cv_to_host_file_cmd=func_convert_file_noop -+ ;; -+esac -+ -+fi -+ -+to_host_file_cmd=$lt_cv_to_host_file_cmd -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5 -+$as_echo "$lt_cv_to_host_file_cmd" >&6; } -+ -+ -+ -+ -+ -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5 -+$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; } -+if test "${lt_cv_to_tool_file_cmd+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ #assume ordinary cross tools, or native build. -+lt_cv_to_tool_file_cmd=func_convert_file_noop -+case $host in -+ *-*-mingw* ) -+ case $build in -+ *-*-mingw* ) # actually msys -+ lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 -+ ;; -+ esac -+ ;; -+esac -+ -+fi -+ -+to_tool_file_cmd=$lt_cv_to_tool_file_cmd -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5 -+$as_echo "$lt_cv_to_tool_file_cmd" >&6; } -+ -+ -+ -+ -+ - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 - $as_echo_n "checking for $LD option to reload object files... " >&6; } - if test "${lt_cv_ld_reload_flag+set}" = set; then : -@@ -5952,6 +6032,11 @@ case $reload_flag in - esac - reload_cmds='$LD$reload_flag -o $output$reload_objs' - case $host_os in -+ cygwin* | mingw* | pw32* | cegcc*) -+ if test "$GCC" != yes; then -+ reload_cmds=false -+ fi -+ ;; - darwin*) - if test "$GCC" = yes; then - reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' -@@ -6120,7 +6205,8 @@ mingw* | pw32*) - lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' - lt_cv_file_magic_cmd='func_win32_libid' - else -- lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' -+ # Keep this pattern in sync with the one in func_win32_libid. -+ lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' - lt_cv_file_magic_cmd='$OBJDUMP -f' - fi - ;; -@@ -6274,6 +6360,21 @@ esac - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 - $as_echo "$lt_cv_deplibs_check_method" >&6; } -+ -+file_magic_glob= -+want_nocaseglob=no -+if test "$build" = "$host"; then -+ case $host_os in -+ mingw* | pw32*) -+ if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then -+ want_nocaseglob=yes -+ else -+ file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"` -+ fi -+ ;; -+ esac -+fi -+ - file_magic_cmd=$lt_cv_file_magic_cmd - deplibs_check_method=$lt_cv_deplibs_check_method - test -z "$deplibs_check_method" && deplibs_check_method=unknown -@@ -6289,9 +6390,162 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown - - - -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+if test -n "$ac_tool_prefix"; then -+ # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. -+set dummy ${ac_tool_prefix}dlltool; ac_word=$2 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+$as_echo_n "checking for $ac_word... " >&6; } -+if test "${ac_cv_prog_DLLTOOL+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ if test -n "$DLLTOOL"; then -+ ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. -+else -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then -+ ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" -+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+ done -+IFS=$as_save_IFS -+ -+fi -+fi -+DLLTOOL=$ac_cv_prog_DLLTOOL -+if test -n "$DLLTOOL"; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 -+$as_echo "$DLLTOOL" >&6; } -+else -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+$as_echo "no" >&6; } -+fi -+ -+ -+fi -+if test -z "$ac_cv_prog_DLLTOOL"; then -+ ac_ct_DLLTOOL=$DLLTOOL -+ # Extract the first word of "dlltool", so it can be a program name with args. -+set dummy dlltool; ac_word=$2 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+$as_echo_n "checking for $ac_word... " >&6; } -+if test "${ac_cv_prog_ac_ct_DLLTOOL+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ if test -n "$ac_ct_DLLTOOL"; then -+ ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. -+else -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then -+ ac_cv_prog_ac_ct_DLLTOOL="dlltool" -+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+ done -+IFS=$as_save_IFS -+ -+fi -+fi -+ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL -+if test -n "$ac_ct_DLLTOOL"; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 -+$as_echo "$ac_ct_DLLTOOL" >&6; } -+else -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+$as_echo "no" >&6; } -+fi -+ -+ if test "x$ac_ct_DLLTOOL" = x; then -+ DLLTOOL="false" -+ else -+ case $cross_compiling:$ac_tool_warned in -+yes:) -+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -+ac_tool_warned=yes ;; -+esac -+ DLLTOOL=$ac_ct_DLLTOOL -+ fi -+else -+ DLLTOOL="$ac_cv_prog_DLLTOOL" -+fi -+ -+test -z "$DLLTOOL" && DLLTOOL=dlltool -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5 -+$as_echo_n "checking how to associate runtime and link libraries... " >&6; } -+if test "${lt_cv_sharedlib_from_linklib_cmd+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ lt_cv_sharedlib_from_linklib_cmd='unknown' -+ -+case $host_os in -+cygwin* | mingw* | pw32* | cegcc*) -+ # two different shell functions defined in ltmain.sh -+ # decide which to use based on capabilities of $DLLTOOL -+ case `$DLLTOOL --help 2>&1` in -+ *--identify-strict*) -+ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib -+ ;; -+ *) -+ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback -+ ;; -+ esac -+ ;; -+*) -+ # fallback: assume linklib IS sharedlib -+ lt_cv_sharedlib_from_linklib_cmd="$ECHO" -+ ;; -+esac -+ -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5 -+$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; } -+sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd -+test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO -+ -+ -+ -+ -+ -+ -+ - if test -n "$ac_tool_prefix"; then -- # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. --set dummy ${ac_tool_prefix}ar; ac_word=$2 -+ for ac_prog in ar -+ do -+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -+set dummy $ac_tool_prefix$ac_prog; ac_word=$2 - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 - $as_echo_n "checking for $ac_word... " >&6; } - if test "${ac_cv_prog_AR+set}" = set; then : -@@ -6307,7 +6561,7 @@ do - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then -- ac_cv_prog_AR="${ac_tool_prefix}ar" -+ ac_cv_prog_AR="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -@@ -6327,11 +6581,15 @@ $as_echo "no" >&6; } - fi - - -+ test -n "$AR" && break -+ done - fi --if test -z "$ac_cv_prog_AR"; then -+if test -z "$AR"; then - ac_ct_AR=$AR -- # Extract the first word of "ar", so it can be a program name with args. --set dummy ar; ac_word=$2 -+ for ac_prog in ar -+do -+ # Extract the first word of "$ac_prog", so it can be a program name with args. -+set dummy $ac_prog; ac_word=$2 - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 - $as_echo_n "checking for $ac_word... " >&6; } - if test "${ac_cv_prog_ac_ct_AR+set}" = set; then : -@@ -6347,7 +6605,7 @@ do - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then -- ac_cv_prog_ac_ct_AR="ar" -+ ac_cv_prog_ac_ct_AR="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -@@ -6366,6 +6624,10 @@ else - $as_echo "no" >&6; } - fi - -+ -+ test -n "$ac_ct_AR" && break -+done -+ - if test "x$ac_ct_AR" = x; then - AR="false" - else -@@ -6377,12 +6639,10 @@ ac_tool_warned=yes ;; - esac - AR=$ac_ct_AR - fi --else -- AR="$ac_cv_prog_AR" - fi - --test -z "$AR" && AR=ar --test -z "$AR_FLAGS" && AR_FLAGS=cru -+: ${AR=ar} -+: ${AR_FLAGS=cru} - - - -@@ -6394,6 +6654,64 @@ test -z "$AR_FLAGS" && AR_FLAGS=cru - - - -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 -+$as_echo_n "checking for archiver @FILE support... " >&6; } -+if test "${lt_cv_ar_at_file+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ lt_cv_ar_at_file=no -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+/* end confdefs.h. */ -+ -+int -+main () -+{ -+ -+ ; -+ return 0; -+} -+_ACEOF -+if ac_fn_c_try_compile "$LINENO"; then : -+ echo conftest.$ac_objext > conftest.lst -+ lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5' -+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 -+ (eval $lt_ar_try) 2>&5 -+ ac_status=$? -+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 -+ test $ac_status = 0; } -+ if test "$ac_status" -eq 0; then -+ # Ensure the archiver fails upon bogus file names. -+ rm -f conftest.$ac_objext libconftest.a -+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 -+ (eval $lt_ar_try) 2>&5 -+ ac_status=$? -+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 -+ test $ac_status = 0; } -+ if test "$ac_status" -ne 0; then -+ lt_cv_ar_at_file=@ -+ fi -+ fi -+ rm -f conftest.* libconftest.a -+ -+fi -+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -+ -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 -+$as_echo "$lt_cv_ar_at_file" >&6; } -+ -+if test "x$lt_cv_ar_at_file" = xno; then -+ archiver_list_spec= -+else -+ archiver_list_spec=$lt_cv_ar_at_file -+fi -+ -+ -+ -+ -+ -+ -+ - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. - set dummy ${ac_tool_prefix}strip; ac_word=$2 -@@ -6728,8 +7046,8 @@ esac - lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" - - # Transform an extracted symbol line into symbol name and symbol address --lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" --lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" -+lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" -+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" - - # Handle CRLF in mingw tool chain - opt_cr= -@@ -6765,6 +7083,7 @@ for ac_symprfx in "" "_"; do - else - lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" - fi -+ lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" - - # Check to see that the pipe works correctly. - pipe_works=no -@@ -6806,6 +7125,18 @@ _LT_EOF - if $GREP ' nm_test_var$' "$nlist" >/dev/null; then - if $GREP ' nm_test_func$' "$nlist" >/dev/null; then - cat <<_LT_EOF > conftest.$ac_ext -+/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ -+#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) -+/* DATA imports from DLLs on WIN32 con't be const, because runtime -+ relocations are performed -- see ld's documentation on pseudo-relocs. */ -+# define LT_DLSYM_CONST -+#elif defined(__osf__) -+/* This system does not cope well with relocations in const data. */ -+# define LT_DLSYM_CONST -+#else -+# define LT_DLSYM_CONST const -+#endif -+ - #ifdef __cplusplus - extern "C" { - #endif -@@ -6817,7 +7148,7 @@ _LT_EOF - cat <<_LT_EOF >> conftest.$ac_ext - - /* The mapping between symbol names and symbols. */ --const struct { -+LT_DLSYM_CONST struct { - const char *name; - void *address; - } -@@ -6843,8 +7174,8 @@ static const void *lt_preloaded_setup() { - _LT_EOF - # Now try linking the two files. - mv conftest.$ac_objext conftstm.$ac_objext -- lt_save_LIBS="$LIBS" -- lt_save_CFLAGS="$CFLAGS" -+ lt_globsym_save_LIBS=$LIBS -+ lt_globsym_save_CFLAGS=$CFLAGS - LIBS="conftstm.$ac_objext" - CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 -@@ -6854,8 +7185,8 @@ _LT_EOF - test $ac_status = 0; } && test -s conftest${ac_exeext}; then - pipe_works=yes - fi -- LIBS="$lt_save_LIBS" -- CFLAGS="$lt_save_CFLAGS" -+ LIBS=$lt_globsym_save_LIBS -+ CFLAGS=$lt_globsym_save_CFLAGS - else - echo "cannot find nm_test_func in $nlist" >&5 - fi -@@ -6892,6 +7223,21 @@ else - $as_echo "ok" >&6; } - fi - -+# Response file support. -+if test "$lt_cv_nm_interface" = "MS dumpbin"; then -+ nm_file_list_spec='@' -+elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then -+ nm_file_list_spec='@' -+fi -+ -+ -+ -+ -+ -+ -+ -+ -+ - - - -@@ -6910,6 +7256,40 @@ fi - - - -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 -+$as_echo_n "checking for sysroot... " >&6; } -+ -+# Check whether --with-libtool-sysroot was given. -+if test "${with_libtool_sysroot+set}" = set; then : -+ withval=$with_libtool_sysroot; -+else -+ with_libtool_sysroot=no -+fi -+ -+ -+lt_sysroot= -+case ${with_libtool_sysroot} in #( -+ yes) -+ if test "$GCC" = yes; then -+ lt_sysroot=`$CC --print-sysroot 2>/dev/null` -+ fi -+ ;; #( -+ /*) -+ lt_sysroot=`echo "$with_libtool_sysroot" | sed -e "$sed_quote_subst"` -+ ;; #( -+ no|'') -+ ;; #( -+ *) -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_libtool_sysroot}" >&5 -+$as_echo "${with_libtool_sysroot}" >&6; } -+ as_fn_error "The sysroot must be an absolute path." "$LINENO" 5 -+ ;; -+esac -+ -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5 -+$as_echo "${lt_sysroot:-no}" >&6; } -+ -+ - - - -@@ -7119,6 +7499,123 @@ esac - - need_locks="$enable_libtool_lock" - -+if test -n "$ac_tool_prefix"; then -+ # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args. -+set dummy ${ac_tool_prefix}mt; ac_word=$2 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+$as_echo_n "checking for $ac_word... " >&6; } -+if test "${ac_cv_prog_MANIFEST_TOOL+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ if test -n "$MANIFEST_TOOL"; then -+ ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test. -+else -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then -+ ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt" -+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+ done -+IFS=$as_save_IFS -+ -+fi -+fi -+MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL -+if test -n "$MANIFEST_TOOL"; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5 -+$as_echo "$MANIFEST_TOOL" >&6; } -+else -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+$as_echo "no" >&6; } -+fi -+ -+ -+fi -+if test -z "$ac_cv_prog_MANIFEST_TOOL"; then -+ ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL -+ # Extract the first word of "mt", so it can be a program name with args. -+set dummy mt; ac_word=$2 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+$as_echo_n "checking for $ac_word... " >&6; } -+if test "${ac_cv_prog_ac_ct_MANIFEST_TOOL+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ if test -n "$ac_ct_MANIFEST_TOOL"; then -+ ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test. -+else -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then -+ ac_cv_prog_ac_ct_MANIFEST_TOOL="mt" -+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+ done -+IFS=$as_save_IFS -+ -+fi -+fi -+ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL -+if test -n "$ac_ct_MANIFEST_TOOL"; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5 -+$as_echo "$ac_ct_MANIFEST_TOOL" >&6; } -+else -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+$as_echo "no" >&6; } -+fi -+ -+ if test "x$ac_ct_MANIFEST_TOOL" = x; then -+ MANIFEST_TOOL=":" -+ else -+ case $cross_compiling:$ac_tool_warned in -+yes:) -+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -+ac_tool_warned=yes ;; -+esac -+ MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL -+ fi -+else -+ MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL" -+fi -+ -+test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5 -+$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; } -+if test "${lt_cv_path_mainfest_tool+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ lt_cv_path_mainfest_tool=no -+ echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5 -+ $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out -+ cat conftest.err >&5 -+ if $GREP 'Manifest Tool' conftest.out > /dev/null; then -+ lt_cv_path_mainfest_tool=yes -+ fi -+ rm -f conftest* -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5 -+$as_echo "$lt_cv_path_mainfest_tool" >&6; } -+if test "x$lt_cv_path_mainfest_tool" != xyes; then -+ MANIFEST_TOOL=: -+fi -+ -+ -+ -+ -+ - - case $host_os in - rhapsody* | darwin*) -@@ -7682,6 +8179,8 @@ _LT_EOF - $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 - echo "$AR cru libconftest.a conftest.o" >&5 - $AR cru libconftest.a conftest.o 2>&5 -+ echo "$RANLIB libconftest.a" >&5 -+ $RANLIB libconftest.a 2>&5 - cat > conftest.c << _LT_EOF - int main() { return 0;} - _LT_EOF -@@ -7877,7 +8376,8 @@ fi - LIBTOOL_DEPS="$ltmain" - - # Always use our own libtool. --LIBTOOL='$(SHELL) $(top_builddir)/libtool' -+LIBTOOL='$(SHELL) $(top_builddir)' -+LIBTOOL="$LIBTOOL/${host_alias}-libtool" - - - -@@ -7966,7 +8466,7 @@ aix3*) - esac - - # Global variables: --ofile=libtool -+ofile=${host_alias}-libtool - can_build_shared=yes - - # All known linkers require a `.a' archive for static linking (except MSVC, -@@ -8264,8 +8764,6 @@ fi - lt_prog_compiler_pic= - lt_prog_compiler_static= - --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 --$as_echo_n "checking for $compiler option to produce PIC... " >&6; } - - if test "$GCC" = yes; then - lt_prog_compiler_wl='-Wl,' -@@ -8431,6 +8929,12 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; } - lt_prog_compiler_pic='--shared' - lt_prog_compiler_static='--static' - ;; -+ nagfor*) -+ # NAG Fortran compiler -+ lt_prog_compiler_wl='-Wl,-Wl,,' -+ lt_prog_compiler_pic='-PIC' -+ lt_prog_compiler_static='-Bstatic' -+ ;; - pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) - # Portland Group compilers (*not* the Pentium gcc compiler, - # which looks to be a dead project) -@@ -8493,7 +8997,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; } - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-Bstatic' - case $cc_basename in -- f77* | f90* | f95*) -+ f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) - lt_prog_compiler_wl='-Qoption ld ';; - *) - lt_prog_compiler_wl='-Wl,';; -@@ -8550,13 +9054,17 @@ case $host_os in - lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" - ;; - esac --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic" >&5 --$as_echo "$lt_prog_compiler_pic" >&6; } -- -- -- -- - -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 -+$as_echo_n "checking for $compiler option to produce PIC... " >&6; } -+if test "${lt_cv_prog_compiler_pic+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ lt_cv_prog_compiler_pic=$lt_prog_compiler_pic -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 -+$as_echo "$lt_cv_prog_compiler_pic" >&6; } -+lt_prog_compiler_pic=$lt_cv_prog_compiler_pic - - # - # Check to make sure the PIC flag actually works. -@@ -8617,6 +9125,11 @@ fi - - - -+ -+ -+ -+ -+ - # - # Check to make sure the static flag actually works. - # -@@ -8967,7 +9480,8 @@ _LT_EOF - allow_undefined_flag=unsupported - always_export_symbols=no - enable_shared_with_static_runtimes=yes -- export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' -+ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' -+ exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' - - if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' -@@ -9066,12 +9580,12 @@ _LT_EOF - whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' - hardcode_libdir_flag_spec= - hardcode_libdir_flag_spec_ld='-rpath $libdir' -- archive_cmds='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib' -+ archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' - if test "x$supports_anon_versioning" = xyes; then - archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ - cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ - echo "local: *; };" >> $output_objdir/$libname.ver~ -- $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' -+ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' - fi - ;; - esac -@@ -9085,8 +9599,8 @@ _LT_EOF - archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' - wlarc= - else -- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' -+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - fi - ;; - -@@ -9104,8 +9618,8 @@ _LT_EOF - - _LT_EOF - elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then -- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' -+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - ld_shlibs=no - fi -@@ -9151,8 +9665,8 @@ _LT_EOF - - *) - if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then -- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' -+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - ld_shlibs=no - fi -@@ -9282,7 +9796,13 @@ _LT_EOF - allow_undefined_flag='-berok' - # Determine the default libpath from the value encoded in an - # empty executable. -- cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+ if test "${lt_cv_aix_libpath+set}" = set; then -+ aix_libpath=$lt_cv_aix_libpath -+else -+ if test "${lt_cv_aix_libpath_+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - - int -@@ -9295,22 +9815,29 @@ main () - _ACEOF - if ac_fn_c_try_link "$LINENO"; then : - --lt_aix_libpath_sed=' -- /Import File Strings/,/^$/ { -- /^0/ { -- s/^0 *\(.*\)$/\1/ -- p -- } -- }' --aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` --# Check for a 64-bit object if we didn't find anything. --if test -z "$aix_libpath"; then -- aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` --fi -+ lt_aix_libpath_sed=' -+ /Import File Strings/,/^$/ { -+ /^0/ { -+ s/^0 *\([^ ]*\) *$/\1/ -+ p -+ } -+ }' -+ lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -+ # Check for a 64-bit object if we didn't find anything. -+ if test -z "$lt_cv_aix_libpath_"; then -+ lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -+ fi - fi - rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext --if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi -+ if test -z "$lt_cv_aix_libpath_"; then -+ lt_cv_aix_libpath_="/usr/lib:/lib" -+ fi -+ -+fi -+ -+ aix_libpath=$lt_cv_aix_libpath_ -+fi - - hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" - archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" -@@ -9322,7 +9849,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi - else - # Determine the default libpath from the value encoded in an - # empty executable. -- cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+ if test "${lt_cv_aix_libpath+set}" = set; then -+ aix_libpath=$lt_cv_aix_libpath -+else -+ if test "${lt_cv_aix_libpath_+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - - int -@@ -9335,22 +9868,29 @@ main () - _ACEOF - if ac_fn_c_try_link "$LINENO"; then : - --lt_aix_libpath_sed=' -- /Import File Strings/,/^$/ { -- /^0/ { -- s/^0 *\(.*\)$/\1/ -- p -- } -- }' --aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` --# Check for a 64-bit object if we didn't find anything. --if test -z "$aix_libpath"; then -- aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` --fi -+ lt_aix_libpath_sed=' -+ /Import File Strings/,/^$/ { -+ /^0/ { -+ s/^0 *\([^ ]*\) *$/\1/ -+ p -+ } -+ }' -+ lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -+ # Check for a 64-bit object if we didn't find anything. -+ if test -z "$lt_cv_aix_libpath_"; then -+ lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -+ fi - fi - rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext --if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi -+ if test -z "$lt_cv_aix_libpath_"; then -+ lt_cv_aix_libpath_="/usr/lib:/lib" -+ fi -+ -+fi -+ -+ aix_libpath=$lt_cv_aix_libpath_ -+fi - - hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" - # Warning - without using the other run time loading flags, -@@ -9395,20 +9935,63 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi - # Microsoft Visual C++. - # hardcode_libdir_flag_spec is actually meaningless, as there is - # no search path for DLLs. -- hardcode_libdir_flag_spec=' ' -- allow_undefined_flag=unsupported -- # Tell ltmain to make .lib files, not .a files. -- libext=lib -- # Tell ltmain to make .dll files, not .so files. -- shrext_cmds=".dll" -- # FIXME: Setting linknames here is a bad hack. -- archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' -- # The linker will automatically build a .lib file if we build a DLL. -- old_archive_from_new_cmds='true' -- # FIXME: Should let the user specify the lib program. -- old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' -- fix_srcfile_path='`cygpath -w "$srcfile"`' -- enable_shared_with_static_runtimes=yes -+ case $cc_basename in -+ cl*) -+ # Native MSVC -+ hardcode_libdir_flag_spec=' ' -+ allow_undefined_flag=unsupported -+ always_export_symbols=yes -+ file_list_spec='@' -+ # Tell ltmain to make .lib files, not .a files. -+ libext=lib -+ # Tell ltmain to make .dll files, not .so files. -+ shrext_cmds=".dll" -+ # FIXME: Setting linknames here is a bad hack. -+ archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' -+ archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then -+ sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; -+ else -+ sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; -+ fi~ -+ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ -+ linknames=' -+ # The linker will not automatically build a static lib if we build a DLL. -+ # _LT_TAGVAR(old_archive_from_new_cmds, )='true' -+ enable_shared_with_static_runtimes=yes -+ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' -+ # Don't use ranlib -+ old_postinstall_cmds='chmod 644 $oldlib' -+ postlink_cmds='lt_outputfile="@OUTPUT@"~ -+ lt_tool_outputfile="@TOOL_OUTPUT@"~ -+ case $lt_outputfile in -+ *.exe|*.EXE) ;; -+ *) -+ lt_outputfile="$lt_outputfile.exe" -+ lt_tool_outputfile="$lt_tool_outputfile.exe" -+ ;; -+ esac~ -+ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then -+ $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; -+ $RM "$lt_outputfile.manifest"; -+ fi' -+ ;; -+ *) -+ # Assume MSVC wrapper -+ hardcode_libdir_flag_spec=' ' -+ allow_undefined_flag=unsupported -+ # Tell ltmain to make .lib files, not .a files. -+ libext=lib -+ # Tell ltmain to make .dll files, not .so files. -+ shrext_cmds=".dll" -+ # FIXME: Setting linknames here is a bad hack. -+ archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' -+ # The linker will automatically build a .lib file if we build a DLL. -+ old_archive_from_new_cmds='true' -+ # FIXME: Should let the user specify the lib program. -+ old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' -+ enable_shared_with_static_runtimes=yes -+ ;; -+ esac - ;; - - darwin* | rhapsody*) -@@ -9469,7 +10052,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi - - # FreeBSD 3 and greater uses gcc -shared to do shared libraries. - freebsd* | dragonfly*) -- archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' -+ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - hardcode_libdir_flag_spec='-R$libdir' - hardcode_direct=yes - hardcode_shlibpath_var=no -@@ -9477,7 +10060,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi - - hpux9*) - if test "$GCC" = yes; then -- archive_cmds='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' -+ archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - else - archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - fi -@@ -9493,7 +10076,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi - - hpux10*) - if test "$GCC" = yes && test "$with_gnu_ld" = no; then -- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' -+ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' - fi -@@ -9517,10 +10100,10 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi - archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - ia64*) -- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' -+ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) -- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' -+ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - ;; - esac - else -@@ -9599,23 +10182,36 @@ fi - - irix5* | irix6* | nonstopux*) - if test "$GCC" = yes; then -- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' -+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - # Try to use the -exported_symbol ld option, if it does not - # work, assume that -exports_file does not work either and - # implicitly export all symbols. -- save_LDFLAGS="$LDFLAGS" -- LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" -- cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+ # This should be the same for all languages, so no per-tag cache variable. -+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5 -+$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; } -+if test "${lt_cv_irix_exported_symbol+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ save_LDFLAGS="$LDFLAGS" -+ LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ --int foo(void) {} -+int foo (void) { return 0; } - _ACEOF - if ac_fn_c_try_link "$LINENO"; then : -- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' -- -+ lt_cv_irix_exported_symbol=yes -+else -+ lt_cv_irix_exported_symbol=no - fi - rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -- LDFLAGS="$save_LDFLAGS" -+ LDFLAGS="$save_LDFLAGS" -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5 -+$as_echo "$lt_cv_irix_exported_symbol" >&6; } -+ if test "$lt_cv_irix_exported_symbol" = yes; then -+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' -+ fi - else - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' - archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' -@@ -9700,7 +10296,7 @@ rm -f core conftest.err conftest.$ac_objext \ - osf4* | osf5*) # as osf3* with the addition of -msym flag - if test "$GCC" = yes; then - allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' -- archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' -+ archive_cmds='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - else - allow_undefined_flag=' -expect_unresolved \*' -@@ -9719,9 +10315,9 @@ rm -f core conftest.err conftest.$ac_objext \ - no_undefined_flag=' -z defs' - if test "$GCC" = yes; then - wlarc='${wl}' -- archive_cmds='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' -+ archive_cmds='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ -- $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' -+ $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' - else - case `$CC -V 2>&1` in - *"Compilers 5.0"*) -@@ -10297,8 +10893,9 @@ cygwin* | mingw* | pw32* | cegcc*) - need_version=no - need_lib_prefix=no - -- case $GCC,$host_os in -- yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) -+ case $GCC,$cc_basename in -+ yes,*) -+ # gcc - library_names_spec='$libname.dll.a' - # DLL is installed to $(libdir)/../bin by postinstall_cmds - postinstall_cmds='base_file=`basename \${file}`~ -@@ -10331,13 +10928,71 @@ cygwin* | mingw* | pw32* | cegcc*) - library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - ;; - esac -+ dynamic_linker='Win32 ld.exe' -+ ;; -+ -+ *,cl*) -+ # Native MSVC -+ libname_spec='$name' -+ soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' -+ library_names_spec='${libname}.dll.lib' -+ -+ case $build_os in -+ mingw*) -+ sys_lib_search_path_spec= -+ lt_save_ifs=$IFS -+ IFS=';' -+ for lt_path in $LIB -+ do -+ IFS=$lt_save_ifs -+ # Let DOS variable expansion print the short 8.3 style file name. -+ lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` -+ sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" -+ done -+ IFS=$lt_save_ifs -+ # Convert to MSYS style. -+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` -+ ;; -+ cygwin*) -+ # Convert to unix form, then to dos form, then back to unix form -+ # but this time dos style (no spaces!) so that the unix form looks -+ # like /cygdrive/c/PROGRA~1:/cygdr... -+ sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` -+ sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` -+ sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` -+ ;; -+ *) -+ sys_lib_search_path_spec="$LIB" -+ if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then -+ # It is most probably a Windows format PATH. -+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` -+ else -+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` -+ fi -+ # FIXME: find the short name or the path components, as spaces are -+ # common. (e.g. "Program Files" -> "PROGRA~1") -+ ;; -+ esac -+ -+ # DLL is installed to $(libdir)/../bin by postinstall_cmds -+ postinstall_cmds='base_file=`basename \${file}`~ -+ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ -+ dldir=$destdir/`dirname \$dlpath`~ -+ test -d \$dldir || mkdir -p \$dldir~ -+ $install_prog $dir/$dlname \$dldir/$dlname' -+ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ -+ dlpath=$dir/\$dldll~ -+ $RM \$dlpath' -+ shlibpath_overrides_runpath=yes -+ dynamic_linker='Win32 link.exe' - ;; - - *) -+ # Assume MSVC wrapper - library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' -+ dynamic_linker='Win32 ld.exe' - ;; - esac -- dynamic_linker='Win32 ld.exe' - # FIXME: first we should search . and the directory the executable is in - shlibpath_var=PATH - ;; -@@ -10429,7 +11084,7 @@ haiku*) - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LIBRARY_PATH - shlibpath_overrides_runpath=yes -- sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/beos/system/lib' -+ sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' - hardcode_into_libs=yes - ;; - -@@ -11269,10 +11924,10 @@ else - /* When -fvisbility=hidden is used, assume the code has been annotated - correspondingly for the symbols needed. */ - #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) --void fnord () __attribute__((visibility("default"))); -+int fnord () __attribute__((visibility("default"))); - #endif - --void fnord () { int i=42; } -+int fnord () { return 42; } - int main () - { - void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); -@@ -11375,10 +12030,10 @@ else - /* When -fvisbility=hidden is used, assume the code has been annotated - correspondingly for the symbols needed. */ - #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) --void fnord () __attribute__((visibility("default"))); -+int fnord () __attribute__((visibility("default"))); - #endif - --void fnord () { int i=42; } -+int fnord () { return 42; } - int main () - { - void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); -@@ -15392,13 +16047,20 @@ exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`' - lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`' - lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`' - lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`' -+lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`' -+lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`' - reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' - reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' - OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' - deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' - file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' -+file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`' -+want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`' -+DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' -+sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' - AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' - AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' -+archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`' - STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' - RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`' - old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`' -@@ -15413,14 +16075,17 @@ lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$de - lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`' - lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`' - lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`' -+nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`' -+lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`' - objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`' - MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`' - lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`' --lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' - lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`' -+lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' - lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`' - lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`' - need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`' -+MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`' - DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`' - NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`' - LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`' -@@ -15453,12 +16118,12 @@ hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_q - hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`' - inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`' - link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`' --fix_srcfile_path='`$ECHO "$fix_srcfile_path" | $SED "$delay_single_quote_subst"`' - always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`' - export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`' - exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`' - include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`' - prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`' -+postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`' - file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`' - variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`' - need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`' -@@ -15513,8 +16178,13 @@ reload_flag \ - OBJDUMP \ - deplibs_check_method \ - file_magic_cmd \ -+file_magic_glob \ -+want_nocaseglob \ -+DLLTOOL \ -+sharedlib_from_linklib_cmd \ - AR \ - AR_FLAGS \ -+archiver_list_spec \ - STRIP \ - RANLIB \ - CC \ -@@ -15524,12 +16194,14 @@ lt_cv_sys_global_symbol_pipe \ - lt_cv_sys_global_symbol_to_cdecl \ - lt_cv_sys_global_symbol_to_c_name_address \ - lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ -+nm_file_list_spec \ - lt_prog_compiler_no_builtin_flag \ --lt_prog_compiler_wl \ - lt_prog_compiler_pic \ -+lt_prog_compiler_wl \ - lt_prog_compiler_static \ - lt_cv_prog_compiler_c_o \ - need_locks \ -+MANIFEST_TOOL \ - DSYMUTIL \ - NMEDIT \ - LIPO \ -@@ -15545,7 +16217,6 @@ no_undefined_flag \ - hardcode_libdir_flag_spec \ - hardcode_libdir_flag_spec_ld \ - hardcode_libdir_separator \ --fix_srcfile_path \ - exclude_expsyms \ - include_expsyms \ - file_list_spec \ -@@ -15581,6 +16252,7 @@ module_cmds \ - module_expsym_cmds \ - export_symbols_cmds \ - prelink_cmds \ -+postlink_cmds \ - postinstall_cmds \ - postuninstall_cmds \ - finish_cmds \ -@@ -16338,7 +17010,8 @@ $as_echo X"$file" | - # NOTE: Changes made to this file will be lost: look at ltmain.sh. - # - # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, --# 2006, 2007, 2008, 2009 Free Software Foundation, Inc. -+# 2006, 2007, 2008, 2009, 2010 Free Software Foundation, -+# Inc. - # Written by Gordon Matzigkeit, 1996 - # - # This file is part of GNU Libtool. -@@ -16441,19 +17114,42 @@ SP2NL=$lt_lt_SP2NL - # turn newlines into spaces. - NL2SP=$lt_lt_NL2SP - -+# convert \$build file names to \$host format. -+to_host_file_cmd=$lt_cv_to_host_file_cmd -+ -+# convert \$build files to toolchain format. -+to_tool_file_cmd=$lt_cv_to_tool_file_cmd -+ - # An object symbol dumper. - OBJDUMP=$lt_OBJDUMP - - # Method to check whether dependent libraries are shared objects. - deplibs_check_method=$lt_deplibs_check_method - --# Command to use when deplibs_check_method == "file_magic". -+# Command to use when deplibs_check_method = "file_magic". - file_magic_cmd=$lt_file_magic_cmd - -+# How to find potential files when deplibs_check_method = "file_magic". -+file_magic_glob=$lt_file_magic_glob -+ -+# Find potential files using nocaseglob when deplibs_check_method = "file_magic". -+want_nocaseglob=$lt_want_nocaseglob -+ -+# DLL creation program. -+DLLTOOL=$lt_DLLTOOL -+ -+# Command to associate shared and link libraries. -+sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd -+ - # The archiver. - AR=$lt_AR -+ -+# Flags to create an archive. - AR_FLAGS=$lt_AR_FLAGS - -+# How to feed a file listing to the archiver. -+archiver_list_spec=$lt_archiver_list_spec -+ - # A symbol stripping program. - STRIP=$lt_STRIP - -@@ -16483,6 +17179,12 @@ global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address - # Transform the output of nm in a C name address pair when lib prefix is needed. - global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix - -+# Specify filename containing input files for \$NM. -+nm_file_list_spec=$lt_nm_file_list_spec -+ -+# The root where to search for dependent libraries,and in which our libraries should be installed. -+lt_sysroot=$lt_sysroot -+ - # The name of the directory that contains temporary libtool files. - objdir=$objdir - -@@ -16492,6 +17194,9 @@ MAGIC_CMD=$MAGIC_CMD - # Must we lock files when doing compilation? - need_locks=$lt_need_locks - -+# Manifest tool. -+MANIFEST_TOOL=$lt_MANIFEST_TOOL -+ - # Tool to manipulate archived DWARF debug symbol files on Mac OS X. - DSYMUTIL=$lt_DSYMUTIL - -@@ -16606,12 +17311,12 @@ with_gcc=$GCC - # Compiler flag to turn off builtin functions. - no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag - --# How to pass a linker flag through the compiler. --wl=$lt_lt_prog_compiler_wl -- - # Additional compiler flags for building library objects. - pic_flag=$lt_lt_prog_compiler_pic - -+# How to pass a linker flag through the compiler. -+wl=$lt_lt_prog_compiler_wl -+ - # Compiler flag to prevent dynamic linking. - link_static_flag=$lt_lt_prog_compiler_static - -@@ -16698,9 +17403,6 @@ inherit_rpath=$inherit_rpath - # Whether libtool must link a program against all its dependency libraries. - link_all_deplibs=$link_all_deplibs - --# Fix the shell variable \$srcfile for the compiler. --fix_srcfile_path=$lt_fix_srcfile_path -- - # Set to "yes" if exported symbols are required. - always_export_symbols=$always_export_symbols - -@@ -16716,6 +17418,9 @@ include_expsyms=$lt_include_expsyms - # Commands necessary for linking programs (against libraries) with templates. - prelink_cmds=$lt_prelink_cmds - -+# Commands necessary for finishing linking programs. -+postlink_cmds=$lt_postlink_cmds -+ - # Specify filename containing input files. - file_list_spec=$lt_file_list_spec - -@@ -16748,210 +17453,169 @@ ltmain="$ac_aux_dir/ltmain.sh" - # if finds mixed CR/LF and LF-only lines. Since sed operates in - # text mode, it properly converts lines to CR/LF. This bash problem - # is reportedly fixed, but why not run on old versions too? -- sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ -- || (rm -f "$cfgfile"; exit 1) -- -- case $xsi_shell in -- yes) -- cat << \_LT_EOF >> "$cfgfile" -- --# func_dirname file append nondir_replacement --# Compute the dirname of FILE. If nonempty, add APPEND to the result, --# otherwise set result to NONDIR_REPLACEMENT. --func_dirname () --{ -- case ${1} in -- */*) func_dirname_result="${1%/*}${2}" ;; -- * ) func_dirname_result="${3}" ;; -- esac --} -- --# func_basename file --func_basename () --{ -- func_basename_result="${1##*/}" --} -- --# func_dirname_and_basename file append nondir_replacement --# perform func_basename and func_dirname in a single function --# call: --# dirname: Compute the dirname of FILE. If nonempty, --# add APPEND to the result, otherwise set result --# to NONDIR_REPLACEMENT. --# value returned in "$func_dirname_result" --# basename: Compute filename of FILE. --# value retuned in "$func_basename_result" --# Implementation must be kept synchronized with func_dirname --# and func_basename. For efficiency, we do not delegate to --# those functions but instead duplicate the functionality here. --func_dirname_and_basename () --{ -- case ${1} in -- */*) func_dirname_result="${1%/*}${2}" ;; -- * ) func_dirname_result="${3}" ;; -- esac -- func_basename_result="${1##*/}" --} -- --# func_stripname prefix suffix name --# strip PREFIX and SUFFIX off of NAME. --# PREFIX and SUFFIX must not contain globbing or regex special --# characters, hashes, percent signs, but SUFFIX may contain a leading --# dot (in which case that matches only a dot). --func_stripname () --{ -- # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are -- # positional parameters, so assign one to ordinary parameter first. -- func_stripname_result=${3} -- func_stripname_result=${func_stripname_result#"${1}"} -- func_stripname_result=${func_stripname_result%"${2}"} --} -- --# func_opt_split --func_opt_split () --{ -- func_opt_split_opt=${1%%=*} -- func_opt_split_arg=${1#*=} --} -- --# func_lo2o object --func_lo2o () --{ -- case ${1} in -- *.lo) func_lo2o_result=${1%.lo}.${objext} ;; -- *) func_lo2o_result=${1} ;; -- esac --} -- --# func_xform libobj-or-source --func_xform () --{ -- func_xform_result=${1%.*}.lo --} -- --# func_arith arithmetic-term... --func_arith () --{ -- func_arith_result=$(( $* )) --} -- --# func_len string --# STRING may not start with a hyphen. --func_len () --{ -- func_len_result=${#1} --} -- --_LT_EOF -- ;; -- *) # Bourne compatible functions. -- cat << \_LT_EOF >> "$cfgfile" -- --# func_dirname file append nondir_replacement --# Compute the dirname of FILE. If nonempty, add APPEND to the result, --# otherwise set result to NONDIR_REPLACEMENT. --func_dirname () --{ -- # Extract subdirectory from the argument. -- func_dirname_result=`$ECHO "${1}" | $SED "$dirname"` -- if test "X$func_dirname_result" = "X${1}"; then -- func_dirname_result="${3}" -- else -- func_dirname_result="$func_dirname_result${2}" -- fi --} -- --# func_basename file --func_basename () --{ -- func_basename_result=`$ECHO "${1}" | $SED "$basename"` --} -- -- --# func_stripname prefix suffix name --# strip PREFIX and SUFFIX off of NAME. --# PREFIX and SUFFIX must not contain globbing or regex special --# characters, hashes, percent signs, but SUFFIX may contain a leading --# dot (in which case that matches only a dot). --# func_strip_suffix prefix name --func_stripname () --{ -- case ${2} in -- .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; -- *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; -- esac --} -- --# sed scripts: --my_sed_long_opt='1s/^\(-[^=]*\)=.*/\1/;q' --my_sed_long_arg='1s/^-[^=]*=//' -- --# func_opt_split --func_opt_split () --{ -- func_opt_split_opt=`$ECHO "${1}" | $SED "$my_sed_long_opt"` -- func_opt_split_arg=`$ECHO "${1}" | $SED "$my_sed_long_arg"` --} -- --# func_lo2o object --func_lo2o () --{ -- func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"` --} -- --# func_xform libobj-or-source --func_xform () --{ -- func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'` --} -- --# func_arith arithmetic-term... --func_arith () --{ -- func_arith_result=`expr "$@"` --} -- --# func_len string --# STRING may not start with a hyphen. --func_len () --{ -- func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len` --} -- --_LT_EOF --esac -- --case $lt_shell_append in -- yes) -- cat << \_LT_EOF >> "$cfgfile" -- --# func_append var value --# Append VALUE to the end of shell variable VAR. --func_append () --{ -- eval "$1+=\$2" --} --_LT_EOF -- ;; -- *) -- cat << \_LT_EOF >> "$cfgfile" -- --# func_append var value --# Append VALUE to the end of shell variable VAR. --func_append () --{ -- eval "$1=\$$1\$2" --} -- --_LT_EOF -- ;; -- esac -- -- -- sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ -- || (rm -f "$cfgfile"; exit 1) -- -- mv -f "$cfgfile" "$ofile" || -+ sed '$q' "$ltmain" >> "$cfgfile" \ -+ || (rm -f "$cfgfile"; exit 1) -+ -+ if test x"$xsi_shell" = xyes; then -+ sed -e '/^func_dirname ()$/,/^} # func_dirname /c\ -+func_dirname ()\ -+{\ -+\ case ${1} in\ -+\ */*) func_dirname_result="${1%/*}${2}" ;;\ -+\ * ) func_dirname_result="${3}" ;;\ -+\ esac\ -+} # Extended-shell func_dirname implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_basename ()$/,/^} # func_basename /c\ -+func_basename ()\ -+{\ -+\ func_basename_result="${1##*/}"\ -+} # Extended-shell func_basename implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_dirname_and_basename ()$/,/^} # func_dirname_and_basename /c\ -+func_dirname_and_basename ()\ -+{\ -+\ case ${1} in\ -+\ */*) func_dirname_result="${1%/*}${2}" ;;\ -+\ * ) func_dirname_result="${3}" ;;\ -+\ esac\ -+\ func_basename_result="${1##*/}"\ -+} # Extended-shell func_dirname_and_basename implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_stripname ()$/,/^} # func_stripname /c\ -+func_stripname ()\ -+{\ -+\ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are\ -+\ # positional parameters, so assign one to ordinary parameter first.\ -+\ func_stripname_result=${3}\ -+\ func_stripname_result=${func_stripname_result#"${1}"}\ -+\ func_stripname_result=${func_stripname_result%"${2}"}\ -+} # Extended-shell func_stripname implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_split_long_opt ()$/,/^} # func_split_long_opt /c\ -+func_split_long_opt ()\ -+{\ -+\ func_split_long_opt_name=${1%%=*}\ -+\ func_split_long_opt_arg=${1#*=}\ -+} # Extended-shell func_split_long_opt implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_split_short_opt ()$/,/^} # func_split_short_opt /c\ -+func_split_short_opt ()\ -+{\ -+\ func_split_short_opt_arg=${1#??}\ -+\ func_split_short_opt_name=${1%"$func_split_short_opt_arg"}\ -+} # Extended-shell func_split_short_opt implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_lo2o ()$/,/^} # func_lo2o /c\ -+func_lo2o ()\ -+{\ -+\ case ${1} in\ -+\ *.lo) func_lo2o_result=${1%.lo}.${objext} ;;\ -+\ *) func_lo2o_result=${1} ;;\ -+\ esac\ -+} # Extended-shell func_lo2o implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_xform ()$/,/^} # func_xform /c\ -+func_xform ()\ -+{\ -+ func_xform_result=${1%.*}.lo\ -+} # Extended-shell func_xform implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_arith ()$/,/^} # func_arith /c\ -+func_arith ()\ -+{\ -+ func_arith_result=$(( $* ))\ -+} # Extended-shell func_arith implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_len ()$/,/^} # func_len /c\ -+func_len ()\ -+{\ -+ func_len_result=${#1}\ -+} # Extended-shell func_len implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+fi -+ -+if test x"$lt_shell_append" = xyes; then -+ sed -e '/^func_append ()$/,/^} # func_append /c\ -+func_append ()\ -+{\ -+ eval "${1}+=\\${2}"\ -+} # Extended-shell func_append implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_append_quoted ()$/,/^} # func_append_quoted /c\ -+func_append_quoted ()\ -+{\ -+\ func_quote_for_eval "${2}"\ -+\ eval "${1}+=\\\\ \\$func_quote_for_eval_result"\ -+} # Extended-shell func_append_quoted implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ # Save a `func_append' function call where possible by direct use of '+=' -+ sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+ test 0 -eq $? || _lt_function_replace_fail=: -+else -+ # Save a `func_append' function call even when '+=' is not available -+ sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+ test 0 -eq $? || _lt_function_replace_fail=: -+fi -+ -+if test x"$_lt_function_replace_fail" = x":"; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5 -+$as_echo "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;} -+fi -+ -+ -+ mv -f "$cfgfile" "$ofile" || - (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") - chmod +x "$ofile" - -diff --git a/configure b/configure -index 2a74a77..ad3dfb7 100755 ---- a/configure -+++ b/configure -@@ -3444,7 +3444,7 @@ case "${target}" in - ;; - s390-*-* | s390x-*-*) - ;; -- sh*-*-* | sh[34]*-*-*) -+ sh-*-* | sh[34]*-*-*) - ;; - sh64-*-* | sh5*-*-*) - ;; -@@ -3946,7 +3946,7 @@ case "${target}" in - or1k*-*-*) - noconfigdirs="$noconfigdirs gdb" - ;; -- sh*-*-* | sh64-*-*) -+ sh-*-* | sh64-*-*) - case "${target}" in - sh*-*-elf) - ;; -diff --git a/gas/configure b/gas/configure -index f7753b8..45da030 100755 ---- a/gas/configure -+++ b/gas/configure -@@ -648,8 +648,11 @@ OTOOL - LIPO - NMEDIT - DSYMUTIL -+MANIFEST_TOOL - RANLIB -+ac_ct_AR - AR -+DLLTOOL - OBJDUMP - LN_S - NM -@@ -761,6 +764,7 @@ enable_static - with_pic - enable_fast_install - with_gnu_ld -+with_libtool_sysroot - enable_libtool_lock - enable_plugins - enable_largefile -@@ -4919,8 +4923,8 @@ esac - - - --macro_version='2.2.7a' --macro_revision='1.3134' -+macro_version='2.4' -+macro_revision='1.3293' - - - -@@ -4960,7 +4964,7 @@ ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO - { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5 - $as_echo_n "checking how to print strings... " >&6; } - # Test print first, because it will be a builtin if present. --if test "X`print -r -- -n 2>/dev/null`" = X-n && \ -+if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ - test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then - ECHO='print -r --' - elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then -@@ -5646,8 +5650,8 @@ $as_echo_n "checking whether the shell understands some XSI constructs... " >&6; - # Try some XSI features - xsi_shell=no - ( _lt_dummy="a/b/c" -- test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \ -- = c,a/b,, \ -+ test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ -+ = c,a/b,b/c, \ - && eval 'test $(( 1 + 1 )) -eq 2 \ - && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ - && xsi_shell=yes -@@ -5696,6 +5700,80 @@ esac - - - -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5 -+$as_echo_n "checking how to convert $build file names to $host format... " >&6; } -+if test "${lt_cv_to_host_file_cmd+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ case $host in -+ *-*-mingw* ) -+ case $build in -+ *-*-mingw* ) # actually msys -+ lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 -+ ;; -+ *-*-cygwin* ) -+ lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 -+ ;; -+ * ) # otherwise, assume *nix -+ lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 -+ ;; -+ esac -+ ;; -+ *-*-cygwin* ) -+ case $build in -+ *-*-mingw* ) # actually msys -+ lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin -+ ;; -+ *-*-cygwin* ) -+ lt_cv_to_host_file_cmd=func_convert_file_noop -+ ;; -+ * ) # otherwise, assume *nix -+ lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin -+ ;; -+ esac -+ ;; -+ * ) # unhandled hosts (and "normal" native builds) -+ lt_cv_to_host_file_cmd=func_convert_file_noop -+ ;; -+esac -+ -+fi -+ -+to_host_file_cmd=$lt_cv_to_host_file_cmd -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5 -+$as_echo "$lt_cv_to_host_file_cmd" >&6; } -+ -+ -+ -+ -+ -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5 -+$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; } -+if test "${lt_cv_to_tool_file_cmd+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ #assume ordinary cross tools, or native build. -+lt_cv_to_tool_file_cmd=func_convert_file_noop -+case $host in -+ *-*-mingw* ) -+ case $build in -+ *-*-mingw* ) # actually msys -+ lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 -+ ;; -+ esac -+ ;; -+esac -+ -+fi -+ -+to_tool_file_cmd=$lt_cv_to_tool_file_cmd -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5 -+$as_echo "$lt_cv_to_tool_file_cmd" >&6; } -+ -+ -+ -+ -+ - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 - $as_echo_n "checking for $LD option to reload object files... " >&6; } - if test "${lt_cv_ld_reload_flag+set}" = set; then : -@@ -5712,6 +5790,11 @@ case $reload_flag in - esac - reload_cmds='$LD$reload_flag -o $output$reload_objs' - case $host_os in -+ cygwin* | mingw* | pw32* | cegcc*) -+ if test "$GCC" != yes; then -+ reload_cmds=false -+ fi -+ ;; - darwin*) - if test "$GCC" = yes; then - reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' -@@ -5880,7 +5963,8 @@ mingw* | pw32*) - lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' - lt_cv_file_magic_cmd='func_win32_libid' - else -- lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' -+ # Keep this pattern in sync with the one in func_win32_libid. -+ lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' - lt_cv_file_magic_cmd='$OBJDUMP -f' - fi - ;; -@@ -6034,6 +6118,21 @@ esac - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 - $as_echo "$lt_cv_deplibs_check_method" >&6; } -+ -+file_magic_glob= -+want_nocaseglob=no -+if test "$build" = "$host"; then -+ case $host_os in -+ mingw* | pw32*) -+ if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then -+ want_nocaseglob=yes -+ else -+ file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"` -+ fi -+ ;; -+ esac -+fi -+ - file_magic_cmd=$lt_cv_file_magic_cmd - deplibs_check_method=$lt_cv_deplibs_check_method - test -z "$deplibs_check_method" && deplibs_check_method=unknown -@@ -6049,9 +6148,162 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown - - - -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+if test -n "$ac_tool_prefix"; then -+ # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. -+set dummy ${ac_tool_prefix}dlltool; ac_word=$2 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+$as_echo_n "checking for $ac_word... " >&6; } -+if test "${ac_cv_prog_DLLTOOL+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ if test -n "$DLLTOOL"; then -+ ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. -+else -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then -+ ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" -+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+ done -+IFS=$as_save_IFS -+ -+fi -+fi -+DLLTOOL=$ac_cv_prog_DLLTOOL -+if test -n "$DLLTOOL"; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 -+$as_echo "$DLLTOOL" >&6; } -+else -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+$as_echo "no" >&6; } -+fi -+ -+ -+fi -+if test -z "$ac_cv_prog_DLLTOOL"; then -+ ac_ct_DLLTOOL=$DLLTOOL -+ # Extract the first word of "dlltool", so it can be a program name with args. -+set dummy dlltool; ac_word=$2 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+$as_echo_n "checking for $ac_word... " >&6; } -+if test "${ac_cv_prog_ac_ct_DLLTOOL+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ if test -n "$ac_ct_DLLTOOL"; then -+ ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. -+else -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then -+ ac_cv_prog_ac_ct_DLLTOOL="dlltool" -+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+ done -+IFS=$as_save_IFS -+ -+fi -+fi -+ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL -+if test -n "$ac_ct_DLLTOOL"; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 -+$as_echo "$ac_ct_DLLTOOL" >&6; } -+else -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+$as_echo "no" >&6; } -+fi -+ -+ if test "x$ac_ct_DLLTOOL" = x; then -+ DLLTOOL="false" -+ else -+ case $cross_compiling:$ac_tool_warned in -+yes:) -+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -+ac_tool_warned=yes ;; -+esac -+ DLLTOOL=$ac_ct_DLLTOOL -+ fi -+else -+ DLLTOOL="$ac_cv_prog_DLLTOOL" -+fi -+ -+test -z "$DLLTOOL" && DLLTOOL=dlltool -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5 -+$as_echo_n "checking how to associate runtime and link libraries... " >&6; } -+if test "${lt_cv_sharedlib_from_linklib_cmd+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ lt_cv_sharedlib_from_linklib_cmd='unknown' -+ -+case $host_os in -+cygwin* | mingw* | pw32* | cegcc*) -+ # two different shell functions defined in ltmain.sh -+ # decide which to use based on capabilities of $DLLTOOL -+ case `$DLLTOOL --help 2>&1` in -+ *--identify-strict*) -+ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib -+ ;; -+ *) -+ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback -+ ;; -+ esac -+ ;; -+*) -+ # fallback: assume linklib IS sharedlib -+ lt_cv_sharedlib_from_linklib_cmd="$ECHO" -+ ;; -+esac -+ -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5 -+$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; } -+sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd -+test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO -+ -+ -+ -+ -+ -+ -+ - if test -n "$ac_tool_prefix"; then -- # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. --set dummy ${ac_tool_prefix}ar; ac_word=$2 -+ for ac_prog in ar -+ do -+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -+set dummy $ac_tool_prefix$ac_prog; ac_word=$2 - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 - $as_echo_n "checking for $ac_word... " >&6; } - if test "${ac_cv_prog_AR+set}" = set; then : -@@ -6067,7 +6319,7 @@ do - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then -- ac_cv_prog_AR="${ac_tool_prefix}ar" -+ ac_cv_prog_AR="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -@@ -6087,11 +6339,15 @@ $as_echo "no" >&6; } - fi - - -+ test -n "$AR" && break -+ done - fi --if test -z "$ac_cv_prog_AR"; then -+if test -z "$AR"; then - ac_ct_AR=$AR -- # Extract the first word of "ar", so it can be a program name with args. --set dummy ar; ac_word=$2 -+ for ac_prog in ar -+do -+ # Extract the first word of "$ac_prog", so it can be a program name with args. -+set dummy $ac_prog; ac_word=$2 - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 - $as_echo_n "checking for $ac_word... " >&6; } - if test "${ac_cv_prog_ac_ct_AR+set}" = set; then : -@@ -6107,7 +6363,7 @@ do - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then -- ac_cv_prog_ac_ct_AR="ar" -+ ac_cv_prog_ac_ct_AR="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -@@ -6126,6 +6382,10 @@ else - $as_echo "no" >&6; } - fi - -+ -+ test -n "$ac_ct_AR" && break -+done -+ - if test "x$ac_ct_AR" = x; then - AR="false" - else -@@ -6137,12 +6397,10 @@ ac_tool_warned=yes ;; - esac - AR=$ac_ct_AR - fi --else -- AR="$ac_cv_prog_AR" - fi - --test -z "$AR" && AR=ar --test -z "$AR_FLAGS" && AR_FLAGS=cru -+: ${AR=ar} -+: ${AR_FLAGS=cru} - - - -@@ -6154,6 +6412,64 @@ test -z "$AR_FLAGS" && AR_FLAGS=cru - - - -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 -+$as_echo_n "checking for archiver @FILE support... " >&6; } -+if test "${lt_cv_ar_at_file+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ lt_cv_ar_at_file=no -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+/* end confdefs.h. */ -+ -+int -+main () -+{ -+ -+ ; -+ return 0; -+} -+_ACEOF -+if ac_fn_c_try_compile "$LINENO"; then : -+ echo conftest.$ac_objext > conftest.lst -+ lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5' -+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 -+ (eval $lt_ar_try) 2>&5 -+ ac_status=$? -+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 -+ test $ac_status = 0; } -+ if test "$ac_status" -eq 0; then -+ # Ensure the archiver fails upon bogus file names. -+ rm -f conftest.$ac_objext libconftest.a -+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 -+ (eval $lt_ar_try) 2>&5 -+ ac_status=$? -+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 -+ test $ac_status = 0; } -+ if test "$ac_status" -ne 0; then -+ lt_cv_ar_at_file=@ -+ fi -+ fi -+ rm -f conftest.* libconftest.a -+ -+fi -+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -+ -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 -+$as_echo "$lt_cv_ar_at_file" >&6; } -+ -+if test "x$lt_cv_ar_at_file" = xno; then -+ archiver_list_spec= -+else -+ archiver_list_spec=$lt_cv_ar_at_file -+fi -+ -+ -+ -+ -+ -+ -+ - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. - set dummy ${ac_tool_prefix}strip; ac_word=$2 -@@ -6488,8 +6804,8 @@ esac - lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" - - # Transform an extracted symbol line into symbol name and symbol address --lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" --lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" -+lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" -+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" - - # Handle CRLF in mingw tool chain - opt_cr= -@@ -6525,6 +6841,7 @@ for ac_symprfx in "" "_"; do - else - lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" - fi -+ lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" - - # Check to see that the pipe works correctly. - pipe_works=no -@@ -6566,6 +6883,18 @@ _LT_EOF - if $GREP ' nm_test_var$' "$nlist" >/dev/null; then - if $GREP ' nm_test_func$' "$nlist" >/dev/null; then - cat <<_LT_EOF > conftest.$ac_ext -+/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ -+#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) -+/* DATA imports from DLLs on WIN32 con't be const, because runtime -+ relocations are performed -- see ld's documentation on pseudo-relocs. */ -+# define LT_DLSYM_CONST -+#elif defined(__osf__) -+/* This system does not cope well with relocations in const data. */ -+# define LT_DLSYM_CONST -+#else -+# define LT_DLSYM_CONST const -+#endif -+ - #ifdef __cplusplus - extern "C" { - #endif -@@ -6577,7 +6906,7 @@ _LT_EOF - cat <<_LT_EOF >> conftest.$ac_ext - - /* The mapping between symbol names and symbols. */ --const struct { -+LT_DLSYM_CONST struct { - const char *name; - void *address; - } -@@ -6603,8 +6932,8 @@ static const void *lt_preloaded_setup() { - _LT_EOF - # Now try linking the two files. - mv conftest.$ac_objext conftstm.$ac_objext -- lt_save_LIBS="$LIBS" -- lt_save_CFLAGS="$CFLAGS" -+ lt_globsym_save_LIBS=$LIBS -+ lt_globsym_save_CFLAGS=$CFLAGS - LIBS="conftstm.$ac_objext" - CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 -@@ -6614,8 +6943,8 @@ _LT_EOF - test $ac_status = 0; } && test -s conftest${ac_exeext}; then - pipe_works=yes - fi -- LIBS="$lt_save_LIBS" -- CFLAGS="$lt_save_CFLAGS" -+ LIBS=$lt_globsym_save_LIBS -+ CFLAGS=$lt_globsym_save_CFLAGS - else - echo "cannot find nm_test_func in $nlist" >&5 - fi -@@ -6652,6 +6981,21 @@ else - $as_echo "ok" >&6; } - fi - -+# Response file support. -+if test "$lt_cv_nm_interface" = "MS dumpbin"; then -+ nm_file_list_spec='@' -+elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then -+ nm_file_list_spec='@' -+fi -+ -+ -+ -+ -+ -+ -+ -+ -+ - - - -@@ -6670,6 +7014,40 @@ fi - - - -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 -+$as_echo_n "checking for sysroot... " >&6; } -+ -+# Check whether --with-libtool-sysroot was given. -+if test "${with_libtool_sysroot+set}" = set; then : -+ withval=$with_libtool_sysroot; -+else -+ with_libtool_sysroot=no -+fi -+ -+ -+lt_sysroot= -+case ${with_libtool_sysroot} in #( -+ yes) -+ if test "$GCC" = yes; then -+ lt_sysroot=`$CC --print-sysroot 2>/dev/null` -+ fi -+ ;; #( -+ /*) -+ lt_sysroot=`echo "$with_libtool_sysroot" | sed -e "$sed_quote_subst"` -+ ;; #( -+ no|'') -+ ;; #( -+ *) -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_libtool_sysroot}" >&5 -+$as_echo "${with_libtool_sysroot}" >&6; } -+ as_fn_error "The sysroot must be an absolute path." "$LINENO" 5 -+ ;; -+esac -+ -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5 -+$as_echo "${lt_sysroot:-no}" >&6; } -+ -+ - - - -@@ -6879,6 +7257,123 @@ esac - - need_locks="$enable_libtool_lock" - -+if test -n "$ac_tool_prefix"; then -+ # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args. -+set dummy ${ac_tool_prefix}mt; ac_word=$2 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+$as_echo_n "checking for $ac_word... " >&6; } -+if test "${ac_cv_prog_MANIFEST_TOOL+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ if test -n "$MANIFEST_TOOL"; then -+ ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test. -+else -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then -+ ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt" -+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+ done -+IFS=$as_save_IFS -+ -+fi -+fi -+MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL -+if test -n "$MANIFEST_TOOL"; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5 -+$as_echo "$MANIFEST_TOOL" >&6; } -+else -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+$as_echo "no" >&6; } -+fi -+ -+ -+fi -+if test -z "$ac_cv_prog_MANIFEST_TOOL"; then -+ ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL -+ # Extract the first word of "mt", so it can be a program name with args. -+set dummy mt; ac_word=$2 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+$as_echo_n "checking for $ac_word... " >&6; } -+if test "${ac_cv_prog_ac_ct_MANIFEST_TOOL+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ if test -n "$ac_ct_MANIFEST_TOOL"; then -+ ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test. -+else -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then -+ ac_cv_prog_ac_ct_MANIFEST_TOOL="mt" -+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+ done -+IFS=$as_save_IFS -+ -+fi -+fi -+ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL -+if test -n "$ac_ct_MANIFEST_TOOL"; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5 -+$as_echo "$ac_ct_MANIFEST_TOOL" >&6; } -+else -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+$as_echo "no" >&6; } -+fi -+ -+ if test "x$ac_ct_MANIFEST_TOOL" = x; then -+ MANIFEST_TOOL=":" -+ else -+ case $cross_compiling:$ac_tool_warned in -+yes:) -+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -+ac_tool_warned=yes ;; -+esac -+ MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL -+ fi -+else -+ MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL" -+fi -+ -+test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5 -+$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; } -+if test "${lt_cv_path_mainfest_tool+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ lt_cv_path_mainfest_tool=no -+ echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5 -+ $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out -+ cat conftest.err >&5 -+ if $GREP 'Manifest Tool' conftest.out > /dev/null; then -+ lt_cv_path_mainfest_tool=yes -+ fi -+ rm -f conftest* -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5 -+$as_echo "$lt_cv_path_mainfest_tool" >&6; } -+if test "x$lt_cv_path_mainfest_tool" != xyes; then -+ MANIFEST_TOOL=: -+fi -+ -+ -+ -+ -+ - - case $host_os in - rhapsody* | darwin*) -@@ -7442,6 +7937,8 @@ _LT_EOF - $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 - echo "$AR cru libconftest.a conftest.o" >&5 - $AR cru libconftest.a conftest.o 2>&5 -+ echo "$RANLIB libconftest.a" >&5 -+ $RANLIB libconftest.a 2>&5 - cat > conftest.c << _LT_EOF - int main() { return 0;} - _LT_EOF -@@ -7637,7 +8134,8 @@ fi - LIBTOOL_DEPS="$ltmain" - - # Always use our own libtool. --LIBTOOL='$(SHELL) $(top_builddir)/libtool' -+LIBTOOL='$(SHELL) $(top_builddir)' -+LIBTOOL="$LIBTOOL/${host_alias}-libtool" - - - -@@ -7726,7 +8224,7 @@ aix3*) - esac - - # Global variables: --ofile=libtool -+ofile=${host_alias}-libtool - can_build_shared=yes - - # All known linkers require a `.a' archive for static linking (except MSVC, -@@ -8024,8 +8522,6 @@ fi - lt_prog_compiler_pic= - lt_prog_compiler_static= - --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 --$as_echo_n "checking for $compiler option to produce PIC... " >&6; } - - if test "$GCC" = yes; then - lt_prog_compiler_wl='-Wl,' -@@ -8191,6 +8687,12 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; } - lt_prog_compiler_pic='--shared' - lt_prog_compiler_static='--static' - ;; -+ nagfor*) -+ # NAG Fortran compiler -+ lt_prog_compiler_wl='-Wl,-Wl,,' -+ lt_prog_compiler_pic='-PIC' -+ lt_prog_compiler_static='-Bstatic' -+ ;; - pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) - # Portland Group compilers (*not* the Pentium gcc compiler, - # which looks to be a dead project) -@@ -8253,7 +8755,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; } - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-Bstatic' - case $cc_basename in -- f77* | f90* | f95*) -+ f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) - lt_prog_compiler_wl='-Qoption ld ';; - *) - lt_prog_compiler_wl='-Wl,';; -@@ -8310,13 +8812,17 @@ case $host_os in - lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" - ;; - esac --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic" >&5 --$as_echo "$lt_prog_compiler_pic" >&6; } -- -- -- -- - -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 -+$as_echo_n "checking for $compiler option to produce PIC... " >&6; } -+if test "${lt_cv_prog_compiler_pic+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ lt_cv_prog_compiler_pic=$lt_prog_compiler_pic -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 -+$as_echo "$lt_cv_prog_compiler_pic" >&6; } -+lt_prog_compiler_pic=$lt_cv_prog_compiler_pic - - # - # Check to make sure the PIC flag actually works. -@@ -8377,6 +8883,11 @@ fi - - - -+ -+ -+ -+ -+ - # - # Check to make sure the static flag actually works. - # -@@ -8727,7 +9238,8 @@ _LT_EOF - allow_undefined_flag=unsupported - always_export_symbols=no - enable_shared_with_static_runtimes=yes -- export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' -+ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' -+ exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' - - if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' -@@ -8826,12 +9338,12 @@ _LT_EOF - whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' - hardcode_libdir_flag_spec= - hardcode_libdir_flag_spec_ld='-rpath $libdir' -- archive_cmds='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib' -+ archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' - if test "x$supports_anon_versioning" = xyes; then - archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ - cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ - echo "local: *; };" >> $output_objdir/$libname.ver~ -- $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' -+ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' - fi - ;; - esac -@@ -8845,8 +9357,8 @@ _LT_EOF - archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' - wlarc= - else -- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' -+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - fi - ;; - -@@ -8864,8 +9376,8 @@ _LT_EOF - - _LT_EOF - elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then -- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' -+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - ld_shlibs=no - fi -@@ -8911,8 +9423,8 @@ _LT_EOF - - *) - if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then -- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' -+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - ld_shlibs=no - fi -@@ -9042,7 +9554,13 @@ _LT_EOF - allow_undefined_flag='-berok' - # Determine the default libpath from the value encoded in an - # empty executable. -- cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+ if test "${lt_cv_aix_libpath+set}" = set; then -+ aix_libpath=$lt_cv_aix_libpath -+else -+ if test "${lt_cv_aix_libpath_+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - - int -@@ -9055,22 +9573,29 @@ main () - _ACEOF - if ac_fn_c_try_link "$LINENO"; then : - --lt_aix_libpath_sed=' -- /Import File Strings/,/^$/ { -- /^0/ { -- s/^0 *\(.*\)$/\1/ -- p -- } -- }' --aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` --# Check for a 64-bit object if we didn't find anything. --if test -z "$aix_libpath"; then -- aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` --fi -+ lt_aix_libpath_sed=' -+ /Import File Strings/,/^$/ { -+ /^0/ { -+ s/^0 *\([^ ]*\) *$/\1/ -+ p -+ } -+ }' -+ lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -+ # Check for a 64-bit object if we didn't find anything. -+ if test -z "$lt_cv_aix_libpath_"; then -+ lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -+ fi - fi - rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext --if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi -+ if test -z "$lt_cv_aix_libpath_"; then -+ lt_cv_aix_libpath_="/usr/lib:/lib" -+ fi -+ -+fi -+ -+ aix_libpath=$lt_cv_aix_libpath_ -+fi - - hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" - archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" -@@ -9082,7 +9607,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi - else - # Determine the default libpath from the value encoded in an - # empty executable. -- cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+ if test "${lt_cv_aix_libpath+set}" = set; then -+ aix_libpath=$lt_cv_aix_libpath -+else -+ if test "${lt_cv_aix_libpath_+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - - int -@@ -9095,22 +9626,29 @@ main () - _ACEOF - if ac_fn_c_try_link "$LINENO"; then : - --lt_aix_libpath_sed=' -- /Import File Strings/,/^$/ { -- /^0/ { -- s/^0 *\(.*\)$/\1/ -- p -- } -- }' --aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` --# Check for a 64-bit object if we didn't find anything. --if test -z "$aix_libpath"; then -- aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` --fi -+ lt_aix_libpath_sed=' -+ /Import File Strings/,/^$/ { -+ /^0/ { -+ s/^0 *\([^ ]*\) *$/\1/ -+ p -+ } -+ }' -+ lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -+ # Check for a 64-bit object if we didn't find anything. -+ if test -z "$lt_cv_aix_libpath_"; then -+ lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -+ fi - fi - rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext --if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi -+ if test -z "$lt_cv_aix_libpath_"; then -+ lt_cv_aix_libpath_="/usr/lib:/lib" -+ fi -+ -+fi -+ -+ aix_libpath=$lt_cv_aix_libpath_ -+fi - - hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" - # Warning - without using the other run time loading flags, -@@ -9155,20 +9693,63 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi - # Microsoft Visual C++. - # hardcode_libdir_flag_spec is actually meaningless, as there is - # no search path for DLLs. -- hardcode_libdir_flag_spec=' ' -- allow_undefined_flag=unsupported -- # Tell ltmain to make .lib files, not .a files. -- libext=lib -- # Tell ltmain to make .dll files, not .so files. -- shrext_cmds=".dll" -- # FIXME: Setting linknames here is a bad hack. -- archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' -- # The linker will automatically build a .lib file if we build a DLL. -- old_archive_from_new_cmds='true' -- # FIXME: Should let the user specify the lib program. -- old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' -- fix_srcfile_path='`cygpath -w "$srcfile"`' -- enable_shared_with_static_runtimes=yes -+ case $cc_basename in -+ cl*) -+ # Native MSVC -+ hardcode_libdir_flag_spec=' ' -+ allow_undefined_flag=unsupported -+ always_export_symbols=yes -+ file_list_spec='@' -+ # Tell ltmain to make .lib files, not .a files. -+ libext=lib -+ # Tell ltmain to make .dll files, not .so files. -+ shrext_cmds=".dll" -+ # FIXME: Setting linknames here is a bad hack. -+ archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' -+ archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then -+ sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; -+ else -+ sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; -+ fi~ -+ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ -+ linknames=' -+ # The linker will not automatically build a static lib if we build a DLL. -+ # _LT_TAGVAR(old_archive_from_new_cmds, )='true' -+ enable_shared_with_static_runtimes=yes -+ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' -+ # Don't use ranlib -+ old_postinstall_cmds='chmod 644 $oldlib' -+ postlink_cmds='lt_outputfile="@OUTPUT@"~ -+ lt_tool_outputfile="@TOOL_OUTPUT@"~ -+ case $lt_outputfile in -+ *.exe|*.EXE) ;; -+ *) -+ lt_outputfile="$lt_outputfile.exe" -+ lt_tool_outputfile="$lt_tool_outputfile.exe" -+ ;; -+ esac~ -+ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then -+ $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; -+ $RM "$lt_outputfile.manifest"; -+ fi' -+ ;; -+ *) -+ # Assume MSVC wrapper -+ hardcode_libdir_flag_spec=' ' -+ allow_undefined_flag=unsupported -+ # Tell ltmain to make .lib files, not .a files. -+ libext=lib -+ # Tell ltmain to make .dll files, not .so files. -+ shrext_cmds=".dll" -+ # FIXME: Setting linknames here is a bad hack. -+ archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' -+ # The linker will automatically build a .lib file if we build a DLL. -+ old_archive_from_new_cmds='true' -+ # FIXME: Should let the user specify the lib program. -+ old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' -+ enable_shared_with_static_runtimes=yes -+ ;; -+ esac - ;; - - darwin* | rhapsody*) -@@ -9229,7 +9810,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi - - # FreeBSD 3 and greater uses gcc -shared to do shared libraries. - freebsd* | dragonfly*) -- archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' -+ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - hardcode_libdir_flag_spec='-R$libdir' - hardcode_direct=yes - hardcode_shlibpath_var=no -@@ -9237,7 +9818,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi - - hpux9*) - if test "$GCC" = yes; then -- archive_cmds='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' -+ archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - else - archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - fi -@@ -9253,7 +9834,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi - - hpux10*) - if test "$GCC" = yes && test "$with_gnu_ld" = no; then -- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' -+ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' - fi -@@ -9277,10 +9858,10 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi - archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - ia64*) -- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' -+ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) -- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' -+ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - ;; - esac - else -@@ -9359,23 +9940,36 @@ fi - - irix5* | irix6* | nonstopux*) - if test "$GCC" = yes; then -- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' -+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - # Try to use the -exported_symbol ld option, if it does not - # work, assume that -exports_file does not work either and - # implicitly export all symbols. -- save_LDFLAGS="$LDFLAGS" -- LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" -- cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+ # This should be the same for all languages, so no per-tag cache variable. -+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5 -+$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; } -+if test "${lt_cv_irix_exported_symbol+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ save_LDFLAGS="$LDFLAGS" -+ LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ --int foo(void) {} -+int foo (void) { return 0; } - _ACEOF - if ac_fn_c_try_link "$LINENO"; then : -- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' -- -+ lt_cv_irix_exported_symbol=yes -+else -+ lt_cv_irix_exported_symbol=no - fi - rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -- LDFLAGS="$save_LDFLAGS" -+ LDFLAGS="$save_LDFLAGS" -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5 -+$as_echo "$lt_cv_irix_exported_symbol" >&6; } -+ if test "$lt_cv_irix_exported_symbol" = yes; then -+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' -+ fi - else - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' - archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' -@@ -9460,7 +10054,7 @@ rm -f core conftest.err conftest.$ac_objext \ - osf4* | osf5*) # as osf3* with the addition of -msym flag - if test "$GCC" = yes; then - allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' -- archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' -+ archive_cmds='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - else - allow_undefined_flag=' -expect_unresolved \*' -@@ -9479,9 +10073,9 @@ rm -f core conftest.err conftest.$ac_objext \ - no_undefined_flag=' -z defs' - if test "$GCC" = yes; then - wlarc='${wl}' -- archive_cmds='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' -+ archive_cmds='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ -- $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' -+ $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' - else - case `$CC -V 2>&1` in - *"Compilers 5.0"*) -@@ -10057,8 +10651,9 @@ cygwin* | mingw* | pw32* | cegcc*) - need_version=no - need_lib_prefix=no - -- case $GCC,$host_os in -- yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) -+ case $GCC,$cc_basename in -+ yes,*) -+ # gcc - library_names_spec='$libname.dll.a' - # DLL is installed to $(libdir)/../bin by postinstall_cmds - postinstall_cmds='base_file=`basename \${file}`~ -@@ -10091,13 +10686,71 @@ cygwin* | mingw* | pw32* | cegcc*) - library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - ;; - esac -+ dynamic_linker='Win32 ld.exe' -+ ;; -+ -+ *,cl*) -+ # Native MSVC -+ libname_spec='$name' -+ soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' -+ library_names_spec='${libname}.dll.lib' -+ -+ case $build_os in -+ mingw*) -+ sys_lib_search_path_spec= -+ lt_save_ifs=$IFS -+ IFS=';' -+ for lt_path in $LIB -+ do -+ IFS=$lt_save_ifs -+ # Let DOS variable expansion print the short 8.3 style file name. -+ lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` -+ sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" -+ done -+ IFS=$lt_save_ifs -+ # Convert to MSYS style. -+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` -+ ;; -+ cygwin*) -+ # Convert to unix form, then to dos form, then back to unix form -+ # but this time dos style (no spaces!) so that the unix form looks -+ # like /cygdrive/c/PROGRA~1:/cygdr... -+ sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` -+ sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` -+ sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` -+ ;; -+ *) -+ sys_lib_search_path_spec="$LIB" -+ if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then -+ # It is most probably a Windows format PATH. -+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` -+ else -+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` -+ fi -+ # FIXME: find the short name or the path components, as spaces are -+ # common. (e.g. "Program Files" -> "PROGRA~1") -+ ;; -+ esac -+ -+ # DLL is installed to $(libdir)/../bin by postinstall_cmds -+ postinstall_cmds='base_file=`basename \${file}`~ -+ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ -+ dldir=$destdir/`dirname \$dlpath`~ -+ test -d \$dldir || mkdir -p \$dldir~ -+ $install_prog $dir/$dlname \$dldir/$dlname' -+ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ -+ dlpath=$dir/\$dldll~ -+ $RM \$dlpath' -+ shlibpath_overrides_runpath=yes -+ dynamic_linker='Win32 link.exe' - ;; - - *) -+ # Assume MSVC wrapper - library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' -+ dynamic_linker='Win32 ld.exe' - ;; - esac -- dynamic_linker='Win32 ld.exe' - # FIXME: first we should search . and the directory the executable is in - shlibpath_var=PATH - ;; -@@ -10189,7 +10842,7 @@ haiku*) - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LIBRARY_PATH - shlibpath_overrides_runpath=yes -- sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/beos/system/lib' -+ sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' - hardcode_into_libs=yes - ;; - -@@ -11029,10 +11682,10 @@ else - /* When -fvisbility=hidden is used, assume the code has been annotated - correspondingly for the symbols needed. */ - #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) --void fnord () __attribute__((visibility("default"))); -+int fnord () __attribute__((visibility("default"))); - #endif - --void fnord () { int i=42; } -+int fnord () { return 42; } - int main () - { - void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); -@@ -11135,10 +11788,10 @@ else - /* When -fvisbility=hidden is used, assume the code has been annotated - correspondingly for the symbols needed. */ - #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) --void fnord () __attribute__((visibility("default"))); -+int fnord () __attribute__((visibility("default"))); - #endif - --void fnord () { int i=42; } -+int fnord () { return 42; } - int main () - { - void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); -@@ -15350,13 +16003,20 @@ exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`' - lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`' - lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`' - lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`' -+lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`' -+lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`' - reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' - reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' - OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' - deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' - file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' -+file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`' -+want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`' -+DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' -+sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' - AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' - AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' -+archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`' - STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' - RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`' - old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`' -@@ -15371,14 +16031,17 @@ lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$de - lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`' - lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`' - lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`' -+nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`' -+lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`' - objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`' - MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`' - lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`' --lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' - lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`' -+lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' - lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`' - lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`' - need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`' -+MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`' - DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`' - NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`' - LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`' -@@ -15411,12 +16074,12 @@ hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_q - hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`' - inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`' - link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`' --fix_srcfile_path='`$ECHO "$fix_srcfile_path" | $SED "$delay_single_quote_subst"`' - always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`' - export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`' - exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`' - include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`' - prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`' -+postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`' - file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`' - variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`' - need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`' -@@ -15471,8 +16134,13 @@ reload_flag \ - OBJDUMP \ - deplibs_check_method \ - file_magic_cmd \ -+file_magic_glob \ -+want_nocaseglob \ -+DLLTOOL \ -+sharedlib_from_linklib_cmd \ - AR \ - AR_FLAGS \ -+archiver_list_spec \ - STRIP \ - RANLIB \ - CC \ -@@ -15482,12 +16150,14 @@ lt_cv_sys_global_symbol_pipe \ - lt_cv_sys_global_symbol_to_cdecl \ - lt_cv_sys_global_symbol_to_c_name_address \ - lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ -+nm_file_list_spec \ - lt_prog_compiler_no_builtin_flag \ --lt_prog_compiler_wl \ - lt_prog_compiler_pic \ -+lt_prog_compiler_wl \ - lt_prog_compiler_static \ - lt_cv_prog_compiler_c_o \ - need_locks \ -+MANIFEST_TOOL \ - DSYMUTIL \ - NMEDIT \ - LIPO \ -@@ -15503,7 +16173,6 @@ no_undefined_flag \ - hardcode_libdir_flag_spec \ - hardcode_libdir_flag_spec_ld \ - hardcode_libdir_separator \ --fix_srcfile_path \ - exclude_expsyms \ - include_expsyms \ - file_list_spec \ -@@ -15539,6 +16208,7 @@ module_cmds \ - module_expsym_cmds \ - export_symbols_cmds \ - prelink_cmds \ -+postlink_cmds \ - postinstall_cmds \ - postuninstall_cmds \ - finish_cmds \ -@@ -16303,7 +16973,8 @@ $as_echo X"$file" | - # NOTE: Changes made to this file will be lost: look at ltmain.sh. - # - # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, --# 2006, 2007, 2008, 2009 Free Software Foundation, Inc. -+# 2006, 2007, 2008, 2009, 2010 Free Software Foundation, -+# Inc. - # Written by Gordon Matzigkeit, 1996 - # - # This file is part of GNU Libtool. -@@ -16406,19 +17077,42 @@ SP2NL=$lt_lt_SP2NL - # turn newlines into spaces. - NL2SP=$lt_lt_NL2SP - -+# convert \$build file names to \$host format. -+to_host_file_cmd=$lt_cv_to_host_file_cmd -+ -+# convert \$build files to toolchain format. -+to_tool_file_cmd=$lt_cv_to_tool_file_cmd -+ - # An object symbol dumper. - OBJDUMP=$lt_OBJDUMP - - # Method to check whether dependent libraries are shared objects. - deplibs_check_method=$lt_deplibs_check_method - --# Command to use when deplibs_check_method == "file_magic". -+# Command to use when deplibs_check_method = "file_magic". - file_magic_cmd=$lt_file_magic_cmd - -+# How to find potential files when deplibs_check_method = "file_magic". -+file_magic_glob=$lt_file_magic_glob -+ -+# Find potential files using nocaseglob when deplibs_check_method = "file_magic". -+want_nocaseglob=$lt_want_nocaseglob -+ -+# DLL creation program. -+DLLTOOL=$lt_DLLTOOL -+ -+# Command to associate shared and link libraries. -+sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd -+ - # The archiver. - AR=$lt_AR -+ -+# Flags to create an archive. - AR_FLAGS=$lt_AR_FLAGS - -+# How to feed a file listing to the archiver. -+archiver_list_spec=$lt_archiver_list_spec -+ - # A symbol stripping program. - STRIP=$lt_STRIP - -@@ -16448,6 +17142,12 @@ global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address - # Transform the output of nm in a C name address pair when lib prefix is needed. - global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix - -+# Specify filename containing input files for \$NM. -+nm_file_list_spec=$lt_nm_file_list_spec -+ -+# The root where to search for dependent libraries,and in which our libraries should be installed. -+lt_sysroot=$lt_sysroot -+ - # The name of the directory that contains temporary libtool files. - objdir=$objdir - -@@ -16457,6 +17157,9 @@ MAGIC_CMD=$MAGIC_CMD - # Must we lock files when doing compilation? - need_locks=$lt_need_locks - -+# Manifest tool. -+MANIFEST_TOOL=$lt_MANIFEST_TOOL -+ - # Tool to manipulate archived DWARF debug symbol files on Mac OS X. - DSYMUTIL=$lt_DSYMUTIL - -@@ -16571,12 +17274,12 @@ with_gcc=$GCC - # Compiler flag to turn off builtin functions. - no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag - --# How to pass a linker flag through the compiler. --wl=$lt_lt_prog_compiler_wl -- - # Additional compiler flags for building library objects. - pic_flag=$lt_lt_prog_compiler_pic - -+# How to pass a linker flag through the compiler. -+wl=$lt_lt_prog_compiler_wl -+ - # Compiler flag to prevent dynamic linking. - link_static_flag=$lt_lt_prog_compiler_static - -@@ -16663,9 +17366,6 @@ inherit_rpath=$inherit_rpath - # Whether libtool must link a program against all its dependency libraries. - link_all_deplibs=$link_all_deplibs - --# Fix the shell variable \$srcfile for the compiler. --fix_srcfile_path=$lt_fix_srcfile_path -- - # Set to "yes" if exported symbols are required. - always_export_symbols=$always_export_symbols - -@@ -16681,6 +17381,9 @@ include_expsyms=$lt_include_expsyms - # Commands necessary for linking programs (against libraries) with templates. - prelink_cmds=$lt_prelink_cmds - -+# Commands necessary for finishing linking programs. -+postlink_cmds=$lt_postlink_cmds -+ - # Specify filename containing input files. - file_list_spec=$lt_file_list_spec - -@@ -16713,210 +17416,169 @@ ltmain="$ac_aux_dir/ltmain.sh" - # if finds mixed CR/LF and LF-only lines. Since sed operates in - # text mode, it properly converts lines to CR/LF. This bash problem - # is reportedly fixed, but why not run on old versions too? -- sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ -- || (rm -f "$cfgfile"; exit 1) -- -- case $xsi_shell in -- yes) -- cat << \_LT_EOF >> "$cfgfile" -- --# func_dirname file append nondir_replacement --# Compute the dirname of FILE. If nonempty, add APPEND to the result, --# otherwise set result to NONDIR_REPLACEMENT. --func_dirname () --{ -- case ${1} in -- */*) func_dirname_result="${1%/*}${2}" ;; -- * ) func_dirname_result="${3}" ;; -- esac --} -- --# func_basename file --func_basename () --{ -- func_basename_result="${1##*/}" --} -- --# func_dirname_and_basename file append nondir_replacement --# perform func_basename and func_dirname in a single function --# call: --# dirname: Compute the dirname of FILE. If nonempty, --# add APPEND to the result, otherwise set result --# to NONDIR_REPLACEMENT. --# value returned in "$func_dirname_result" --# basename: Compute filename of FILE. --# value retuned in "$func_basename_result" --# Implementation must be kept synchronized with func_dirname --# and func_basename. For efficiency, we do not delegate to --# those functions but instead duplicate the functionality here. --func_dirname_and_basename () --{ -- case ${1} in -- */*) func_dirname_result="${1%/*}${2}" ;; -- * ) func_dirname_result="${3}" ;; -- esac -- func_basename_result="${1##*/}" --} -- --# func_stripname prefix suffix name --# strip PREFIX and SUFFIX off of NAME. --# PREFIX and SUFFIX must not contain globbing or regex special --# characters, hashes, percent signs, but SUFFIX may contain a leading --# dot (in which case that matches only a dot). --func_stripname () --{ -- # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are -- # positional parameters, so assign one to ordinary parameter first. -- func_stripname_result=${3} -- func_stripname_result=${func_stripname_result#"${1}"} -- func_stripname_result=${func_stripname_result%"${2}"} --} -- --# func_opt_split --func_opt_split () --{ -- func_opt_split_opt=${1%%=*} -- func_opt_split_arg=${1#*=} --} -- --# func_lo2o object --func_lo2o () --{ -- case ${1} in -- *.lo) func_lo2o_result=${1%.lo}.${objext} ;; -- *) func_lo2o_result=${1} ;; -- esac --} -- --# func_xform libobj-or-source --func_xform () --{ -- func_xform_result=${1%.*}.lo --} -- --# func_arith arithmetic-term... --func_arith () --{ -- func_arith_result=$(( $* )) --} -- --# func_len string --# STRING may not start with a hyphen. --func_len () --{ -- func_len_result=${#1} --} -- --_LT_EOF -- ;; -- *) # Bourne compatible functions. -- cat << \_LT_EOF >> "$cfgfile" -- --# func_dirname file append nondir_replacement --# Compute the dirname of FILE. If nonempty, add APPEND to the result, --# otherwise set result to NONDIR_REPLACEMENT. --func_dirname () --{ -- # Extract subdirectory from the argument. -- func_dirname_result=`$ECHO "${1}" | $SED "$dirname"` -- if test "X$func_dirname_result" = "X${1}"; then -- func_dirname_result="${3}" -- else -- func_dirname_result="$func_dirname_result${2}" -- fi --} -- --# func_basename file --func_basename () --{ -- func_basename_result=`$ECHO "${1}" | $SED "$basename"` --} -- -- --# func_stripname prefix suffix name --# strip PREFIX and SUFFIX off of NAME. --# PREFIX and SUFFIX must not contain globbing or regex special --# characters, hashes, percent signs, but SUFFIX may contain a leading --# dot (in which case that matches only a dot). --# func_strip_suffix prefix name --func_stripname () --{ -- case ${2} in -- .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; -- *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; -- esac --} -- --# sed scripts: --my_sed_long_opt='1s/^\(-[^=]*\)=.*/\1/;q' --my_sed_long_arg='1s/^-[^=]*=//' -- --# func_opt_split --func_opt_split () --{ -- func_opt_split_opt=`$ECHO "${1}" | $SED "$my_sed_long_opt"` -- func_opt_split_arg=`$ECHO "${1}" | $SED "$my_sed_long_arg"` --} -- --# func_lo2o object --func_lo2o () --{ -- func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"` --} -- --# func_xform libobj-or-source --func_xform () --{ -- func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'` --} -- --# func_arith arithmetic-term... --func_arith () --{ -- func_arith_result=`expr "$@"` --} -- --# func_len string --# STRING may not start with a hyphen. --func_len () --{ -- func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len` --} -- --_LT_EOF --esac -- --case $lt_shell_append in -- yes) -- cat << \_LT_EOF >> "$cfgfile" -- --# func_append var value --# Append VALUE to the end of shell variable VAR. --func_append () --{ -- eval "$1+=\$2" --} --_LT_EOF -- ;; -- *) -- cat << \_LT_EOF >> "$cfgfile" -- --# func_append var value --# Append VALUE to the end of shell variable VAR. --func_append () --{ -- eval "$1=\$$1\$2" --} -- --_LT_EOF -- ;; -- esac -- -- -- sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ -- || (rm -f "$cfgfile"; exit 1) -- -- mv -f "$cfgfile" "$ofile" || -+ sed '$q' "$ltmain" >> "$cfgfile" \ -+ || (rm -f "$cfgfile"; exit 1) -+ -+ if test x"$xsi_shell" = xyes; then -+ sed -e '/^func_dirname ()$/,/^} # func_dirname /c\ -+func_dirname ()\ -+{\ -+\ case ${1} in\ -+\ */*) func_dirname_result="${1%/*}${2}" ;;\ -+\ * ) func_dirname_result="${3}" ;;\ -+\ esac\ -+} # Extended-shell func_dirname implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_basename ()$/,/^} # func_basename /c\ -+func_basename ()\ -+{\ -+\ func_basename_result="${1##*/}"\ -+} # Extended-shell func_basename implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_dirname_and_basename ()$/,/^} # func_dirname_and_basename /c\ -+func_dirname_and_basename ()\ -+{\ -+\ case ${1} in\ -+\ */*) func_dirname_result="${1%/*}${2}" ;;\ -+\ * ) func_dirname_result="${3}" ;;\ -+\ esac\ -+\ func_basename_result="${1##*/}"\ -+} # Extended-shell func_dirname_and_basename implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_stripname ()$/,/^} # func_stripname /c\ -+func_stripname ()\ -+{\ -+\ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are\ -+\ # positional parameters, so assign one to ordinary parameter first.\ -+\ func_stripname_result=${3}\ -+\ func_stripname_result=${func_stripname_result#"${1}"}\ -+\ func_stripname_result=${func_stripname_result%"${2}"}\ -+} # Extended-shell func_stripname implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_split_long_opt ()$/,/^} # func_split_long_opt /c\ -+func_split_long_opt ()\ -+{\ -+\ func_split_long_opt_name=${1%%=*}\ -+\ func_split_long_opt_arg=${1#*=}\ -+} # Extended-shell func_split_long_opt implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_split_short_opt ()$/,/^} # func_split_short_opt /c\ -+func_split_short_opt ()\ -+{\ -+\ func_split_short_opt_arg=${1#??}\ -+\ func_split_short_opt_name=${1%"$func_split_short_opt_arg"}\ -+} # Extended-shell func_split_short_opt implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_lo2o ()$/,/^} # func_lo2o /c\ -+func_lo2o ()\ -+{\ -+\ case ${1} in\ -+\ *.lo) func_lo2o_result=${1%.lo}.${objext} ;;\ -+\ *) func_lo2o_result=${1} ;;\ -+\ esac\ -+} # Extended-shell func_lo2o implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_xform ()$/,/^} # func_xform /c\ -+func_xform ()\ -+{\ -+ func_xform_result=${1%.*}.lo\ -+} # Extended-shell func_xform implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_arith ()$/,/^} # func_arith /c\ -+func_arith ()\ -+{\ -+ func_arith_result=$(( $* ))\ -+} # Extended-shell func_arith implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_len ()$/,/^} # func_len /c\ -+func_len ()\ -+{\ -+ func_len_result=${#1}\ -+} # Extended-shell func_len implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+fi -+ -+if test x"$lt_shell_append" = xyes; then -+ sed -e '/^func_append ()$/,/^} # func_append /c\ -+func_append ()\ -+{\ -+ eval "${1}+=\\${2}"\ -+} # Extended-shell func_append implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_append_quoted ()$/,/^} # func_append_quoted /c\ -+func_append_quoted ()\ -+{\ -+\ func_quote_for_eval "${2}"\ -+\ eval "${1}+=\\\\ \\$func_quote_for_eval_result"\ -+} # Extended-shell func_append_quoted implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ # Save a `func_append' function call where possible by direct use of '+=' -+ sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+ test 0 -eq $? || _lt_function_replace_fail=: -+else -+ # Save a `func_append' function call even when '+=' is not available -+ sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+ test 0 -eq $? || _lt_function_replace_fail=: -+fi -+ -+if test x"$_lt_function_replace_fail" = x":"; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5 -+$as_echo "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;} -+fi -+ -+ -+ mv -f "$cfgfile" "$ofile" || - (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") - chmod +x "$ofile" - -diff --git a/gprof/configure b/gprof/configure -index 626e1c7..a88719c 100755 ---- a/gprof/configure -+++ b/gprof/configure -@@ -630,8 +630,11 @@ OTOOL - LIPO - NMEDIT - DSYMUTIL -+MANIFEST_TOOL - RANLIB -+ac_ct_AR - AR -+DLLTOOL - OBJDUMP - LN_S - NM -@@ -743,6 +746,7 @@ enable_static - with_pic - enable_fast_install - with_gnu_ld -+with_libtool_sysroot - enable_libtool_lock - enable_plugins - enable_largefile -@@ -1401,6 +1405,8 @@ Optional Packages: - --with-pic try to use only PIC/non-PIC objects [default=use - both] - --with-gnu-ld assume the C compiler uses GNU ld [default=no] -+ --with-libtool-sysroot=DIR Search for dependent libraries within DIR -+ (or the compiler's sysroot if not specified). - - Some influential environment variables: - CC C compiler command -@@ -4835,8 +4841,8 @@ esac - - - --macro_version='2.2.7a' --macro_revision='1.3134' -+macro_version='2.4' -+macro_revision='1.3293' - - - -@@ -4876,7 +4882,7 @@ ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO - { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5 - $as_echo_n "checking how to print strings... " >&6; } - # Test print first, because it will be a builtin if present. --if test "X`print -r -- -n 2>/dev/null`" = X-n && \ -+if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ - test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then - ECHO='print -r --' - elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then -@@ -5562,8 +5568,8 @@ $as_echo_n "checking whether the shell understands some XSI constructs... " >&6; - # Try some XSI features - xsi_shell=no - ( _lt_dummy="a/b/c" -- test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \ -- = c,a/b,, \ -+ test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ -+ = c,a/b,b/c, \ - && eval 'test $(( 1 + 1 )) -eq 2 \ - && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ - && xsi_shell=yes -@@ -5612,6 +5618,80 @@ esac - - - -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5 -+$as_echo_n "checking how to convert $build file names to $host format... " >&6; } -+if test "${lt_cv_to_host_file_cmd+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ case $host in -+ *-*-mingw* ) -+ case $build in -+ *-*-mingw* ) # actually msys -+ lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 -+ ;; -+ *-*-cygwin* ) -+ lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 -+ ;; -+ * ) # otherwise, assume *nix -+ lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 -+ ;; -+ esac -+ ;; -+ *-*-cygwin* ) -+ case $build in -+ *-*-mingw* ) # actually msys -+ lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin -+ ;; -+ *-*-cygwin* ) -+ lt_cv_to_host_file_cmd=func_convert_file_noop -+ ;; -+ * ) # otherwise, assume *nix -+ lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin -+ ;; -+ esac -+ ;; -+ * ) # unhandled hosts (and "normal" native builds) -+ lt_cv_to_host_file_cmd=func_convert_file_noop -+ ;; -+esac -+ -+fi -+ -+to_host_file_cmd=$lt_cv_to_host_file_cmd -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5 -+$as_echo "$lt_cv_to_host_file_cmd" >&6; } -+ -+ -+ -+ -+ -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5 -+$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; } -+if test "${lt_cv_to_tool_file_cmd+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ #assume ordinary cross tools, or native build. -+lt_cv_to_tool_file_cmd=func_convert_file_noop -+case $host in -+ *-*-mingw* ) -+ case $build in -+ *-*-mingw* ) # actually msys -+ lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 -+ ;; -+ esac -+ ;; -+esac -+ -+fi -+ -+to_tool_file_cmd=$lt_cv_to_tool_file_cmd -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5 -+$as_echo "$lt_cv_to_tool_file_cmd" >&6; } -+ -+ -+ -+ -+ - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 - $as_echo_n "checking for $LD option to reload object files... " >&6; } - if test "${lt_cv_ld_reload_flag+set}" = set; then : -@@ -5628,6 +5708,11 @@ case $reload_flag in - esac - reload_cmds='$LD$reload_flag -o $output$reload_objs' - case $host_os in -+ cygwin* | mingw* | pw32* | cegcc*) -+ if test "$GCC" != yes; then -+ reload_cmds=false -+ fi -+ ;; - darwin*) - if test "$GCC" = yes; then - reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' -@@ -5796,7 +5881,8 @@ mingw* | pw32*) - lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' - lt_cv_file_magic_cmd='func_win32_libid' - else -- lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' -+ # Keep this pattern in sync with the one in func_win32_libid. -+ lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' - lt_cv_file_magic_cmd='$OBJDUMP -f' - fi - ;; -@@ -5873,11 +5959,6 @@ linux* | k*bsd*-gnu | kopensolaris*-gnu) - lt_cv_deplibs_check_method=pass_all - ;; - --linux-uclibc*) -- lt_cv_deplibs_check_method=pass_all -- lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so` -- ;; -- - netbsd*) - if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then - lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' -@@ -5955,6 +6036,21 @@ esac - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 - $as_echo "$lt_cv_deplibs_check_method" >&6; } -+ -+file_magic_glob= -+want_nocaseglob=no -+if test "$build" = "$host"; then -+ case $host_os in -+ mingw* | pw32*) -+ if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then -+ want_nocaseglob=yes -+ else -+ file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"` -+ fi -+ ;; -+ esac -+fi -+ - file_magic_cmd=$lt_cv_file_magic_cmd - deplibs_check_method=$lt_cv_deplibs_check_method - test -z "$deplibs_check_method" && deplibs_check_method=unknown -@@ -5970,9 +6066,162 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown - - - -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+if test -n "$ac_tool_prefix"; then -+ # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. -+set dummy ${ac_tool_prefix}dlltool; ac_word=$2 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+$as_echo_n "checking for $ac_word... " >&6; } -+if test "${ac_cv_prog_DLLTOOL+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ if test -n "$DLLTOOL"; then -+ ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. -+else -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then -+ ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" -+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+ done -+IFS=$as_save_IFS -+ -+fi -+fi -+DLLTOOL=$ac_cv_prog_DLLTOOL -+if test -n "$DLLTOOL"; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 -+$as_echo "$DLLTOOL" >&6; } -+else -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+$as_echo "no" >&6; } -+fi -+ -+ -+fi -+if test -z "$ac_cv_prog_DLLTOOL"; then -+ ac_ct_DLLTOOL=$DLLTOOL -+ # Extract the first word of "dlltool", so it can be a program name with args. -+set dummy dlltool; ac_word=$2 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+$as_echo_n "checking for $ac_word... " >&6; } -+if test "${ac_cv_prog_ac_ct_DLLTOOL+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ if test -n "$ac_ct_DLLTOOL"; then -+ ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. -+else -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then -+ ac_cv_prog_ac_ct_DLLTOOL="dlltool" -+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+ done -+IFS=$as_save_IFS -+ -+fi -+fi -+ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL -+if test -n "$ac_ct_DLLTOOL"; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 -+$as_echo "$ac_ct_DLLTOOL" >&6; } -+else -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+$as_echo "no" >&6; } -+fi -+ -+ if test "x$ac_ct_DLLTOOL" = x; then -+ DLLTOOL="false" -+ else -+ case $cross_compiling:$ac_tool_warned in -+yes:) -+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -+ac_tool_warned=yes ;; -+esac -+ DLLTOOL=$ac_ct_DLLTOOL -+ fi -+else -+ DLLTOOL="$ac_cv_prog_DLLTOOL" -+fi -+ -+test -z "$DLLTOOL" && DLLTOOL=dlltool -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5 -+$as_echo_n "checking how to associate runtime and link libraries... " >&6; } -+if test "${lt_cv_sharedlib_from_linklib_cmd+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ lt_cv_sharedlib_from_linklib_cmd='unknown' -+ -+case $host_os in -+cygwin* | mingw* | pw32* | cegcc*) -+ # two different shell functions defined in ltmain.sh -+ # decide which to use based on capabilities of $DLLTOOL -+ case `$DLLTOOL --help 2>&1` in -+ *--identify-strict*) -+ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib -+ ;; -+ *) -+ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback -+ ;; -+ esac -+ ;; -+*) -+ # fallback: assume linklib IS sharedlib -+ lt_cv_sharedlib_from_linklib_cmd="$ECHO" -+ ;; -+esac -+ -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5 -+$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; } -+sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd -+test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO -+ -+ -+ -+ -+ -+ -+ - if test -n "$ac_tool_prefix"; then -- # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. --set dummy ${ac_tool_prefix}ar; ac_word=$2 -+ for ac_prog in ar -+ do -+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -+set dummy $ac_tool_prefix$ac_prog; ac_word=$2 - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 - $as_echo_n "checking for $ac_word... " >&6; } - if test "${ac_cv_prog_AR+set}" = set; then : -@@ -5988,7 +6237,7 @@ do - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then -- ac_cv_prog_AR="${ac_tool_prefix}ar" -+ ac_cv_prog_AR="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -@@ -6008,11 +6257,15 @@ $as_echo "no" >&6; } - fi - - -+ test -n "$AR" && break -+ done - fi --if test -z "$ac_cv_prog_AR"; then -+if test -z "$AR"; then - ac_ct_AR=$AR -- # Extract the first word of "ar", so it can be a program name with args. --set dummy ar; ac_word=$2 -+ for ac_prog in ar -+do -+ # Extract the first word of "$ac_prog", so it can be a program name with args. -+set dummy $ac_prog; ac_word=$2 - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 - $as_echo_n "checking for $ac_word... " >&6; } - if test "${ac_cv_prog_ac_ct_AR+set}" = set; then : -@@ -6028,7 +6281,7 @@ do - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then -- ac_cv_prog_ac_ct_AR="ar" -+ ac_cv_prog_ac_ct_AR="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -@@ -6047,6 +6300,10 @@ else - $as_echo "no" >&6; } - fi - -+ -+ test -n "$ac_ct_AR" && break -+done -+ - if test "x$ac_ct_AR" = x; then - AR="false" - else -@@ -6058,12 +6315,10 @@ ac_tool_warned=yes ;; - esac - AR=$ac_ct_AR - fi --else -- AR="$ac_cv_prog_AR" - fi - --test -z "$AR" && AR=ar --test -z "$AR_FLAGS" && AR_FLAGS=cru -+: ${AR=ar} -+: ${AR_FLAGS=cru} - - - -@@ -6075,6 +6330,64 @@ test -z "$AR_FLAGS" && AR_FLAGS=cru - - - -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 -+$as_echo_n "checking for archiver @FILE support... " >&6; } -+if test "${lt_cv_ar_at_file+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ lt_cv_ar_at_file=no -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+/* end confdefs.h. */ -+ -+int -+main () -+{ -+ -+ ; -+ return 0; -+} -+_ACEOF -+if ac_fn_c_try_compile "$LINENO"; then : -+ echo conftest.$ac_objext > conftest.lst -+ lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5' -+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 -+ (eval $lt_ar_try) 2>&5 -+ ac_status=$? -+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 -+ test $ac_status = 0; } -+ if test "$ac_status" -eq 0; then -+ # Ensure the archiver fails upon bogus file names. -+ rm -f conftest.$ac_objext libconftest.a -+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 -+ (eval $lt_ar_try) 2>&5 -+ ac_status=$? -+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 -+ test $ac_status = 0; } -+ if test "$ac_status" -ne 0; then -+ lt_cv_ar_at_file=@ -+ fi -+ fi -+ rm -f conftest.* libconftest.a -+ -+fi -+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -+ -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 -+$as_echo "$lt_cv_ar_at_file" >&6; } -+ -+if test "x$lt_cv_ar_at_file" = xno; then -+ archiver_list_spec= -+else -+ archiver_list_spec=$lt_cv_ar_at_file -+fi -+ -+ -+ -+ -+ -+ -+ - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. - set dummy ${ac_tool_prefix}strip; ac_word=$2 -@@ -6409,8 +6722,8 @@ esac - lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" - - # Transform an extracted symbol line into symbol name and symbol address --lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" --lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" -+lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" -+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" - - # Handle CRLF in mingw tool chain - opt_cr= -@@ -6446,6 +6759,7 @@ for ac_symprfx in "" "_"; do - else - lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" - fi -+ lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" - - # Check to see that the pipe works correctly. - pipe_works=no -@@ -6487,6 +6801,18 @@ _LT_EOF - if $GREP ' nm_test_var$' "$nlist" >/dev/null; then - if $GREP ' nm_test_func$' "$nlist" >/dev/null; then - cat <<_LT_EOF > conftest.$ac_ext -+/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ -+#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) -+/* DATA imports from DLLs on WIN32 con't be const, because runtime -+ relocations are performed -- see ld's documentation on pseudo-relocs. */ -+# define LT_DLSYM_CONST -+#elif defined(__osf__) -+/* This system does not cope well with relocations in const data. */ -+# define LT_DLSYM_CONST -+#else -+# define LT_DLSYM_CONST const -+#endif -+ - #ifdef __cplusplus - extern "C" { - #endif -@@ -6498,7 +6824,7 @@ _LT_EOF - cat <<_LT_EOF >> conftest.$ac_ext - - /* The mapping between symbol names and symbols. */ --const struct { -+LT_DLSYM_CONST struct { - const char *name; - void *address; - } -@@ -6524,8 +6850,8 @@ static const void *lt_preloaded_setup() { - _LT_EOF - # Now try linking the two files. - mv conftest.$ac_objext conftstm.$ac_objext -- lt_save_LIBS="$LIBS" -- lt_save_CFLAGS="$CFLAGS" -+ lt_globsym_save_LIBS=$LIBS -+ lt_globsym_save_CFLAGS=$CFLAGS - LIBS="conftstm.$ac_objext" - CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 -@@ -6535,8 +6861,8 @@ _LT_EOF - test $ac_status = 0; } && test -s conftest${ac_exeext}; then - pipe_works=yes - fi -- LIBS="$lt_save_LIBS" -- CFLAGS="$lt_save_CFLAGS" -+ LIBS=$lt_globsym_save_LIBS -+ CFLAGS=$lt_globsym_save_CFLAGS - else - echo "cannot find nm_test_func in $nlist" >&5 - fi -@@ -6573,6 +6899,18 @@ else - $as_echo "ok" >&6; } - fi - -+# Response file support. -+if test "$lt_cv_nm_interface" = "MS dumpbin"; then -+ nm_file_list_spec='@' -+elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then -+ nm_file_list_spec='@' -+fi -+ -+ -+ -+ -+ -+ - - - -@@ -6594,6 +6932,43 @@ fi - - - -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 -+$as_echo_n "checking for sysroot... " >&6; } -+ -+# Check whether --with-libtool-sysroot was given. -+if test "${with_libtool_sysroot+set}" = set; then : -+ withval=$with_libtool_sysroot; -+else -+ with_libtool_sysroot=no -+fi -+ -+ -+lt_sysroot= -+case ${with_libtool_sysroot} in #( -+ yes) -+ if test "$GCC" = yes; then -+ lt_sysroot=`$CC --print-sysroot 2>/dev/null` -+ fi -+ ;; #( -+ /*) -+ lt_sysroot=`echo "$with_libtool_sysroot" | sed -e "$sed_quote_subst"` -+ ;; #( -+ no|'') -+ ;; #( -+ *) -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_libtool_sysroot}" >&5 -+$as_echo "${with_libtool_sysroot}" >&6; } -+ as_fn_error "The sysroot must be an absolute path." "$LINENO" 5 -+ ;; -+esac -+ -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5 -+$as_echo "${lt_sysroot:-no}" >&6; } -+ -+ -+ -+ -+ - # Check whether --enable-libtool-lock was given. - if test "${enable_libtool_lock+set}" = set; then : - enableval=$enable_libtool_lock; -@@ -6800,6 +7175,123 @@ esac - - need_locks="$enable_libtool_lock" - -+if test -n "$ac_tool_prefix"; then -+ # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args. -+set dummy ${ac_tool_prefix}mt; ac_word=$2 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+$as_echo_n "checking for $ac_word... " >&6; } -+if test "${ac_cv_prog_MANIFEST_TOOL+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ if test -n "$MANIFEST_TOOL"; then -+ ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test. -+else -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then -+ ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt" -+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+ done -+IFS=$as_save_IFS -+ -+fi -+fi -+MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL -+if test -n "$MANIFEST_TOOL"; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5 -+$as_echo "$MANIFEST_TOOL" >&6; } -+else -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+$as_echo "no" >&6; } -+fi -+ -+ -+fi -+if test -z "$ac_cv_prog_MANIFEST_TOOL"; then -+ ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL -+ # Extract the first word of "mt", so it can be a program name with args. -+set dummy mt; ac_word=$2 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+$as_echo_n "checking for $ac_word... " >&6; } -+if test "${ac_cv_prog_ac_ct_MANIFEST_TOOL+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ if test -n "$ac_ct_MANIFEST_TOOL"; then -+ ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test. -+else -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then -+ ac_cv_prog_ac_ct_MANIFEST_TOOL="mt" -+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+ done -+IFS=$as_save_IFS -+ -+fi -+fi -+ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL -+if test -n "$ac_ct_MANIFEST_TOOL"; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5 -+$as_echo "$ac_ct_MANIFEST_TOOL" >&6; } -+else -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+$as_echo "no" >&6; } -+fi -+ -+ if test "x$ac_ct_MANIFEST_TOOL" = x; then -+ MANIFEST_TOOL=":" -+ else -+ case $cross_compiling:$ac_tool_warned in -+yes:) -+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -+ac_tool_warned=yes ;; -+esac -+ MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL -+ fi -+else -+ MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL" -+fi -+ -+test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5 -+$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; } -+if test "${lt_cv_path_mainfest_tool+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ lt_cv_path_mainfest_tool=no -+ echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5 -+ $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out -+ cat conftest.err >&5 -+ if $GREP 'Manifest Tool' conftest.out > /dev/null; then -+ lt_cv_path_mainfest_tool=yes -+ fi -+ rm -f conftest* -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5 -+$as_echo "$lt_cv_path_mainfest_tool" >&6; } -+if test "x$lt_cv_path_mainfest_tool" != xyes; then -+ MANIFEST_TOOL=: -+fi -+ -+ -+ -+ -+ - - case $host_os in - rhapsody* | darwin*) -@@ -7363,6 +7855,8 @@ _LT_EOF - $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 - echo "$AR cru libconftest.a conftest.o" >&5 - $AR cru libconftest.a conftest.o 2>&5 -+ echo "$RANLIB libconftest.a" >&5 -+ $RANLIB libconftest.a 2>&5 - cat > conftest.c << _LT_EOF - int main() { return 0;} - _LT_EOF -@@ -7558,7 +8052,8 @@ fi - LIBTOOL_DEPS="$ltmain" - - # Always use our own libtool. --LIBTOOL='$(SHELL) $(top_builddir)/libtool' -+LIBTOOL='$(SHELL) $(top_builddir)' -+LIBTOOL="$LIBTOOL/${host_alias}-libtool" - - - -@@ -7647,7 +8142,7 @@ aix3*) - esac - - # Global variables: --ofile=libtool -+ofile=${host_alias}-libtool - can_build_shared=yes - - # All known linkers require a `.a' archive for static linking (except MSVC, -@@ -7945,8 +8440,6 @@ fi - lt_prog_compiler_pic= - lt_prog_compiler_static= - --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 --$as_echo_n "checking for $compiler option to produce PIC... " >&6; } - - if test "$GCC" = yes; then - lt_prog_compiler_wl='-Wl,' -@@ -8112,6 +8605,12 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; } - lt_prog_compiler_pic='--shared' - lt_prog_compiler_static='--static' - ;; -+ nagfor*) -+ # NAG Fortran compiler -+ lt_prog_compiler_wl='-Wl,-Wl,,' -+ lt_prog_compiler_pic='-PIC' -+ lt_prog_compiler_static='-Bstatic' -+ ;; - pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) - # Portland Group compilers (*not* the Pentium gcc compiler, - # which looks to be a dead project) -@@ -8174,7 +8673,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; } - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-Bstatic' - case $cc_basename in -- f77* | f90* | f95*) -+ f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) - lt_prog_compiler_wl='-Qoption ld ';; - *) - lt_prog_compiler_wl='-Wl,';; -@@ -8231,13 +8730,17 @@ case $host_os in - lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" - ;; - esac --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic" >&5 --$as_echo "$lt_prog_compiler_pic" >&6; } -- -- -- -- - -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 -+$as_echo_n "checking for $compiler option to produce PIC... " >&6; } -+if test "${lt_cv_prog_compiler_pic+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ lt_cv_prog_compiler_pic=$lt_prog_compiler_pic -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 -+$as_echo "$lt_cv_prog_compiler_pic" >&6; } -+lt_prog_compiler_pic=$lt_cv_prog_compiler_pic - - # - # Check to make sure the PIC flag actually works. -@@ -8298,6 +8801,11 @@ fi - - - -+ -+ -+ -+ -+ - # - # Check to make sure the static flag actually works. - # -@@ -8648,7 +9156,8 @@ _LT_EOF - allow_undefined_flag=unsupported - always_export_symbols=no - enable_shared_with_static_runtimes=yes -- export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' -+ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' -+ exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' - - if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' -@@ -8747,12 +9256,12 @@ _LT_EOF - whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' - hardcode_libdir_flag_spec= - hardcode_libdir_flag_spec_ld='-rpath $libdir' -- archive_cmds='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib' -+ archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' - if test "x$supports_anon_versioning" = xyes; then - archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ - cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ - echo "local: *; };" >> $output_objdir/$libname.ver~ -- $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' -+ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' - fi - ;; - esac -@@ -8766,8 +9275,8 @@ _LT_EOF - archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' - wlarc= - else -- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' -+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - fi - ;; - -@@ -8785,8 +9294,8 @@ _LT_EOF - - _LT_EOF - elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then -- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' -+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - ld_shlibs=no - fi -@@ -8832,8 +9341,8 @@ _LT_EOF - - *) - if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then -- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' -+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - ld_shlibs=no - fi -@@ -8963,7 +9472,13 @@ _LT_EOF - allow_undefined_flag='-berok' - # Determine the default libpath from the value encoded in an - # empty executable. -- cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+ if test "${lt_cv_aix_libpath+set}" = set; then -+ aix_libpath=$lt_cv_aix_libpath -+else -+ if test "${lt_cv_aix_libpath_+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - - int -@@ -8976,22 +9491,29 @@ main () - _ACEOF - if ac_fn_c_try_link "$LINENO"; then : - --lt_aix_libpath_sed=' -- /Import File Strings/,/^$/ { -- /^0/ { -- s/^0 *\(.*\)$/\1/ -- p -- } -- }' --aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` --# Check for a 64-bit object if we didn't find anything. --if test -z "$aix_libpath"; then -- aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` --fi -+ lt_aix_libpath_sed=' -+ /Import File Strings/,/^$/ { -+ /^0/ { -+ s/^0 *\([^ ]*\) *$/\1/ -+ p -+ } -+ }' -+ lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -+ # Check for a 64-bit object if we didn't find anything. -+ if test -z "$lt_cv_aix_libpath_"; then -+ lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -+ fi - fi - rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext --if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi -+ if test -z "$lt_cv_aix_libpath_"; then -+ lt_cv_aix_libpath_="/usr/lib:/lib" -+ fi -+ -+fi -+ -+ aix_libpath=$lt_cv_aix_libpath_ -+fi - - hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" - archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" -@@ -9003,7 +9525,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi - else - # Determine the default libpath from the value encoded in an - # empty executable. -- cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+ if test "${lt_cv_aix_libpath+set}" = set; then -+ aix_libpath=$lt_cv_aix_libpath -+else -+ if test "${lt_cv_aix_libpath_+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - - int -@@ -9016,22 +9544,29 @@ main () - _ACEOF - if ac_fn_c_try_link "$LINENO"; then : - --lt_aix_libpath_sed=' -- /Import File Strings/,/^$/ { -- /^0/ { -- s/^0 *\(.*\)$/\1/ -- p -- } -- }' --aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` --# Check for a 64-bit object if we didn't find anything. --if test -z "$aix_libpath"; then -- aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` --fi -+ lt_aix_libpath_sed=' -+ /Import File Strings/,/^$/ { -+ /^0/ { -+ s/^0 *\([^ ]*\) *$/\1/ -+ p -+ } -+ }' -+ lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -+ # Check for a 64-bit object if we didn't find anything. -+ if test -z "$lt_cv_aix_libpath_"; then -+ lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -+ fi - fi - rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext --if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi -+ if test -z "$lt_cv_aix_libpath_"; then -+ lt_cv_aix_libpath_="/usr/lib:/lib" -+ fi -+ -+fi -+ -+ aix_libpath=$lt_cv_aix_libpath_ -+fi - - hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" - # Warning - without using the other run time loading flags, -@@ -9076,20 +9611,63 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi - # Microsoft Visual C++. - # hardcode_libdir_flag_spec is actually meaningless, as there is - # no search path for DLLs. -- hardcode_libdir_flag_spec=' ' -- allow_undefined_flag=unsupported -- # Tell ltmain to make .lib files, not .a files. -- libext=lib -- # Tell ltmain to make .dll files, not .so files. -- shrext_cmds=".dll" -- # FIXME: Setting linknames here is a bad hack. -- archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' -- # The linker will automatically build a .lib file if we build a DLL. -- old_archive_from_new_cmds='true' -- # FIXME: Should let the user specify the lib program. -- old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' -- fix_srcfile_path='`cygpath -w "$srcfile"`' -- enable_shared_with_static_runtimes=yes -+ case $cc_basename in -+ cl*) -+ # Native MSVC -+ hardcode_libdir_flag_spec=' ' -+ allow_undefined_flag=unsupported -+ always_export_symbols=yes -+ file_list_spec='@' -+ # Tell ltmain to make .lib files, not .a files. -+ libext=lib -+ # Tell ltmain to make .dll files, not .so files. -+ shrext_cmds=".dll" -+ # FIXME: Setting linknames here is a bad hack. -+ archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' -+ archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then -+ sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; -+ else -+ sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; -+ fi~ -+ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ -+ linknames=' -+ # The linker will not automatically build a static lib if we build a DLL. -+ # _LT_TAGVAR(old_archive_from_new_cmds, )='true' -+ enable_shared_with_static_runtimes=yes -+ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' -+ # Don't use ranlib -+ old_postinstall_cmds='chmod 644 $oldlib' -+ postlink_cmds='lt_outputfile="@OUTPUT@"~ -+ lt_tool_outputfile="@TOOL_OUTPUT@"~ -+ case $lt_outputfile in -+ *.exe|*.EXE) ;; -+ *) -+ lt_outputfile="$lt_outputfile.exe" -+ lt_tool_outputfile="$lt_tool_outputfile.exe" -+ ;; -+ esac~ -+ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then -+ $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; -+ $RM "$lt_outputfile.manifest"; -+ fi' -+ ;; -+ *) -+ # Assume MSVC wrapper -+ hardcode_libdir_flag_spec=' ' -+ allow_undefined_flag=unsupported -+ # Tell ltmain to make .lib files, not .a files. -+ libext=lib -+ # Tell ltmain to make .dll files, not .so files. -+ shrext_cmds=".dll" -+ # FIXME: Setting linknames here is a bad hack. -+ archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' -+ # The linker will automatically build a .lib file if we build a DLL. -+ old_archive_from_new_cmds='true' -+ # FIXME: Should let the user specify the lib program. -+ old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' -+ enable_shared_with_static_runtimes=yes -+ ;; -+ esac - ;; - - darwin* | rhapsody*) -@@ -9150,7 +9728,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi - - # FreeBSD 3 and greater uses gcc -shared to do shared libraries. - freebsd* | dragonfly*) -- archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' -+ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - hardcode_libdir_flag_spec='-R$libdir' - hardcode_direct=yes - hardcode_shlibpath_var=no -@@ -9158,7 +9736,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi - - hpux9*) - if test "$GCC" = yes; then -- archive_cmds='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' -+ archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - else - archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - fi -@@ -9174,7 +9752,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi - - hpux10*) - if test "$GCC" = yes && test "$with_gnu_ld" = no; then -- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' -+ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' - fi -@@ -9198,10 +9776,10 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi - archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - ia64*) -- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' -+ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) -- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' -+ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - ;; - esac - else -@@ -9280,23 +9858,36 @@ fi - - irix5* | irix6* | nonstopux*) - if test "$GCC" = yes; then -- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' -+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - # Try to use the -exported_symbol ld option, if it does not - # work, assume that -exports_file does not work either and - # implicitly export all symbols. -- save_LDFLAGS="$LDFLAGS" -- LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" -- cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+ # This should be the same for all languages, so no per-tag cache variable. -+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5 -+$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; } -+if test "${lt_cv_irix_exported_symbol+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ save_LDFLAGS="$LDFLAGS" -+ LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ --int foo(void) {} -+int foo (void) { return 0; } - _ACEOF - if ac_fn_c_try_link "$LINENO"; then : -- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' -- -+ lt_cv_irix_exported_symbol=yes -+else -+ lt_cv_irix_exported_symbol=no - fi - rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -- LDFLAGS="$save_LDFLAGS" -+ LDFLAGS="$save_LDFLAGS" -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5 -+$as_echo "$lt_cv_irix_exported_symbol" >&6; } -+ if test "$lt_cv_irix_exported_symbol" = yes; then -+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' -+ fi - else - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' - archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' -@@ -9381,7 +9972,7 @@ rm -f core conftest.err conftest.$ac_objext \ - osf4* | osf5*) # as osf3* with the addition of -msym flag - if test "$GCC" = yes; then - allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' -- archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' -+ archive_cmds='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - else - allow_undefined_flag=' -expect_unresolved \*' -@@ -9400,9 +9991,9 @@ rm -f core conftest.err conftest.$ac_objext \ - no_undefined_flag=' -z defs' - if test "$GCC" = yes; then - wlarc='${wl}' -- archive_cmds='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' -+ archive_cmds='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ -- $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' -+ $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' - else - case `$CC -V 2>&1` in - *"Compilers 5.0"*) -@@ -9978,8 +10569,9 @@ cygwin* | mingw* | pw32* | cegcc*) - need_version=no - need_lib_prefix=no - -- case $GCC,$host_os in -- yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) -+ case $GCC,$cc_basename in -+ yes,*) -+ # gcc - library_names_spec='$libname.dll.a' - # DLL is installed to $(libdir)/../bin by postinstall_cmds - postinstall_cmds='base_file=`basename \${file}`~ -@@ -10012,13 +10604,71 @@ cygwin* | mingw* | pw32* | cegcc*) - library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - ;; - esac -+ dynamic_linker='Win32 ld.exe' -+ ;; -+ -+ *,cl*) -+ # Native MSVC -+ libname_spec='$name' -+ soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' -+ library_names_spec='${libname}.dll.lib' -+ -+ case $build_os in -+ mingw*) -+ sys_lib_search_path_spec= -+ lt_save_ifs=$IFS -+ IFS=';' -+ for lt_path in $LIB -+ do -+ IFS=$lt_save_ifs -+ # Let DOS variable expansion print the short 8.3 style file name. -+ lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` -+ sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" -+ done -+ IFS=$lt_save_ifs -+ # Convert to MSYS style. -+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` -+ ;; -+ cygwin*) -+ # Convert to unix form, then to dos form, then back to unix form -+ # but this time dos style (no spaces!) so that the unix form looks -+ # like /cygdrive/c/PROGRA~1:/cygdr... -+ sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` -+ sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` -+ sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` -+ ;; -+ *) -+ sys_lib_search_path_spec="$LIB" -+ if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then -+ # It is most probably a Windows format PATH. -+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` -+ else -+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` -+ fi -+ # FIXME: find the short name or the path components, as spaces are -+ # common. (e.g. "Program Files" -> "PROGRA~1") -+ ;; -+ esac -+ -+ # DLL is installed to $(libdir)/../bin by postinstall_cmds -+ postinstall_cmds='base_file=`basename \${file}`~ -+ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ -+ dldir=$destdir/`dirname \$dlpath`~ -+ test -d \$dldir || mkdir -p \$dldir~ -+ $install_prog $dir/$dlname \$dldir/$dlname' -+ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ -+ dlpath=$dir/\$dldll~ -+ $RM \$dlpath' -+ shlibpath_overrides_runpath=yes -+ dynamic_linker='Win32 link.exe' - ;; - - *) -+ # Assume MSVC wrapper - library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' -+ dynamic_linker='Win32 ld.exe' - ;; - esac -- dynamic_linker='Win32 ld.exe' - # FIXME: first we should search . and the directory the executable is in - shlibpath_var=PATH - ;; -@@ -10110,7 +10760,7 @@ haiku*) - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LIBRARY_PATH - shlibpath_overrides_runpath=yes -- sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/beos/system/lib' -+ sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' - hardcode_into_libs=yes - ;; - -@@ -10950,10 +11600,10 @@ else - /* When -fvisbility=hidden is used, assume the code has been annotated - correspondingly for the symbols needed. */ - #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) --void fnord () __attribute__((visibility("default"))); -+int fnord () __attribute__((visibility("default"))); - #endif - --void fnord () { int i=42; } -+int fnord () { return 42; } - int main () - { - void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); -@@ -11056,10 +11706,10 @@ else - /* When -fvisbility=hidden is used, assume the code has been annotated - correspondingly for the symbols needed. */ - #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) --void fnord () __attribute__((visibility("default"))); -+int fnord () __attribute__((visibility("default"))); - #endif - --void fnord () { int i=42; } -+int fnord () { return 42; } - int main () - { - void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); -@@ -12961,13 +13611,20 @@ exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`' - lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`' - lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`' - lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`' -+lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`' -+lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`' - reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' - reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' - OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' - deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' - file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' -+file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`' -+want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`' -+DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' -+sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' - AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' - AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' -+archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`' - STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' - RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`' - old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`' -@@ -12982,14 +13639,17 @@ lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$de - lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`' - lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`' - lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`' -+nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`' -+lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`' - objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`' - MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`' - lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`' --lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' - lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`' -+lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' - lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`' - lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`' - need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`' -+MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`' - DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`' - NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`' - LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`' -@@ -13022,12 +13682,12 @@ hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_q - hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`' - inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`' - link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`' --fix_srcfile_path='`$ECHO "$fix_srcfile_path" | $SED "$delay_single_quote_subst"`' - always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`' - export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`' - exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`' - include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`' - prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`' -+postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`' - file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`' - variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`' - need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`' -@@ -13082,8 +13742,13 @@ reload_flag \ - OBJDUMP \ - deplibs_check_method \ - file_magic_cmd \ -+file_magic_glob \ -+want_nocaseglob \ -+DLLTOOL \ -+sharedlib_from_linklib_cmd \ - AR \ - AR_FLAGS \ -+archiver_list_spec \ - STRIP \ - RANLIB \ - CC \ -@@ -13093,12 +13758,14 @@ lt_cv_sys_global_symbol_pipe \ - lt_cv_sys_global_symbol_to_cdecl \ - lt_cv_sys_global_symbol_to_c_name_address \ - lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ -+nm_file_list_spec \ - lt_prog_compiler_no_builtin_flag \ --lt_prog_compiler_wl \ - lt_prog_compiler_pic \ -+lt_prog_compiler_wl \ - lt_prog_compiler_static \ - lt_cv_prog_compiler_c_o \ - need_locks \ -+MANIFEST_TOOL \ - DSYMUTIL \ - NMEDIT \ - LIPO \ -@@ -13114,7 +13781,6 @@ no_undefined_flag \ - hardcode_libdir_flag_spec \ - hardcode_libdir_flag_spec_ld \ - hardcode_libdir_separator \ --fix_srcfile_path \ - exclude_expsyms \ - include_expsyms \ - file_list_spec \ -@@ -13150,6 +13816,7 @@ module_cmds \ - module_expsym_cmds \ - export_symbols_cmds \ - prelink_cmds \ -+postlink_cmds \ - postinstall_cmds \ - postuninstall_cmds \ - finish_cmds \ -@@ -13906,7 +14573,8 @@ $as_echo X"$file" | - # NOTE: Changes made to this file will be lost: look at ltmain.sh. - # - # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, --# 2006, 2007, 2008, 2009 Free Software Foundation, Inc. -+# 2006, 2007, 2008, 2009, 2010 Free Software Foundation, -+# Inc. - # Written by Gordon Matzigkeit, 1996 - # - # This file is part of GNU Libtool. -@@ -14009,19 +14677,42 @@ SP2NL=$lt_lt_SP2NL - # turn newlines into spaces. - NL2SP=$lt_lt_NL2SP - -+# convert \$build file names to \$host format. -+to_host_file_cmd=$lt_cv_to_host_file_cmd -+ -+# convert \$build files to toolchain format. -+to_tool_file_cmd=$lt_cv_to_tool_file_cmd -+ - # An object symbol dumper. - OBJDUMP=$lt_OBJDUMP - - # Method to check whether dependent libraries are shared objects. - deplibs_check_method=$lt_deplibs_check_method - --# Command to use when deplibs_check_method == "file_magic". -+# Command to use when deplibs_check_method = "file_magic". - file_magic_cmd=$lt_file_magic_cmd - -+# How to find potential files when deplibs_check_method = "file_magic". -+file_magic_glob=$lt_file_magic_glob -+ -+# Find potential files using nocaseglob when deplibs_check_method = "file_magic". -+want_nocaseglob=$lt_want_nocaseglob -+ -+# DLL creation program. -+DLLTOOL=$lt_DLLTOOL -+ -+# Command to associate shared and link libraries. -+sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd -+ - # The archiver. - AR=$lt_AR -+ -+# Flags to create an archive. - AR_FLAGS=$lt_AR_FLAGS - -+# How to feed a file listing to the archiver. -+archiver_list_spec=$lt_archiver_list_spec -+ - # A symbol stripping program. - STRIP=$lt_STRIP - -@@ -14051,6 +14742,12 @@ global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address - # Transform the output of nm in a C name address pair when lib prefix is needed. - global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix - -+# Specify filename containing input files for \$NM. -+nm_file_list_spec=$lt_nm_file_list_spec -+ -+# The root where to search for dependent libraries,and in which our libraries should be installed. -+lt_sysroot=$lt_sysroot -+ - # The name of the directory that contains temporary libtool files. - objdir=$objdir - -@@ -14060,6 +14757,9 @@ MAGIC_CMD=$MAGIC_CMD - # Must we lock files when doing compilation? - need_locks=$lt_need_locks - -+# Manifest tool. -+MANIFEST_TOOL=$lt_MANIFEST_TOOL -+ - # Tool to manipulate archived DWARF debug symbol files on Mac OS X. - DSYMUTIL=$lt_DSYMUTIL - -@@ -14174,12 +14874,12 @@ with_gcc=$GCC - # Compiler flag to turn off builtin functions. - no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag - --# How to pass a linker flag through the compiler. --wl=$lt_lt_prog_compiler_wl -- - # Additional compiler flags for building library objects. - pic_flag=$lt_lt_prog_compiler_pic - -+# How to pass a linker flag through the compiler. -+wl=$lt_lt_prog_compiler_wl -+ - # Compiler flag to prevent dynamic linking. - link_static_flag=$lt_lt_prog_compiler_static - -@@ -14266,9 +14966,6 @@ inherit_rpath=$inherit_rpath - # Whether libtool must link a program against all its dependency libraries. - link_all_deplibs=$link_all_deplibs - --# Fix the shell variable \$srcfile for the compiler. --fix_srcfile_path=$lt_fix_srcfile_path -- - # Set to "yes" if exported symbols are required. - always_export_symbols=$always_export_symbols - -@@ -14284,6 +14981,9 @@ include_expsyms=$lt_include_expsyms - # Commands necessary for linking programs (against libraries) with templates. - prelink_cmds=$lt_prelink_cmds - -+# Commands necessary for finishing linking programs. -+postlink_cmds=$lt_postlink_cmds -+ - # Specify filename containing input files. - file_list_spec=$lt_file_list_spec - -@@ -14316,210 +15016,169 @@ ltmain="$ac_aux_dir/ltmain.sh" - # if finds mixed CR/LF and LF-only lines. Since sed operates in - # text mode, it properly converts lines to CR/LF. This bash problem - # is reportedly fixed, but why not run on old versions too? -- sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ -- || (rm -f "$cfgfile"; exit 1) -- -- case $xsi_shell in -- yes) -- cat << \_LT_EOF >> "$cfgfile" -- --# func_dirname file append nondir_replacement --# Compute the dirname of FILE. If nonempty, add APPEND to the result, --# otherwise set result to NONDIR_REPLACEMENT. --func_dirname () --{ -- case ${1} in -- */*) func_dirname_result="${1%/*}${2}" ;; -- * ) func_dirname_result="${3}" ;; -- esac --} -- --# func_basename file --func_basename () --{ -- func_basename_result="${1##*/}" --} -- --# func_dirname_and_basename file append nondir_replacement --# perform func_basename and func_dirname in a single function --# call: --# dirname: Compute the dirname of FILE. If nonempty, --# add APPEND to the result, otherwise set result --# to NONDIR_REPLACEMENT. --# value returned in "$func_dirname_result" --# basename: Compute filename of FILE. --# value retuned in "$func_basename_result" --# Implementation must be kept synchronized with func_dirname --# and func_basename. For efficiency, we do not delegate to --# those functions but instead duplicate the functionality here. --func_dirname_and_basename () --{ -- case ${1} in -- */*) func_dirname_result="${1%/*}${2}" ;; -- * ) func_dirname_result="${3}" ;; -- esac -- func_basename_result="${1##*/}" --} -- --# func_stripname prefix suffix name --# strip PREFIX and SUFFIX off of NAME. --# PREFIX and SUFFIX must not contain globbing or regex special --# characters, hashes, percent signs, but SUFFIX may contain a leading --# dot (in which case that matches only a dot). --func_stripname () --{ -- # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are -- # positional parameters, so assign one to ordinary parameter first. -- func_stripname_result=${3} -- func_stripname_result=${func_stripname_result#"${1}"} -- func_stripname_result=${func_stripname_result%"${2}"} --} -- --# func_opt_split --func_opt_split () --{ -- func_opt_split_opt=${1%%=*} -- func_opt_split_arg=${1#*=} --} -- --# func_lo2o object --func_lo2o () --{ -- case ${1} in -- *.lo) func_lo2o_result=${1%.lo}.${objext} ;; -- *) func_lo2o_result=${1} ;; -- esac --} -- --# func_xform libobj-or-source --func_xform () --{ -- func_xform_result=${1%.*}.lo --} -- --# func_arith arithmetic-term... --func_arith () --{ -- func_arith_result=$(( $* )) --} -- --# func_len string --# STRING may not start with a hyphen. --func_len () --{ -- func_len_result=${#1} --} -- --_LT_EOF -- ;; -- *) # Bourne compatible functions. -- cat << \_LT_EOF >> "$cfgfile" -- --# func_dirname file append nondir_replacement --# Compute the dirname of FILE. If nonempty, add APPEND to the result, --# otherwise set result to NONDIR_REPLACEMENT. --func_dirname () --{ -- # Extract subdirectory from the argument. -- func_dirname_result=`$ECHO "${1}" | $SED "$dirname"` -- if test "X$func_dirname_result" = "X${1}"; then -- func_dirname_result="${3}" -- else -- func_dirname_result="$func_dirname_result${2}" -- fi --} -- --# func_basename file --func_basename () --{ -- func_basename_result=`$ECHO "${1}" | $SED "$basename"` --} -- -- --# func_stripname prefix suffix name --# strip PREFIX and SUFFIX off of NAME. --# PREFIX and SUFFIX must not contain globbing or regex special --# characters, hashes, percent signs, but SUFFIX may contain a leading --# dot (in which case that matches only a dot). --# func_strip_suffix prefix name --func_stripname () --{ -- case ${2} in -- .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; -- *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; -- esac --} -- --# sed scripts: --my_sed_long_opt='1s/^\(-[^=]*\)=.*/\1/;q' --my_sed_long_arg='1s/^-[^=]*=//' -- --# func_opt_split --func_opt_split () --{ -- func_opt_split_opt=`$ECHO "${1}" | $SED "$my_sed_long_opt"` -- func_opt_split_arg=`$ECHO "${1}" | $SED "$my_sed_long_arg"` --} -- --# func_lo2o object --func_lo2o () --{ -- func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"` --} -- --# func_xform libobj-or-source --func_xform () --{ -- func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'` --} -- --# func_arith arithmetic-term... --func_arith () --{ -- func_arith_result=`expr "$@"` --} -- --# func_len string --# STRING may not start with a hyphen. --func_len () --{ -- func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len` --} -- --_LT_EOF --esac -- --case $lt_shell_append in -- yes) -- cat << \_LT_EOF >> "$cfgfile" -- --# func_append var value --# Append VALUE to the end of shell variable VAR. --func_append () --{ -- eval "$1+=\$2" --} --_LT_EOF -- ;; -- *) -- cat << \_LT_EOF >> "$cfgfile" -- --# func_append var value --# Append VALUE to the end of shell variable VAR. --func_append () --{ -- eval "$1=\$$1\$2" --} -- --_LT_EOF -- ;; -- esac -- -- -- sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ -- || (rm -f "$cfgfile"; exit 1) -- -- mv -f "$cfgfile" "$ofile" || -+ sed '$q' "$ltmain" >> "$cfgfile" \ -+ || (rm -f "$cfgfile"; exit 1) -+ -+ if test x"$xsi_shell" = xyes; then -+ sed -e '/^func_dirname ()$/,/^} # func_dirname /c\ -+func_dirname ()\ -+{\ -+\ case ${1} in\ -+\ */*) func_dirname_result="${1%/*}${2}" ;;\ -+\ * ) func_dirname_result="${3}" ;;\ -+\ esac\ -+} # Extended-shell func_dirname implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_basename ()$/,/^} # func_basename /c\ -+func_basename ()\ -+{\ -+\ func_basename_result="${1##*/}"\ -+} # Extended-shell func_basename implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_dirname_and_basename ()$/,/^} # func_dirname_and_basename /c\ -+func_dirname_and_basename ()\ -+{\ -+\ case ${1} in\ -+\ */*) func_dirname_result="${1%/*}${2}" ;;\ -+\ * ) func_dirname_result="${3}" ;;\ -+\ esac\ -+\ func_basename_result="${1##*/}"\ -+} # Extended-shell func_dirname_and_basename implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_stripname ()$/,/^} # func_stripname /c\ -+func_stripname ()\ -+{\ -+\ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are\ -+\ # positional parameters, so assign one to ordinary parameter first.\ -+\ func_stripname_result=${3}\ -+\ func_stripname_result=${func_stripname_result#"${1}"}\ -+\ func_stripname_result=${func_stripname_result%"${2}"}\ -+} # Extended-shell func_stripname implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_split_long_opt ()$/,/^} # func_split_long_opt /c\ -+func_split_long_opt ()\ -+{\ -+\ func_split_long_opt_name=${1%%=*}\ -+\ func_split_long_opt_arg=${1#*=}\ -+} # Extended-shell func_split_long_opt implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_split_short_opt ()$/,/^} # func_split_short_opt /c\ -+func_split_short_opt ()\ -+{\ -+\ func_split_short_opt_arg=${1#??}\ -+\ func_split_short_opt_name=${1%"$func_split_short_opt_arg"}\ -+} # Extended-shell func_split_short_opt implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_lo2o ()$/,/^} # func_lo2o /c\ -+func_lo2o ()\ -+{\ -+\ case ${1} in\ -+\ *.lo) func_lo2o_result=${1%.lo}.${objext} ;;\ -+\ *) func_lo2o_result=${1} ;;\ -+\ esac\ -+} # Extended-shell func_lo2o implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_xform ()$/,/^} # func_xform /c\ -+func_xform ()\ -+{\ -+ func_xform_result=${1%.*}.lo\ -+} # Extended-shell func_xform implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_arith ()$/,/^} # func_arith /c\ -+func_arith ()\ -+{\ -+ func_arith_result=$(( $* ))\ -+} # Extended-shell func_arith implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_len ()$/,/^} # func_len /c\ -+func_len ()\ -+{\ -+ func_len_result=${#1}\ -+} # Extended-shell func_len implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+fi -+ -+if test x"$lt_shell_append" = xyes; then -+ sed -e '/^func_append ()$/,/^} # func_append /c\ -+func_append ()\ -+{\ -+ eval "${1}+=\\${2}"\ -+} # Extended-shell func_append implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_append_quoted ()$/,/^} # func_append_quoted /c\ -+func_append_quoted ()\ -+{\ -+\ func_quote_for_eval "${2}"\ -+\ eval "${1}+=\\\\ \\$func_quote_for_eval_result"\ -+} # Extended-shell func_append_quoted implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ # Save a `func_append' function call where possible by direct use of '+=' -+ sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+ test 0 -eq $? || _lt_function_replace_fail=: -+else -+ # Save a `func_append' function call even when '+=' is not available -+ sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+ test 0 -eq $? || _lt_function_replace_fail=: -+fi -+ -+if test x"$_lt_function_replace_fail" = x":"; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5 -+$as_echo "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;} -+fi -+ -+ -+ mv -f "$cfgfile" "$ofile" || - (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") - chmod +x "$ofile" - -diff --git a/ld/configure b/ld/configure -index f9be51a..3df1149 100755 ---- a/ld/configure -+++ b/ld/configure -@@ -658,8 +658,11 @@ OTOOL - LIPO - NMEDIT - DSYMUTIL -+MANIFEST_TOOL - RANLIB -+ac_ct_AR - AR -+DLLTOOL - OBJDUMP - LN_S - NM -@@ -781,6 +784,7 @@ enable_static - with_pic - enable_fast_install - with_gnu_ld -+with_libtool_sysroot - enable_libtool_lock - enable_plugins - enable_largefile -@@ -1462,6 +1466,8 @@ Optional Packages: - --with-pic try to use only PIC/non-PIC objects [default=use - both] - --with-gnu-ld assume the C compiler uses GNU ld [default=no] -+ --with-libtool-sysroot=DIR Search for dependent libraries within DIR -+ (or the compiler's sysroot if not specified). - --with-lib-path=dir1:dir2... set default LIB_PATH - --with-sysroot=DIR Search for usr/lib et al within DIR. - -@@ -5656,8 +5662,8 @@ esac - - - --macro_version='2.2.7a' --macro_revision='1.3134' -+macro_version='2.4' -+macro_revision='1.3293' - - - -@@ -5697,7 +5703,7 @@ ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO - { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5 - $as_echo_n "checking how to print strings... " >&6; } - # Test print first, because it will be a builtin if present. --if test "X`print -r -- -n 2>/dev/null`" = X-n && \ -+if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ - test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then - ECHO='print -r --' - elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then -@@ -6383,8 +6389,8 @@ $as_echo_n "checking whether the shell understands some XSI constructs... " >&6; - # Try some XSI features - xsi_shell=no - ( _lt_dummy="a/b/c" -- test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \ -- = c,a/b,, \ -+ test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ -+ = c,a/b,b/c, \ - && eval 'test $(( 1 + 1 )) -eq 2 \ - && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ - && xsi_shell=yes -@@ -6433,6 +6439,80 @@ esac - - - -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5 -+$as_echo_n "checking how to convert $build file names to $host format... " >&6; } -+if test "${lt_cv_to_host_file_cmd+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ case $host in -+ *-*-mingw* ) -+ case $build in -+ *-*-mingw* ) # actually msys -+ lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 -+ ;; -+ *-*-cygwin* ) -+ lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 -+ ;; -+ * ) # otherwise, assume *nix -+ lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 -+ ;; -+ esac -+ ;; -+ *-*-cygwin* ) -+ case $build in -+ *-*-mingw* ) # actually msys -+ lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin -+ ;; -+ *-*-cygwin* ) -+ lt_cv_to_host_file_cmd=func_convert_file_noop -+ ;; -+ * ) # otherwise, assume *nix -+ lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin -+ ;; -+ esac -+ ;; -+ * ) # unhandled hosts (and "normal" native builds) -+ lt_cv_to_host_file_cmd=func_convert_file_noop -+ ;; -+esac -+ -+fi -+ -+to_host_file_cmd=$lt_cv_to_host_file_cmd -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5 -+$as_echo "$lt_cv_to_host_file_cmd" >&6; } -+ -+ -+ -+ -+ -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5 -+$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; } -+if test "${lt_cv_to_tool_file_cmd+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ #assume ordinary cross tools, or native build. -+lt_cv_to_tool_file_cmd=func_convert_file_noop -+case $host in -+ *-*-mingw* ) -+ case $build in -+ *-*-mingw* ) # actually msys -+ lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 -+ ;; -+ esac -+ ;; -+esac -+ -+fi -+ -+to_tool_file_cmd=$lt_cv_to_tool_file_cmd -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5 -+$as_echo "$lt_cv_to_tool_file_cmd" >&6; } -+ -+ -+ -+ -+ - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 - $as_echo_n "checking for $LD option to reload object files... " >&6; } - if test "${lt_cv_ld_reload_flag+set}" = set; then : -@@ -6449,6 +6529,11 @@ case $reload_flag in - esac - reload_cmds='$LD$reload_flag -o $output$reload_objs' - case $host_os in -+ cygwin* | mingw* | pw32* | cegcc*) -+ if test "$GCC" != yes; then -+ reload_cmds=false -+ fi -+ ;; - darwin*) - if test "$GCC" = yes; then - reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' -@@ -6617,7 +6702,8 @@ mingw* | pw32*) - lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' - lt_cv_file_magic_cmd='func_win32_libid' - else -- lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' -+ # Keep this pattern in sync with the one in func_win32_libid. -+ lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' - lt_cv_file_magic_cmd='$OBJDUMP -f' - fi - ;; -@@ -6771,6 +6857,21 @@ esac - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 - $as_echo "$lt_cv_deplibs_check_method" >&6; } -+ -+file_magic_glob= -+want_nocaseglob=no -+if test "$build" = "$host"; then -+ case $host_os in -+ mingw* | pw32*) -+ if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then -+ want_nocaseglob=yes -+ else -+ file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"` -+ fi -+ ;; -+ esac -+fi -+ - file_magic_cmd=$lt_cv_file_magic_cmd - deplibs_check_method=$lt_cv_deplibs_check_method - test -z "$deplibs_check_method" && deplibs_check_method=unknown -@@ -6786,9 +6887,162 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown - - - -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+if test -n "$ac_tool_prefix"; then -+ # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. -+set dummy ${ac_tool_prefix}dlltool; ac_word=$2 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+$as_echo_n "checking for $ac_word... " >&6; } -+if test "${ac_cv_prog_DLLTOOL+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ if test -n "$DLLTOOL"; then -+ ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. -+else -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then -+ ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" -+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+ done -+IFS=$as_save_IFS -+ -+fi -+fi -+DLLTOOL=$ac_cv_prog_DLLTOOL -+if test -n "$DLLTOOL"; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 -+$as_echo "$DLLTOOL" >&6; } -+else -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+$as_echo "no" >&6; } -+fi -+ -+ -+fi -+if test -z "$ac_cv_prog_DLLTOOL"; then -+ ac_ct_DLLTOOL=$DLLTOOL -+ # Extract the first word of "dlltool", so it can be a program name with args. -+set dummy dlltool; ac_word=$2 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+$as_echo_n "checking for $ac_word... " >&6; } -+if test "${ac_cv_prog_ac_ct_DLLTOOL+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ if test -n "$ac_ct_DLLTOOL"; then -+ ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. -+else -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then -+ ac_cv_prog_ac_ct_DLLTOOL="dlltool" -+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+ done -+IFS=$as_save_IFS -+ -+fi -+fi -+ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL -+if test -n "$ac_ct_DLLTOOL"; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 -+$as_echo "$ac_ct_DLLTOOL" >&6; } -+else -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+$as_echo "no" >&6; } -+fi -+ -+ if test "x$ac_ct_DLLTOOL" = x; then -+ DLLTOOL="false" -+ else -+ case $cross_compiling:$ac_tool_warned in -+yes:) -+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -+ac_tool_warned=yes ;; -+esac -+ DLLTOOL=$ac_ct_DLLTOOL -+ fi -+else -+ DLLTOOL="$ac_cv_prog_DLLTOOL" -+fi -+ -+test -z "$DLLTOOL" && DLLTOOL=dlltool -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5 -+$as_echo_n "checking how to associate runtime and link libraries... " >&6; } -+if test "${lt_cv_sharedlib_from_linklib_cmd+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ lt_cv_sharedlib_from_linklib_cmd='unknown' -+ -+case $host_os in -+cygwin* | mingw* | pw32* | cegcc*) -+ # two different shell functions defined in ltmain.sh -+ # decide which to use based on capabilities of $DLLTOOL -+ case `$DLLTOOL --help 2>&1` in -+ *--identify-strict*) -+ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib -+ ;; -+ *) -+ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback -+ ;; -+ esac -+ ;; -+*) -+ # fallback: assume linklib IS sharedlib -+ lt_cv_sharedlib_from_linklib_cmd="$ECHO" -+ ;; -+esac -+ -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5 -+$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; } -+sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd -+test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO -+ -+ -+ -+ -+ -+ -+ - if test -n "$ac_tool_prefix"; then -- # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. --set dummy ${ac_tool_prefix}ar; ac_word=$2 -+ for ac_prog in ar -+ do -+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -+set dummy $ac_tool_prefix$ac_prog; ac_word=$2 - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 - $as_echo_n "checking for $ac_word... " >&6; } - if test "${ac_cv_prog_AR+set}" = set; then : -@@ -6804,7 +7058,7 @@ do - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then -- ac_cv_prog_AR="${ac_tool_prefix}ar" -+ ac_cv_prog_AR="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -@@ -6824,11 +7078,15 @@ $as_echo "no" >&6; } - fi - - -+ test -n "$AR" && break -+ done - fi --if test -z "$ac_cv_prog_AR"; then -+if test -z "$AR"; then - ac_ct_AR=$AR -- # Extract the first word of "ar", so it can be a program name with args. --set dummy ar; ac_word=$2 -+ for ac_prog in ar -+do -+ # Extract the first word of "$ac_prog", so it can be a program name with args. -+set dummy $ac_prog; ac_word=$2 - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 - $as_echo_n "checking for $ac_word... " >&6; } - if test "${ac_cv_prog_ac_ct_AR+set}" = set; then : -@@ -6844,7 +7102,7 @@ do - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then -- ac_cv_prog_ac_ct_AR="ar" -+ ac_cv_prog_ac_ct_AR="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -@@ -6863,6 +7121,10 @@ else - $as_echo "no" >&6; } - fi - -+ -+ test -n "$ac_ct_AR" && break -+done -+ - if test "x$ac_ct_AR" = x; then - AR="false" - else -@@ -6874,12 +7136,12 @@ ac_tool_warned=yes ;; - esac - AR=$ac_ct_AR - fi --else -- AR="$ac_cv_prog_AR" - fi - --test -z "$AR" && AR=ar --test -z "$AR_FLAGS" && AR_FLAGS=cru -+: ${AR=ar} -+: ${AR_FLAGS=cru} -+ -+ - - - -@@ -6889,6 +7151,62 @@ test -z "$AR_FLAGS" && AR_FLAGS=cru - - - -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 -+$as_echo_n "checking for archiver @FILE support... " >&6; } -+if test "${lt_cv_ar_at_file+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ lt_cv_ar_at_file=no -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+/* end confdefs.h. */ -+ -+int -+main () -+{ -+ -+ ; -+ return 0; -+} -+_ACEOF -+if ac_fn_c_try_compile "$LINENO"; then : -+ echo conftest.$ac_objext > conftest.lst -+ lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5' -+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 -+ (eval $lt_ar_try) 2>&5 -+ ac_status=$? -+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 -+ test $ac_status = 0; } -+ if test "$ac_status" -eq 0; then -+ # Ensure the archiver fails upon bogus file names. -+ rm -f conftest.$ac_objext libconftest.a -+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 -+ (eval $lt_ar_try) 2>&5 -+ ac_status=$? -+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 -+ test $ac_status = 0; } -+ if test "$ac_status" -ne 0; then -+ lt_cv_ar_at_file=@ -+ fi -+ fi -+ rm -f conftest.* libconftest.a -+ -+fi -+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -+ -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 -+$as_echo "$lt_cv_ar_at_file" >&6; } -+ -+if test "x$lt_cv_ar_at_file" = xno; then -+ archiver_list_spec= -+else -+ archiver_list_spec=$lt_cv_ar_at_file -+fi -+ -+ -+ -+ -+ - - - if test -n "$ac_tool_prefix"; then -@@ -7225,8 +7543,8 @@ esac - lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" - - # Transform an extracted symbol line into symbol name and symbol address --lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" --lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" -+lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" -+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" - - # Handle CRLF in mingw tool chain - opt_cr= -@@ -7262,6 +7580,7 @@ for ac_symprfx in "" "_"; do - else - lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" - fi -+ lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" - - # Check to see that the pipe works correctly. - pipe_works=no -@@ -7303,6 +7622,18 @@ _LT_EOF - if $GREP ' nm_test_var$' "$nlist" >/dev/null; then - if $GREP ' nm_test_func$' "$nlist" >/dev/null; then - cat <<_LT_EOF > conftest.$ac_ext -+/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ -+#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) -+/* DATA imports from DLLs on WIN32 con't be const, because runtime -+ relocations are performed -- see ld's documentation on pseudo-relocs. */ -+# define LT_DLSYM_CONST -+#elif defined(__osf__) -+/* This system does not cope well with relocations in const data. */ -+# define LT_DLSYM_CONST -+#else -+# define LT_DLSYM_CONST const -+#endif -+ - #ifdef __cplusplus - extern "C" { - #endif -@@ -7314,7 +7645,7 @@ _LT_EOF - cat <<_LT_EOF >> conftest.$ac_ext - - /* The mapping between symbol names and symbols. */ --const struct { -+LT_DLSYM_CONST struct { - const char *name; - void *address; - } -@@ -7340,8 +7671,8 @@ static const void *lt_preloaded_setup() { - _LT_EOF - # Now try linking the two files. - mv conftest.$ac_objext conftstm.$ac_objext -- lt_save_LIBS="$LIBS" -- lt_save_CFLAGS="$CFLAGS" -+ lt_globsym_save_LIBS=$LIBS -+ lt_globsym_save_CFLAGS=$CFLAGS - LIBS="conftstm.$ac_objext" - CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 -@@ -7351,8 +7682,8 @@ _LT_EOF - test $ac_status = 0; } && test -s conftest${ac_exeext}; then - pipe_works=yes - fi -- LIBS="$lt_save_LIBS" -- CFLAGS="$lt_save_CFLAGS" -+ LIBS=$lt_globsym_save_LIBS -+ CFLAGS=$lt_globsym_save_CFLAGS - else - echo "cannot find nm_test_func in $nlist" >&5 - fi -@@ -7389,6 +7720,19 @@ else - $as_echo "ok" >&6; } - fi - -+# Response file support. -+if test "$lt_cv_nm_interface" = "MS dumpbin"; then -+ nm_file_list_spec='@' -+elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then -+ nm_file_list_spec='@' -+fi -+ -+ -+ -+ -+ -+ -+ - - - -@@ -7409,6 +7753,42 @@ fi - - - -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 -+$as_echo_n "checking for sysroot... " >&6; } -+ -+# Check whether --with-libtool-sysroot was given. -+if test "${with_libtool_sysroot+set}" = set; then : -+ withval=$with_libtool_sysroot; -+else -+ with_libtool_sysroot=no -+fi -+ -+ -+lt_sysroot= -+case ${with_libtool_sysroot} in #( -+ yes) -+ if test "$GCC" = yes; then -+ lt_sysroot=`$CC --print-sysroot 2>/dev/null` -+ fi -+ ;; #( -+ /*) -+ lt_sysroot=`echo "$with_libtool_sysroot" | sed -e "$sed_quote_subst"` -+ ;; #( -+ no|'') -+ ;; #( -+ *) -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_libtool_sysroot}" >&5 -+$as_echo "${with_libtool_sysroot}" >&6; } -+ as_fn_error "The sysroot must be an absolute path." "$LINENO" 5 -+ ;; -+esac -+ -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5 -+$as_echo "${lt_sysroot:-no}" >&6; } -+ -+ -+ -+ - - # Check whether --enable-libtool-lock was given. - if test "${enable_libtool_lock+set}" = set; then : -@@ -7616,6 +7996,123 @@ esac - - need_locks="$enable_libtool_lock" - -+if test -n "$ac_tool_prefix"; then -+ # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args. -+set dummy ${ac_tool_prefix}mt; ac_word=$2 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+$as_echo_n "checking for $ac_word... " >&6; } -+if test "${ac_cv_prog_MANIFEST_TOOL+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ if test -n "$MANIFEST_TOOL"; then -+ ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test. -+else -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then -+ ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt" -+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+ done -+IFS=$as_save_IFS -+ -+fi -+fi -+MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL -+if test -n "$MANIFEST_TOOL"; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5 -+$as_echo "$MANIFEST_TOOL" >&6; } -+else -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+$as_echo "no" >&6; } -+fi -+ -+ -+fi -+if test -z "$ac_cv_prog_MANIFEST_TOOL"; then -+ ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL -+ # Extract the first word of "mt", so it can be a program name with args. -+set dummy mt; ac_word=$2 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+$as_echo_n "checking for $ac_word... " >&6; } -+if test "${ac_cv_prog_ac_ct_MANIFEST_TOOL+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ if test -n "$ac_ct_MANIFEST_TOOL"; then -+ ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test. -+else -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then -+ ac_cv_prog_ac_ct_MANIFEST_TOOL="mt" -+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+ done -+IFS=$as_save_IFS -+ -+fi -+fi -+ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL -+if test -n "$ac_ct_MANIFEST_TOOL"; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5 -+$as_echo "$ac_ct_MANIFEST_TOOL" >&6; } -+else -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+$as_echo "no" >&6; } -+fi -+ -+ if test "x$ac_ct_MANIFEST_TOOL" = x; then -+ MANIFEST_TOOL=":" -+ else -+ case $cross_compiling:$ac_tool_warned in -+yes:) -+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -+ac_tool_warned=yes ;; -+esac -+ MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL -+ fi -+else -+ MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL" -+fi -+ -+test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5 -+$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; } -+if test "${lt_cv_path_mainfest_tool+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ lt_cv_path_mainfest_tool=no -+ echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5 -+ $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out -+ cat conftest.err >&5 -+ if $GREP 'Manifest Tool' conftest.out > /dev/null; then -+ lt_cv_path_mainfest_tool=yes -+ fi -+ rm -f conftest* -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5 -+$as_echo "$lt_cv_path_mainfest_tool" >&6; } -+if test "x$lt_cv_path_mainfest_tool" != xyes; then -+ MANIFEST_TOOL=: -+fi -+ -+ -+ -+ -+ - - case $host_os in - rhapsody* | darwin*) -@@ -8179,6 +8676,8 @@ _LT_EOF - $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 - echo "$AR cru libconftest.a conftest.o" >&5 - $AR cru libconftest.a conftest.o 2>&5 -+ echo "$RANLIB libconftest.a" >&5 -+ $RANLIB libconftest.a 2>&5 - cat > conftest.c << _LT_EOF - int main() { return 0;} - _LT_EOF -@@ -8247,6 +8746,16 @@ done - - - -+func_stripname_cnf () -+{ -+ case ${2} in -+ .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; -+ *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; -+ esac -+} # func_stripname_cnf -+ -+ -+ - - - # Set options -@@ -8375,7 +8884,8 @@ fi - LIBTOOL_DEPS="$ltmain" - - # Always use our own libtool. --LIBTOOL='$(SHELL) $(top_builddir)/libtool' -+LIBTOOL='$(SHELL) $(top_builddir)' -+LIBTOOL="$LIBTOOL/${host_alias}-libtool" - - - -@@ -8464,7 +8974,7 @@ aix3*) - esac - - # Global variables: --ofile=libtool -+ofile=${host_alias}-libtool - can_build_shared=yes - - # All known linkers require a `.a' archive for static linking (except MSVC, -@@ -8762,8 +9272,6 @@ fi - lt_prog_compiler_pic= - lt_prog_compiler_static= - --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 --$as_echo_n "checking for $compiler option to produce PIC... " >&6; } - - if test "$GCC" = yes; then - lt_prog_compiler_wl='-Wl,' -@@ -8929,6 +9437,12 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; } - lt_prog_compiler_pic='--shared' - lt_prog_compiler_static='--static' - ;; -+ nagfor*) -+ # NAG Fortran compiler -+ lt_prog_compiler_wl='-Wl,-Wl,,' -+ lt_prog_compiler_pic='-PIC' -+ lt_prog_compiler_static='-Bstatic' -+ ;; - pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) - # Portland Group compilers (*not* the Pentium gcc compiler, - # which looks to be a dead project) -@@ -8991,7 +9505,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; } - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-Bstatic' - case $cc_basename in -- f77* | f90* | f95*) -+ f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) - lt_prog_compiler_wl='-Qoption ld ';; - *) - lt_prog_compiler_wl='-Wl,';; -@@ -9048,13 +9562,17 @@ case $host_os in - lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" - ;; - esac --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic" >&5 --$as_echo "$lt_prog_compiler_pic" >&6; } -- -- -- -- - -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 -+$as_echo_n "checking for $compiler option to produce PIC... " >&6; } -+if test "${lt_cv_prog_compiler_pic+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ lt_cv_prog_compiler_pic=$lt_prog_compiler_pic -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 -+$as_echo "$lt_cv_prog_compiler_pic" >&6; } -+lt_prog_compiler_pic=$lt_cv_prog_compiler_pic - - # - # Check to make sure the PIC flag actually works. -@@ -9115,6 +9633,11 @@ fi - - - -+ -+ -+ -+ -+ - # - # Check to make sure the static flag actually works. - # -@@ -9465,7 +9988,8 @@ _LT_EOF - allow_undefined_flag=unsupported - always_export_symbols=no - enable_shared_with_static_runtimes=yes -- export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' -+ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' -+ exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' - - if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' -@@ -9564,12 +10088,12 @@ _LT_EOF - whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' - hardcode_libdir_flag_spec= - hardcode_libdir_flag_spec_ld='-rpath $libdir' -- archive_cmds='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib' -+ archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' - if test "x$supports_anon_versioning" = xyes; then - archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ - cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ - echo "local: *; };" >> $output_objdir/$libname.ver~ -- $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' -+ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' - fi - ;; - esac -@@ -9583,8 +10107,8 @@ _LT_EOF - archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' - wlarc= - else -- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' -+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - fi - ;; - -@@ -9602,8 +10126,8 @@ _LT_EOF - - _LT_EOF - elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then -- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' -+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - ld_shlibs=no - fi -@@ -9649,8 +10173,8 @@ _LT_EOF - - *) - if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then -- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' -+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - ld_shlibs=no - fi -@@ -9780,7 +10304,13 @@ _LT_EOF - allow_undefined_flag='-berok' - # Determine the default libpath from the value encoded in an - # empty executable. -- cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+ if test "${lt_cv_aix_libpath+set}" = set; then -+ aix_libpath=$lt_cv_aix_libpath -+else -+ if test "${lt_cv_aix_libpath_+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - - int -@@ -9793,22 +10323,29 @@ main () - _ACEOF - if ac_fn_c_try_link "$LINENO"; then : - --lt_aix_libpath_sed=' -- /Import File Strings/,/^$/ { -- /^0/ { -- s/^0 *\(.*\)$/\1/ -- p -- } -- }' --aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` --# Check for a 64-bit object if we didn't find anything. --if test -z "$aix_libpath"; then -- aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` --fi -+ lt_aix_libpath_sed=' -+ /Import File Strings/,/^$/ { -+ /^0/ { -+ s/^0 *\([^ ]*\) *$/\1/ -+ p -+ } -+ }' -+ lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -+ # Check for a 64-bit object if we didn't find anything. -+ if test -z "$lt_cv_aix_libpath_"; then -+ lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -+ fi - fi - rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext --if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi -+ if test -z "$lt_cv_aix_libpath_"; then -+ lt_cv_aix_libpath_="/usr/lib:/lib" -+ fi -+ -+fi -+ -+ aix_libpath=$lt_cv_aix_libpath_ -+fi - - hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" - archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" -@@ -9820,7 +10357,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi - else - # Determine the default libpath from the value encoded in an - # empty executable. -- cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+ if test "${lt_cv_aix_libpath+set}" = set; then -+ aix_libpath=$lt_cv_aix_libpath -+else -+ if test "${lt_cv_aix_libpath_+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - - int -@@ -9833,22 +10376,29 @@ main () - _ACEOF - if ac_fn_c_try_link "$LINENO"; then : - --lt_aix_libpath_sed=' -- /Import File Strings/,/^$/ { -- /^0/ { -- s/^0 *\(.*\)$/\1/ -- p -- } -- }' --aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` --# Check for a 64-bit object if we didn't find anything. --if test -z "$aix_libpath"; then -- aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` --fi -+ lt_aix_libpath_sed=' -+ /Import File Strings/,/^$/ { -+ /^0/ { -+ s/^0 *\([^ ]*\) *$/\1/ -+ p -+ } -+ }' -+ lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -+ # Check for a 64-bit object if we didn't find anything. -+ if test -z "$lt_cv_aix_libpath_"; then -+ lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -+ fi - fi - rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext --if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi -+ if test -z "$lt_cv_aix_libpath_"; then -+ lt_cv_aix_libpath_="/usr/lib:/lib" -+ fi -+ -+fi -+ -+ aix_libpath=$lt_cv_aix_libpath_ -+fi - - hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" - # Warning - without using the other run time loading flags, -@@ -9892,21 +10442,64 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi - # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. - # hardcode_libdir_flag_spec is actually meaningless, as there is -- # no search path for DLLs. -- hardcode_libdir_flag_spec=' ' -- allow_undefined_flag=unsupported -- # Tell ltmain to make .lib files, not .a files. -- libext=lib -- # Tell ltmain to make .dll files, not .so files. -- shrext_cmds=".dll" -- # FIXME: Setting linknames here is a bad hack. -- archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' -- # The linker will automatically build a .lib file if we build a DLL. -- old_archive_from_new_cmds='true' -- # FIXME: Should let the user specify the lib program. -- old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' -- fix_srcfile_path='`cygpath -w "$srcfile"`' -- enable_shared_with_static_runtimes=yes -+ # no search path for DLLs. -+ case $cc_basename in -+ cl*) -+ # Native MSVC -+ hardcode_libdir_flag_spec=' ' -+ allow_undefined_flag=unsupported -+ always_export_symbols=yes -+ file_list_spec='@' -+ # Tell ltmain to make .lib files, not .a files. -+ libext=lib -+ # Tell ltmain to make .dll files, not .so files. -+ shrext_cmds=".dll" -+ # FIXME: Setting linknames here is a bad hack. -+ archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' -+ archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then -+ sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; -+ else -+ sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; -+ fi~ -+ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ -+ linknames=' -+ # The linker will not automatically build a static lib if we build a DLL. -+ # _LT_TAGVAR(old_archive_from_new_cmds, )='true' -+ enable_shared_with_static_runtimes=yes -+ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' -+ # Don't use ranlib -+ old_postinstall_cmds='chmod 644 $oldlib' -+ postlink_cmds='lt_outputfile="@OUTPUT@"~ -+ lt_tool_outputfile="@TOOL_OUTPUT@"~ -+ case $lt_outputfile in -+ *.exe|*.EXE) ;; -+ *) -+ lt_outputfile="$lt_outputfile.exe" -+ lt_tool_outputfile="$lt_tool_outputfile.exe" -+ ;; -+ esac~ -+ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then -+ $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; -+ $RM "$lt_outputfile.manifest"; -+ fi' -+ ;; -+ *) -+ # Assume MSVC wrapper -+ hardcode_libdir_flag_spec=' ' -+ allow_undefined_flag=unsupported -+ # Tell ltmain to make .lib files, not .a files. -+ libext=lib -+ # Tell ltmain to make .dll files, not .so files. -+ shrext_cmds=".dll" -+ # FIXME: Setting linknames here is a bad hack. -+ archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' -+ # The linker will automatically build a .lib file if we build a DLL. -+ old_archive_from_new_cmds='true' -+ # FIXME: Should let the user specify the lib program. -+ old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' -+ enable_shared_with_static_runtimes=yes -+ ;; -+ esac - ;; - - darwin* | rhapsody*) -@@ -9967,7 +10560,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi - - # FreeBSD 3 and greater uses gcc -shared to do shared libraries. - freebsd* | dragonfly*) -- archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' -+ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - hardcode_libdir_flag_spec='-R$libdir' - hardcode_direct=yes - hardcode_shlibpath_var=no -@@ -9975,7 +10568,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi - - hpux9*) - if test "$GCC" = yes; then -- archive_cmds='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' -+ archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - else - archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - fi -@@ -9991,7 +10584,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi - - hpux10*) - if test "$GCC" = yes && test "$with_gnu_ld" = no; then -- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' -+ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' - fi -@@ -10015,10 +10608,10 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi - archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - ia64*) -- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' -+ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) -- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' -+ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - ;; - esac - else -@@ -10097,23 +10690,36 @@ fi - - irix5* | irix6* | nonstopux*) - if test "$GCC" = yes; then -- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' -+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - # Try to use the -exported_symbol ld option, if it does not - # work, assume that -exports_file does not work either and - # implicitly export all symbols. -- save_LDFLAGS="$LDFLAGS" -- LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" -- cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+ # This should be the same for all languages, so no per-tag cache variable. -+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5 -+$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; } -+if test "${lt_cv_irix_exported_symbol+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ save_LDFLAGS="$LDFLAGS" -+ LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ --int foo(void) {} -+int foo (void) { return 0; } - _ACEOF - if ac_fn_c_try_link "$LINENO"; then : -- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' -- -+ lt_cv_irix_exported_symbol=yes -+else -+ lt_cv_irix_exported_symbol=no - fi - rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -- LDFLAGS="$save_LDFLAGS" -+ LDFLAGS="$save_LDFLAGS" -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5 -+$as_echo "$lt_cv_irix_exported_symbol" >&6; } -+ if test "$lt_cv_irix_exported_symbol" = yes; then -+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' -+ fi - else - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' - archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' -@@ -10198,7 +10804,7 @@ rm -f core conftest.err conftest.$ac_objext \ - osf4* | osf5*) # as osf3* with the addition of -msym flag - if test "$GCC" = yes; then - allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' -- archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' -+ archive_cmds='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - else - allow_undefined_flag=' -expect_unresolved \*' -@@ -10217,9 +10823,9 @@ rm -f core conftest.err conftest.$ac_objext \ - no_undefined_flag=' -z defs' - if test "$GCC" = yes; then - wlarc='${wl}' -- archive_cmds='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' -+ archive_cmds='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ -- $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' -+ $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' - else - case `$CC -V 2>&1` in - *"Compilers 5.0"*) -@@ -10795,8 +11401,9 @@ cygwin* | mingw* | pw32* | cegcc*) - need_version=no - need_lib_prefix=no - -- case $GCC,$host_os in -- yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) -+ case $GCC,$cc_basename in -+ yes,*) -+ # gcc - library_names_spec='$libname.dll.a' - # DLL is installed to $(libdir)/../bin by postinstall_cmds - postinstall_cmds='base_file=`basename \${file}`~ -@@ -10829,13 +11436,71 @@ cygwin* | mingw* | pw32* | cegcc*) - library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - ;; - esac -+ dynamic_linker='Win32 ld.exe' -+ ;; -+ -+ *,cl*) -+ # Native MSVC -+ libname_spec='$name' -+ soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' -+ library_names_spec='${libname}.dll.lib' -+ -+ case $build_os in -+ mingw*) -+ sys_lib_search_path_spec= -+ lt_save_ifs=$IFS -+ IFS=';' -+ for lt_path in $LIB -+ do -+ IFS=$lt_save_ifs -+ # Let DOS variable expansion print the short 8.3 style file name. -+ lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` -+ sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" -+ done -+ IFS=$lt_save_ifs -+ # Convert to MSYS style. -+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` -+ ;; -+ cygwin*) -+ # Convert to unix form, then to dos form, then back to unix form -+ # but this time dos style (no spaces!) so that the unix form looks -+ # like /cygdrive/c/PROGRA~1:/cygdr... -+ sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` -+ sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` -+ sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` -+ ;; -+ *) -+ sys_lib_search_path_spec="$LIB" -+ if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then -+ # It is most probably a Windows format PATH. -+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` -+ else -+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` -+ fi -+ # FIXME: find the short name or the path components, as spaces are -+ # common. (e.g. "Program Files" -> "PROGRA~1") -+ ;; -+ esac -+ -+ # DLL is installed to $(libdir)/../bin by postinstall_cmds -+ postinstall_cmds='base_file=`basename \${file}`~ -+ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ -+ dldir=$destdir/`dirname \$dlpath`~ -+ test -d \$dldir || mkdir -p \$dldir~ -+ $install_prog $dir/$dlname \$dldir/$dlname' -+ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ -+ dlpath=$dir/\$dldll~ -+ $RM \$dlpath' -+ shlibpath_overrides_runpath=yes -+ dynamic_linker='Win32 link.exe' - ;; - - *) -+ # Assume MSVC wrapper - library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' -+ dynamic_linker='Win32 ld.exe' - ;; - esac -- dynamic_linker='Win32 ld.exe' - # FIXME: first we should search . and the directory the executable is in - shlibpath_var=PATH - ;; -@@ -10927,7 +11592,7 @@ haiku*) - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LIBRARY_PATH - shlibpath_overrides_runpath=yes -- sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/beos/system/lib' -+ sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' - hardcode_into_libs=yes - ;; - -@@ -11767,10 +12432,10 @@ else - /* When -fvisbility=hidden is used, assume the code has been annotated - correspondingly for the symbols needed. */ - #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) --void fnord () __attribute__((visibility("default"))); -+int fnord () __attribute__((visibility("default"))); - #endif - --void fnord () { int i=42; } -+int fnord () { return 42; } - int main () - { - void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); -@@ -11873,10 +12538,10 @@ else - /* When -fvisbility=hidden is used, assume the code has been annotated - correspondingly for the symbols needed. */ - #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) --void fnord () __attribute__((visibility("default"))); -+int fnord () __attribute__((visibility("default"))); - #endif - --void fnord () { int i=42; } -+int fnord () { return 42; } - int main () - { - void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); -@@ -12268,6 +12933,7 @@ $RM -r conftest* - - # Allow CC to be a program name with arguments. - lt_save_CC=$CC -+ lt_save_CFLAGS=$CFLAGS - lt_save_LD=$LD - lt_save_GCC=$GCC - GCC=$GXX -@@ -12285,6 +12951,7 @@ $RM -r conftest* - fi - test -z "${LDCXX+set}" || LD=$LDCXX - CC=${CXX-"c++"} -+ CFLAGS=$CXXFLAGS - compiler=$CC - compiler_CXX=$CC - for cc_temp in $compiler""; do -@@ -12567,7 +13234,13 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie - allow_undefined_flag_CXX='-berok' - # Determine the default libpath from the value encoded in an empty - # executable. -- cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+ if test "${lt_cv_aix_libpath+set}" = set; then -+ aix_libpath=$lt_cv_aix_libpath -+else -+ if test "${lt_cv_aix_libpath__CXX+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - - int -@@ -12580,22 +13253,29 @@ main () - _ACEOF - if ac_fn_cxx_try_link "$LINENO"; then : - --lt_aix_libpath_sed=' -- /Import File Strings/,/^$/ { -- /^0/ { -- s/^0 *\(.*\)$/\1/ -- p -- } -- }' --aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` --# Check for a 64-bit object if we didn't find anything. --if test -z "$aix_libpath"; then -- aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` --fi -+ lt_aix_libpath_sed=' -+ /Import File Strings/,/^$/ { -+ /^0/ { -+ s/^0 *\([^ ]*\) *$/\1/ -+ p -+ } -+ }' -+ lt_cv_aix_libpath__CXX=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -+ # Check for a 64-bit object if we didn't find anything. -+ if test -z "$lt_cv_aix_libpath__CXX"; then -+ lt_cv_aix_libpath__CXX=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -+ fi - fi - rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext --if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi -+ if test -z "$lt_cv_aix_libpath__CXX"; then -+ lt_cv_aix_libpath__CXX="/usr/lib:/lib" -+ fi -+ -+fi -+ -+ aix_libpath=$lt_cv_aix_libpath__CXX -+fi - - hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" - -@@ -12608,7 +13288,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi - else - # Determine the default libpath from the value encoded in an - # empty executable. -- cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+ if test "${lt_cv_aix_libpath+set}" = set; then -+ aix_libpath=$lt_cv_aix_libpath -+else -+ if test "${lt_cv_aix_libpath__CXX+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - - int -@@ -12621,22 +13307,29 @@ main () - _ACEOF - if ac_fn_cxx_try_link "$LINENO"; then : - --lt_aix_libpath_sed=' -- /Import File Strings/,/^$/ { -- /^0/ { -- s/^0 *\(.*\)$/\1/ -- p -- } -- }' --aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` --# Check for a 64-bit object if we didn't find anything. --if test -z "$aix_libpath"; then -- aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` --fi -+ lt_aix_libpath_sed=' -+ /Import File Strings/,/^$/ { -+ /^0/ { -+ s/^0 *\([^ ]*\) *$/\1/ -+ p -+ } -+ }' -+ lt_cv_aix_libpath__CXX=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -+ # Check for a 64-bit object if we didn't find anything. -+ if test -z "$lt_cv_aix_libpath__CXX"; then -+ lt_cv_aix_libpath__CXX=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -+ fi - fi - rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext --if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi -+ if test -z "$lt_cv_aix_libpath__CXX"; then -+ lt_cv_aix_libpath__CXX="/usr/lib:/lib" -+ fi -+ -+fi -+ -+ aix_libpath=$lt_cv_aix_libpath__CXX -+fi - - hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" - # Warning - without using the other run time loading flags, -@@ -12679,29 +13372,75 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi - ;; - - cygwin* | mingw* | pw32* | cegcc*) -- # _LT_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless, -- # as there is no search path for DLLs. -- hardcode_libdir_flag_spec_CXX='-L$libdir' -- export_dynamic_flag_spec_CXX='${wl}--export-all-symbols' -- allow_undefined_flag_CXX=unsupported -- always_export_symbols_CXX=no -- enable_shared_with_static_runtimes_CXX=yes -- -- if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then -- archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' -- # If the export-symbols file already is a .def file (1st line -- # is EXPORTS), use it as is; otherwise, prepend... -- archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then -- cp $export_symbols $output_objdir/$soname.def; -- else -- echo EXPORTS > $output_objdir/$soname.def; -- cat $export_symbols >> $output_objdir/$soname.def; -- fi~ -- $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' -- else -- ld_shlibs_CXX=no -- fi -- ;; -+ case $GXX,$cc_basename in -+ ,cl* | no,cl*) -+ # Native MSVC -+ # hardcode_libdir_flag_spec is actually meaningless, as there is -+ # no search path for DLLs. -+ hardcode_libdir_flag_spec_CXX=' ' -+ allow_undefined_flag_CXX=unsupported -+ always_export_symbols_CXX=yes -+ file_list_spec_CXX='@' -+ # Tell ltmain to make .lib files, not .a files. -+ libext=lib -+ # Tell ltmain to make .dll files, not .so files. -+ shrext_cmds=".dll" -+ # FIXME: Setting linknames here is a bad hack. -+ archive_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' -+ archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then -+ $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; -+ else -+ $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; -+ fi~ -+ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ -+ linknames=' -+ # The linker will not automatically build a static lib if we build a DLL. -+ # _LT_TAGVAR(old_archive_from_new_cmds, CXX)='true' -+ enable_shared_with_static_runtimes_CXX=yes -+ # Don't use ranlib -+ old_postinstall_cmds_CXX='chmod 644 $oldlib' -+ postlink_cmds_CXX='lt_outputfile="@OUTPUT@"~ -+ lt_tool_outputfile="@TOOL_OUTPUT@"~ -+ case $lt_outputfile in -+ *.exe|*.EXE) ;; -+ *) -+ lt_outputfile="$lt_outputfile.exe" -+ lt_tool_outputfile="$lt_tool_outputfile.exe" -+ ;; -+ esac~ -+ func_to_tool_file "$lt_outputfile"~ -+ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then -+ $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; -+ $RM "$lt_outputfile.manifest"; -+ fi' -+ ;; -+ *) -+ # g++ -+ # _LT_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless, -+ # as there is no search path for DLLs. -+ hardcode_libdir_flag_spec_CXX='-L$libdir' -+ export_dynamic_flag_spec_CXX='${wl}--export-all-symbols' -+ allow_undefined_flag_CXX=unsupported -+ always_export_symbols_CXX=no -+ enable_shared_with_static_runtimes_CXX=yes -+ -+ if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then -+ archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' -+ # If the export-symbols file already is a .def file (1st line -+ # is EXPORTS), use it as is; otherwise, prepend... -+ archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then -+ cp $export_symbols $output_objdir/$soname.def; -+ else -+ echo EXPORTS > $output_objdir/$soname.def; -+ cat $export_symbols >> $output_objdir/$soname.def; -+ fi~ -+ $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' -+ else -+ ld_shlibs_CXX=no -+ fi -+ ;; -+ esac -+ ;; - darwin* | rhapsody*) - - -@@ -12807,7 +13546,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi - ;; - *) - if test "$GXX" = yes; then -- archive_cmds_CXX='$RM $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' -+ archive_cmds_CXX='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - else - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no -@@ -12878,10 +13617,10 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi - archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - ia64*) -- archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' -+ archive_cmds_CXX='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - *) -- archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' -+ archive_cmds_CXX='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - esac - fi -@@ -12922,9 +13661,9 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi - *) - if test "$GXX" = yes; then - if test "$with_gnu_ld" = no; then -- archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' -+ archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - else -- archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib' -+ archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib' - fi - fi - link_all_deplibs_CXX=yes -@@ -12994,20 +13733,20 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi - prelink_cmds_CXX='tpldir=Template.dir~ - rm -rf $tpldir~ - $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ -- compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"' -+ compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' - old_archive_cmds_CXX='tpldir=Template.dir~ - rm -rf $tpldir~ - $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ -- $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~ -+ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ - $RANLIB $oldlib' - archive_cmds_CXX='tpldir=Template.dir~ - rm -rf $tpldir~ - $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ -- $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' -+ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' - archive_expsym_cmds_CXX='tpldir=Template.dir~ - rm -rf $tpldir~ - $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ -- $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' -+ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' - ;; - *) # Version 6 and above use weak symbols - archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' -@@ -13202,7 +13941,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi - archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - ;; - *) -- archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' -+ archive_cmds_CXX='$CC -shared $pic_flag -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - ;; - esac - -@@ -13248,7 +13987,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi - - solaris*) - case $cc_basename in -- CC*) -+ CC* | sunCC*) - # Sun C++ 4.2, 5.x and Centerline C++ - archive_cmds_need_lc_CXX=yes - no_undefined_flag_CXX=' -zdefs' -@@ -13289,9 +14028,9 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi - if test "$GXX" = yes && test "$with_gnu_ld" = no; then - no_undefined_flag_CXX=' ${wl}-z ${wl}defs' - if $CC --version | $GREP -v '^2\.7' > /dev/null; then -- archive_cmds_CXX='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' -+ archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' - archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ -- $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' -+ $CC -shared $pic_flag -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when -@@ -13426,6 +14165,13 @@ private: - }; - _LT_EOF - -+ -+_lt_libdeps_save_CFLAGS=$CFLAGS -+case "$CC $CFLAGS " in #( -+*\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;; -+*\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;; -+esac -+ - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 - (eval $ac_compile) 2>&5 - ac_status=$? -@@ -13439,7 +14185,7 @@ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 - pre_test_object_deps_done=no - - for p in `eval "$output_verbose_link_cmd"`; do -- case $p in -+ case ${prev}${p} in - - -L* | -R* | -l*) - # Some compilers place space between "-{L,R}" and the path. -@@ -13448,13 +14194,22 @@ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 - test $p = "-R"; then - prev=$p - continue -- else -- prev= - fi - -+ # Expand the sysroot to ease extracting the directories later. -+ if test -z "$prev"; then -+ case $p in -+ -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;; -+ -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;; -+ -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;; -+ esac -+ fi -+ case $p in -+ =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;; -+ esac - if test "$pre_test_object_deps_done" = no; then -- case $p in -- -L* | -R*) -+ case ${prev} in -+ -L | -R) - # Internal compiler library paths should come after those - # provided the user. The postdeps already come after the - # user supplied libs so there is no need to process them. -@@ -13474,8 +14229,10 @@ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 - postdeps_CXX="${postdeps_CXX} ${prev}${p}" - fi - fi -+ prev= - ;; - -+ *.lto.$objext) ;; # Ignore GCC LTO objects - *.$objext) - # This assumes that the test object file only shows up - # once in the compiler output. -@@ -13511,6 +14268,7 @@ else - fi - - $RM -f confest.$objext -+CFLAGS=$_lt_libdeps_save_CFLAGS - - # PORTME: override above test on systems where it is broken - case $host_os in -@@ -13546,7 +14304,7 @@ linux*) - - solaris*) - case $cc_basename in -- CC*) -+ CC* | sunCC*) - # The more standards-conforming stlport4 library is - # incompatible with the Cstd library. Avoid specifying - # it if it's in CXXFLAGS. Ignore libCrun as -@@ -13611,8 +14369,6 @@ fi - lt_prog_compiler_pic_CXX= - lt_prog_compiler_static_CXX= - --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 --$as_echo_n "checking for $compiler option to produce PIC... " >&6; } - - # C++ specific cases for pic, static, wl, etc. - if test "$GXX" = yes; then -@@ -13717,6 +14473,11 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; } - ;; - esac - ;; -+ mingw* | cygwin* | os2* | pw32* | cegcc*) -+ # This hack is so that the source file can tell whether it is being -+ # built for inclusion in a dll (and should export symbols for example). -+ lt_prog_compiler_pic_CXX='-DDLL_EXPORT' -+ ;; - dgux*) - case $cc_basename in - ec++*) -@@ -13869,7 +14630,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; } - ;; - solaris*) - case $cc_basename in -- CC*) -+ CC* | sunCC*) - # Sun C++ 4.2, 5.x and Centerline C++ - lt_prog_compiler_pic_CXX='-KPIC' - lt_prog_compiler_static_CXX='-Bstatic' -@@ -13934,10 +14695,17 @@ case $host_os in - lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX -DPIC" - ;; - esac --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic_CXX" >&5 --$as_echo "$lt_prog_compiler_pic_CXX" >&6; } -- - -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 -+$as_echo_n "checking for $compiler option to produce PIC... " >&6; } -+if test "${lt_cv_prog_compiler_pic_CXX+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ lt_cv_prog_compiler_pic_CXX=$lt_prog_compiler_pic_CXX -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_CXX" >&5 -+$as_echo "$lt_cv_prog_compiler_pic_CXX" >&6; } -+lt_prog_compiler_pic_CXX=$lt_cv_prog_compiler_pic_CXX - - # - # Check to make sure the PIC flag actually works. -@@ -13995,6 +14763,8 @@ fi - - - -+ -+ - # - # Check to make sure the static flag actually works. - # -@@ -14172,6 +14942,7 @@ fi - $as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } - - export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' -+ exclude_expsyms_CXX='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' - case $host_os in - aix[4-9]*) - # If we're using GNU nm, then we don't want the "-C" option. -@@ -14186,15 +14957,20 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie - ;; - pw32*) - export_symbols_cmds_CXX="$ltdll_cmds" -- ;; -+ ;; - cygwin* | mingw* | cegcc*) -- export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;/^.*[ ]__nm__/s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' -- ;; -+ case $cc_basename in -+ cl*) ;; -+ *) -+ export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' -+ exclude_expsyms_CXX='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' -+ ;; -+ esac -+ ;; - *) - export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' -- ;; -+ ;; - esac -- exclude_expsyms_CXX='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5 - $as_echo "$ld_shlibs_CXX" >&6; } -@@ -14457,8 +15233,9 @@ cygwin* | mingw* | pw32* | cegcc*) - need_version=no - need_lib_prefix=no - -- case $GCC,$host_os in -- yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) -+ case $GCC,$cc_basename in -+ yes,*) -+ # gcc - library_names_spec='$libname.dll.a' - # DLL is installed to $(libdir)/../bin by postinstall_cmds - postinstall_cmds='base_file=`basename \${file}`~ -@@ -14490,13 +15267,71 @@ cygwin* | mingw* | pw32* | cegcc*) - library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - ;; - esac -+ dynamic_linker='Win32 ld.exe' -+ ;; -+ -+ *,cl*) -+ # Native MSVC -+ libname_spec='$name' -+ soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' -+ library_names_spec='${libname}.dll.lib' -+ -+ case $build_os in -+ mingw*) -+ sys_lib_search_path_spec= -+ lt_save_ifs=$IFS -+ IFS=';' -+ for lt_path in $LIB -+ do -+ IFS=$lt_save_ifs -+ # Let DOS variable expansion print the short 8.3 style file name. -+ lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` -+ sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" -+ done -+ IFS=$lt_save_ifs -+ # Convert to MSYS style. -+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` -+ ;; -+ cygwin*) -+ # Convert to unix form, then to dos form, then back to unix form -+ # but this time dos style (no spaces!) so that the unix form looks -+ # like /cygdrive/c/PROGRA~1:/cygdr... -+ sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` -+ sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` -+ sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` -+ ;; -+ *) -+ sys_lib_search_path_spec="$LIB" -+ if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then -+ # It is most probably a Windows format PATH. -+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` -+ else -+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` -+ fi -+ # FIXME: find the short name or the path components, as spaces are -+ # common. (e.g. "Program Files" -> "PROGRA~1") -+ ;; -+ esac -+ -+ # DLL is installed to $(libdir)/../bin by postinstall_cmds -+ postinstall_cmds='base_file=`basename \${file}`~ -+ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ -+ dldir=$destdir/`dirname \$dlpath`~ -+ test -d \$dldir || mkdir -p \$dldir~ -+ $install_prog $dir/$dlname \$dldir/$dlname' -+ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ -+ dlpath=$dir/\$dldll~ -+ $RM \$dlpath' -+ shlibpath_overrides_runpath=yes -+ dynamic_linker='Win32 link.exe' - ;; - - *) -+ # Assume MSVC wrapper - library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' -+ dynamic_linker='Win32 ld.exe' - ;; - esac -- dynamic_linker='Win32 ld.exe' - # FIXME: first we should search . and the directory the executable is in - shlibpath_var=PATH - ;; -@@ -14587,7 +15422,7 @@ haiku*) - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LIBRARY_PATH - shlibpath_overrides_runpath=yes -- sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/beos/system/lib' -+ sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' - hardcode_into_libs=yes - ;; - -@@ -15046,6 +15881,7 @@ fi - fi # test -n "$compiler" - - CC=$lt_save_CC -+ CFLAGS=$lt_save_CFLAGS - LDCXX=$LD - LD=$lt_save_LD - GCC=$lt_save_GCC -@@ -17982,13 +18818,20 @@ exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`' - lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`' - lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`' - lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`' -+lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`' -+lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`' - reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' - reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' - OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' - deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' - file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' -+file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`' -+want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`' -+DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' -+sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' - AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' - AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' -+archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`' - STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' - RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`' - old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`' -@@ -18003,14 +18846,17 @@ lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$de - lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`' - lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`' - lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`' -+nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`' -+lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`' - objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`' - MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`' - lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`' --lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' - lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`' -+lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' - lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`' - lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`' - need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`' -+MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`' - DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`' - NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`' - LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`' -@@ -18043,12 +18889,12 @@ hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_q - hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`' - inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`' - link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`' --fix_srcfile_path='`$ECHO "$fix_srcfile_path" | $SED "$delay_single_quote_subst"`' - always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`' - export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`' - exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`' - include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`' - prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`' -+postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`' - file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`' - variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`' - need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`' -@@ -18087,8 +18933,8 @@ old_archive_cmds_CXX='`$ECHO "$old_archive_cmds_CXX" | $SED "$delay_single_quote - compiler_CXX='`$ECHO "$compiler_CXX" | $SED "$delay_single_quote_subst"`' - GCC_CXX='`$ECHO "$GCC_CXX" | $SED "$delay_single_quote_subst"`' - lt_prog_compiler_no_builtin_flag_CXX='`$ECHO "$lt_prog_compiler_no_builtin_flag_CXX" | $SED "$delay_single_quote_subst"`' --lt_prog_compiler_wl_CXX='`$ECHO "$lt_prog_compiler_wl_CXX" | $SED "$delay_single_quote_subst"`' - lt_prog_compiler_pic_CXX='`$ECHO "$lt_prog_compiler_pic_CXX" | $SED "$delay_single_quote_subst"`' -+lt_prog_compiler_wl_CXX='`$ECHO "$lt_prog_compiler_wl_CXX" | $SED "$delay_single_quote_subst"`' - lt_prog_compiler_static_CXX='`$ECHO "$lt_prog_compiler_static_CXX" | $SED "$delay_single_quote_subst"`' - lt_cv_prog_compiler_c_o_CXX='`$ECHO "$lt_cv_prog_compiler_c_o_CXX" | $SED "$delay_single_quote_subst"`' - archive_cmds_need_lc_CXX='`$ECHO "$archive_cmds_need_lc_CXX" | $SED "$delay_single_quote_subst"`' -@@ -18115,12 +18961,12 @@ hardcode_shlibpath_var_CXX='`$ECHO "$hardcode_shlibpath_var_CXX" | $SED "$delay_ - hardcode_automatic_CXX='`$ECHO "$hardcode_automatic_CXX" | $SED "$delay_single_quote_subst"`' - inherit_rpath_CXX='`$ECHO "$inherit_rpath_CXX" | $SED "$delay_single_quote_subst"`' - link_all_deplibs_CXX='`$ECHO "$link_all_deplibs_CXX" | $SED "$delay_single_quote_subst"`' --fix_srcfile_path_CXX='`$ECHO "$fix_srcfile_path_CXX" | $SED "$delay_single_quote_subst"`' - always_export_symbols_CXX='`$ECHO "$always_export_symbols_CXX" | $SED "$delay_single_quote_subst"`' - export_symbols_cmds_CXX='`$ECHO "$export_symbols_cmds_CXX" | $SED "$delay_single_quote_subst"`' - exclude_expsyms_CXX='`$ECHO "$exclude_expsyms_CXX" | $SED "$delay_single_quote_subst"`' - include_expsyms_CXX='`$ECHO "$include_expsyms_CXX" | $SED "$delay_single_quote_subst"`' - prelink_cmds_CXX='`$ECHO "$prelink_cmds_CXX" | $SED "$delay_single_quote_subst"`' -+postlink_cmds_CXX='`$ECHO "$postlink_cmds_CXX" | $SED "$delay_single_quote_subst"`' - file_list_spec_CXX='`$ECHO "$file_list_spec_CXX" | $SED "$delay_single_quote_subst"`' - hardcode_action_CXX='`$ECHO "$hardcode_action_CXX" | $SED "$delay_single_quote_subst"`' - compiler_lib_search_dirs_CXX='`$ECHO "$compiler_lib_search_dirs_CXX" | $SED "$delay_single_quote_subst"`' -@@ -18158,8 +19004,13 @@ reload_flag \ - OBJDUMP \ - deplibs_check_method \ - file_magic_cmd \ -+file_magic_glob \ -+want_nocaseglob \ -+DLLTOOL \ -+sharedlib_from_linklib_cmd \ - AR \ - AR_FLAGS \ -+archiver_list_spec \ - STRIP \ - RANLIB \ - CC \ -@@ -18169,12 +19020,14 @@ lt_cv_sys_global_symbol_pipe \ - lt_cv_sys_global_symbol_to_cdecl \ - lt_cv_sys_global_symbol_to_c_name_address \ - lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ -+nm_file_list_spec \ - lt_prog_compiler_no_builtin_flag \ --lt_prog_compiler_wl \ - lt_prog_compiler_pic \ -+lt_prog_compiler_wl \ - lt_prog_compiler_static \ - lt_cv_prog_compiler_c_o \ - need_locks \ -+MANIFEST_TOOL \ - DSYMUTIL \ - NMEDIT \ - LIPO \ -@@ -18190,7 +19043,6 @@ no_undefined_flag \ - hardcode_libdir_flag_spec \ - hardcode_libdir_flag_spec_ld \ - hardcode_libdir_separator \ --fix_srcfile_path \ - exclude_expsyms \ - include_expsyms \ - file_list_spec \ -@@ -18212,8 +19064,8 @@ LD_CXX \ - reload_flag_CXX \ - compiler_CXX \ - lt_prog_compiler_no_builtin_flag_CXX \ --lt_prog_compiler_wl_CXX \ - lt_prog_compiler_pic_CXX \ -+lt_prog_compiler_wl_CXX \ - lt_prog_compiler_static_CXX \ - lt_cv_prog_compiler_c_o_CXX \ - export_dynamic_flag_spec_CXX \ -@@ -18225,7 +19077,6 @@ no_undefined_flag_CXX \ - hardcode_libdir_flag_spec_CXX \ - hardcode_libdir_flag_spec_ld_CXX \ - hardcode_libdir_separator_CXX \ --fix_srcfile_path_CXX \ - exclude_expsyms_CXX \ - include_expsyms_CXX \ - file_list_spec_CXX \ -@@ -18259,6 +19110,7 @@ module_cmds \ - module_expsym_cmds \ - export_symbols_cmds \ - prelink_cmds \ -+postlink_cmds \ - postinstall_cmds \ - postuninstall_cmds \ - finish_cmds \ -@@ -18273,7 +19125,8 @@ archive_expsym_cmds_CXX \ - module_cmds_CXX \ - module_expsym_cmds_CXX \ - export_symbols_cmds_CXX \ --prelink_cmds_CXX; do -+prelink_cmds_CXX \ -+postlink_cmds_CXX; do - case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in - *[\\\\\\\`\\"\\\$]*) - eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" -@@ -19066,7 +19919,8 @@ $as_echo X"$file" | - # NOTE: Changes made to this file will be lost: look at ltmain.sh. - # - # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, --# 2006, 2007, 2008, 2009 Free Software Foundation, Inc. -+# 2006, 2007, 2008, 2009, 2010 Free Software Foundation, -+# Inc. - # Written by Gordon Matzigkeit, 1996 - # - # This file is part of GNU Libtool. -@@ -19169,19 +20023,42 @@ SP2NL=$lt_lt_SP2NL - # turn newlines into spaces. - NL2SP=$lt_lt_NL2SP - -+# convert \$build file names to \$host format. -+to_host_file_cmd=$lt_cv_to_host_file_cmd -+ -+# convert \$build files to toolchain format. -+to_tool_file_cmd=$lt_cv_to_tool_file_cmd -+ - # An object symbol dumper. - OBJDUMP=$lt_OBJDUMP - - # Method to check whether dependent libraries are shared objects. - deplibs_check_method=$lt_deplibs_check_method - --# Command to use when deplibs_check_method == "file_magic". -+# Command to use when deplibs_check_method = "file_magic". - file_magic_cmd=$lt_file_magic_cmd - -+# How to find potential files when deplibs_check_method = "file_magic". -+file_magic_glob=$lt_file_magic_glob -+ -+# Find potential files using nocaseglob when deplibs_check_method = "file_magic". -+want_nocaseglob=$lt_want_nocaseglob -+ -+# DLL creation program. -+DLLTOOL=$lt_DLLTOOL -+ -+# Command to associate shared and link libraries. -+sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd -+ - # The archiver. - AR=$lt_AR -+ -+# Flags to create an archive. - AR_FLAGS=$lt_AR_FLAGS - -+# How to feed a file listing to the archiver. -+archiver_list_spec=$lt_archiver_list_spec -+ - # A symbol stripping program. - STRIP=$lt_STRIP - -@@ -19211,6 +20088,12 @@ global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address - # Transform the output of nm in a C name address pair when lib prefix is needed. - global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix - -+# Specify filename containing input files for \$NM. -+nm_file_list_spec=$lt_nm_file_list_spec -+ -+# The root where to search for dependent libraries,and in which our libraries should be installed. -+lt_sysroot=$lt_sysroot -+ - # The name of the directory that contains temporary libtool files. - objdir=$objdir - -@@ -19220,6 +20103,9 @@ MAGIC_CMD=$MAGIC_CMD - # Must we lock files when doing compilation? - need_locks=$lt_need_locks - -+# Manifest tool. -+MANIFEST_TOOL=$lt_MANIFEST_TOOL -+ - # Tool to manipulate archived DWARF debug symbol files on Mac OS X. - DSYMUTIL=$lt_DSYMUTIL - -@@ -19334,12 +20220,12 @@ with_gcc=$GCC - # Compiler flag to turn off builtin functions. - no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag - --# How to pass a linker flag through the compiler. --wl=$lt_lt_prog_compiler_wl -- - # Additional compiler flags for building library objects. - pic_flag=$lt_lt_prog_compiler_pic - -+# How to pass a linker flag through the compiler. -+wl=$lt_lt_prog_compiler_wl -+ - # Compiler flag to prevent dynamic linking. - link_static_flag=$lt_lt_prog_compiler_static - -@@ -19426,9 +20312,6 @@ inherit_rpath=$inherit_rpath - # Whether libtool must link a program against all its dependency libraries. - link_all_deplibs=$link_all_deplibs - --# Fix the shell variable \$srcfile for the compiler. --fix_srcfile_path=$lt_fix_srcfile_path -- - # Set to "yes" if exported symbols are required. - always_export_symbols=$always_export_symbols - -@@ -19444,6 +20327,9 @@ include_expsyms=$lt_include_expsyms - # Commands necessary for linking programs (against libraries) with templates. - prelink_cmds=$lt_prelink_cmds - -+# Commands necessary for finishing linking programs. -+postlink_cmds=$lt_postlink_cmds -+ - # Specify filename containing input files. - file_list_spec=$lt_file_list_spec - -@@ -19490,210 +20376,169 @@ ltmain="$ac_aux_dir/ltmain.sh" - # if finds mixed CR/LF and LF-only lines. Since sed operates in - # text mode, it properly converts lines to CR/LF. This bash problem - # is reportedly fixed, but why not run on old versions too? -- sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ -- || (rm -f "$cfgfile"; exit 1) -- -- case $xsi_shell in -- yes) -- cat << \_LT_EOF >> "$cfgfile" -- --# func_dirname file append nondir_replacement --# Compute the dirname of FILE. If nonempty, add APPEND to the result, --# otherwise set result to NONDIR_REPLACEMENT. --func_dirname () --{ -- case ${1} in -- */*) func_dirname_result="${1%/*}${2}" ;; -- * ) func_dirname_result="${3}" ;; -- esac --} -- --# func_basename file --func_basename () --{ -- func_basename_result="${1##*/}" --} -- --# func_dirname_and_basename file append nondir_replacement --# perform func_basename and func_dirname in a single function --# call: --# dirname: Compute the dirname of FILE. If nonempty, --# add APPEND to the result, otherwise set result --# to NONDIR_REPLACEMENT. --# value returned in "$func_dirname_result" --# basename: Compute filename of FILE. --# value retuned in "$func_basename_result" --# Implementation must be kept synchronized with func_dirname --# and func_basename. For efficiency, we do not delegate to --# those functions but instead duplicate the functionality here. --func_dirname_and_basename () --{ -- case ${1} in -- */*) func_dirname_result="${1%/*}${2}" ;; -- * ) func_dirname_result="${3}" ;; -- esac -- func_basename_result="${1##*/}" --} -- --# func_stripname prefix suffix name --# strip PREFIX and SUFFIX off of NAME. --# PREFIX and SUFFIX must not contain globbing or regex special --# characters, hashes, percent signs, but SUFFIX may contain a leading --# dot (in which case that matches only a dot). --func_stripname () --{ -- # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are -- # positional parameters, so assign one to ordinary parameter first. -- func_stripname_result=${3} -- func_stripname_result=${func_stripname_result#"${1}"} -- func_stripname_result=${func_stripname_result%"${2}"} --} -- --# func_opt_split --func_opt_split () --{ -- func_opt_split_opt=${1%%=*} -- func_opt_split_arg=${1#*=} --} -- --# func_lo2o object --func_lo2o () --{ -- case ${1} in -- *.lo) func_lo2o_result=${1%.lo}.${objext} ;; -- *) func_lo2o_result=${1} ;; -- esac --} -- --# func_xform libobj-or-source --func_xform () --{ -- func_xform_result=${1%.*}.lo --} -- --# func_arith arithmetic-term... --func_arith () --{ -- func_arith_result=$(( $* )) --} -- --# func_len string --# STRING may not start with a hyphen. --func_len () --{ -- func_len_result=${#1} --} -- --_LT_EOF -- ;; -- *) # Bourne compatible functions. -- cat << \_LT_EOF >> "$cfgfile" -- --# func_dirname file append nondir_replacement --# Compute the dirname of FILE. If nonempty, add APPEND to the result, --# otherwise set result to NONDIR_REPLACEMENT. --func_dirname () --{ -- # Extract subdirectory from the argument. -- func_dirname_result=`$ECHO "${1}" | $SED "$dirname"` -- if test "X$func_dirname_result" = "X${1}"; then -- func_dirname_result="${3}" -- else -- func_dirname_result="$func_dirname_result${2}" -- fi --} -- --# func_basename file --func_basename () --{ -- func_basename_result=`$ECHO "${1}" | $SED "$basename"` --} -- -- --# func_stripname prefix suffix name --# strip PREFIX and SUFFIX off of NAME. --# PREFIX and SUFFIX must not contain globbing or regex special --# characters, hashes, percent signs, but SUFFIX may contain a leading --# dot (in which case that matches only a dot). --# func_strip_suffix prefix name --func_stripname () --{ -- case ${2} in -- .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; -- *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; -- esac --} -- --# sed scripts: --my_sed_long_opt='1s/^\(-[^=]*\)=.*/\1/;q' --my_sed_long_arg='1s/^-[^=]*=//' -- --# func_opt_split --func_opt_split () --{ -- func_opt_split_opt=`$ECHO "${1}" | $SED "$my_sed_long_opt"` -- func_opt_split_arg=`$ECHO "${1}" | $SED "$my_sed_long_arg"` --} -- --# func_lo2o object --func_lo2o () --{ -- func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"` --} -- --# func_xform libobj-or-source --func_xform () --{ -- func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'` --} -- --# func_arith arithmetic-term... --func_arith () --{ -- func_arith_result=`expr "$@"` --} -- --# func_len string --# STRING may not start with a hyphen. --func_len () --{ -- func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len` --} -- --_LT_EOF --esac -- --case $lt_shell_append in -- yes) -- cat << \_LT_EOF >> "$cfgfile" -- --# func_append var value --# Append VALUE to the end of shell variable VAR. --func_append () --{ -- eval "$1+=\$2" --} --_LT_EOF -- ;; -- *) -- cat << \_LT_EOF >> "$cfgfile" -- --# func_append var value --# Append VALUE to the end of shell variable VAR. --func_append () --{ -- eval "$1=\$$1\$2" --} -- --_LT_EOF -- ;; -- esac -- -- -- sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ -- || (rm -f "$cfgfile"; exit 1) -- -- mv -f "$cfgfile" "$ofile" || -+ sed '$q' "$ltmain" >> "$cfgfile" \ -+ || (rm -f "$cfgfile"; exit 1) -+ -+ if test x"$xsi_shell" = xyes; then -+ sed -e '/^func_dirname ()$/,/^} # func_dirname /c\ -+func_dirname ()\ -+{\ -+\ case ${1} in\ -+\ */*) func_dirname_result="${1%/*}${2}" ;;\ -+\ * ) func_dirname_result="${3}" ;;\ -+\ esac\ -+} # Extended-shell func_dirname implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_basename ()$/,/^} # func_basename /c\ -+func_basename ()\ -+{\ -+\ func_basename_result="${1##*/}"\ -+} # Extended-shell func_basename implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_dirname_and_basename ()$/,/^} # func_dirname_and_basename /c\ -+func_dirname_and_basename ()\ -+{\ -+\ case ${1} in\ -+\ */*) func_dirname_result="${1%/*}${2}" ;;\ -+\ * ) func_dirname_result="${3}" ;;\ -+\ esac\ -+\ func_basename_result="${1##*/}"\ -+} # Extended-shell func_dirname_and_basename implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_stripname ()$/,/^} # func_stripname /c\ -+func_stripname ()\ -+{\ -+\ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are\ -+\ # positional parameters, so assign one to ordinary parameter first.\ -+\ func_stripname_result=${3}\ -+\ func_stripname_result=${func_stripname_result#"${1}"}\ -+\ func_stripname_result=${func_stripname_result%"${2}"}\ -+} # Extended-shell func_stripname implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_split_long_opt ()$/,/^} # func_split_long_opt /c\ -+func_split_long_opt ()\ -+{\ -+\ func_split_long_opt_name=${1%%=*}\ -+\ func_split_long_opt_arg=${1#*=}\ -+} # Extended-shell func_split_long_opt implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_split_short_opt ()$/,/^} # func_split_short_opt /c\ -+func_split_short_opt ()\ -+{\ -+\ func_split_short_opt_arg=${1#??}\ -+\ func_split_short_opt_name=${1%"$func_split_short_opt_arg"}\ -+} # Extended-shell func_split_short_opt implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_lo2o ()$/,/^} # func_lo2o /c\ -+func_lo2o ()\ -+{\ -+\ case ${1} in\ -+\ *.lo) func_lo2o_result=${1%.lo}.${objext} ;;\ -+\ *) func_lo2o_result=${1} ;;\ -+\ esac\ -+} # Extended-shell func_lo2o implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_xform ()$/,/^} # func_xform /c\ -+func_xform ()\ -+{\ -+ func_xform_result=${1%.*}.lo\ -+} # Extended-shell func_xform implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_arith ()$/,/^} # func_arith /c\ -+func_arith ()\ -+{\ -+ func_arith_result=$(( $* ))\ -+} # Extended-shell func_arith implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_len ()$/,/^} # func_len /c\ -+func_len ()\ -+{\ -+ func_len_result=${#1}\ -+} # Extended-shell func_len implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+fi -+ -+if test x"$lt_shell_append" = xyes; then -+ sed -e '/^func_append ()$/,/^} # func_append /c\ -+func_append ()\ -+{\ -+ eval "${1}+=\\${2}"\ -+} # Extended-shell func_append implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_append_quoted ()$/,/^} # func_append_quoted /c\ -+func_append_quoted ()\ -+{\ -+\ func_quote_for_eval "${2}"\ -+\ eval "${1}+=\\\\ \\$func_quote_for_eval_result"\ -+} # Extended-shell func_append_quoted implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ # Save a `func_append' function call where possible by direct use of '+=' -+ sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+ test 0 -eq $? || _lt_function_replace_fail=: -+else -+ # Save a `func_append' function call even when '+=' is not available -+ sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+ test 0 -eq $? || _lt_function_replace_fail=: -+fi -+ -+if test x"$_lt_function_replace_fail" = x":"; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5 -+$as_echo "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;} -+fi -+ -+ -+ mv -f "$cfgfile" "$ofile" || - (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") - chmod +x "$ofile" - -@@ -19721,12 +20566,12 @@ with_gcc=$GCC_CXX - # Compiler flag to turn off builtin functions. - no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX - --# How to pass a linker flag through the compiler. --wl=$lt_lt_prog_compiler_wl_CXX -- - # Additional compiler flags for building library objects. - pic_flag=$lt_lt_prog_compiler_pic_CXX - -+# How to pass a linker flag through the compiler. -+wl=$lt_lt_prog_compiler_wl_CXX -+ - # Compiler flag to prevent dynamic linking. - link_static_flag=$lt_lt_prog_compiler_static_CXX - -@@ -19813,9 +20658,6 @@ inherit_rpath=$inherit_rpath_CXX - # Whether libtool must link a program against all its dependency libraries. - link_all_deplibs=$link_all_deplibs_CXX - --# Fix the shell variable \$srcfile for the compiler. --fix_srcfile_path=$lt_fix_srcfile_path_CXX -- - # Set to "yes" if exported symbols are required. - always_export_symbols=$always_export_symbols_CXX - -@@ -19831,6 +20673,9 @@ include_expsyms=$lt_include_expsyms_CXX - # Commands necessary for linking programs (against libraries) with templates. - prelink_cmds=$lt_prelink_cmds_CXX - -+# Commands necessary for finishing linking programs. -+postlink_cmds=$lt_postlink_cmds_CXX -+ - # Specify filename containing input files. - file_list_spec=$lt_file_list_spec_CXX - -diff --git a/libtool.m4 b/libtool.m4 -index 24d13f3..e45fdc6 100644 ---- a/libtool.m4 -+++ b/libtool.m4 -@@ -1,7 +1,8 @@ - # libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- - # - # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, --# 2006, 2007, 2008, 2009 Free Software Foundation, Inc. -+# 2006, 2007, 2008, 2009, 2010 Free Software Foundation, -+# Inc. - # Written by Gordon Matzigkeit, 1996 - # - # This file is free software; the Free Software Foundation gives -@@ -10,7 +11,8 @@ - - m4_define([_LT_COPYING], [dnl - # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, --# 2006, 2007, 2008, 2009 Free Software Foundation, Inc. -+# 2006, 2007, 2008, 2009, 2010 Free Software Foundation, -+# Inc. - # Written by Gordon Matzigkeit, 1996 - # - # This file is part of GNU Libtool. -@@ -37,7 +39,7 @@ m4_define([_LT_COPYING], [dnl - # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - ]) - --# serial 56 LT_INIT -+# serial 57 LT_INIT - - - # LT_PREREQ(VERSION) -@@ -92,7 +94,8 @@ _LT_SET_OPTIONS([$0], [$1]) - LIBTOOL_DEPS="$ltmain" - - # Always use our own libtool. --LIBTOOL='$(SHELL) $(top_builddir)/libtool' -+LIBTOOL='$(SHELL) $(top_builddir)' -+LIBTOOL="$LIBTOOL/${host_alias}-libtool" - AC_SUBST(LIBTOOL)dnl - - _LT_SETUP -@@ -166,10 +169,13 @@ _LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl - dnl - m4_require([_LT_FILEUTILS_DEFAULTS])dnl - m4_require([_LT_CHECK_SHELL_FEATURES])dnl -+m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl - m4_require([_LT_CMD_RELOAD])dnl - m4_require([_LT_CHECK_MAGIC_METHOD])dnl -+m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl - m4_require([_LT_CMD_OLD_ARCHIVE])dnl - m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl -+m4_require([_LT_WITH_SYSROOT])dnl - - _LT_CONFIG_LIBTOOL_INIT([ - # See if we are running on zsh, and set the options which allow our -@@ -199,7 +205,7 @@ aix3*) - esac - - # Global variables: --ofile=libtool -+ofile=${host_alias}-libtool - can_build_shared=yes - - # All known linkers require a `.a' archive for static linking (except MSVC, -@@ -632,7 +638,7 @@ m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl - m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) - configured by $[0], generated by m4_PACKAGE_STRING. - --Copyright (C) 2009 Free Software Foundation, Inc. -+Copyright (C) 2010 Free Software Foundation, Inc. - This config.lt script is free software; the Free Software Foundation - gives unlimited permision to copy, distribute and modify it." - -@@ -746,15 +752,12 @@ _LT_EOF - # if finds mixed CR/LF and LF-only lines. Since sed operates in - # text mode, it properly converts lines to CR/LF. This bash problem - # is reportedly fixed, but why not run on old versions too? -- sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ -- || (rm -f "$cfgfile"; exit 1) -+ sed '$q' "$ltmain" >> "$cfgfile" \ -+ || (rm -f "$cfgfile"; exit 1) - -- _LT_PROG_XSI_SHELLFNS -+ _LT_PROG_REPLACE_SHELLFNS - -- sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ -- || (rm -f "$cfgfile"; exit 1) -- -- mv -f "$cfgfile" "$ofile" || -+ mv -f "$cfgfile" "$ofile" || - (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") - chmod +x "$ofile" - ], -@@ -980,6 +983,8 @@ _LT_EOF - $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD - echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD - $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD -+ echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD -+ $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD - cat > conftest.c << _LT_EOF - int main() { return 0;} - _LT_EOF -@@ -1069,30 +1074,41 @@ m4_defun([_LT_DARWIN_LINKER_FEATURES], - fi - ]) - --# _LT_SYS_MODULE_PATH_AIX --# ----------------------- -+# _LT_SYS_MODULE_PATH_AIX([TAGNAME]) -+# ---------------------------------- - # Links a minimal program and checks the executable - # for the system default hardcoded library path. In most cases, - # this is /usr/lib:/lib, but when the MPI compilers are used - # the location of the communication and MPI libs are included too. - # If we don't find anything, use the default library path according - # to the aix ld manual. -+# Store the results from the different compilers for each TAGNAME. -+# Allow to override them for all tags through lt_cv_aix_libpath. - m4_defun([_LT_SYS_MODULE_PATH_AIX], - [m4_require([_LT_DECL_SED])dnl --AC_LINK_IFELSE(AC_LANG_PROGRAM,[ --lt_aix_libpath_sed=' -- /Import File Strings/,/^$/ { -- /^0/ { -- s/^0 *\(.*\)$/\1/ -- p -- } -- }' --aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` --# Check for a 64-bit object if we didn't find anything. --if test -z "$aix_libpath"; then -- aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` --fi],[]) --if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi -+if test "${lt_cv_aix_libpath+set}" = set; then -+ aix_libpath=$lt_cv_aix_libpath -+else -+ AC_CACHE_VAL([_LT_TAGVAR([lt_cv_aix_libpath_], [$1])], -+ [AC_LINK_IFELSE([AC_LANG_PROGRAM],[ -+ lt_aix_libpath_sed='[ -+ /Import File Strings/,/^$/ { -+ /^0/ { -+ s/^0 *\([^ ]*\) *$/\1/ -+ p -+ } -+ }]' -+ _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -+ # Check for a 64-bit object if we didn't find anything. -+ if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then -+ _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -+ fi],[]) -+ if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then -+ _LT_TAGVAR([lt_cv_aix_libpath_], [$1])="/usr/lib:/lib" -+ fi -+ ]) -+ aix_libpath=$_LT_TAGVAR([lt_cv_aix_libpath_], [$1]) -+fi - ])# _LT_SYS_MODULE_PATH_AIX - - -@@ -1117,7 +1133,7 @@ ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO - - AC_MSG_CHECKING([how to print strings]) - # Test print first, because it will be a builtin if present. --if test "X`print -r -- -n 2>/dev/null`" = X-n && \ -+if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ - test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then - ECHO='print -r --' - elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then -@@ -1161,6 +1177,39 @@ _LT_DECL([], [ECHO], [1], [An echo program that protects backslashes]) - ])# _LT_PROG_ECHO_BACKSLASH - - -+# _LT_WITH_SYSROOT -+# ---------------- -+AC_DEFUN([_LT_WITH_SYSROOT], -+[AC_MSG_CHECKING([for sysroot]) -+AC_ARG_WITH([libtool-sysroot], -+[ --with-libtool-sysroot[=DIR] Search for dependent libraries within DIR -+ (or the compiler's sysroot if not specified).], -+[], [with_libtool_sysroot=no]) -+ -+dnl lt_sysroot will always be passed unquoted. We quote it here -+dnl in case the user passed a directory name. -+lt_sysroot= -+case ${with_libtool_sysroot} in #( -+ yes) -+ if test "$GCC" = yes; then -+ lt_sysroot=`$CC --print-sysroot 2>/dev/null` -+ fi -+ ;; #( -+ /*) -+ lt_sysroot=`echo "$with_libtool_sysroot" | sed -e "$sed_quote_subst"` -+ ;; #( -+ no|'') -+ ;; #( -+ *) -+ AC_MSG_RESULT([${with_libtool_sysroot}]) -+ AC_MSG_ERROR([The sysroot must be an absolute path.]) -+ ;; -+esac -+ -+ AC_MSG_RESULT([${lt_sysroot:-no}]) -+_LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl -+[dependent libraries, and in which our libraries should be installed.])]) -+ - # _LT_ENABLE_LOCK - # --------------- - m4_defun([_LT_ENABLE_LOCK], -@@ -1320,14 +1369,47 @@ need_locks="$enable_libtool_lock" - ])# _LT_ENABLE_LOCK - - -+# _LT_PROG_AR -+# ----------- -+m4_defun([_LT_PROG_AR], -+[AC_CHECK_TOOLS(AR, [ar], false) -+: ${AR=ar} -+: ${AR_FLAGS=cru} -+_LT_DECL([], [AR], [1], [The archiver]) -+_LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive]) -+ -+AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file], -+ [lt_cv_ar_at_file=no -+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM], -+ [echo conftest.$ac_objext > conftest.lst -+ lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&AS_MESSAGE_LOG_FD' -+ AC_TRY_EVAL([lt_ar_try]) -+ if test "$ac_status" -eq 0; then -+ # Ensure the archiver fails upon bogus file names. -+ rm -f conftest.$ac_objext libconftest.a -+ AC_TRY_EVAL([lt_ar_try]) -+ if test "$ac_status" -ne 0; then -+ lt_cv_ar_at_file=@ -+ fi -+ fi -+ rm -f conftest.* libconftest.a -+ ]) -+ ]) -+ -+if test "x$lt_cv_ar_at_file" = xno; then -+ archiver_list_spec= -+else -+ archiver_list_spec=$lt_cv_ar_at_file -+fi -+_LT_DECL([], [archiver_list_spec], [1], -+ [How to feed a file listing to the archiver]) -+])# _LT_PROG_AR -+ -+ - # _LT_CMD_OLD_ARCHIVE - # ------------------- - m4_defun([_LT_CMD_OLD_ARCHIVE], --[AC_CHECK_TOOL(AR, ar, false) --test -z "$AR" && AR=ar --test -z "$AR_FLAGS" && AR_FLAGS=cru --_LT_DECL([], [AR], [1], [The archiver]) --_LT_DECL([], [AR_FLAGS], [1]) -+[_LT_PROG_AR - - AC_CHECK_TOOL(STRIP, strip, :) - test -z "$STRIP" && STRIP=: -@@ -1623,7 +1705,7 @@ else - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext <<_LT_EOF --[#line __oline__ "configure" -+[#line $LINENO "configure" - #include "confdefs.h" - - #if HAVE_DLFCN_H -@@ -1667,10 +1749,10 @@ else - /* When -fvisbility=hidden is used, assume the code has been annotated - correspondingly for the symbols needed. */ - #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) --void fnord () __attribute__((visibility("default"))); -+int fnord () __attribute__((visibility("default"))); - #endif - --void fnord () { int i=42; } -+int fnord () { return 42; } - int main () - { - void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); -@@ -2210,8 +2292,9 @@ cygwin* | mingw* | pw32* | cegcc*) - need_version=no - need_lib_prefix=no - -- case $GCC,$host_os in -- yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) -+ case $GCC,$cc_basename in -+ yes,*) -+ # gcc - library_names_spec='$libname.dll.a' - # DLL is installed to $(libdir)/../bin by postinstall_cmds - postinstall_cmds='base_file=`basename \${file}`~ -@@ -2244,13 +2327,71 @@ m4_if([$1], [],[ - library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' - ;; - esac -+ dynamic_linker='Win32 ld.exe' -+ ;; -+ -+ *,cl*) -+ # Native MSVC -+ libname_spec='$name' -+ soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' -+ library_names_spec='${libname}.dll.lib' -+ -+ case $build_os in -+ mingw*) -+ sys_lib_search_path_spec= -+ lt_save_ifs=$IFS -+ IFS=';' -+ for lt_path in $LIB -+ do -+ IFS=$lt_save_ifs -+ # Let DOS variable expansion print the short 8.3 style file name. -+ lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` -+ sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" -+ done -+ IFS=$lt_save_ifs -+ # Convert to MSYS style. -+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'` -+ ;; -+ cygwin*) -+ # Convert to unix form, then to dos form, then back to unix form -+ # but this time dos style (no spaces!) so that the unix form looks -+ # like /cygdrive/c/PROGRA~1:/cygdr... -+ sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` -+ sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` -+ sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` -+ ;; -+ *) -+ sys_lib_search_path_spec="$LIB" -+ if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then -+ # It is most probably a Windows format PATH. -+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` -+ else -+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` -+ fi -+ # FIXME: find the short name or the path components, as spaces are -+ # common. (e.g. "Program Files" -> "PROGRA~1") -+ ;; -+ esac -+ -+ # DLL is installed to $(libdir)/../bin by postinstall_cmds -+ postinstall_cmds='base_file=`basename \${file}`~ -+ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ -+ dldir=$destdir/`dirname \$dlpath`~ -+ test -d \$dldir || mkdir -p \$dldir~ -+ $install_prog $dir/$dlname \$dldir/$dlname' -+ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ -+ dlpath=$dir/\$dldll~ -+ $RM \$dlpath' -+ shlibpath_overrides_runpath=yes -+ dynamic_linker='Win32 link.exe' - ;; - - *) -+ # Assume MSVC wrapper - library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib' -+ dynamic_linker='Win32 ld.exe' - ;; - esac -- dynamic_linker='Win32 ld.exe' - # FIXME: first we should search . and the directory the executable is in - shlibpath_var=PATH - ;; -@@ -2342,7 +2483,7 @@ haiku*) - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LIBRARY_PATH - shlibpath_overrides_runpath=yes -- sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/beos/system/lib' -+ sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' - hardcode_into_libs=yes - ;; - -@@ -2950,6 +3091,11 @@ case $reload_flag in - esac - reload_cmds='$LD$reload_flag -o $output$reload_objs' - case $host_os in -+ cygwin* | mingw* | pw32* | cegcc*) -+ if test "$GCC" != yes; then -+ reload_cmds=false -+ fi -+ ;; - darwin*) - if test "$GCC" = yes; then - reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' -@@ -3016,7 +3162,8 @@ mingw* | pw32*) - lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' - lt_cv_file_magic_cmd='func_win32_libid' - else -- lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' -+ # Keep this pattern in sync with the one in func_win32_libid. -+ lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' - lt_cv_file_magic_cmd='$OBJDUMP -f' - fi - ;; -@@ -3167,6 +3314,21 @@ tpf*) - ;; - esac - ]) -+ -+file_magic_glob= -+want_nocaseglob=no -+if test "$build" = "$host"; then -+ case $host_os in -+ mingw* | pw32*) -+ if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then -+ want_nocaseglob=yes -+ else -+ file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[[\1]]\/[[\1]]\/g;/g"` -+ fi -+ ;; -+ esac -+fi -+ - file_magic_cmd=$lt_cv_file_magic_cmd - deplibs_check_method=$lt_cv_deplibs_check_method - test -z "$deplibs_check_method" && deplibs_check_method=unknown -@@ -3174,7 +3336,11 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown - _LT_DECL([], [deplibs_check_method], [1], - [Method to check whether dependent libraries are shared objects]) - _LT_DECL([], [file_magic_cmd], [1], -- [Command to use when deplibs_check_method == "file_magic"]) -+ [Command to use when deplibs_check_method = "file_magic"]) -+_LT_DECL([], [file_magic_glob], [1], -+ [How to find potential files when deplibs_check_method = "file_magic"]) -+_LT_DECL([], [want_nocaseglob], [1], -+ [Find potential files using nocaseglob when deplibs_check_method = "file_magic"]) - ])# _LT_CHECK_MAGIC_METHOD - - -@@ -3277,6 +3443,67 @@ dnl aclocal-1.4 backwards compatibility: - dnl AC_DEFUN([AM_PROG_NM], []) - dnl AC_DEFUN([AC_PROG_NM], []) - -+# _LT_CHECK_SHAREDLIB_FROM_LINKLIB -+# -------------------------------- -+# how to determine the name of the shared library -+# associated with a specific link library. -+# -- PORTME fill in with the dynamic library characteristics -+m4_defun([_LT_CHECK_SHAREDLIB_FROM_LINKLIB], -+[m4_require([_LT_DECL_EGREP]) -+m4_require([_LT_DECL_OBJDUMP]) -+m4_require([_LT_DECL_DLLTOOL]) -+AC_CACHE_CHECK([how to associate runtime and link libraries], -+lt_cv_sharedlib_from_linklib_cmd, -+[lt_cv_sharedlib_from_linklib_cmd='unknown' -+ -+case $host_os in -+cygwin* | mingw* | pw32* | cegcc*) -+ # two different shell functions defined in ltmain.sh -+ # decide which to use based on capabilities of $DLLTOOL -+ case `$DLLTOOL --help 2>&1` in -+ *--identify-strict*) -+ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib -+ ;; -+ *) -+ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback -+ ;; -+ esac -+ ;; -+*) -+ # fallback: assume linklib IS sharedlib -+ lt_cv_sharedlib_from_linklib_cmd="$ECHO" -+ ;; -+esac -+]) -+sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd -+test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO -+ -+_LT_DECL([], [sharedlib_from_linklib_cmd], [1], -+ [Command to associate shared and link libraries]) -+])# _LT_CHECK_SHAREDLIB_FROM_LINKLIB -+ -+ -+# _LT_PATH_MANIFEST_TOOL -+# ---------------------- -+# locate the manifest tool -+m4_defun([_LT_PATH_MANIFEST_TOOL], -+[AC_CHECK_TOOL(MANIFEST_TOOL, mt, :) -+test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt -+AC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_mainfest_tool], -+ [lt_cv_path_mainfest_tool=no -+ echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&AS_MESSAGE_LOG_FD -+ $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out -+ cat conftest.err >&AS_MESSAGE_LOG_FD -+ if $GREP 'Manifest Tool' conftest.out > /dev/null; then -+ lt_cv_path_mainfest_tool=yes -+ fi -+ rm -f conftest*]) -+if test "x$lt_cv_path_mainfest_tool" != xyes; then -+ MANIFEST_TOOL=: -+fi -+_LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl -+])# _LT_PATH_MANIFEST_TOOL -+ - - # LT_LIB_M - # -------- -@@ -3403,8 +3630,8 @@ esac - lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" - - # Transform an extracted symbol line into symbol name and symbol address --lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p'" --lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"lib\2\", (void *) \&\2},/p'" -+lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p'" -+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"lib\2\", (void *) \&\2},/p'" - - # Handle CRLF in mingw tool chain - opt_cr= -@@ -3440,6 +3667,7 @@ for ac_symprfx in "" "_"; do - else - lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" - fi -+ lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" - - # Check to see that the pipe works correctly. - pipe_works=no -@@ -3473,6 +3701,18 @@ _LT_EOF - if $GREP ' nm_test_var$' "$nlist" >/dev/null; then - if $GREP ' nm_test_func$' "$nlist" >/dev/null; then - cat <<_LT_EOF > conftest.$ac_ext -+/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ -+#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) -+/* DATA imports from DLLs on WIN32 con't be const, because runtime -+ relocations are performed -- see ld's documentation on pseudo-relocs. */ -+# define LT@&t@_DLSYM_CONST -+#elif defined(__osf__) -+/* This system does not cope well with relocations in const data. */ -+# define LT@&t@_DLSYM_CONST -+#else -+# define LT@&t@_DLSYM_CONST const -+#endif -+ - #ifdef __cplusplus - extern "C" { - #endif -@@ -3484,7 +3724,7 @@ _LT_EOF - cat <<_LT_EOF >> conftest.$ac_ext - - /* The mapping between symbol names and symbols. */ --const struct { -+LT@&t@_DLSYM_CONST struct { - const char *name; - void *address; - } -@@ -3510,15 +3750,15 @@ static const void *lt_preloaded_setup() { - _LT_EOF - # Now try linking the two files. - mv conftest.$ac_objext conftstm.$ac_objext -- lt_save_LIBS="$LIBS" -- lt_save_CFLAGS="$CFLAGS" -+ lt_globsym_save_LIBS=$LIBS -+ lt_globsym_save_CFLAGS=$CFLAGS - LIBS="conftstm.$ac_objext" - CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" - if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then - pipe_works=yes - fi -- LIBS="$lt_save_LIBS" -- CFLAGS="$lt_save_CFLAGS" -+ LIBS=$lt_globsym_save_LIBS -+ CFLAGS=$lt_globsym_save_CFLAGS - else - echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD - fi -@@ -3551,6 +3791,13 @@ else - AC_MSG_RESULT(ok) - fi - -+# Response file support. -+if test "$lt_cv_nm_interface" = "MS dumpbin"; then -+ nm_file_list_spec='@' -+elif $NM --help 2>/dev/null | grep '[[@]]FILE' >/dev/null; then -+ nm_file_list_spec='@' -+fi -+ - _LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1], - [Take the output of nm and produce a listing of raw symbols and C names]) - _LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1], -@@ -3561,6 +3808,8 @@ _LT_DECL([global_symbol_to_c_name_address], - _LT_DECL([global_symbol_to_c_name_address_lib_prefix], - [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1], - [Transform the output of nm in a C name address pair when lib prefix is needed]) -+_LT_DECL([], [nm_file_list_spec], [1], -+ [Specify filename containing input files for $NM]) - ]) # _LT_CMD_GLOBAL_SYMBOLS - - -@@ -3572,7 +3821,6 @@ _LT_TAGVAR(lt_prog_compiler_wl, $1)= - _LT_TAGVAR(lt_prog_compiler_pic, $1)= - _LT_TAGVAR(lt_prog_compiler_static, $1)= - --AC_MSG_CHECKING([for $compiler option to produce PIC]) - m4_if([$1], [CXX], [ - # C++ specific cases for pic, static, wl, etc. - if test "$GXX" = yes; then -@@ -3678,6 +3926,12 @@ m4_if([$1], [CXX], [ - ;; - esac - ;; -+ mingw* | cygwin* | os2* | pw32* | cegcc*) -+ # This hack is so that the source file can tell whether it is being -+ # built for inclusion in a dll (and should export symbols for example). -+ m4_if([$1], [GCJ], [], -+ [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) -+ ;; - dgux*) - case $cc_basename in - ec++*) -@@ -3830,7 +4084,7 @@ m4_if([$1], [CXX], [ - ;; - solaris*) - case $cc_basename in -- CC*) -+ CC* | sunCC*) - # Sun C++ 4.2, 5.x and Centerline C++ - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' -@@ -4053,6 +4307,12 @@ m4_if([$1], [CXX], [ - _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared' - _LT_TAGVAR(lt_prog_compiler_static, $1)='--static' - ;; -+ nagfor*) -+ # NAG Fortran compiler -+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,' -+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' -+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' -+ ;; - pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) - # Portland Group compilers (*not* the Pentium gcc compiler, - # which looks to be a dead project) -@@ -4115,7 +4375,7 @@ m4_if([$1], [CXX], [ - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - case $cc_basename in -- f77* | f90* | f95*) -+ f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; - *) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; -@@ -4172,9 +4432,11 @@ case $host_os in - _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])" - ;; - esac --AC_MSG_RESULT([$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) --_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], -- [How to pass a linker flag through the compiler]) -+ -+AC_CACHE_CHECK([for $compiler option to produce PIC], -+ [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)], -+ [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) -+_LT_TAGVAR(lt_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_cv_prog_compiler_pic, $1) - - # - # Check to make sure the PIC flag actually works. -@@ -4193,6 +4455,8 @@ fi - _LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1], - [Additional compiler flags for building library objects]) - -+_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], -+ [How to pass a linker flag through the compiler]) - # - # Check to make sure the static flag actually works. - # -@@ -4213,6 +4477,7 @@ _LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1], - m4_defun([_LT_LINKER_SHLIBS], - [AC_REQUIRE([LT_PATH_LD])dnl - AC_REQUIRE([LT_PATH_NM])dnl -+m4_require([_LT_PATH_MANIFEST_TOOL])dnl - m4_require([_LT_FILEUTILS_DEFAULTS])dnl - m4_require([_LT_DECL_EGREP])dnl - m4_require([_LT_DECL_SED])dnl -@@ -4221,6 +4486,7 @@ m4_require([_LT_TAG_COMPILER])dnl - AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) - m4_if([$1], [CXX], [ - _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' -+ _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] - case $host_os in - aix[[4-9]]*) - # If we're using GNU nm, then we don't want the "-C" option. -@@ -4235,15 +4501,20 @@ m4_if([$1], [CXX], [ - ;; - pw32*) - _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" -- ;; -+ ;; - cygwin* | mingw* | cegcc*) -- _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;/^.*[[ ]]__nm__/s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' -- ;; -+ case $cc_basename in -+ cl*) ;; -+ *) -+ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' -+ _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] -+ ;; -+ esac -+ ;; - *) - _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' -- ;; -+ ;; - esac -- _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] - ], [ - runpath_var= - _LT_TAGVAR(allow_undefined_flag, $1)= -@@ -4411,7 +4682,8 @@ _LT_EOF - _LT_TAGVAR(allow_undefined_flag, $1)=unsupported - _LT_TAGVAR(always_export_symbols, $1)=no - _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes -- _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' -+ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' -+ _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] - - if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' -@@ -4510,12 +4782,12 @@ _LT_EOF - _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= - _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir' -- _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib' -+ _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' - if test "x$supports_anon_versioning" = xyes; then - _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ - cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ - echo "local: *; };" >> $output_objdir/$libname.ver~ -- $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' -+ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' - fi - ;; - esac -@@ -4529,8 +4801,8 @@ _LT_EOF - _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' - wlarc= - else -- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' -+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - fi - ;; - -@@ -4548,8 +4820,8 @@ _LT_EOF - - _LT_EOF - elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then -- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' -+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - _LT_TAGVAR(ld_shlibs, $1)=no - fi -@@ -4595,8 +4867,8 @@ _LT_EOF - - *) - if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then -- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' -+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - _LT_TAGVAR(ld_shlibs, $1)=no - fi -@@ -4726,7 +4998,7 @@ _LT_EOF - _LT_TAGVAR(allow_undefined_flag, $1)='-berok' - # Determine the default libpath from the value encoded in an - # empty executable. -- _LT_SYS_MODULE_PATH_AIX -+ _LT_SYS_MODULE_PATH_AIX([$1]) - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" - else -@@ -4737,7 +5009,7 @@ _LT_EOF - else - # Determine the default libpath from the value encoded in an - # empty executable. -- _LT_SYS_MODULE_PATH_AIX -+ _LT_SYS_MODULE_PATH_AIX([$1]) - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" - # Warning - without using the other run time loading flags, - # -berok will link without error, but may produce a broken library. -@@ -4781,20 +5053,63 @@ _LT_EOF - # Microsoft Visual C++. - # hardcode_libdir_flag_spec is actually meaningless, as there is - # no search path for DLLs. -- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' -- _LT_TAGVAR(allow_undefined_flag, $1)=unsupported -- # Tell ltmain to make .lib files, not .a files. -- libext=lib -- # Tell ltmain to make .dll files, not .so files. -- shrext_cmds=".dll" -- # FIXME: Setting linknames here is a bad hack. -- _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' -- # The linker will automatically build a .lib file if we build a DLL. -- _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' -- # FIXME: Should let the user specify the lib program. -- _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' -- _LT_TAGVAR(fix_srcfile_path, $1)='`cygpath -w "$srcfile"`' -- _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes -+ case $cc_basename in -+ cl*) -+ # Native MSVC -+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' -+ _LT_TAGVAR(allow_undefined_flag, $1)=unsupported -+ _LT_TAGVAR(always_export_symbols, $1)=yes -+ _LT_TAGVAR(file_list_spec, $1)='@' -+ # Tell ltmain to make .lib files, not .a files. -+ libext=lib -+ # Tell ltmain to make .dll files, not .so files. -+ shrext_cmds=".dll" -+ # FIXME: Setting linknames here is a bad hack. -+ _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' -+ _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then -+ sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; -+ else -+ sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; -+ fi~ -+ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ -+ linknames=' -+ # The linker will not automatically build a static lib if we build a DLL. -+ # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' -+ _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes -+ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1,DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' -+ # Don't use ranlib -+ _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' -+ _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ -+ lt_tool_outputfile="@TOOL_OUTPUT@"~ -+ case $lt_outputfile in -+ *.exe|*.EXE) ;; -+ *) -+ lt_outputfile="$lt_outputfile.exe" -+ lt_tool_outputfile="$lt_tool_outputfile.exe" -+ ;; -+ esac~ -+ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then -+ $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; -+ $RM "$lt_outputfile.manifest"; -+ fi' -+ ;; -+ *) -+ # Assume MSVC wrapper -+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' -+ _LT_TAGVAR(allow_undefined_flag, $1)=unsupported -+ # Tell ltmain to make .lib files, not .a files. -+ libext=lib -+ # Tell ltmain to make .dll files, not .so files. -+ shrext_cmds=".dll" -+ # FIXME: Setting linknames here is a bad hack. -+ _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' -+ # The linker will automatically build a .lib file if we build a DLL. -+ _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' -+ # FIXME: Should let the user specify the lib program. -+ _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' -+ _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes -+ ;; -+ esac - ;; - - darwin* | rhapsody*) -@@ -4828,7 +5143,7 @@ _LT_EOF - - # FreeBSD 3 and greater uses gcc -shared to do shared libraries. - freebsd* | dragonfly*) -- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' -+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no -@@ -4836,7 +5151,7 @@ _LT_EOF - - hpux9*) - if test "$GCC" = yes; then -- _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' -+ _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - else - _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - fi -@@ -4852,7 +5167,7 @@ _LT_EOF - - hpux10*) - if test "$GCC" = yes && test "$with_gnu_ld" = no; then -- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' -+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - else - _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' - fi -@@ -4876,10 +5191,10 @@ _LT_EOF - _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - ia64*) -- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' -+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) -- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' -+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - ;; - esac - else -@@ -4926,16 +5241,31 @@ _LT_EOF - - irix5* | irix6* | nonstopux*) - if test "$GCC" = yes; then -- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' -+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - # Try to use the -exported_symbol ld option, if it does not - # work, assume that -exports_file does not work either and - # implicitly export all symbols. -- save_LDFLAGS="$LDFLAGS" -- LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" -- AC_LINK_IFELSE(int foo(void) {}, -- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' -- ) -- LDFLAGS="$save_LDFLAGS" -+ # This should be the same for all languages, so no per-tag cache variable. -+ AC_CACHE_CHECK([whether the $host_os linker accepts -exported_symbol], -+ [lt_cv_irix_exported_symbol], -+ [save_LDFLAGS="$LDFLAGS" -+ LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" -+ AC_LINK_IFELSE( -+ [AC_LANG_SOURCE( -+ [AC_LANG_CASE([C], [[int foo (void) { return 0; }]], -+ [C++], [[int foo (void) { return 0; }]], -+ [Fortran 77], [[ -+ subroutine foo -+ end]], -+ [Fortran], [[ -+ subroutine foo -+ end]])])], -+ [lt_cv_irix_exported_symbol=yes], -+ [lt_cv_irix_exported_symbol=no]) -+ LDFLAGS="$save_LDFLAGS"]) -+ if test "$lt_cv_irix_exported_symbol" = yes; then -+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' -+ fi - else - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' -@@ -5020,7 +5350,7 @@ _LT_EOF - osf4* | osf5*) # as osf3* with the addition of -msym flag - if test "$GCC" = yes; then - _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' -- _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' -+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - else - _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' -@@ -5039,9 +5369,9 @@ _LT_EOF - _LT_TAGVAR(no_undefined_flag, $1)=' -z defs' - if test "$GCC" = yes; then - wlarc='${wl}' -- _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' -+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ -- $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' -+ $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' - else - case `$CC -V 2>&1` in - *"Compilers 5.0"*) -@@ -5313,8 +5643,6 @@ _LT_TAGDECL([], [inherit_rpath], [0], - to runtime path list]) - _LT_TAGDECL([], [link_all_deplibs], [0], - [Whether libtool must link a program against all its dependency libraries]) --_LT_TAGDECL([], [fix_srcfile_path], [1], -- [Fix the shell variable $srcfile for the compiler]) - _LT_TAGDECL([], [always_export_symbols], [0], - [Set to "yes" if exported symbols are required]) - _LT_TAGDECL([], [export_symbols_cmds], [2], -@@ -5325,6 +5653,8 @@ _LT_TAGDECL([], [include_expsyms], [1], - [Symbols that must always be exported]) - _LT_TAGDECL([], [prelink_cmds], [2], - [Commands necessary for linking programs (against libraries) with templates]) -+_LT_TAGDECL([], [postlink_cmds], [2], -+ [Commands necessary for finishing linking programs]) - _LT_TAGDECL([], [file_list_spec], [1], - [Specify filename containing input files]) - dnl FIXME: Not yet implemented -@@ -5426,6 +5756,7 @@ CC="$lt_save_CC" - m4_defun([_LT_LANG_CXX_CONFIG], - [m4_require([_LT_FILEUTILS_DEFAULTS])dnl - m4_require([_LT_DECL_EGREP])dnl -+m4_require([_LT_PATH_MANIFEST_TOOL])dnl - if test -n "$CXX" && ( test "X$CXX" != "Xno" && - ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || - (test "X$CXX" != "Xg++"))) ; then -@@ -5487,6 +5818,7 @@ if test "$_lt_caught_CXX_error" != yes; then - - # Allow CC to be a program name with arguments. - lt_save_CC=$CC -+ lt_save_CFLAGS=$CFLAGS - lt_save_LD=$LD - lt_save_GCC=$GCC - GCC=$GXX -@@ -5504,6 +5836,7 @@ if test "$_lt_caught_CXX_error" != yes; then - fi - test -z "${LDCXX+set}" || LD=$LDCXX - CC=${CXX-"c++"} -+ CFLAGS=$CXXFLAGS - compiler=$CC - _LT_TAGVAR(compiler, $1)=$CC - _LT_CC_BASENAME([$compiler]) -@@ -5667,7 +6000,7 @@ if test "$_lt_caught_CXX_error" != yes; then - _LT_TAGVAR(allow_undefined_flag, $1)='-berok' - # Determine the default libpath from the value encoded in an empty - # executable. -- _LT_SYS_MODULE_PATH_AIX -+ _LT_SYS_MODULE_PATH_AIX([$1]) - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" - - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" -@@ -5679,7 +6012,7 @@ if test "$_lt_caught_CXX_error" != yes; then - else - # Determine the default libpath from the value encoded in an - # empty executable. -- _LT_SYS_MODULE_PATH_AIX -+ _LT_SYS_MODULE_PATH_AIX([$1]) - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" - # Warning - without using the other run time loading flags, - # -berok will link without error, but may produce a broken library. -@@ -5721,29 +6054,75 @@ if test "$_lt_caught_CXX_error" != yes; then - ;; - - cygwin* | mingw* | pw32* | cegcc*) -- # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, -- # as there is no search path for DLLs. -- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' -- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols' -- _LT_TAGVAR(allow_undefined_flag, $1)=unsupported -- _LT_TAGVAR(always_export_symbols, $1)=no -- _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes -- -- if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then -- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' -- # If the export-symbols file already is a .def file (1st line -- # is EXPORTS), use it as is; otherwise, prepend... -- _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then -- cp $export_symbols $output_objdir/$soname.def; -- else -- echo EXPORTS > $output_objdir/$soname.def; -- cat $export_symbols >> $output_objdir/$soname.def; -- fi~ -- $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' -- else -- _LT_TAGVAR(ld_shlibs, $1)=no -- fi -- ;; -+ case $GXX,$cc_basename in -+ ,cl* | no,cl*) -+ # Native MSVC -+ # hardcode_libdir_flag_spec is actually meaningless, as there is -+ # no search path for DLLs. -+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' -+ _LT_TAGVAR(allow_undefined_flag, $1)=unsupported -+ _LT_TAGVAR(always_export_symbols, $1)=yes -+ _LT_TAGVAR(file_list_spec, $1)='@' -+ # Tell ltmain to make .lib files, not .a files. -+ libext=lib -+ # Tell ltmain to make .dll files, not .so files. -+ shrext_cmds=".dll" -+ # FIXME: Setting linknames here is a bad hack. -+ _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' -+ _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then -+ $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; -+ else -+ $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; -+ fi~ -+ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ -+ linknames=' -+ # The linker will not automatically build a static lib if we build a DLL. -+ # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' -+ _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes -+ # Don't use ranlib -+ _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' -+ _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ -+ lt_tool_outputfile="@TOOL_OUTPUT@"~ -+ case $lt_outputfile in -+ *.exe|*.EXE) ;; -+ *) -+ lt_outputfile="$lt_outputfile.exe" -+ lt_tool_outputfile="$lt_tool_outputfile.exe" -+ ;; -+ esac~ -+ func_to_tool_file "$lt_outputfile"~ -+ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then -+ $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; -+ $RM "$lt_outputfile.manifest"; -+ fi' -+ ;; -+ *) -+ # g++ -+ # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, -+ # as there is no search path for DLLs. -+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' -+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols' -+ _LT_TAGVAR(allow_undefined_flag, $1)=unsupported -+ _LT_TAGVAR(always_export_symbols, $1)=no -+ _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes -+ -+ if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then -+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' -+ # If the export-symbols file already is a .def file (1st line -+ # is EXPORTS), use it as is; otherwise, prepend... -+ _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then -+ cp $export_symbols $output_objdir/$soname.def; -+ else -+ echo EXPORTS > $output_objdir/$soname.def; -+ cat $export_symbols >> $output_objdir/$soname.def; -+ fi~ -+ $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' -+ else -+ _LT_TAGVAR(ld_shlibs, $1)=no -+ fi -+ ;; -+ esac -+ ;; - darwin* | rhapsody*) - _LT_DARWIN_LINKER_FEATURES($1) - ;; -@@ -5818,7 +6197,7 @@ if test "$_lt_caught_CXX_error" != yes; then - ;; - *) - if test "$GXX" = yes; then -- _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' -+ _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - else - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no -@@ -5889,10 +6268,10 @@ if test "$_lt_caught_CXX_error" != yes; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - ia64*) -- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' -+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - *) -- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' -+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - esac - fi -@@ -5933,9 +6312,9 @@ if test "$_lt_caught_CXX_error" != yes; then - *) - if test "$GXX" = yes; then - if test "$with_gnu_ld" = no; then -- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' -+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - else -- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib' -+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib' - fi - fi - _LT_TAGVAR(link_all_deplibs, $1)=yes -@@ -6005,20 +6384,20 @@ if test "$_lt_caught_CXX_error" != yes; then - _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~ - rm -rf $tpldir~ - $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ -- compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"' -+ compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' - _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~ - rm -rf $tpldir~ - $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ -- $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~ -+ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ - $RANLIB $oldlib' - _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~ - rm -rf $tpldir~ - $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ -- $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' -+ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~ - rm -rf $tpldir~ - $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ -- $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' -+ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' - ;; - *) # Version 6 and above use weak symbols - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' -@@ -6213,7 +6592,7 @@ if test "$_lt_caught_CXX_error" != yes; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - ;; - *) -- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' -+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - ;; - esac - -@@ -6259,7 +6638,7 @@ if test "$_lt_caught_CXX_error" != yes; then - - solaris*) - case $cc_basename in -- CC*) -+ CC* | sunCC*) - # Sun C++ 4.2, 5.x and Centerline C++ - _LT_TAGVAR(archive_cmds_need_lc,$1)=yes - _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' -@@ -6300,9 +6679,9 @@ if test "$_lt_caught_CXX_error" != yes; then - if test "$GXX" = yes && test "$with_gnu_ld" = no; then - _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs' - if $CC --version | $GREP -v '^2\.7' > /dev/null; then -- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' -+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ -- $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' -+ $CC -shared $pic_flag -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when -@@ -6431,6 +6810,7 @@ if test "$_lt_caught_CXX_error" != yes; then - fi # test -n "$compiler" - - CC=$lt_save_CC -+ CFLAGS=$lt_save_CFLAGS - LDCXX=$LD - LD=$lt_save_LD - GCC=$lt_save_GCC -@@ -6445,6 +6825,29 @@ AC_LANG_POP - ])# _LT_LANG_CXX_CONFIG - - -+# _LT_FUNC_STRIPNAME_CNF -+# ---------------------- -+# func_stripname_cnf prefix suffix name -+# strip PREFIX and SUFFIX off of NAME. -+# PREFIX and SUFFIX must not contain globbing or regex special -+# characters, hashes, percent signs, but SUFFIX may contain a leading -+# dot (in which case that matches only a dot). -+# -+# This function is identical to the (non-XSI) version of func_stripname, -+# except this one can be used by m4 code that may be executed by configure, -+# rather than the libtool script. -+m4_defun([_LT_FUNC_STRIPNAME_CNF],[dnl -+AC_REQUIRE([_LT_DECL_SED]) -+AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH]) -+func_stripname_cnf () -+{ -+ case ${2} in -+ .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; -+ *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; -+ esac -+} # func_stripname_cnf -+])# _LT_FUNC_STRIPNAME_CNF -+ - # _LT_SYS_HIDDEN_LIBDEPS([TAGNAME]) - # --------------------------------- - # Figure out "hidden" library dependencies from verbose -@@ -6453,6 +6856,7 @@ AC_LANG_POP - # objects, libraries and library flags. - m4_defun([_LT_SYS_HIDDEN_LIBDEPS], - [m4_require([_LT_FILEUTILS_DEFAULTS])dnl -+AC_REQUIRE([_LT_FUNC_STRIPNAME_CNF])dnl - # Dependencies to place before and after the object being linked: - _LT_TAGVAR(predep_objects, $1)= - _LT_TAGVAR(postdep_objects, $1)= -@@ -6503,6 +6907,13 @@ public class foo { - }; - _LT_EOF - ]) -+ -+_lt_libdeps_save_CFLAGS=$CFLAGS -+case "$CC $CFLAGS " in #( -+*\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;; -+*\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;; -+esac -+ - dnl Parse the compiler output and extract the necessary - dnl objects, libraries and library flags. - if AC_TRY_EVAL(ac_compile); then -@@ -6514,7 +6925,7 @@ if AC_TRY_EVAL(ac_compile); then - pre_test_object_deps_done=no - - for p in `eval "$output_verbose_link_cmd"`; do -- case $p in -+ case ${prev}${p} in - - -L* | -R* | -l*) - # Some compilers place space between "-{L,R}" and the path. -@@ -6523,13 +6934,22 @@ if AC_TRY_EVAL(ac_compile); then - test $p = "-R"; then - prev=$p - continue -- else -- prev= - fi - -+ # Expand the sysroot to ease extracting the directories later. -+ if test -z "$prev"; then -+ case $p in -+ -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;; -+ -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;; -+ -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;; -+ esac -+ fi -+ case $p in -+ =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;; -+ esac - if test "$pre_test_object_deps_done" = no; then -- case $p in -- -L* | -R*) -+ case ${prev} in -+ -L | -R) - # Internal compiler library paths should come after those - # provided the user. The postdeps already come after the - # user supplied libs so there is no need to process them. -@@ -6549,8 +6969,10 @@ if AC_TRY_EVAL(ac_compile); then - _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}" - fi - fi -+ prev= - ;; - -+ *.lto.$objext) ;; # Ignore GCC LTO objects - *.$objext) - # This assumes that the test object file only shows up - # once in the compiler output. -@@ -6586,6 +7008,7 @@ else - fi - - $RM -f confest.$objext -+CFLAGS=$_lt_libdeps_save_CFLAGS - - # PORTME: override above test on systems where it is broken - m4_if([$1], [CXX], -@@ -6622,7 +7045,7 @@ linux*) - - solaris*) - case $cc_basename in -- CC*) -+ CC* | sunCC*) - # The more standards-conforming stlport4 library is - # incompatible with the Cstd library. Avoid specifying - # it if it's in CXXFLAGS. Ignore libCrun as -@@ -6735,7 +7158,9 @@ if test "$_lt_disable_F77" != yes; then - # Allow CC to be a program name with arguments. - lt_save_CC="$CC" - lt_save_GCC=$GCC -+ lt_save_CFLAGS=$CFLAGS - CC=${F77-"f77"} -+ CFLAGS=$FFLAGS - compiler=$CC - _LT_TAGVAR(compiler, $1)=$CC - _LT_CC_BASENAME([$compiler]) -@@ -6789,6 +7214,7 @@ if test "$_lt_disable_F77" != yes; then - - GCC=$lt_save_GCC - CC="$lt_save_CC" -+ CFLAGS="$lt_save_CFLAGS" - fi # test "$_lt_disable_F77" != yes - - AC_LANG_POP -@@ -6865,7 +7291,9 @@ if test "$_lt_disable_FC" != yes; then - # Allow CC to be a program name with arguments. - lt_save_CC="$CC" - lt_save_GCC=$GCC -+ lt_save_CFLAGS=$CFLAGS - CC=${FC-"f95"} -+ CFLAGS=$FCFLAGS - compiler=$CC - GCC=$ac_cv_fc_compiler_gnu - -@@ -6921,7 +7349,8 @@ if test "$_lt_disable_FC" != yes; then - fi # test -n "$compiler" - - GCC=$lt_save_GCC -- CC="$lt_save_CC" -+ CC=$lt_save_CC -+ CFLAGS=$lt_save_CFLAGS - fi # test "$_lt_disable_FC" != yes - - AC_LANG_POP -@@ -6958,10 +7387,12 @@ _LT_COMPILER_BOILERPLATE - _LT_LINKER_BOILERPLATE - - # Allow CC to be a program name with arguments. --lt_save_CC="$CC" -+lt_save_CC=$CC -+lt_save_CFLAGS=$CFLAGS - lt_save_GCC=$GCC - GCC=yes - CC=${GCJ-"gcj"} -+CFLAGS=$GCJFLAGS - compiler=$CC - _LT_TAGVAR(compiler, $1)=$CC - _LT_TAGVAR(LD, $1)="$LD" -@@ -6992,7 +7423,8 @@ fi - AC_LANG_RESTORE - - GCC=$lt_save_GCC --CC="$lt_save_CC" -+CC=$lt_save_CC -+CFLAGS=$lt_save_CFLAGS - ])# _LT_LANG_GCJ_CONFIG - - -@@ -7027,9 +7459,11 @@ _LT_LINKER_BOILERPLATE - - # Allow CC to be a program name with arguments. - lt_save_CC="$CC" -+lt_save_CFLAGS=$CFLAGS - lt_save_GCC=$GCC - GCC= - CC=${RC-"windres"} -+CFLAGS= - compiler=$CC - _LT_TAGVAR(compiler, $1)=$CC - _LT_CC_BASENAME([$compiler]) -@@ -7042,7 +7476,8 @@ fi - - GCC=$lt_save_GCC - AC_LANG_RESTORE --CC="$lt_save_CC" -+CC=$lt_save_CC -+CFLAGS=$lt_save_CFLAGS - ])# _LT_LANG_RC_CONFIG - - -@@ -7101,6 +7536,15 @@ _LT_DECL([], [OBJDUMP], [1], [An object symbol dumper]) - AC_SUBST([OBJDUMP]) - ]) - -+# _LT_DECL_DLLTOOL -+# ---------------- -+# Ensure DLLTOOL variable is set. -+m4_defun([_LT_DECL_DLLTOOL], -+[AC_CHECK_TOOL(DLLTOOL, dlltool, false) -+test -z "$DLLTOOL" && DLLTOOL=dlltool -+_LT_DECL([], [DLLTOOL], [1], [DLL creation program]) -+AC_SUBST([DLLTOOL]) -+]) - - # _LT_DECL_SED - # ------------ -@@ -7194,8 +7638,8 @@ m4_defun([_LT_CHECK_SHELL_FEATURES], - # Try some XSI features - xsi_shell=no - ( _lt_dummy="a/b/c" -- test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \ -- = c,a/b,, \ -+ test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ -+ = c,a/b,b/c, \ - && eval 'test $(( 1 + 1 )) -eq 2 \ - && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ - && xsi_shell=yes -@@ -7234,206 +7678,162 @@ _LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl - ])# _LT_CHECK_SHELL_FEATURES - - --# _LT_PROG_XSI_SHELLFNS --# --------------------- --# Bourne and XSI compatible variants of some useful shell functions. --m4_defun([_LT_PROG_XSI_SHELLFNS], --[case $xsi_shell in -- yes) -- cat << \_LT_EOF >> "$cfgfile" -- --# func_dirname file append nondir_replacement --# Compute the dirname of FILE. If nonempty, add APPEND to the result, --# otherwise set result to NONDIR_REPLACEMENT. --func_dirname () --{ -- case ${1} in -- */*) func_dirname_result="${1%/*}${2}" ;; -- * ) func_dirname_result="${3}" ;; -- esac --} -- --# func_basename file --func_basename () --{ -- func_basename_result="${1##*/}" --} -- --# func_dirname_and_basename file append nondir_replacement --# perform func_basename and func_dirname in a single function --# call: --# dirname: Compute the dirname of FILE. If nonempty, --# add APPEND to the result, otherwise set result --# to NONDIR_REPLACEMENT. --# value returned in "$func_dirname_result" --# basename: Compute filename of FILE. --# value retuned in "$func_basename_result" --# Implementation must be kept synchronized with func_dirname --# and func_basename. For efficiency, we do not delegate to --# those functions but instead duplicate the functionality here. --func_dirname_and_basename () --{ -- case ${1} in -- */*) func_dirname_result="${1%/*}${2}" ;; -- * ) func_dirname_result="${3}" ;; -- esac -- func_basename_result="${1##*/}" --} -- --# func_stripname prefix suffix name --# strip PREFIX and SUFFIX off of NAME. --# PREFIX and SUFFIX must not contain globbing or regex special --# characters, hashes, percent signs, but SUFFIX may contain a leading --# dot (in which case that matches only a dot). --func_stripname () --{ -- # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are -- # positional parameters, so assign one to ordinary parameter first. -- func_stripname_result=${3} -- func_stripname_result=${func_stripname_result#"${1}"} -- func_stripname_result=${func_stripname_result%"${2}"} --} -- --# func_opt_split --func_opt_split () --{ -- func_opt_split_opt=${1%%=*} -- func_opt_split_arg=${1#*=} --} -- --# func_lo2o object --func_lo2o () --{ -- case ${1} in -- *.lo) func_lo2o_result=${1%.lo}.${objext} ;; -- *) func_lo2o_result=${1} ;; -- esac --} -- --# func_xform libobj-or-source --func_xform () --{ -- func_xform_result=${1%.*}.lo --} -- --# func_arith arithmetic-term... --func_arith () --{ -- func_arith_result=$(( $[*] )) --} -- --# func_len string --# STRING may not start with a hyphen. --func_len () --{ -- func_len_result=${#1} --} -+# _LT_PROG_FUNCTION_REPLACE (FUNCNAME, REPLACEMENT-BODY) -+# ------------------------------------------------------ -+# In `$cfgfile', look for function FUNCNAME delimited by `^FUNCNAME ()$' and -+# '^} FUNCNAME ', and replace its body with REPLACEMENT-BODY. -+m4_defun([_LT_PROG_FUNCTION_REPLACE], -+[dnl { -+sed -e '/^$1 ()$/,/^} # $1 /c\ -+$1 ()\ -+{\ -+m4_bpatsubsts([$2], [$], [\\], [^\([ ]\)], [\\\1]) -+} # Extended-shell $1 implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+]) - --_LT_EOF -- ;; -- *) # Bourne compatible functions. -- cat << \_LT_EOF >> "$cfgfile" - --# func_dirname file append nondir_replacement --# Compute the dirname of FILE. If nonempty, add APPEND to the result, --# otherwise set result to NONDIR_REPLACEMENT. --func_dirname () --{ -- # Extract subdirectory from the argument. -- func_dirname_result=`$ECHO "${1}" | $SED "$dirname"` -- if test "X$func_dirname_result" = "X${1}"; then -- func_dirname_result="${3}" -- else -- func_dirname_result="$func_dirname_result${2}" -- fi --} -+# _LT_PROG_REPLACE_SHELLFNS -+# ------------------------- -+# Replace existing portable implementations of several shell functions with -+# equivalent extended shell implementations where those features are available.. -+m4_defun([_LT_PROG_REPLACE_SHELLFNS], -+[if test x"$xsi_shell" = xyes; then -+ _LT_PROG_FUNCTION_REPLACE([func_dirname], [dnl -+ case ${1} in -+ */*) func_dirname_result="${1%/*}${2}" ;; -+ * ) func_dirname_result="${3}" ;; -+ esac]) -+ -+ _LT_PROG_FUNCTION_REPLACE([func_basename], [dnl -+ func_basename_result="${1##*/}"]) -+ -+ _LT_PROG_FUNCTION_REPLACE([func_dirname_and_basename], [dnl -+ case ${1} in -+ */*) func_dirname_result="${1%/*}${2}" ;; -+ * ) func_dirname_result="${3}" ;; -+ esac -+ func_basename_result="${1##*/}"]) - --# func_basename file --func_basename () --{ -- func_basename_result=`$ECHO "${1}" | $SED "$basename"` --} -+ _LT_PROG_FUNCTION_REPLACE([func_stripname], [dnl -+ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are -+ # positional parameters, so assign one to ordinary parameter first. -+ func_stripname_result=${3} -+ func_stripname_result=${func_stripname_result#"${1}"} -+ func_stripname_result=${func_stripname_result%"${2}"}]) - --dnl func_dirname_and_basename --dnl A portable version of this function is already defined in general.m4sh --dnl so there is no need for it here. -+ _LT_PROG_FUNCTION_REPLACE([func_split_long_opt], [dnl -+ func_split_long_opt_name=${1%%=*} -+ func_split_long_opt_arg=${1#*=}]) - --# func_stripname prefix suffix name --# strip PREFIX and SUFFIX off of NAME. --# PREFIX and SUFFIX must not contain globbing or regex special --# characters, hashes, percent signs, but SUFFIX may contain a leading --# dot (in which case that matches only a dot). --# func_strip_suffix prefix name --func_stripname () --{ -- case ${2} in -- .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; -- *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; -- esac --} -+ _LT_PROG_FUNCTION_REPLACE([func_split_short_opt], [dnl -+ func_split_short_opt_arg=${1#??} -+ func_split_short_opt_name=${1%"$func_split_short_opt_arg"}]) - --# sed scripts: --my_sed_long_opt='1s/^\(-[[^=]]*\)=.*/\1/;q' --my_sed_long_arg='1s/^-[[^=]]*=//' -+ _LT_PROG_FUNCTION_REPLACE([func_lo2o], [dnl -+ case ${1} in -+ *.lo) func_lo2o_result=${1%.lo}.${objext} ;; -+ *) func_lo2o_result=${1} ;; -+ esac]) - --# func_opt_split --func_opt_split () --{ -- func_opt_split_opt=`$ECHO "${1}" | $SED "$my_sed_long_opt"` -- func_opt_split_arg=`$ECHO "${1}" | $SED "$my_sed_long_arg"` --} -+ _LT_PROG_FUNCTION_REPLACE([func_xform], [ func_xform_result=${1%.*}.lo]) - --# func_lo2o object --func_lo2o () --{ -- func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"` --} -+ _LT_PROG_FUNCTION_REPLACE([func_arith], [ func_arith_result=$(( $[*] ))]) - --# func_xform libobj-or-source --func_xform () --{ -- func_xform_result=`$ECHO "${1}" | $SED 's/\.[[^.]]*$/.lo/'` --} -+ _LT_PROG_FUNCTION_REPLACE([func_len], [ func_len_result=${#1}]) -+fi - --# func_arith arithmetic-term... --func_arith () --{ -- func_arith_result=`expr "$[@]"` --} -+if test x"$lt_shell_append" = xyes; then -+ _LT_PROG_FUNCTION_REPLACE([func_append], [ eval "${1}+=\\${2}"]) - --# func_len string --# STRING may not start with a hyphen. --func_len () --{ -- func_len_result=`expr "$[1]" : ".*" 2>/dev/null || echo $max_cmd_len` --} -+ _LT_PROG_FUNCTION_REPLACE([func_append_quoted], [dnl -+ func_quote_for_eval "${2}" -+dnl m4 expansion turns \\\\ into \\, and then the shell eval turns that into \ -+ eval "${1}+=\\\\ \\$func_quote_for_eval_result"]) - --_LT_EOF --esac -+ # Save a `func_append' function call where possible by direct use of '+=' -+ sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+ test 0 -eq $? || _lt_function_replace_fail=: -+else -+ # Save a `func_append' function call even when '+=' is not available -+ sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+ test 0 -eq $? || _lt_function_replace_fail=: -+fi - --case $lt_shell_append in -- yes) -- cat << \_LT_EOF >> "$cfgfile" -+if test x"$_lt_function_replace_fail" = x":"; then -+ AC_MSG_WARN([Unable to substitute extended shell functions in $ofile]) -+fi -+]) - --# func_append var value --# Append VALUE to the end of shell variable VAR. --func_append () --{ -- eval "$[1]+=\$[2]" --} --_LT_EOF -+# _LT_PATH_CONVERSION_FUNCTIONS -+# ----------------------------- -+# Determine which file name conversion functions should be used by -+# func_to_host_file (and, implicitly, by func_to_host_path). These are needed -+# for certain cross-compile configurations and native mingw. -+m4_defun([_LT_PATH_CONVERSION_FUNCTIONS], -+[AC_REQUIRE([AC_CANONICAL_HOST])dnl -+AC_REQUIRE([AC_CANONICAL_BUILD])dnl -+AC_MSG_CHECKING([how to convert $build file names to $host format]) -+AC_CACHE_VAL(lt_cv_to_host_file_cmd, -+[case $host in -+ *-*-mingw* ) -+ case $build in -+ *-*-mingw* ) # actually msys -+ lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 -+ ;; -+ *-*-cygwin* ) -+ lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 -+ ;; -+ * ) # otherwise, assume *nix -+ lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 -+ ;; -+ esac - ;; -- *) -- cat << \_LT_EOF >> "$cfgfile" -- --# func_append var value --# Append VALUE to the end of shell variable VAR. --func_append () --{ -- eval "$[1]=\$$[1]\$[2]" --} -- --_LT_EOF -+ *-*-cygwin* ) -+ case $build in -+ *-*-mingw* ) # actually msys -+ lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin -+ ;; -+ *-*-cygwin* ) -+ lt_cv_to_host_file_cmd=func_convert_file_noop -+ ;; -+ * ) # otherwise, assume *nix -+ lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin -+ ;; -+ esac - ;; -- esac -+ * ) # unhandled hosts (and "normal" native builds) -+ lt_cv_to_host_file_cmd=func_convert_file_noop -+ ;; -+esac -+]) -+to_host_file_cmd=$lt_cv_to_host_file_cmd -+AC_MSG_RESULT([$lt_cv_to_host_file_cmd]) -+_LT_DECL([to_host_file_cmd], [lt_cv_to_host_file_cmd], -+ [0], [convert $build file names to $host format])dnl -+ -+AC_MSG_CHECKING([how to convert $build file names to toolchain format]) -+AC_CACHE_VAL(lt_cv_to_tool_file_cmd, -+[#assume ordinary cross tools, or native build. -+lt_cv_to_tool_file_cmd=func_convert_file_noop -+case $host in -+ *-*-mingw* ) -+ case $build in -+ *-*-mingw* ) # actually msys -+ lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 -+ ;; -+ esac -+ ;; -+esac - ]) -+to_tool_file_cmd=$lt_cv_to_tool_file_cmd -+AC_MSG_RESULT([$lt_cv_to_tool_file_cmd]) -+_LT_DECL([to_tool_file_cmd], [lt_cv_to_tool_file_cmd], -+ [0], [convert $build files to toolchain format])dnl -+])# _LT_PATH_CONVERSION_FUNCTIONS -diff --git a/ltmain.sh b/ltmain.sh -index 9503ec8..70e856e 100644 ---- a/ltmain.sh -+++ b/ltmain.sh -@@ -1,10 +1,9 @@ --# Generated from ltmain.m4sh. - --# libtool (GNU libtool 1.3134 2009-11-29) 2.2.7a -+# libtool (GNU libtool) 2.4 - # Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996 - - # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, --# 2007, 2008, 2009 Free Software Foundation, Inc. -+# 2007, 2008, 2009, 2010 Free Software Foundation, Inc. - # This is free software; see the source for copying conditions. There is NO - # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - -@@ -38,7 +37,6 @@ - # -n, --dry-run display commands without modifying any files - # --features display basic configuration information and exit - # --mode=MODE use operation mode MODE --# --no-finish let install mode avoid finish commands - # --preserve-dup-deps don't remove duplicate dependency libraries - # --quiet, --silent don't print informational messages - # --no-quiet, --no-silent -@@ -71,17 +69,19 @@ - # compiler: $LTCC - # compiler flags: $LTCFLAGS - # linker: $LD (gnu? $with_gnu_ld) --# $progname: (GNU libtool 1.3134 2009-11-29) 2.2.7a -+# $progname: (GNU libtool) 2.4 - # automake: $automake_version - # autoconf: $autoconf_version - # - # Report bugs to <bug-libtool@gnu.org>. -+# GNU libtool home page: <http://www.gnu.org/software/libtool/>. -+# General help using GNU software: <http://www.gnu.org/gethelp/>. - - PROGRAM=libtool - PACKAGE=libtool --VERSION=2.2.7a --TIMESTAMP=" 1.3134 2009-11-29" --package_revision=1.3134 -+VERSION=2.4 -+TIMESTAMP="" -+package_revision=1.3293 - - # Be Bourne compatible - if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then -@@ -106,9 +106,6 @@ _LTECHO_EOF' - } - - # NLS nuisances: We save the old values to restore during execute mode. --# Only set LANG and LC_ALL to C if already set. --# These must not be set unconditionally because not all systems understand --# e.g. LANG=C (notably SCO). - lt_user_locale= - lt_safe_locale= - for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES -@@ -121,15 +118,13 @@ do - lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\" - fi" - done -+LC_ALL=C -+LANGUAGE=C -+export LANGUAGE LC_ALL - - $lt_unset CDPATH - - -- -- -- -- -- - # Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh - # is ksh but when the shell is invoked as "sh" and the current value of - # the _XPG environment variable is not equal to 1 (one), the special -@@ -140,7 +135,7 @@ progpath="$0" - - - : ${CP="cp -f"} --: ${ECHO=$as_echo} -+test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'} - : ${EGREP="/bin/grep -E"} - : ${FGREP="/bin/grep -F"} - : ${GREP="/bin/grep"} -@@ -149,7 +144,7 @@ progpath="$0" - : ${MKDIR="mkdir"} - : ${MV="mv -f"} - : ${RM="rm -f"} --: ${SED="/mount/endor/wildenhu/local-x86_64/bin/sed"} -+: ${SED="/bin/sed"} - : ${SHELL="${CONFIG_SHELL-/bin/sh}"} - : ${Xsed="$SED -e 1s/^X//"} - -@@ -169,6 +164,27 @@ IFS=" $lt_nl" - dirname="s,/[^/]*$,," - basename="s,^.*/,," - -+# func_dirname file append nondir_replacement -+# Compute the dirname of FILE. If nonempty, add APPEND to the result, -+# otherwise set result to NONDIR_REPLACEMENT. -+func_dirname () -+{ -+ func_dirname_result=`$ECHO "${1}" | $SED "$dirname"` -+ if test "X$func_dirname_result" = "X${1}"; then -+ func_dirname_result="${3}" -+ else -+ func_dirname_result="$func_dirname_result${2}" -+ fi -+} # func_dirname may be replaced by extended shell implementation -+ -+ -+# func_basename file -+func_basename () -+{ -+ func_basename_result=`$ECHO "${1}" | $SED "$basename"` -+} # func_basename may be replaced by extended shell implementation -+ -+ - # func_dirname_and_basename file append nondir_replacement - # perform func_basename and func_dirname in a single function - # call: -@@ -183,17 +199,31 @@ basename="s,^.*/,," - # those functions but instead duplicate the functionality here. - func_dirname_and_basename () - { -- # Extract subdirectory from the argument. -- func_dirname_result=`$ECHO "${1}" | $SED -e "$dirname"` -- if test "X$func_dirname_result" = "X${1}"; then -- func_dirname_result="${3}" -- else -- func_dirname_result="$func_dirname_result${2}" -- fi -- func_basename_result=`$ECHO "${1}" | $SED -e "$basename"` --} -+ # Extract subdirectory from the argument. -+ func_dirname_result=`$ECHO "${1}" | $SED -e "$dirname"` -+ if test "X$func_dirname_result" = "X${1}"; then -+ func_dirname_result="${3}" -+ else -+ func_dirname_result="$func_dirname_result${2}" -+ fi -+ func_basename_result=`$ECHO "${1}" | $SED -e "$basename"` -+} # func_dirname_and_basename may be replaced by extended shell implementation -+ -+ -+# func_stripname prefix suffix name -+# strip PREFIX and SUFFIX off of NAME. -+# PREFIX and SUFFIX must not contain globbing or regex special -+# characters, hashes, percent signs, but SUFFIX may contain a leading -+# dot (in which case that matches only a dot). -+# func_strip_suffix prefix name -+func_stripname () -+{ -+ case ${2} in -+ .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; -+ *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; -+ esac -+} # func_stripname may be replaced by extended shell implementation - --# Generated shell functions inserted here. - - # These SED scripts presuppose an absolute path with a trailing slash. - pathcar='s,^/\([^/]*\).*$,\1,' -@@ -376,6 +406,15 @@ sed_quote_subst='s/\([`"$\\]\)/\\\1/g' - # Same as above, but do not quote variable references. - double_quote_subst='s/\(["`\\]\)/\\\1/g' - -+# Sed substitution that turns a string into a regex matching for the -+# string literally. -+sed_make_literal_regex='s,[].[^$\\*\/],\\&,g' -+ -+# Sed substitution that converts a w32 file name or path -+# which contains forward slashes, into one that contains -+# (escaped) backslashes. A very naive implementation. -+lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' -+ - # Re-`\' parameter expansions in output of double_quote_subst that were - # `\'-ed in input to the same. If an odd number of `\' preceded a '$' - # in input to double_quote_subst, that '$' was protected from expansion. -@@ -404,7 +443,7 @@ opt_warning=: - # name if it has been set yet. - func_echo () - { -- $ECHO "$progname${mode+: }$mode: $*" -+ $ECHO "$progname: ${opt_mode+$opt_mode: }$*" - } - - # func_verbose arg... -@@ -430,14 +469,14 @@ func_echo_all () - # Echo program name prefixed message to standard error. - func_error () - { -- $ECHO "$progname${mode+: }$mode: "${1+"$@"} 1>&2 -+ $ECHO "$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2 - } - - # func_warning arg... - # Echo program name prefixed warning message to standard error. - func_warning () - { -- $opt_warning && $ECHO "$progname${mode+: }$mode: warning: "${1+"$@"} 1>&2 -+ $opt_warning && $ECHO "$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2 - - # bash bug again: - : -@@ -656,19 +695,35 @@ func_show_eval_locale () - fi - } - -- -- -+# func_tr_sh -+# Turn $1 into a string suitable for a shell variable name. -+# Result is stored in $func_tr_sh_result. All characters -+# not in the set a-zA-Z0-9_ are replaced with '_'. Further, -+# if $1 begins with a digit, a '_' is prepended as well. -+func_tr_sh () -+{ -+ case $1 in -+ [0-9]* | *[!a-zA-Z0-9_]*) -+ func_tr_sh_result=`$ECHO "$1" | $SED 's/^\([0-9]\)/_\1/; s/[^a-zA-Z0-9_]/_/g'` -+ ;; -+ * ) -+ func_tr_sh_result=$1 -+ ;; -+ esac -+} - - - # func_version - # Echo version message to standard output and exit. - func_version () - { -+ $opt_debug -+ - $SED -n '/(C)/!b go - :more - /\./!{ - N -- s/\n# // -+ s/\n# / / - b more - } - :go -@@ -685,7 +740,9 @@ func_version () - # Echo short help message to standard output and exit. - func_usage () - { -- $SED -n '/^# Usage:/,/^# *-h/ { -+ $opt_debug -+ -+ $SED -n '/^# Usage:/,/^# *.*--help/ { - s/^# // - s/^# *$// - s/\$progname/'$progname'/ -@@ -701,7 +758,10 @@ func_usage () - # unless 'noexit' is passed as argument. - func_help () - { -+ $opt_debug -+ - $SED -n '/^# Usage:/,/# Report bugs to/ { -+ :print - s/^# // - s/^# *$// - s*\$progname*'$progname'* -@@ -714,7 +774,11 @@ func_help () - s/\$automake_version/'"`(automake --version) 2>/dev/null |$SED 1q`"'/ - s/\$autoconf_version/'"`(autoconf --version) 2>/dev/null |$SED 1q`"'/ - p -- }' < "$progpath" -+ d -+ } -+ /^# .* home page:/b print -+ /^# General help using/b print -+ ' < "$progpath" - ret=$? - if test -z "$1"; then - exit $ret -@@ -726,12 +790,39 @@ func_help () - # exit_cmd. - func_missing_arg () - { -- func_error "missing argument for $1" -+ $opt_debug -+ -+ func_error "missing argument for $1." - exit_cmd=exit - } - --exit_cmd=: - -+# func_split_short_opt shortopt -+# Set func_split_short_opt_name and func_split_short_opt_arg shell -+# variables after splitting SHORTOPT after the 2nd character. -+func_split_short_opt () -+{ -+ my_sed_short_opt='1s/^\(..\).*$/\1/;q' -+ my_sed_short_rest='1s/^..\(.*\)$/\1/;q' -+ -+ func_split_short_opt_name=`$ECHO "$1" | $SED "$my_sed_short_opt"` -+ func_split_short_opt_arg=`$ECHO "$1" | $SED "$my_sed_short_rest"` -+} # func_split_short_opt may be replaced by extended shell implementation -+ -+ -+# func_split_long_opt longopt -+# Set func_split_long_opt_name and func_split_long_opt_arg shell -+# variables after splitting LONGOPT at the `=' sign. -+func_split_long_opt () -+{ -+ my_sed_long_opt='1s/^\(--[^=]*\)=.*/\1/;q' -+ my_sed_long_arg='1s/^--[^=]*=//' -+ -+ func_split_long_opt_name=`$ECHO "$1" | $SED "$my_sed_long_opt"` -+ func_split_long_opt_arg=`$ECHO "$1" | $SED "$my_sed_long_arg"` -+} # func_split_long_opt may be replaced by extended shell implementation -+ -+exit_cmd=: - - - -@@ -741,26 +832,64 @@ magic="%%%MAGIC variable%%%" - magic_exe="%%%MAGIC EXE variable%%%" - - # Global variables. --# $mode is unset - nonopt= --execute_dlfiles= - preserve_args= - lo2o="s/\\.lo\$/.${objext}/" - o2lo="s/\\.${objext}\$/.lo/" - extracted_archives= - extracted_serial=0 - --opt_dry_run=false --opt_finish=: --opt_duplicate_deps=false --opt_silent=false --opt_debug=: -- - # If this variable is set in any of the actions, the command in it - # will be execed at the end. This prevents here-documents from being - # left over by shells. - exec_cmd= - -+# func_append var value -+# Append VALUE to the end of shell variable VAR. -+func_append () -+{ -+ eval "${1}=\$${1}\${2}" -+} # func_append may be replaced by extended shell implementation -+ -+# func_append_quoted var value -+# Quote VALUE and append to the end of shell variable VAR, separated -+# by a space. -+func_append_quoted () -+{ -+ func_quote_for_eval "${2}" -+ eval "${1}=\$${1}\\ \$func_quote_for_eval_result" -+} # func_append_quoted may be replaced by extended shell implementation -+ -+ -+# func_arith arithmetic-term... -+func_arith () -+{ -+ func_arith_result=`expr "${@}"` -+} # func_arith may be replaced by extended shell implementation -+ -+ -+# func_len string -+# STRING may not start with a hyphen. -+func_len () -+{ -+ func_len_result=`expr "${1}" : ".*" 2>/dev/null || echo $max_cmd_len` -+} # func_len may be replaced by extended shell implementation -+ -+ -+# func_lo2o object -+func_lo2o () -+{ -+ func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"` -+} # func_lo2o may be replaced by extended shell implementation -+ -+ -+# func_xform libobj-or-source -+func_xform () -+{ -+ func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'` -+} # func_xform may be replaced by extended shell implementation -+ -+ - # func_fatal_configuration arg... - # Echo program name prefixed message to standard error, followed by - # a configuration failure hint, and exit. -@@ -850,130 +979,204 @@ func_enable_tag () - esac - } - --# Parse options once, thoroughly. This comes as soon as possible in --# the script to make things like `libtool --version' happen quickly. -+# func_check_version_match -+# Ensure that we are using m4 macros, and libtool script from the same -+# release of libtool. -+func_check_version_match () - { -+ if test "$package_revision" != "$macro_revision"; then -+ if test "$VERSION" != "$macro_version"; then -+ if test -z "$macro_version"; then -+ cat >&2 <<_LT_EOF -+$progname: Version mismatch error. This is $PACKAGE $VERSION, but the -+$progname: definition of this LT_INIT comes from an older release. -+$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION -+$progname: and run autoconf again. -+_LT_EOF -+ else -+ cat >&2 <<_LT_EOF -+$progname: Version mismatch error. This is $PACKAGE $VERSION, but the -+$progname: definition of this LT_INIT comes from $PACKAGE $macro_version. -+$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION -+$progname: and run autoconf again. -+_LT_EOF -+ fi -+ else -+ cat >&2 <<_LT_EOF -+$progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, -+$progname: but the definition of this LT_INIT comes from revision $macro_revision. -+$progname: You should recreate aclocal.m4 with macros from revision $package_revision -+$progname: of $PACKAGE $VERSION and run autoconf again. -+_LT_EOF -+ fi - -- # Shorthand for --mode=foo, only valid as the first argument -- case $1 in -- clean|clea|cle|cl) -- shift; set dummy --mode clean ${1+"$@"}; shift -- ;; -- compile|compil|compi|comp|com|co|c) -- shift; set dummy --mode compile ${1+"$@"}; shift -- ;; -- execute|execut|execu|exec|exe|ex|e) -- shift; set dummy --mode execute ${1+"$@"}; shift -- ;; -- finish|finis|fini|fin|fi|f) -- shift; set dummy --mode finish ${1+"$@"}; shift -- ;; -- install|instal|insta|inst|ins|in|i) -- shift; set dummy --mode install ${1+"$@"}; shift -- ;; -- link|lin|li|l) -- shift; set dummy --mode link ${1+"$@"}; shift -- ;; -- uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) -- shift; set dummy --mode uninstall ${1+"$@"}; shift -- ;; -- esac -+ exit $EXIT_MISMATCH -+ fi -+} -+ -+ -+# Shorthand for --mode=foo, only valid as the first argument -+case $1 in -+clean|clea|cle|cl) -+ shift; set dummy --mode clean ${1+"$@"}; shift -+ ;; -+compile|compil|compi|comp|com|co|c) -+ shift; set dummy --mode compile ${1+"$@"}; shift -+ ;; -+execute|execut|execu|exec|exe|ex|e) -+ shift; set dummy --mode execute ${1+"$@"}; shift -+ ;; -+finish|finis|fini|fin|fi|f) -+ shift; set dummy --mode finish ${1+"$@"}; shift -+ ;; -+install|instal|insta|inst|ins|in|i) -+ shift; set dummy --mode install ${1+"$@"}; shift -+ ;; -+link|lin|li|l) -+ shift; set dummy --mode link ${1+"$@"}; shift -+ ;; -+uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) -+ shift; set dummy --mode uninstall ${1+"$@"}; shift -+ ;; -+esac - -- # Parse non-mode specific arguments: -- while test "$#" -gt 0; do -+ -+ -+# Option defaults: -+opt_debug=: -+opt_dry_run=false -+opt_config=false -+opt_preserve_dup_deps=false -+opt_features=false -+opt_finish=false -+opt_help=false -+opt_help_all=false -+opt_silent=: -+opt_verbose=: -+opt_silent=false -+opt_verbose=false -+ -+ -+# Parse options once, thoroughly. This comes as soon as possible in the -+# script to make things like `--version' happen as quickly as we can. -+{ -+ # this just eases exit handling -+ while test $# -gt 0; do - opt="$1" - shift -- - case $opt in -- --config) func_config ;; -- -- --debug) preserve_args="$preserve_args $opt" -+ --debug|-x) opt_debug='set -x' - func_echo "enabling shell trace mode" -- opt_debug='set -x' - $opt_debug - ;; -- -- -dlopen) test "$#" -eq 0 && func_missing_arg "$opt" && break -- execute_dlfiles="$execute_dlfiles $1" -- shift -+ --dry-run|--dryrun|-n) -+ opt_dry_run=: - ;; -- -- --dry-run | -n) opt_dry_run=: ;; -- --features) func_features ;; -- --finish) mode="finish" ;; -- --no-finish) opt_finish=false ;; -- -- --mode) test "$#" -eq 0 && func_missing_arg "$opt" && break -- case $1 in -- # Valid mode arguments: -- clean) ;; -- compile) ;; -- execute) ;; -- finish) ;; -- install) ;; -- link) ;; -- relink) ;; -- uninstall) ;; -- -- # Catch anything else as an error -- *) func_error "invalid argument for $opt" -- exit_cmd=exit -- break -- ;; -- esac -- -- mode="$1" -+ --config) -+ opt_config=: -+func_config -+ ;; -+ --dlopen|-dlopen) -+ optarg="$1" -+ opt_dlopen="${opt_dlopen+$opt_dlopen -+}$optarg" - shift - ;; -- - --preserve-dup-deps) -- opt_duplicate_deps=: ;; -- -- --quiet|--silent) preserve_args="$preserve_args $opt" -- opt_silent=: -- opt_verbose=false -+ opt_preserve_dup_deps=: - ;; -- -- --no-quiet|--no-silent) -- preserve_args="$preserve_args $opt" -- opt_silent=false -+ --features) -+ opt_features=: -+func_features - ;; -- -- --verbose| -v) preserve_args="$preserve_args $opt" -+ --finish) -+ opt_finish=: -+set dummy --mode finish ${1+"$@"}; shift -+ ;; -+ --help) -+ opt_help=: -+ ;; -+ --help-all) -+ opt_help_all=: -+opt_help=': help-all' -+ ;; -+ --mode) -+ test $# = 0 && func_missing_arg $opt && break -+ optarg="$1" -+ opt_mode="$optarg" -+case $optarg in -+ # Valid mode arguments: -+ clean|compile|execute|finish|install|link|relink|uninstall) ;; -+ -+ # Catch anything else as an error -+ *) func_error "invalid argument for $opt" -+ exit_cmd=exit -+ break -+ ;; -+esac -+ shift -+ ;; -+ --no-silent|--no-quiet) - opt_silent=false -- opt_verbose=: -+func_append preserve_args " $opt" - ;; -- -- --no-verbose) preserve_args="$preserve_args $opt" -+ --no-verbose) - opt_verbose=false -+func_append preserve_args " $opt" - ;; -- -- --tag) test "$#" -eq 0 && func_missing_arg "$opt" && break -- preserve_args="$preserve_args $opt $1" -- func_enable_tag "$1" # tagname is set here -+ --silent|--quiet) -+ opt_silent=: -+func_append preserve_args " $opt" -+ opt_verbose=false -+ ;; -+ --verbose|-v) -+ opt_verbose=: -+func_append preserve_args " $opt" -+opt_silent=false -+ ;; -+ --tag) -+ test $# = 0 && func_missing_arg $opt && break -+ optarg="$1" -+ opt_tag="$optarg" -+func_append preserve_args " $opt $optarg" -+func_enable_tag "$optarg" - shift - ;; - -+ -\?|-h) func_usage ;; -+ --help) func_help ;; -+ --version) func_version ;; -+ - # Separate optargs to long options: -- -dlopen=*|--mode=*|--tag=*) -- func_opt_split "$opt" -- set dummy "$func_opt_split_opt" "$func_opt_split_arg" ${1+"$@"} -+ --*=*) -+ func_split_long_opt "$opt" -+ set dummy "$func_split_long_opt_name" "$func_split_long_opt_arg" ${1+"$@"} - shift - ;; - -- -\?|-h) func_usage ;; -- --help) opt_help=: ;; -- --help-all) opt_help=': help-all' ;; -- --version) func_version ;; -- -- -*) func_fatal_help "unrecognized option \`$opt'" ;; -- -- *) nonopt="$opt" -- break -+ # Separate non-argument short options: -+ -\?*|-h*|-n*|-v*) -+ func_split_short_opt "$opt" -+ set dummy "$func_split_short_opt_name" "-$func_split_short_opt_arg" ${1+"$@"} -+ shift - ;; -+ -+ --) break ;; -+ -*) func_fatal_help "unrecognized option \`$opt'" ;; -+ *) set dummy "$opt" ${1+"$@"}; shift; break ;; - esac - done - -+ # Validate options: -+ -+ # save first non-option argument -+ if test "$#" -gt 0; then -+ nonopt="$opt" -+ shift -+ fi -+ -+ # preserve --debug -+ test "$opt_debug" = : || func_append preserve_args " --debug" - - case $host in - *cygwin* | *mingw* | *pw32* | *cegcc* | *solaris2* ) -@@ -981,82 +1184,44 @@ func_enable_tag () - opt_duplicate_compiler_generated_deps=: - ;; - *) -- opt_duplicate_compiler_generated_deps=$opt_duplicate_deps -+ opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps - ;; - esac - -- # Having warned about all mis-specified options, bail out if -- # anything was wrong. -- $exit_cmd $EXIT_FAILURE --} -+ $opt_help || { -+ # Sanity checks first: -+ func_check_version_match - --# func_check_version_match --# Ensure that we are using m4 macros, and libtool script from the same --# release of libtool. --func_check_version_match () --{ -- if test "$package_revision" != "$macro_revision"; then -- if test "$VERSION" != "$macro_version"; then -- if test -z "$macro_version"; then -- cat >&2 <<_LT_EOF --$progname: Version mismatch error. This is $PACKAGE $VERSION, but the --$progname: definition of this LT_INIT comes from an older release. --$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION --$progname: and run autoconf again. --_LT_EOF -- else -- cat >&2 <<_LT_EOF --$progname: Version mismatch error. This is $PACKAGE $VERSION, but the --$progname: definition of this LT_INIT comes from $PACKAGE $macro_version. --$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION --$progname: and run autoconf again. --_LT_EOF -- fi -- else -- cat >&2 <<_LT_EOF --$progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, --$progname: but the definition of this LT_INIT comes from revision $macro_revision. --$progname: You should recreate aclocal.m4 with macros from revision $package_revision --$progname: of $PACKAGE $VERSION and run autoconf again. --_LT_EOF -+ if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then -+ func_fatal_configuration "not configured to build any kind of library" - fi - -- exit $EXIT_MISMATCH -- fi --} -- -+ # Darwin sucks -+ eval std_shrext=\"$shrext_cmds\" - --## ----------- ## --## Main. ## --## ----------- ## -- --$opt_help || { -- # Sanity checks first: -- func_check_version_match -- -- if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then -- func_fatal_configuration "not configured to build any kind of library" -- fi -+ # Only execute mode is allowed to have -dlopen flags. -+ if test -n "$opt_dlopen" && test "$opt_mode" != execute; then -+ func_error "unrecognized option \`-dlopen'" -+ $ECHO "$help" 1>&2 -+ exit $EXIT_FAILURE -+ fi - -- test -z "$mode" && func_fatal_error "error: you must specify a MODE." -+ # Change the help message to a mode-specific one. -+ generic_help="$help" -+ help="Try \`$progname --help --mode=$opt_mode' for more information." -+ } - - -- # Darwin sucks -- eval "std_shrext=\"$shrext_cmds\"" -+ # Bail if the options were screwed -+ $exit_cmd $EXIT_FAILURE -+} - - -- # Only execute mode is allowed to have -dlopen flags. -- if test -n "$execute_dlfiles" && test "$mode" != execute; then -- func_error "unrecognized option \`-dlopen'" -- $ECHO "$help" 1>&2 -- exit $EXIT_FAILURE -- fi - -- # Change the help message to a mode-specific one. -- generic_help="$help" -- help="Try \`$progname --help --mode=$mode' for more information." --} - -+## ----------- ## -+## Main. ## -+## ----------- ## - - # func_lalib_p file - # True iff FILE is a libtool `.la' library or `.lo' object file. -@@ -1121,12 +1286,9 @@ func_ltwrapper_executable_p () - # temporary ltwrapper_script. - func_ltwrapper_scriptname () - { -- func_ltwrapper_scriptname_result="" -- if func_ltwrapper_executable_p "$1"; then -- func_dirname_and_basename "$1" "" "." -- func_stripname '' '.exe' "$func_basename_result" -- func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper" -- fi -+ func_dirname_and_basename "$1" "" "." -+ func_stripname '' '.exe' "$func_basename_result" -+ func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper" - } - - # func_ltwrapper_p file -@@ -1149,7 +1311,7 @@ func_execute_cmds () - save_ifs=$IFS; IFS='~' - for cmd in $1; do - IFS=$save_ifs -- eval "cmd=\"$cmd\"" -+ eval cmd=\"$cmd\" - func_show_eval "$cmd" "${2-:}" - done - IFS=$save_ifs -@@ -1172,6 +1334,37 @@ func_source () - } - - -+# func_resolve_sysroot PATH -+# Replace a leading = in PATH with a sysroot. Store the result into -+# func_resolve_sysroot_result -+func_resolve_sysroot () -+{ -+ func_resolve_sysroot_result=$1 -+ case $func_resolve_sysroot_result in -+ =*) -+ func_stripname '=' '' "$func_resolve_sysroot_result" -+ func_resolve_sysroot_result=$lt_sysroot$func_stripname_result -+ ;; -+ esac -+} -+ -+# func_replace_sysroot PATH -+# If PATH begins with the sysroot, replace it with = and -+# store the result into func_replace_sysroot_result. -+func_replace_sysroot () -+{ -+ case "$lt_sysroot:$1" in -+ ?*:"$lt_sysroot"*) -+ func_stripname "$lt_sysroot" '' "$1" -+ func_replace_sysroot_result="=$func_stripname_result" -+ ;; -+ *) -+ # Including no sysroot. -+ func_replace_sysroot_result=$1 -+ ;; -+ esac -+} -+ - # func_infer_tag arg - # Infer tagged configuration to use if any are available and - # if one wasn't chosen via the "--tag" command line option. -@@ -1184,8 +1377,7 @@ func_infer_tag () - if test -n "$available_tags" && test -z "$tagname"; then - CC_quoted= - for arg in $CC; do -- func_quote_for_eval "$arg" -- CC_quoted="$CC_quoted $func_quote_for_eval_result" -+ func_append_quoted CC_quoted "$arg" - done - CC_expanded=`func_echo_all $CC` - CC_quoted_expanded=`func_echo_all $CC_quoted` -@@ -1204,8 +1396,7 @@ func_infer_tag () - CC_quoted= - for arg in $CC; do - # Double-quote args containing other shell metacharacters. -- func_quote_for_eval "$arg" -- CC_quoted="$CC_quoted $func_quote_for_eval_result" -+ func_append_quoted CC_quoted "$arg" - done - CC_expanded=`func_echo_all $CC` - CC_quoted_expanded=`func_echo_all $CC_quoted` -@@ -1274,6 +1465,486 @@ EOF - } - } - -+ -+################################################## -+# FILE NAME AND PATH CONVERSION HELPER FUNCTIONS # -+################################################## -+ -+# func_convert_core_file_wine_to_w32 ARG -+# Helper function used by file name conversion functions when $build is *nix, -+# and $host is mingw, cygwin, or some other w32 environment. Relies on a -+# correctly configured wine environment available, with the winepath program -+# in $build's $PATH. -+# -+# ARG is the $build file name to be converted to w32 format. -+# Result is available in $func_convert_core_file_wine_to_w32_result, and will -+# be empty on error (or when ARG is empty) -+func_convert_core_file_wine_to_w32 () -+{ -+ $opt_debug -+ func_convert_core_file_wine_to_w32_result="$1" -+ if test -n "$1"; then -+ # Unfortunately, winepath does not exit with a non-zero error code, so we -+ # are forced to check the contents of stdout. On the other hand, if the -+ # command is not found, the shell will set an exit code of 127 and print -+ # *an error message* to stdout. So we must check for both error code of -+ # zero AND non-empty stdout, which explains the odd construction: -+ func_convert_core_file_wine_to_w32_tmp=`winepath -w "$1" 2>/dev/null` -+ if test "$?" -eq 0 && test -n "${func_convert_core_file_wine_to_w32_tmp}"; then -+ func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" | -+ $SED -e "$lt_sed_naive_backslashify"` -+ else -+ func_convert_core_file_wine_to_w32_result= -+ fi -+ fi -+} -+# end: func_convert_core_file_wine_to_w32 -+ -+ -+# func_convert_core_path_wine_to_w32 ARG -+# Helper function used by path conversion functions when $build is *nix, and -+# $host is mingw, cygwin, or some other w32 environment. Relies on a correctly -+# configured wine environment available, with the winepath program in $build's -+# $PATH. Assumes ARG has no leading or trailing path separator characters. -+# -+# ARG is path to be converted from $build format to win32. -+# Result is available in $func_convert_core_path_wine_to_w32_result. -+# Unconvertible file (directory) names in ARG are skipped; if no directory names -+# are convertible, then the result may be empty. -+func_convert_core_path_wine_to_w32 () -+{ -+ $opt_debug -+ # unfortunately, winepath doesn't convert paths, only file names -+ func_convert_core_path_wine_to_w32_result="" -+ if test -n "$1"; then -+ oldIFS=$IFS -+ IFS=: -+ for func_convert_core_path_wine_to_w32_f in $1; do -+ IFS=$oldIFS -+ func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f" -+ if test -n "$func_convert_core_file_wine_to_w32_result" ; then -+ if test -z "$func_convert_core_path_wine_to_w32_result"; then -+ func_convert_core_path_wine_to_w32_result="$func_convert_core_file_wine_to_w32_result" -+ else -+ func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result" -+ fi -+ fi -+ done -+ IFS=$oldIFS -+ fi -+} -+# end: func_convert_core_path_wine_to_w32 -+ -+ -+# func_cygpath ARGS... -+# Wrapper around calling the cygpath program via LT_CYGPATH. This is used when -+# when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2) -+# $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or -+# (2), returns the Cygwin file name or path in func_cygpath_result (input -+# file name or path is assumed to be in w32 format, as previously converted -+# from $build's *nix or MSYS format). In case (3), returns the w32 file name -+# or path in func_cygpath_result (input file name or path is assumed to be in -+# Cygwin format). Returns an empty string on error. -+# -+# ARGS are passed to cygpath, with the last one being the file name or path to -+# be converted. -+# -+# Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH -+# environment variable; do not put it in $PATH. -+func_cygpath () -+{ -+ $opt_debug -+ if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then -+ func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null` -+ if test "$?" -ne 0; then -+ # on failure, ensure result is empty -+ func_cygpath_result= -+ fi -+ else -+ func_cygpath_result= -+ func_error "LT_CYGPATH is empty or specifies non-existent file: \`$LT_CYGPATH'" -+ fi -+} -+#end: func_cygpath -+ -+ -+# func_convert_core_msys_to_w32 ARG -+# Convert file name or path ARG from MSYS format to w32 format. Return -+# result in func_convert_core_msys_to_w32_result. -+func_convert_core_msys_to_w32 () -+{ -+ $opt_debug -+ # awkward: cmd appends spaces to result -+ func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null | -+ $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"` -+} -+#end: func_convert_core_msys_to_w32 -+ -+ -+# func_convert_file_check ARG1 ARG2 -+# Verify that ARG1 (a file name in $build format) was converted to $host -+# format in ARG2. Otherwise, emit an error message, but continue (resetting -+# func_to_host_file_result to ARG1). -+func_convert_file_check () -+{ -+ $opt_debug -+ if test -z "$2" && test -n "$1" ; then -+ func_error "Could not determine host file name corresponding to" -+ func_error " \`$1'" -+ func_error "Continuing, but uninstalled executables may not work." -+ # Fallback: -+ func_to_host_file_result="$1" -+ fi -+} -+# end func_convert_file_check -+ -+ -+# func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH -+# Verify that FROM_PATH (a path in $build format) was converted to $host -+# format in TO_PATH. Otherwise, emit an error message, but continue, resetting -+# func_to_host_file_result to a simplistic fallback value (see below). -+func_convert_path_check () -+{ -+ $opt_debug -+ if test -z "$4" && test -n "$3"; then -+ func_error "Could not determine the host path corresponding to" -+ func_error " \`$3'" -+ func_error "Continuing, but uninstalled executables may not work." -+ # Fallback. This is a deliberately simplistic "conversion" and -+ # should not be "improved". See libtool.info. -+ if test "x$1" != "x$2"; then -+ lt_replace_pathsep_chars="s|$1|$2|g" -+ func_to_host_path_result=`echo "$3" | -+ $SED -e "$lt_replace_pathsep_chars"` -+ else -+ func_to_host_path_result="$3" -+ fi -+ fi -+} -+# end func_convert_path_check -+ -+ -+# func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG -+# Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT -+# and appending REPL if ORIG matches BACKPAT. -+func_convert_path_front_back_pathsep () -+{ -+ $opt_debug -+ case $4 in -+ $1 ) func_to_host_path_result="$3$func_to_host_path_result" -+ ;; -+ esac -+ case $4 in -+ $2 ) func_append func_to_host_path_result "$3" -+ ;; -+ esac -+} -+# end func_convert_path_front_back_pathsep -+ -+ -+################################################## -+# $build to $host FILE NAME CONVERSION FUNCTIONS # -+################################################## -+# invoked via `$to_host_file_cmd ARG' -+# -+# In each case, ARG is the path to be converted from $build to $host format. -+# Result will be available in $func_to_host_file_result. -+ -+ -+# func_to_host_file ARG -+# Converts the file name ARG from $build format to $host format. Return result -+# in func_to_host_file_result. -+func_to_host_file () -+{ -+ $opt_debug -+ $to_host_file_cmd "$1" -+} -+# end func_to_host_file -+ -+ -+# func_to_tool_file ARG LAZY -+# converts the file name ARG from $build format to toolchain format. Return -+# result in func_to_tool_file_result. If the conversion in use is listed -+# in (the comma separated) LAZY, no conversion takes place. -+func_to_tool_file () -+{ -+ $opt_debug -+ case ,$2, in -+ *,"$to_tool_file_cmd",*) -+ func_to_tool_file_result=$1 -+ ;; -+ *) -+ $to_tool_file_cmd "$1" -+ func_to_tool_file_result=$func_to_host_file_result -+ ;; -+ esac -+} -+# end func_to_tool_file -+ -+ -+# func_convert_file_noop ARG -+# Copy ARG to func_to_host_file_result. -+func_convert_file_noop () -+{ -+ func_to_host_file_result="$1" -+} -+# end func_convert_file_noop -+ -+ -+# func_convert_file_msys_to_w32 ARG -+# Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic -+# conversion to w32 is not available inside the cwrapper. Returns result in -+# func_to_host_file_result. -+func_convert_file_msys_to_w32 () -+{ -+ $opt_debug -+ func_to_host_file_result="$1" -+ if test -n "$1"; then -+ func_convert_core_msys_to_w32 "$1" -+ func_to_host_file_result="$func_convert_core_msys_to_w32_result" -+ fi -+ func_convert_file_check "$1" "$func_to_host_file_result" -+} -+# end func_convert_file_msys_to_w32 -+ -+ -+# func_convert_file_cygwin_to_w32 ARG -+# Convert file name ARG from Cygwin to w32 format. Returns result in -+# func_to_host_file_result. -+func_convert_file_cygwin_to_w32 () -+{ -+ $opt_debug -+ func_to_host_file_result="$1" -+ if test -n "$1"; then -+ # because $build is cygwin, we call "the" cygpath in $PATH; no need to use -+ # LT_CYGPATH in this case. -+ func_to_host_file_result=`cygpath -m "$1"` -+ fi -+ func_convert_file_check "$1" "$func_to_host_file_result" -+} -+# end func_convert_file_cygwin_to_w32 -+ -+ -+# func_convert_file_nix_to_w32 ARG -+# Convert file name ARG from *nix to w32 format. Requires a wine environment -+# and a working winepath. Returns result in func_to_host_file_result. -+func_convert_file_nix_to_w32 () -+{ -+ $opt_debug -+ func_to_host_file_result="$1" -+ if test -n "$1"; then -+ func_convert_core_file_wine_to_w32 "$1" -+ func_to_host_file_result="$func_convert_core_file_wine_to_w32_result" -+ fi -+ func_convert_file_check "$1" "$func_to_host_file_result" -+} -+# end func_convert_file_nix_to_w32 -+ -+ -+# func_convert_file_msys_to_cygwin ARG -+# Convert file name ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. -+# Returns result in func_to_host_file_result. -+func_convert_file_msys_to_cygwin () -+{ -+ $opt_debug -+ func_to_host_file_result="$1" -+ if test -n "$1"; then -+ func_convert_core_msys_to_w32 "$1" -+ func_cygpath -u "$func_convert_core_msys_to_w32_result" -+ func_to_host_file_result="$func_cygpath_result" -+ fi -+ func_convert_file_check "$1" "$func_to_host_file_result" -+} -+# end func_convert_file_msys_to_cygwin -+ -+ -+# func_convert_file_nix_to_cygwin ARG -+# Convert file name ARG from *nix to Cygwin format. Requires Cygwin installed -+# in a wine environment, working winepath, and LT_CYGPATH set. Returns result -+# in func_to_host_file_result. -+func_convert_file_nix_to_cygwin () -+{ -+ $opt_debug -+ func_to_host_file_result="$1" -+ if test -n "$1"; then -+ # convert from *nix to w32, then use cygpath to convert from w32 to cygwin. -+ func_convert_core_file_wine_to_w32 "$1" -+ func_cygpath -u "$func_convert_core_file_wine_to_w32_result" -+ func_to_host_file_result="$func_cygpath_result" -+ fi -+ func_convert_file_check "$1" "$func_to_host_file_result" -+} -+# end func_convert_file_nix_to_cygwin -+ -+ -+############################################# -+# $build to $host PATH CONVERSION FUNCTIONS # -+############################################# -+# invoked via `$to_host_path_cmd ARG' -+# -+# In each case, ARG is the path to be converted from $build to $host format. -+# The result will be available in $func_to_host_path_result. -+# -+# Path separators are also converted from $build format to $host format. If -+# ARG begins or ends with a path separator character, it is preserved (but -+# converted to $host format) on output. -+# -+# All path conversion functions are named using the following convention: -+# file name conversion function : func_convert_file_X_to_Y () -+# path conversion function : func_convert_path_X_to_Y () -+# where, for any given $build/$host combination the 'X_to_Y' value is the -+# same. If conversion functions are added for new $build/$host combinations, -+# the two new functions must follow this pattern, or func_init_to_host_path_cmd -+# will break. -+ -+ -+# func_init_to_host_path_cmd -+# Ensures that function "pointer" variable $to_host_path_cmd is set to the -+# appropriate value, based on the value of $to_host_file_cmd. -+to_host_path_cmd= -+func_init_to_host_path_cmd () -+{ -+ $opt_debug -+ if test -z "$to_host_path_cmd"; then -+ func_stripname 'func_convert_file_' '' "$to_host_file_cmd" -+ to_host_path_cmd="func_convert_path_${func_stripname_result}" -+ fi -+} -+ -+ -+# func_to_host_path ARG -+# Converts the path ARG from $build format to $host format. Return result -+# in func_to_host_path_result. -+func_to_host_path () -+{ -+ $opt_debug -+ func_init_to_host_path_cmd -+ $to_host_path_cmd "$1" -+} -+# end func_to_host_path -+ -+ -+# func_convert_path_noop ARG -+# Copy ARG to func_to_host_path_result. -+func_convert_path_noop () -+{ -+ func_to_host_path_result="$1" -+} -+# end func_convert_path_noop -+ -+ -+# func_convert_path_msys_to_w32 ARG -+# Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic -+# conversion to w32 is not available inside the cwrapper. Returns result in -+# func_to_host_path_result. -+func_convert_path_msys_to_w32 () -+{ -+ $opt_debug -+ func_to_host_path_result="$1" -+ if test -n "$1"; then -+ # Remove leading and trailing path separator characters from ARG. MSYS -+ # behavior is inconsistent here; cygpath turns them into '.;' and ';.'; -+ # and winepath ignores them completely. -+ func_stripname : : "$1" -+ func_to_host_path_tmp1=$func_stripname_result -+ func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" -+ func_to_host_path_result="$func_convert_core_msys_to_w32_result" -+ func_convert_path_check : ";" \ -+ "$func_to_host_path_tmp1" "$func_to_host_path_result" -+ func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" -+ fi -+} -+# end func_convert_path_msys_to_w32 -+ -+ -+# func_convert_path_cygwin_to_w32 ARG -+# Convert path ARG from Cygwin to w32 format. Returns result in -+# func_to_host_file_result. -+func_convert_path_cygwin_to_w32 () -+{ -+ $opt_debug -+ func_to_host_path_result="$1" -+ if test -n "$1"; then -+ # See func_convert_path_msys_to_w32: -+ func_stripname : : "$1" -+ func_to_host_path_tmp1=$func_stripname_result -+ func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"` -+ func_convert_path_check : ";" \ -+ "$func_to_host_path_tmp1" "$func_to_host_path_result" -+ func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" -+ fi -+} -+# end func_convert_path_cygwin_to_w32 -+ -+ -+# func_convert_path_nix_to_w32 ARG -+# Convert path ARG from *nix to w32 format. Requires a wine environment and -+# a working winepath. Returns result in func_to_host_file_result. -+func_convert_path_nix_to_w32 () -+{ -+ $opt_debug -+ func_to_host_path_result="$1" -+ if test -n "$1"; then -+ # See func_convert_path_msys_to_w32: -+ func_stripname : : "$1" -+ func_to_host_path_tmp1=$func_stripname_result -+ func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" -+ func_to_host_path_result="$func_convert_core_path_wine_to_w32_result" -+ func_convert_path_check : ";" \ -+ "$func_to_host_path_tmp1" "$func_to_host_path_result" -+ func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" -+ fi -+} -+# end func_convert_path_nix_to_w32 -+ -+ -+# func_convert_path_msys_to_cygwin ARG -+# Convert path ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. -+# Returns result in func_to_host_file_result. -+func_convert_path_msys_to_cygwin () -+{ -+ $opt_debug -+ func_to_host_path_result="$1" -+ if test -n "$1"; then -+ # See func_convert_path_msys_to_w32: -+ func_stripname : : "$1" -+ func_to_host_path_tmp1=$func_stripname_result -+ func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" -+ func_cygpath -u -p "$func_convert_core_msys_to_w32_result" -+ func_to_host_path_result="$func_cygpath_result" -+ func_convert_path_check : : \ -+ "$func_to_host_path_tmp1" "$func_to_host_path_result" -+ func_convert_path_front_back_pathsep ":*" "*:" : "$1" -+ fi -+} -+# end func_convert_path_msys_to_cygwin -+ -+ -+# func_convert_path_nix_to_cygwin ARG -+# Convert path ARG from *nix to Cygwin format. Requires Cygwin installed in a -+# a wine environment, working winepath, and LT_CYGPATH set. Returns result in -+# func_to_host_file_result. -+func_convert_path_nix_to_cygwin () -+{ -+ $opt_debug -+ func_to_host_path_result="$1" -+ if test -n "$1"; then -+ # Remove leading and trailing path separator characters from -+ # ARG. msys behavior is inconsistent here, cygpath turns them -+ # into '.;' and ';.', and winepath ignores them completely. -+ func_stripname : : "$1" -+ func_to_host_path_tmp1=$func_stripname_result -+ func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" -+ func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result" -+ func_to_host_path_result="$func_cygpath_result" -+ func_convert_path_check : : \ -+ "$func_to_host_path_tmp1" "$func_to_host_path_result" -+ func_convert_path_front_back_pathsep ":*" "*:" : "$1" -+ fi -+} -+# end func_convert_path_nix_to_cygwin -+ -+ - # func_mode_compile arg... - func_mode_compile () - { -@@ -1314,12 +1985,12 @@ func_mode_compile () - ;; - - -pie | -fpie | -fPIE) -- pie_flag="$pie_flag $arg" -+ func_append pie_flag " $arg" - continue - ;; - - -shared | -static | -prefer-pic | -prefer-non-pic) -- later="$later $arg" -+ func_append later " $arg" - continue - ;; - -@@ -1340,15 +2011,14 @@ func_mode_compile () - save_ifs="$IFS"; IFS=',' - for arg in $args; do - IFS="$save_ifs" -- func_quote_for_eval "$arg" -- lastarg="$lastarg $func_quote_for_eval_result" -+ func_append_quoted lastarg "$arg" - done - IFS="$save_ifs" - func_stripname ' ' '' "$lastarg" - lastarg=$func_stripname_result - - # Add the arguments to base_compile. -- base_compile="$base_compile $lastarg" -+ func_append base_compile " $lastarg" - continue - ;; - -@@ -1364,8 +2034,7 @@ func_mode_compile () - esac # case $arg_mode - - # Aesthetically quote the previous argument. -- func_quote_for_eval "$lastarg" -- base_compile="$base_compile $func_quote_for_eval_result" -+ func_append_quoted base_compile "$lastarg" - done # for arg - - case $arg_mode in -@@ -1496,17 +2165,16 @@ compiler." - $opt_dry_run || $RM $removelist - exit $EXIT_FAILURE - fi -- removelist="$removelist $output_obj" -+ func_append removelist " $output_obj" - $ECHO "$srcfile" > "$lockfile" - fi - - $opt_dry_run || $RM $removelist -- removelist="$removelist $lockfile" -+ func_append removelist " $lockfile" - trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 - -- if test -n "$fix_srcfile_path"; then -- eval "srcfile=\"$fix_srcfile_path\"" -- fi -+ func_to_tool_file "$srcfile" func_convert_file_msys_to_w32 -+ srcfile=$func_to_tool_file_result - func_quote_for_eval "$srcfile" - qsrcfile=$func_quote_for_eval_result - -@@ -1526,7 +2194,7 @@ compiler." - - if test -z "$output_obj"; then - # Place PIC objects in $objdir -- command="$command -o $lobj" -+ func_append command " -o $lobj" - fi - - func_show_eval_locale "$command" \ -@@ -1573,11 +2241,11 @@ compiler." - command="$base_compile $qsrcfile $pic_flag" - fi - if test "$compiler_c_o" = yes; then -- command="$command -o $obj" -+ func_append command " -o $obj" - fi - - # Suppress compiler output if we already did a PIC compilation. -- command="$command$suppress_output" -+ func_append command "$suppress_output" - func_show_eval_locale "$command" \ - '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' - -@@ -1622,13 +2290,13 @@ compiler." - } - - $opt_help || { -- test "$mode" = compile && func_mode_compile ${1+"$@"} -+ test "$opt_mode" = compile && func_mode_compile ${1+"$@"} - } - - func_mode_help () - { - # We need to display help for each of the modes. -- case $mode in -+ case $opt_mode in - "") - # Generic help is extracted from the usage comments - # at the start of this file. -@@ -1659,8 +2327,8 @@ This mode accepts the following additional options: - - -o OUTPUT-FILE set the output file name to OUTPUT-FILE - -no-suppress do not suppress compiler output for multiple passes -- -prefer-pic try to building PIC objects only -- -prefer-non-pic try to building non-PIC objects only -+ -prefer-pic try to build PIC objects only -+ -prefer-non-pic try to build non-PIC objects only - -shared do not build a \`.o' file suitable for static linking - -static only build a \`.o' file suitable for static linking - -Wc,FLAG pass FLAG directly to the compiler -@@ -1804,7 +2472,7 @@ Otherwise, only FILE itself is deleted using RM." - ;; - - *) -- func_fatal_help "invalid operation mode \`$mode'" -+ func_fatal_help "invalid operation mode \`$opt_mode'" - ;; - esac - -@@ -1819,13 +2487,13 @@ if $opt_help; then - else - { - func_help noexit -- for mode in compile link execute install finish uninstall clean; do -+ for opt_mode in compile link execute install finish uninstall clean; do - func_mode_help - done - } | sed -n '1p; 2,$s/^Usage:/ or: /p' - { - func_help noexit -- for mode in compile link execute install finish uninstall clean; do -+ for opt_mode in compile link execute install finish uninstall clean; do - echo - func_mode_help - done -@@ -1854,13 +2522,16 @@ func_mode_execute () - func_fatal_help "you must specify a COMMAND" - - # Handle -dlopen flags immediately. -- for file in $execute_dlfiles; do -+ for file in $opt_dlopen; do - test -f "$file" \ - || func_fatal_help "\`$file' is not a file" - - dir= - case $file in - *.la) -+ func_resolve_sysroot "$file" -+ file=$func_resolve_sysroot_result -+ - # Check to see that this really is a libtool archive. - func_lalib_unsafe_p "$file" \ - || func_fatal_help "\`$lib' is not a valid libtool archive" -@@ -1882,7 +2553,7 @@ func_mode_execute () - dir="$func_dirname_result" - - if test -f "$dir/$objdir/$dlname"; then -- dir="$dir/$objdir" -+ func_append dir "/$objdir" - else - if test ! -f "$dir/$dlname"; then - func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" -@@ -1907,10 +2578,10 @@ func_mode_execute () - test -n "$absdir" && dir="$absdir" - - # Now add the directory to shlibpath_var. -- if eval test -z \"\$$shlibpath_var\"; then -- eval $shlibpath_var=\$dir -+ if eval "test -z \"\$$shlibpath_var\""; then -+ eval "$shlibpath_var=\"\$dir\"" - else -- eval $shlibpath_var=\$dir:\$$shlibpath_var -+ eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" - fi - done - -@@ -1939,8 +2610,7 @@ func_mode_execute () - ;; - esac - # Quote arguments (to preserve shell metacharacters). -- func_quote_for_eval "$file" -- args="$args $func_quote_for_eval_result" -+ func_append_quoted args "$file" - done - - if test "X$opt_dry_run" = Xfalse; then -@@ -1972,22 +2642,59 @@ func_mode_execute () - fi - } - --test "$mode" = execute && func_mode_execute ${1+"$@"} -+test "$opt_mode" = execute && func_mode_execute ${1+"$@"} - - - # func_mode_finish arg... - func_mode_finish () - { - $opt_debug -- libdirs="$nonopt" -+ libs= -+ libdirs= - admincmds= - -- if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then -- for dir -- do -- libdirs="$libdirs $dir" -- done -+ for opt in "$nonopt" ${1+"$@"} -+ do -+ if test -d "$opt"; then -+ func_append libdirs " $opt" - -+ elif test -f "$opt"; then -+ if func_lalib_unsafe_p "$opt"; then -+ func_append libs " $opt" -+ else -+ func_warning "\`$opt' is not a valid libtool archive" -+ fi -+ -+ else -+ func_fatal_error "invalid argument \`$opt'" -+ fi -+ done -+ -+ if test -n "$libs"; then -+ if test -n "$lt_sysroot"; then -+ sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"` -+ sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;" -+ else -+ sysroot_cmd= -+ fi -+ -+ # Remove sysroot references -+ if $opt_dry_run; then -+ for lib in $libs; do -+ echo "removing references to $lt_sysroot and \`=' prefixes from $lib" -+ done -+ else -+ tmpdir=`func_mktempdir` -+ for lib in $libs; do -+ sed -e "${sysroot_cmd} s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \ -+ > $tmpdir/tmp-la -+ mv -f $tmpdir/tmp-la $lib -+ done -+ ${RM}r "$tmpdir" -+ fi -+ fi -+ -+ if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then - for libdir in $libdirs; do - if test -n "$finish_cmds"; then - # Do each command in the finish commands. -@@ -1997,7 +2704,7 @@ func_mode_finish () - if test -n "$finish_eval"; then - # Do the single finish_eval. - eval cmds=\"$finish_eval\" -- $opt_dry_run || eval "$cmds" || admincmds="$admincmds -+ $opt_dry_run || eval "$cmds" || func_append admincmds " - $cmds" - fi - done -@@ -2006,53 +2713,55 @@ func_mode_finish () - # Exit here if they wanted silent mode. - $opt_silent && exit $EXIT_SUCCESS - -- echo "----------------------------------------------------------------------" -- echo "Libraries have been installed in:" -- for libdir in $libdirs; do -- $ECHO " $libdir" -- done -- echo -- echo "If you ever happen to want to link against installed libraries" -- echo "in a given directory, LIBDIR, you must either use libtool, and" -- echo "specify the full pathname of the library, or use the \`-LLIBDIR'" -- echo "flag during linking and do at least one of the following:" -- if test -n "$shlibpath_var"; then -- echo " - add LIBDIR to the \`$shlibpath_var' environment variable" -- echo " during execution" -- fi -- if test -n "$runpath_var"; then -- echo " - add LIBDIR to the \`$runpath_var' environment variable" -- echo " during linking" -- fi -- if test -n "$hardcode_libdir_flag_spec"; then -- libdir=LIBDIR -- eval "flag=\"$hardcode_libdir_flag_spec\"" -+ if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then -+ echo "----------------------------------------------------------------------" -+ echo "Libraries have been installed in:" -+ for libdir in $libdirs; do -+ $ECHO " $libdir" -+ done -+ echo -+ echo "If you ever happen to want to link against installed libraries" -+ echo "in a given directory, LIBDIR, you must either use libtool, and" -+ echo "specify the full pathname of the library, or use the \`-LLIBDIR'" -+ echo "flag during linking and do at least one of the following:" -+ if test -n "$shlibpath_var"; then -+ echo " - add LIBDIR to the \`$shlibpath_var' environment variable" -+ echo " during execution" -+ fi -+ if test -n "$runpath_var"; then -+ echo " - add LIBDIR to the \`$runpath_var' environment variable" -+ echo " during linking" -+ fi -+ if test -n "$hardcode_libdir_flag_spec"; then -+ libdir=LIBDIR -+ eval flag=\"$hardcode_libdir_flag_spec\" - -- $ECHO " - use the \`$flag' linker flag" -- fi -- if test -n "$admincmds"; then -- $ECHO " - have your system administrator run these commands:$admincmds" -- fi -- if test -f /etc/ld.so.conf; then -- echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" -- fi -- echo -+ $ECHO " - use the \`$flag' linker flag" -+ fi -+ if test -n "$admincmds"; then -+ $ECHO " - have your system administrator run these commands:$admincmds" -+ fi -+ if test -f /etc/ld.so.conf; then -+ echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" -+ fi -+ echo - -- echo "See any operating system documentation about shared libraries for" -- case $host in -- solaris2.[6789]|solaris2.1[0-9]) -- echo "more information, such as the ld(1), crle(1) and ld.so(8) manual" -- echo "pages." -- ;; -- *) -- echo "more information, such as the ld(1) and ld.so(8) manual pages." -- ;; -- esac -- echo "----------------------------------------------------------------------" -+ echo "See any operating system documentation about shared libraries for" -+ case $host in -+ solaris2.[6789]|solaris2.1[0-9]) -+ echo "more information, such as the ld(1), crle(1) and ld.so(8) manual" -+ echo "pages." -+ ;; -+ *) -+ echo "more information, such as the ld(1) and ld.so(8) manual pages." -+ ;; -+ esac -+ echo "----------------------------------------------------------------------" -+ fi - exit $EXIT_SUCCESS - } - --test "$mode" = finish && func_mode_finish ${1+"$@"} -+test "$opt_mode" = finish && func_mode_finish ${1+"$@"} - - - # func_mode_install arg... -@@ -2077,7 +2786,7 @@ func_mode_install () - # The real first argument should be the name of the installation program. - # Aesthetically quote it. - func_quote_for_eval "$arg" -- install_prog="$install_prog$func_quote_for_eval_result" -+ func_append install_prog "$func_quote_for_eval_result" - install_shared_prog=$install_prog - case " $install_prog " in - *[\\\ /]cp\ *) install_cp=: ;; -@@ -2097,7 +2806,7 @@ func_mode_install () - do - arg2= - if test -n "$dest"; then -- files="$files $dest" -+ func_append files " $dest" - dest=$arg - continue - fi -@@ -2135,11 +2844,11 @@ func_mode_install () - - # Aesthetically quote the argument. - func_quote_for_eval "$arg" -- install_prog="$install_prog $func_quote_for_eval_result" -+ func_append install_prog " $func_quote_for_eval_result" - if test -n "$arg2"; then - func_quote_for_eval "$arg2" - fi -- install_shared_prog="$install_shared_prog $func_quote_for_eval_result" -+ func_append install_shared_prog " $func_quote_for_eval_result" - done - - test -z "$install_prog" && \ -@@ -2151,7 +2860,7 @@ func_mode_install () - if test -n "$install_override_mode" && $no_mode; then - if $install_cp; then :; else - func_quote_for_eval "$install_override_mode" -- install_shared_prog="$install_shared_prog -m $func_quote_for_eval_result" -+ func_append install_shared_prog " -m $func_quote_for_eval_result" - fi - fi - -@@ -2209,10 +2918,13 @@ func_mode_install () - case $file in - *.$libext) - # Do the static libraries later. -- staticlibs="$staticlibs $file" -+ func_append staticlibs " $file" - ;; - - *.la) -+ func_resolve_sysroot "$file" -+ file=$func_resolve_sysroot_result -+ - # Check to see that this really is a libtool archive. - func_lalib_unsafe_p "$file" \ - || func_fatal_help "\`$file' is not a valid libtool archive" -@@ -2226,23 +2938,30 @@ func_mode_install () - if test "X$destdir" = "X$libdir"; then - case "$current_libdirs " in - *" $libdir "*) ;; -- *) current_libdirs="$current_libdirs $libdir" ;; -+ *) func_append current_libdirs " $libdir" ;; - esac - else - # Note the libdir as a future libdir. - case "$future_libdirs " in - *" $libdir "*) ;; -- *) future_libdirs="$future_libdirs $libdir" ;; -+ *) func_append future_libdirs " $libdir" ;; - esac - fi - - func_dirname "$file" "/" "" - dir="$func_dirname_result" -- dir="$dir$objdir" -+ func_append dir "$objdir" - - if test -n "$relink_command"; then -+ # Strip any trailing slash from the destination. -+ func_stripname '' '/' "$libdir" -+ destlibdir=$func_stripname_result -+ -+ func_stripname '' '/' "$destdir" -+ s_destdir=$func_stripname_result -+ - # Determine the prefix the user has applied to our future dir. -- inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"` -+ inst_prefix_dir=`$ECHO "X$s_destdir" | $Xsed -e "s%$destlibdir\$%%"` - - # Don't allow the user to place us outside of our expected - # location b/c this prevents finding dependent libraries that -@@ -2315,7 +3034,7 @@ func_mode_install () - func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' - - # Maybe install the static library, too. -- test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library" -+ test -n "$old_library" && func_append staticlibs " $dir/$old_library" - ;; - - *.lo) -@@ -2503,7 +3222,7 @@ func_mode_install () - test -n "$future_libdirs" && \ - func_warning "remember to run \`$progname --finish$future_libdirs'" - -- if test -n "$current_libdirs" && $opt_finish; then -+ if test -n "$current_libdirs"; then - # Maybe just do a dry run. - $opt_dry_run && current_libdirs=" -n$current_libdirs" - exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' -@@ -2512,7 +3231,7 @@ func_mode_install () - fi - } - --test "$mode" = install && func_mode_install ${1+"$@"} -+test "$opt_mode" = install && func_mode_install ${1+"$@"} - - - # func_generate_dlsyms outputname originator pic_p -@@ -2559,6 +3278,18 @@ extern \"C\" { - #pragma GCC diagnostic ignored \"-Wstrict-prototypes\" - #endif - -+/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ -+#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) -+/* DATA imports from DLLs on WIN32 con't be const, because runtime -+ relocations are performed -- see ld's documentation on pseudo-relocs. */ -+# define LT_DLSYM_CONST -+#elif defined(__osf__) -+/* This system does not cope well with relocations in const data. */ -+# define LT_DLSYM_CONST -+#else -+# define LT_DLSYM_CONST const -+#endif -+ - /* External symbol declarations for the compiler. */\ - " - -@@ -2570,21 +3301,22 @@ extern \"C\" { - # Add our own program objects to the symbol list. - progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP` - for progfile in $progfiles; do -- func_verbose "extracting global C symbols from \`$progfile'" -- $opt_dry_run || eval "$NM $progfile | $global_symbol_pipe >> '$nlist'" -+ func_to_tool_file "$progfile" func_convert_file_msys_to_w32 -+ func_verbose "extracting global C symbols from \`$func_to_tool_file_result'" -+ $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'" - done - - if test -n "$exclude_expsyms"; then - $opt_dry_run || { -- $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T -- $MV "$nlist"T "$nlist" -+ eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' -+ eval '$MV "$nlist"T "$nlist"' - } - fi - - if test -n "$export_symbols_regex"; then - $opt_dry_run || { -- $EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T -- $MV "$nlist"T "$nlist" -+ eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' -+ eval '$MV "$nlist"T "$nlist"' - } - fi - -@@ -2593,23 +3325,23 @@ extern \"C\" { - export_symbols="$output_objdir/$outputname.exp" - $opt_dry_run || { - $RM $export_symbols -- ${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' < "$nlist" > "$export_symbols" -+ eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' - case $host in - *cygwin* | *mingw* | *cegcc* ) -- echo EXPORTS > "$output_objdir/$outputname.def" -- cat "$export_symbols" >> "$output_objdir/$outputname.def" -+ eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' -+ eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' - ;; - esac - } - else - $opt_dry_run || { -- ${SED} -e 's/\([].[*^$]\)/\\\1/g' -e 's/^/ /' -e 's/$/$/' < "$export_symbols" > "$output_objdir/$outputname.exp" -- $GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T -- $MV "$nlist"T "$nlist" -+ eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' -+ eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' -+ eval '$MV "$nlist"T "$nlist"' - case $host in - *cygwin* | *mingw* | *cegcc* ) -- echo EXPORTS > "$output_objdir/$outputname.def" -- cat "$nlist" >> "$output_objdir/$outputname.def" -+ eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' -+ eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' - ;; - esac - } -@@ -2620,10 +3352,52 @@ extern \"C\" { - func_verbose "extracting global C symbols from \`$dlprefile'" - func_basename "$dlprefile" - name="$func_basename_result" -- $opt_dry_run || { -- $ECHO ": $name " >> "$nlist" -- eval "$NM $dlprefile 2>/dev/null | $global_symbol_pipe >> '$nlist'" -- } -+ case $host in -+ *cygwin* | *mingw* | *cegcc* ) -+ # if an import library, we need to obtain dlname -+ if func_win32_import_lib_p "$dlprefile"; then -+ func_tr_sh "$dlprefile" -+ eval "curr_lafile=\$libfile_$func_tr_sh_result" -+ dlprefile_dlbasename="" -+ if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then -+ # Use subshell, to avoid clobbering current variable values -+ dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"` -+ if test -n "$dlprefile_dlname" ; then -+ func_basename "$dlprefile_dlname" -+ dlprefile_dlbasename="$func_basename_result" -+ else -+ # no lafile. user explicitly requested -dlpreopen <import library>. -+ $sharedlib_from_linklib_cmd "$dlprefile" -+ dlprefile_dlbasename=$sharedlib_from_linklib_result -+ fi -+ fi -+ $opt_dry_run || { -+ if test -n "$dlprefile_dlbasename" ; then -+ eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"' -+ else -+ func_warning "Could not compute DLL name from $name" -+ eval '$ECHO ": $name " >> "$nlist"' -+ fi -+ func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 -+ eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe | -+ $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'" -+ } -+ else # not an import lib -+ $opt_dry_run || { -+ eval '$ECHO ": $name " >> "$nlist"' -+ func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 -+ eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" -+ } -+ fi -+ ;; -+ *) -+ $opt_dry_run || { -+ eval '$ECHO ": $name " >> "$nlist"' -+ func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 -+ eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" -+ } -+ ;; -+ esac - done - - $opt_dry_run || { -@@ -2661,26 +3435,9 @@ typedef struct { - const char *name; - void *address; - } lt_dlsymlist; --" -- case $host in -- *cygwin* | *mingw* | *cegcc* ) -- echo >> "$output_objdir/$my_dlsyms" "\ --/* DATA imports from DLLs on WIN32 con't be const, because -- runtime relocations are performed -- see ld's documentation -- on pseudo-relocs. */" -- lt_dlsym_const= ;; -- *osf5*) -- echo >> "$output_objdir/$my_dlsyms" "\ --/* This system does not cope well with relocations in const data */" -- lt_dlsym_const= ;; -- *) -- lt_dlsym_const=const ;; -- esac -- -- echo >> "$output_objdir/$my_dlsyms" "\ --extern $lt_dlsym_const lt_dlsymlist -+extern LT_DLSYM_CONST lt_dlsymlist - lt_${my_prefix}_LTX_preloaded_symbols[]; --$lt_dlsym_const lt_dlsymlist -+LT_DLSYM_CONST lt_dlsymlist - lt_${my_prefix}_LTX_preloaded_symbols[] = - {\ - { \"$my_originator\", (void *) 0 }," -@@ -2736,7 +3493,7 @@ static const void *lt_preloaded_setup() { - for arg in $LTCFLAGS; do - case $arg in - -pie | -fpie | -fPIE) ;; -- *) symtab_cflags="$symtab_cflags $arg" ;; -+ *) func_append symtab_cflags " $arg" ;; - esac - done - -@@ -2796,9 +3553,11 @@ func_win32_libid () - win32_libid_type="x86 archive import" - ;; - *ar\ archive*) # could be an import, or static -- if $OBJDUMP -f "$1" | $SED -e '10q' 2>/dev/null | -- $EGREP 'file format (pe-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then -- win32_nmres=`$NM -f posix -A "$1" | -+ # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD. -+ if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | -+ $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then -+ func_to_tool_file "$1" func_convert_file_msys_to_w32 -+ win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" | - $SED -n -e ' - 1,100{ - / I /{ -@@ -2827,6 +3586,131 @@ func_win32_libid () - $ECHO "$win32_libid_type" - } - -+# func_cygming_dll_for_implib ARG -+# -+# Platform-specific function to extract the -+# name of the DLL associated with the specified -+# import library ARG. -+# Invoked by eval'ing the libtool variable -+# $sharedlib_from_linklib_cmd -+# Result is available in the variable -+# $sharedlib_from_linklib_result -+func_cygming_dll_for_implib () -+{ -+ $opt_debug -+ sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"` -+} -+ -+# func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs -+# -+# The is the core of a fallback implementation of a -+# platform-specific function to extract the name of the -+# DLL associated with the specified import library LIBNAME. -+# -+# SECTION_NAME is either .idata$6 or .idata$7, depending -+# on the platform and compiler that created the implib. -+# -+# Echos the name of the DLL associated with the -+# specified import library. -+func_cygming_dll_for_implib_fallback_core () -+{ -+ $opt_debug -+ match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"` -+ $OBJDUMP -s --section "$1" "$2" 2>/dev/null | -+ $SED '/^Contents of section '"$match_literal"':/{ -+ # Place marker at beginning of archive member dllname section -+ s/.*/====MARK====/ -+ p -+ d -+ } -+ # These lines can sometimes be longer than 43 characters, but -+ # are always uninteresting -+ /:[ ]*file format pe[i]\{,1\}-/d -+ /^In archive [^:]*:/d -+ # Ensure marker is printed -+ /^====MARK====/p -+ # Remove all lines with less than 43 characters -+ /^.\{43\}/!d -+ # From remaining lines, remove first 43 characters -+ s/^.\{43\}//' | -+ $SED -n ' -+ # Join marker and all lines until next marker into a single line -+ /^====MARK====/ b para -+ H -+ $ b para -+ b -+ :para -+ x -+ s/\n//g -+ # Remove the marker -+ s/^====MARK====// -+ # Remove trailing dots and whitespace -+ s/[\. \t]*$// -+ # Print -+ /./p' | -+ # we now have a list, one entry per line, of the stringified -+ # contents of the appropriate section of all members of the -+ # archive which possess that section. Heuristic: eliminate -+ # all those which have a first or second character that is -+ # a '.' (that is, objdump's representation of an unprintable -+ # character.) This should work for all archives with less than -+ # 0x302f exports -- but will fail for DLLs whose name actually -+ # begins with a literal '.' or a single character followed by -+ # a '.'. -+ # -+ # Of those that remain, print the first one. -+ $SED -e '/^\./d;/^.\./d;q' -+} -+ -+# func_cygming_gnu_implib_p ARG -+# This predicate returns with zero status (TRUE) if -+# ARG is a GNU/binutils-style import library. Returns -+# with nonzero status (FALSE) otherwise. -+func_cygming_gnu_implib_p () -+{ -+ $opt_debug -+ func_to_tool_file "$1" func_convert_file_msys_to_w32 -+ func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'` -+ test -n "$func_cygming_gnu_implib_tmp" -+} -+ -+# func_cygming_ms_implib_p ARG -+# This predicate returns with zero status (TRUE) if -+# ARG is an MS-style import library. Returns -+# with nonzero status (FALSE) otherwise. -+func_cygming_ms_implib_p () -+{ -+ $opt_debug -+ func_to_tool_file "$1" func_convert_file_msys_to_w32 -+ func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'` -+ test -n "$func_cygming_ms_implib_tmp" -+} -+ -+# func_cygming_dll_for_implib_fallback ARG -+# Platform-specific function to extract the -+# name of the DLL associated with the specified -+# import library ARG. -+# -+# This fallback implementation is for use when $DLLTOOL -+# does not support the --identify-strict option. -+# Invoked by eval'ing the libtool variable -+# $sharedlib_from_linklib_cmd -+# Result is available in the variable -+# $sharedlib_from_linklib_result -+func_cygming_dll_for_implib_fallback () -+{ -+ $opt_debug -+ if func_cygming_gnu_implib_p "$1" ; then -+ # binutils import library -+ sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"` -+ elif func_cygming_ms_implib_p "$1" ; then -+ # ms-generated import library -+ sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"` -+ else -+ # unknown -+ sharedlib_from_linklib_result="" -+ fi -+} - - - # func_extract_an_archive dir oldlib -@@ -2917,7 +3801,7 @@ func_extract_archives () - darwin_file= - darwin_files= - for darwin_file in $darwin_filelist; do -- darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP` -+ darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP` - $LIPO -create -output "$darwin_file" $darwin_files - done # $darwin_filelist - $RM -rf unfat-$$ -@@ -2932,7 +3816,7 @@ func_extract_archives () - func_extract_an_archive "$my_xdir" "$my_xabs" - ;; - esac -- my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` -+ my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP` - done - - func_extract_archives_result="$my_oldobjs" -@@ -3014,7 +3898,110 @@ func_fallback_echo () - _LTECHO_EOF' - } - ECHO=\"$qECHO\" -- fi\ -+ fi -+ -+# Very basic option parsing. These options are (a) specific to -+# the libtool wrapper, (b) are identical between the wrapper -+# /script/ and the wrapper /executable/ which is used only on -+# windows platforms, and (c) all begin with the string "--lt-" -+# (application programs are unlikely to have options which match -+# this pattern). -+# -+# There are only two supported options: --lt-debug and -+# --lt-dump-script. There is, deliberately, no --lt-help. -+# -+# The first argument to this parsing function should be the -+# script's $0 value, followed by "$@". -+lt_option_debug= -+func_parse_lt_options () -+{ -+ lt_script_arg0=\$0 -+ shift -+ for lt_opt -+ do -+ case \"\$lt_opt\" in -+ --lt-debug) lt_option_debug=1 ;; -+ --lt-dump-script) -+ lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\` -+ test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=. -+ lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\` -+ cat \"\$lt_dump_D/\$lt_dump_F\" -+ exit 0 -+ ;; -+ --lt-*) -+ \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2 -+ exit 1 -+ ;; -+ esac -+ done -+ -+ # Print the debug banner immediately: -+ if test -n \"\$lt_option_debug\"; then -+ echo \"${outputname}:${output}:\${LINENO}: libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\" 1>&2 -+ fi -+} -+ -+# Used when --lt-debug. Prints its arguments to stdout -+# (redirection is the responsibility of the caller) -+func_lt_dump_args () -+{ -+ lt_dump_args_N=1; -+ for lt_arg -+ do -+ \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[\$lt_dump_args_N]: \$lt_arg\" -+ lt_dump_args_N=\`expr \$lt_dump_args_N + 1\` -+ done -+} -+ -+# Core function for launching the target application -+func_exec_program_core () -+{ -+" -+ case $host in -+ # Backslashes separate directories on plain windows -+ *-*-mingw | *-*-os2* | *-cegcc*) -+ $ECHO "\ -+ if test -n \"\$lt_option_debug\"; then -+ \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir\\\\\$program\" 1>&2 -+ func_lt_dump_args \${1+\"\$@\"} 1>&2 -+ fi -+ exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} -+" -+ ;; -+ -+ *) -+ $ECHO "\ -+ if test -n \"\$lt_option_debug\"; then -+ \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir/\$program\" 1>&2 -+ func_lt_dump_args \${1+\"\$@\"} 1>&2 -+ fi -+ exec \"\$progdir/\$program\" \${1+\"\$@\"} -+" -+ ;; -+ esac -+ $ECHO "\ -+ \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 -+ exit 1 -+} -+ -+# A function to encapsulate launching the target application -+# Strips options in the --lt-* namespace from \$@ and -+# launches target application with the remaining arguments. -+func_exec_program () -+{ -+ for lt_wr_arg -+ do -+ case \$lt_wr_arg in -+ --lt-*) ;; -+ *) set x \"\$@\" \"\$lt_wr_arg\"; shift;; -+ esac -+ shift -+ done -+ func_exec_program_core \${1+\"\$@\"} -+} -+ -+ # Parse options -+ func_parse_lt_options \"\$0\" \${1+\"\$@\"} - - # Find the directory that this script lives in. - thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\` -@@ -3078,7 +4065,7 @@ _LTECHO_EOF' - - # relink executable if necessary - if test -n \"\$relink_command\"; then -- if relink_command_output=\`eval \"\$relink_command\" 2>&1\`; then : -+ if relink_command_output=\`eval \$relink_command 2>&1\`; then : - else - $ECHO \"\$relink_command_output\" >&2 - $RM \"\$progdir/\$file\" -@@ -3102,6 +4089,18 @@ _LTECHO_EOF' - - if test -f \"\$progdir/\$program\"; then" - -+ # fixup the dll searchpath if we need to. -+ # -+ # Fix the DLL searchpath if we need to. Do this before prepending -+ # to shlibpath, because on Windows, both are PATH and uninstalled -+ # libraries must come first. -+ if test -n "$dllsearchpath"; then -+ $ECHO "\ -+ # Add the dll search path components to the executable PATH -+ PATH=$dllsearchpath:\$PATH -+" -+ fi -+ - # Export our shlibpath_var if we have one. - if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then - $ECHO "\ -@@ -3116,35 +4115,10 @@ _LTECHO_EOF' - " - fi - -- # fixup the dll searchpath if we need to. -- if test -n "$dllsearchpath"; then -- $ECHO "\ -- # Add the dll search path components to the executable PATH -- PATH=$dllsearchpath:\$PATH --" -- fi -- - $ECHO "\ - if test \"\$libtool_execute_magic\" != \"$magic\"; then - # Run the actual program with our arguments. --" -- case $host in -- # Backslashes separate directories on plain windows -- *-*-mingw | *-*-os2* | *-cegcc*) -- $ECHO "\ -- exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} --" -- ;; -- -- *) -- $ECHO "\ -- exec \"\$progdir/\$program\" \${1+\"\$@\"} --" -- ;; -- esac -- $ECHO "\ -- \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 -- exit 1 -+ func_exec_program \${1+\"\$@\"} - fi - else - # The program doesn't exist. -@@ -3158,166 +4132,6 @@ fi\ - } - - --# func_to_host_path arg --# --# Convert paths to host format when used with build tools. --# Intended for use with "native" mingw (where libtool itself --# is running under the msys shell), or in the following cross- --# build environments: --# $build $host --# mingw (msys) mingw [e.g. native] --# cygwin mingw --# *nix + wine mingw --# where wine is equipped with the `winepath' executable. --# In the native mingw case, the (msys) shell automatically --# converts paths for any non-msys applications it launches, --# but that facility isn't available from inside the cwrapper. --# Similar accommodations are necessary for $host mingw and --# $build cygwin. Calling this function does no harm for other --# $host/$build combinations not listed above. --# --# ARG is the path (on $build) that should be converted to --# the proper representation for $host. The result is stored --# in $func_to_host_path_result. --func_to_host_path () --{ -- func_to_host_path_result="$1" -- if test -n "$1"; then -- case $host in -- *mingw* ) -- lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' -- case $build in -- *mingw* ) # actually, msys -- # awkward: cmd appends spaces to result -- func_to_host_path_result=`( cmd //c echo "$1" ) 2>/dev/null | -- $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"` -- ;; -- *cygwin* ) -- func_to_host_path_result=`cygpath -w "$1" | -- $SED -e "$lt_sed_naive_backslashify"` -- ;; -- * ) -- # Unfortunately, winepath does not exit with a non-zero -- # error code, so we are forced to check the contents of -- # stdout. On the other hand, if the command is not -- # found, the shell will set an exit code of 127 and print -- # *an error message* to stdout. So we must check for both -- # error code of zero AND non-empty stdout, which explains -- # the odd construction: -- func_to_host_path_tmp1=`winepath -w "$1" 2>/dev/null` -- if test "$?" -eq 0 && test -n "${func_to_host_path_tmp1}"; then -- func_to_host_path_result=`$ECHO "$func_to_host_path_tmp1" | -- $SED -e "$lt_sed_naive_backslashify"` -- else -- # Allow warning below. -- func_to_host_path_result= -- fi -- ;; -- esac -- if test -z "$func_to_host_path_result" ; then -- func_error "Could not determine host path corresponding to" -- func_error " \`$1'" -- func_error "Continuing, but uninstalled executables may not work." -- # Fallback: -- func_to_host_path_result="$1" -- fi -- ;; -- esac -- fi --} --# end: func_to_host_path -- --# func_to_host_pathlist arg --# --# Convert pathlists to host format when used with build tools. --# See func_to_host_path(), above. This function supports the --# following $build/$host combinations (but does no harm for --# combinations not listed here): --# $build $host --# mingw (msys) mingw [e.g. native] --# cygwin mingw --# *nix + wine mingw --# --# Path separators are also converted from $build format to --# $host format. If ARG begins or ends with a path separator --# character, it is preserved (but converted to $host format) --# on output. --# --# ARG is a pathlist (on $build) that should be converted to --# the proper representation on $host. The result is stored --# in $func_to_host_pathlist_result. --func_to_host_pathlist () --{ -- func_to_host_pathlist_result="$1" -- if test -n "$1"; then -- case $host in -- *mingw* ) -- lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' -- # Remove leading and trailing path separator characters from -- # ARG. msys behavior is inconsistent here, cygpath turns them -- # into '.;' and ';.', and winepath ignores them completely. -- func_stripname : : "$1" -- func_to_host_pathlist_tmp1=$func_stripname_result -- case $build in -- *mingw* ) # Actually, msys. -- # Awkward: cmd appends spaces to result. -- func_to_host_pathlist_result=` -- ( cmd //c echo "$func_to_host_pathlist_tmp1" ) 2>/dev/null | -- $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"` -- ;; -- *cygwin* ) -- func_to_host_pathlist_result=`cygpath -w -p "$func_to_host_pathlist_tmp1" | -- $SED -e "$lt_sed_naive_backslashify"` -- ;; -- * ) -- # unfortunately, winepath doesn't convert pathlists -- func_to_host_pathlist_result="" -- func_to_host_pathlist_oldIFS=$IFS -- IFS=: -- for func_to_host_pathlist_f in $func_to_host_pathlist_tmp1 ; do -- IFS=$func_to_host_pathlist_oldIFS -- if test -n "$func_to_host_pathlist_f" ; then -- func_to_host_path "$func_to_host_pathlist_f" -- if test -n "$func_to_host_path_result" ; then -- if test -z "$func_to_host_pathlist_result" ; then -- func_to_host_pathlist_result="$func_to_host_path_result" -- else -- func_append func_to_host_pathlist_result ";$func_to_host_path_result" -- fi -- fi -- fi -- done -- IFS=$func_to_host_pathlist_oldIFS -- ;; -- esac -- if test -z "$func_to_host_pathlist_result"; then -- func_error "Could not determine the host path(s) corresponding to" -- func_error " \`$1'" -- func_error "Continuing, but uninstalled executables may not work." -- # Fallback. This may break if $1 contains DOS-style drive -- # specifications. The fix is not to complicate the expression -- # below, but for the user to provide a working wine installation -- # with winepath so that path translation in the cross-to-mingw -- # case works properly. -- lt_replace_pathsep_nix_to_dos="s|:|;|g" -- func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp1" |\ -- $SED -e "$lt_replace_pathsep_nix_to_dos"` -- fi -- # Now, add the leading and trailing path separators back -- case "$1" in -- :* ) func_to_host_pathlist_result=";$func_to_host_pathlist_result" -- ;; -- esac -- case "$1" in -- *: ) func_append func_to_host_pathlist_result ";" -- ;; -- esac -- ;; -- esac -- fi --} --# end: func_to_host_pathlist -- - # func_emit_cwrapperexe_src - # emit the source code for a wrapper executable on stdout - # Must ONLY be called from within func_mode_link because -@@ -3334,10 +4148,6 @@ func_emit_cwrapperexe_src () - - This wrapper executable should never be moved out of the build directory. - If it is, it will not operate correctly. -- -- Currently, it simply execs the wrapper *script* "$SHELL $output", -- but could eventually absorb all of the scripts functionality and -- exec $objdir/$outputname directly. - */ - EOF - cat <<"EOF" -@@ -3462,22 +4272,13 @@ int setenv (const char *, const char *, int); - if (stale) { free ((void *) stale); stale = 0; } \ - } while (0) - --#undef LTWRAPPER_DEBUGPRINTF --#if defined LT_DEBUGWRAPPER --# define LTWRAPPER_DEBUGPRINTF(args) ltwrapper_debugprintf args --static void --ltwrapper_debugprintf (const char *fmt, ...) --{ -- va_list args; -- va_start (args, fmt); -- (void) vfprintf (stderr, fmt, args); -- va_end (args); --} -+#if defined(LT_DEBUGWRAPPER) -+static int lt_debug = 1; - #else --# define LTWRAPPER_DEBUGPRINTF(args) -+static int lt_debug = 0; - #endif - --const char *program_name = NULL; -+const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */ - - void *xmalloc (size_t num); - char *xstrdup (const char *string); -@@ -3487,7 +4288,10 @@ char *chase_symlinks (const char *pathspec); - int make_executable (const char *path); - int check_executable (const char *path); - char *strendzap (char *str, const char *pat); --void lt_fatal (const char *message, ...); -+void lt_debugprintf (const char *file, int line, const char *fmt, ...); -+void lt_fatal (const char *file, int line, const char *message, ...); -+static const char *nonnull (const char *s); -+static const char *nonempty (const char *s); - void lt_setenv (const char *name, const char *value); - char *lt_extend_str (const char *orig_value, const char *add, int to_end); - void lt_update_exe_path (const char *name, const char *value); -@@ -3497,14 +4301,14 @@ void lt_dump_script (FILE *f); - EOF - - cat <<EOF --const char * MAGIC_EXE = "$magic_exe"; -+volatile const char * MAGIC_EXE = "$magic_exe"; - const char * LIB_PATH_VARNAME = "$shlibpath_var"; - EOF - - if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then -- func_to_host_pathlist "$temp_rpath" -+ func_to_host_path "$temp_rpath" - cat <<EOF --const char * LIB_PATH_VALUE = "$func_to_host_pathlist_result"; -+const char * LIB_PATH_VALUE = "$func_to_host_path_result"; - EOF - else - cat <<"EOF" -@@ -3513,10 +4317,10 @@ EOF - fi - - if test -n "$dllsearchpath"; then -- func_to_host_pathlist "$dllsearchpath:" -+ func_to_host_path "$dllsearchpath:" - cat <<EOF - const char * EXE_PATH_VARNAME = "PATH"; --const char * EXE_PATH_VALUE = "$func_to_host_pathlist_result"; -+const char * EXE_PATH_VALUE = "$func_to_host_path_result"; - EOF - else - cat <<"EOF" -@@ -3539,12 +4343,10 @@ EOF - cat <<"EOF" - - #define LTWRAPPER_OPTION_PREFIX "--lt-" --#define LTWRAPPER_OPTION_PREFIX_LENGTH 5 - --static const size_t opt_prefix_len = LTWRAPPER_OPTION_PREFIX_LENGTH; - static const char *ltwrapper_option_prefix = LTWRAPPER_OPTION_PREFIX; -- - static const char *dumpscript_opt = LTWRAPPER_OPTION_PREFIX "dump-script"; -+static const char *debug_opt = LTWRAPPER_OPTION_PREFIX "debug"; - - int - main (int argc, char *argv[]) -@@ -3561,10 +4363,13 @@ main (int argc, char *argv[]) - int i; - - program_name = (char *) xstrdup (base_name (argv[0])); -- LTWRAPPER_DEBUGPRINTF (("(main) argv[0] : %s\n", argv[0])); -- LTWRAPPER_DEBUGPRINTF (("(main) program_name : %s\n", program_name)); -+ newargz = XMALLOC (char *, argc + 1); - -- /* very simple arg parsing; don't want to rely on getopt */ -+ /* very simple arg parsing; don't want to rely on getopt -+ * also, copy all non cwrapper options to newargz, except -+ * argz[0], which is handled differently -+ */ -+ newargc=0; - for (i = 1; i < argc; i++) - { - if (strcmp (argv[i], dumpscript_opt) == 0) -@@ -3581,21 +4386,54 @@ EOF - lt_dump_script (stdout); - return 0; - } -+ if (strcmp (argv[i], debug_opt) == 0) -+ { -+ lt_debug = 1; -+ continue; -+ } -+ if (strcmp (argv[i], ltwrapper_option_prefix) == 0) -+ { -+ /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX -+ namespace, but it is not one of the ones we know about and -+ have already dealt with, above (inluding dump-script), then -+ report an error. Otherwise, targets might begin to believe -+ they are allowed to use options in the LTWRAPPER_OPTION_PREFIX -+ namespace. The first time any user complains about this, we'll -+ need to make LTWRAPPER_OPTION_PREFIX a configure-time option -+ or a configure.ac-settable value. -+ */ -+ lt_fatal (__FILE__, __LINE__, -+ "unrecognized %s option: '%s'", -+ ltwrapper_option_prefix, argv[i]); -+ } -+ /* otherwise ... */ -+ newargz[++newargc] = xstrdup (argv[i]); - } -+ newargz[++newargc] = NULL; -+ -+EOF -+ cat <<EOF -+ /* The GNU banner must be the first non-error debug message */ -+ lt_debugprintf (__FILE__, __LINE__, "libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\n"); -+EOF -+ cat <<"EOF" -+ lt_debugprintf (__FILE__, __LINE__, "(main) argv[0]: %s\n", argv[0]); -+ lt_debugprintf (__FILE__, __LINE__, "(main) program_name: %s\n", program_name); - -- newargz = XMALLOC (char *, argc + 1); - tmp_pathspec = find_executable (argv[0]); - if (tmp_pathspec == NULL) -- lt_fatal ("Couldn't find %s", argv[0]); -- LTWRAPPER_DEBUGPRINTF (("(main) found exe (before symlink chase) at : %s\n", -- tmp_pathspec)); -+ lt_fatal (__FILE__, __LINE__, "couldn't find %s", argv[0]); -+ lt_debugprintf (__FILE__, __LINE__, -+ "(main) found exe (before symlink chase) at: %s\n", -+ tmp_pathspec); - - actual_cwrapper_path = chase_symlinks (tmp_pathspec); -- LTWRAPPER_DEBUGPRINTF (("(main) found exe (after symlink chase) at : %s\n", -- actual_cwrapper_path)); -+ lt_debugprintf (__FILE__, __LINE__, -+ "(main) found exe (after symlink chase) at: %s\n", -+ actual_cwrapper_path); - XFREE (tmp_pathspec); - -- actual_cwrapper_name = xstrdup( base_name (actual_cwrapper_path)); -+ actual_cwrapper_name = xstrdup (base_name (actual_cwrapper_path)); - strendzap (actual_cwrapper_path, actual_cwrapper_name); - - /* wrapper name transforms */ -@@ -3613,8 +4451,9 @@ EOF - target_name = tmp_pathspec; - tmp_pathspec = 0; - -- LTWRAPPER_DEBUGPRINTF (("(main) libtool target name: %s\n", -- target_name)); -+ lt_debugprintf (__FILE__, __LINE__, -+ "(main) libtool target name: %s\n", -+ target_name); - EOF - - cat <<EOF -@@ -3664,35 +4503,19 @@ EOF - - lt_setenv ("BIN_SH", "xpg4"); /* for Tru64 */ - lt_setenv ("DUALCASE", "1"); /* for MSK sh */ -- lt_update_lib_path (LIB_PATH_VARNAME, LIB_PATH_VALUE); -+ /* Update the DLL searchpath. EXE_PATH_VALUE ($dllsearchpath) must -+ be prepended before (that is, appear after) LIB_PATH_VALUE ($temp_rpath) -+ because on Windows, both *_VARNAMEs are PATH but uninstalled -+ libraries must come first. */ - lt_update_exe_path (EXE_PATH_VARNAME, EXE_PATH_VALUE); -+ lt_update_lib_path (LIB_PATH_VARNAME, LIB_PATH_VALUE); - -- newargc=0; -- for (i = 1; i < argc; i++) -- { -- if (strncmp (argv[i], ltwrapper_option_prefix, opt_prefix_len) == 0) -- { -- /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX -- namespace, but it is not one of the ones we know about and -- have already dealt with, above (inluding dump-script), then -- report an error. Otherwise, targets might begin to believe -- they are allowed to use options in the LTWRAPPER_OPTION_PREFIX -- namespace. The first time any user complains about this, we'll -- need to make LTWRAPPER_OPTION_PREFIX a configure-time option -- or a configure.ac-settable value. -- */ -- lt_fatal ("Unrecognized option in %s namespace: '%s'", -- ltwrapper_option_prefix, argv[i]); -- } -- /* otherwise ... */ -- newargz[++newargc] = xstrdup (argv[i]); -- } -- newargz[++newargc] = NULL; -- -- LTWRAPPER_DEBUGPRINTF (("(main) lt_argv_zero : %s\n", (lt_argv_zero ? lt_argv_zero : "<NULL>"))); -+ lt_debugprintf (__FILE__, __LINE__, "(main) lt_argv_zero: %s\n", -+ nonnull (lt_argv_zero)); - for (i = 0; i < newargc; i++) - { -- LTWRAPPER_DEBUGPRINTF (("(main) newargz[%d] : %s\n", i, (newargz[i] ? newargz[i] : "<NULL>"))); -+ lt_debugprintf (__FILE__, __LINE__, "(main) newargz[%d]: %s\n", -+ i, nonnull (newargz[i])); - } - - EOF -@@ -3706,7 +4529,9 @@ EOF - if (rval == -1) - { - /* failed to start process */ -- LTWRAPPER_DEBUGPRINTF (("(main) failed to launch target \"%s\": errno = %d\n", lt_argv_zero, errno)); -+ lt_debugprintf (__FILE__, __LINE__, -+ "(main) failed to launch target \"%s\": %s\n", -+ lt_argv_zero, nonnull (strerror (errno))); - return 127; - } - return rval; -@@ -3728,7 +4553,7 @@ xmalloc (size_t num) - { - void *p = (void *) malloc (num); - if (!p) -- lt_fatal ("Memory exhausted"); -+ lt_fatal (__FILE__, __LINE__, "memory exhausted"); - - return p; - } -@@ -3762,8 +4587,8 @@ check_executable (const char *path) - { - struct stat st; - -- LTWRAPPER_DEBUGPRINTF (("(check_executable) : %s\n", -- path ? (*path ? path : "EMPTY!") : "NULL!")); -+ lt_debugprintf (__FILE__, __LINE__, "(check_executable): %s\n", -+ nonempty (path)); - if ((!path) || (!*path)) - return 0; - -@@ -3780,8 +4605,8 @@ make_executable (const char *path) - int rval = 0; - struct stat st; - -- LTWRAPPER_DEBUGPRINTF (("(make_executable) : %s\n", -- path ? (*path ? path : "EMPTY!") : "NULL!")); -+ lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n", -+ nonempty (path)); - if ((!path) || (!*path)) - return 0; - -@@ -3807,8 +4632,8 @@ find_executable (const char *wrapper) - int tmp_len; - char *concat_name; - -- LTWRAPPER_DEBUGPRINTF (("(find_executable) : %s\n", -- wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!")); -+ lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n", -+ nonempty (wrapper)); - - if ((wrapper == NULL) || (*wrapper == '\0')) - return NULL; -@@ -3861,7 +4686,8 @@ find_executable (const char *wrapper) - { - /* empty path: current directory */ - if (getcwd (tmp, LT_PATHMAX) == NULL) -- lt_fatal ("getcwd failed"); -+ lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", -+ nonnull (strerror (errno))); - tmp_len = strlen (tmp); - concat_name = - XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); -@@ -3886,7 +4712,8 @@ find_executable (const char *wrapper) - } - /* Relative path | not found in path: prepend cwd */ - if (getcwd (tmp, LT_PATHMAX) == NULL) -- lt_fatal ("getcwd failed"); -+ lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", -+ nonnull (strerror (errno))); - tmp_len = strlen (tmp); - concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); - memcpy (concat_name, tmp, tmp_len); -@@ -3912,8 +4739,9 @@ chase_symlinks (const char *pathspec) - int has_symlinks = 0; - while (strlen (tmp_pathspec) && !has_symlinks) - { -- LTWRAPPER_DEBUGPRINTF (("checking path component for symlinks: %s\n", -- tmp_pathspec)); -+ lt_debugprintf (__FILE__, __LINE__, -+ "checking path component for symlinks: %s\n", -+ tmp_pathspec); - if (lstat (tmp_pathspec, &s) == 0) - { - if (S_ISLNK (s.st_mode) != 0) -@@ -3935,8 +4763,9 @@ chase_symlinks (const char *pathspec) - } - else - { -- char *errstr = strerror (errno); -- lt_fatal ("Error accessing file %s (%s)", tmp_pathspec, errstr); -+ lt_fatal (__FILE__, __LINE__, -+ "error accessing file \"%s\": %s", -+ tmp_pathspec, nonnull (strerror (errno))); - } - } - XFREE (tmp_pathspec); -@@ -3949,7 +4778,8 @@ chase_symlinks (const char *pathspec) - tmp_pathspec = realpath (pathspec, buf); - if (tmp_pathspec == 0) - { -- lt_fatal ("Could not follow symlinks for %s", pathspec); -+ lt_fatal (__FILE__, __LINE__, -+ "could not follow symlinks for %s", pathspec); - } - return xstrdup (tmp_pathspec); - #endif -@@ -3975,11 +4805,25 @@ strendzap (char *str, const char *pat) - return str; - } - -+void -+lt_debugprintf (const char *file, int line, const char *fmt, ...) -+{ -+ va_list args; -+ if (lt_debug) -+ { -+ (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line); -+ va_start (args, fmt); -+ (void) vfprintf (stderr, fmt, args); -+ va_end (args); -+ } -+} -+ - static void --lt_error_core (int exit_status, const char *mode, -+lt_error_core (int exit_status, const char *file, -+ int line, const char *mode, - const char *message, va_list ap) - { -- fprintf (stderr, "%s: %s: ", program_name, mode); -+ fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode); - vfprintf (stderr, message, ap); - fprintf (stderr, ".\n"); - -@@ -3988,20 +4832,32 @@ lt_error_core (int exit_status, const char *mode, - } - - void --lt_fatal (const char *message, ...) -+lt_fatal (const char *file, int line, const char *message, ...) - { - va_list ap; - va_start (ap, message); -- lt_error_core (EXIT_FAILURE, "FATAL", message, ap); -+ lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap); - va_end (ap); - } - -+static const char * -+nonnull (const char *s) -+{ -+ return s ? s : "(null)"; -+} -+ -+static const char * -+nonempty (const char *s) -+{ -+ return (s && !*s) ? "(empty)" : nonnull (s); -+} -+ - void - lt_setenv (const char *name, const char *value) - { -- LTWRAPPER_DEBUGPRINTF (("(lt_setenv) setting '%s' to '%s'\n", -- (name ? name : "<NULL>"), -- (value ? value : "<NULL>"))); -+ lt_debugprintf (__FILE__, __LINE__, -+ "(lt_setenv) setting '%s' to '%s'\n", -+ nonnull (name), nonnull (value)); - { - #ifdef HAVE_SETENV - /* always make a copy, for consistency with !HAVE_SETENV */ -@@ -4049,9 +4905,9 @@ lt_extend_str (const char *orig_value, const char *add, int to_end) - void - lt_update_exe_path (const char *name, const char *value) - { -- LTWRAPPER_DEBUGPRINTF (("(lt_update_exe_path) modifying '%s' by prepending '%s'\n", -- (name ? name : "<NULL>"), -- (value ? value : "<NULL>"))); -+ lt_debugprintf (__FILE__, __LINE__, -+ "(lt_update_exe_path) modifying '%s' by prepending '%s'\n", -+ nonnull (name), nonnull (value)); - - if (name && *name && value && *value) - { -@@ -4070,9 +4926,9 @@ lt_update_exe_path (const char *name, const char *value) - void - lt_update_lib_path (const char *name, const char *value) - { -- LTWRAPPER_DEBUGPRINTF (("(lt_update_lib_path) modifying '%s' by prepending '%s'\n", -- (name ? name : "<NULL>"), -- (value ? value : "<NULL>"))); -+ lt_debugprintf (__FILE__, __LINE__, -+ "(lt_update_lib_path) modifying '%s' by prepending '%s'\n", -+ nonnull (name), nonnull (value)); - - if (name && *name && value && *value) - { -@@ -4222,7 +5078,7 @@ EOF - func_win32_import_lib_p () - { - $opt_debug -- case `eval "$file_magic_cmd \"\$1\" 2>/dev/null" | $SED -e 10q` in -+ case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in - *import*) : ;; - *) false ;; - esac -@@ -4401,9 +5257,9 @@ func_mode_link () - ;; - *) - if test "$prev" = dlfiles; then -- dlfiles="$dlfiles $arg" -+ func_append dlfiles " $arg" - else -- dlprefiles="$dlprefiles $arg" -+ func_append dlprefiles " $arg" - fi - prev= - continue -@@ -4427,7 +5283,7 @@ func_mode_link () - *-*-darwin*) - case "$deplibs " in - *" $qarg.ltframework "*) ;; -- *) deplibs="$deplibs $qarg.ltframework" # this is fixed later -+ *) func_append deplibs " $qarg.ltframework" # this is fixed later - ;; - esac - ;; -@@ -4446,7 +5302,7 @@ func_mode_link () - moreargs= - for fil in `cat "$save_arg"` - do --# moreargs="$moreargs $fil" -+# func_append moreargs " $fil" - arg=$fil - # A libtool-controlled object. - -@@ -4475,7 +5331,7 @@ func_mode_link () - - if test "$prev" = dlfiles; then - if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then -- dlfiles="$dlfiles $pic_object" -+ func_append dlfiles " $pic_object" - prev= - continue - else -@@ -4487,7 +5343,7 @@ func_mode_link () - # CHECK ME: I think I busted this. -Ossama - if test "$prev" = dlprefiles; then - # Preload the old-style object. -- dlprefiles="$dlprefiles $pic_object" -+ func_append dlprefiles " $pic_object" - prev= - fi - -@@ -4557,12 +5413,12 @@ func_mode_link () - if test "$prev" = rpath; then - case "$rpath " in - *" $arg "*) ;; -- *) rpath="$rpath $arg" ;; -+ *) func_append rpath " $arg" ;; - esac - else - case "$xrpath " in - *" $arg "*) ;; -- *) xrpath="$xrpath $arg" ;; -+ *) func_append xrpath " $arg" ;; - esac - fi - prev= -@@ -4574,28 +5430,28 @@ func_mode_link () - continue - ;; - weak) -- weak_libs="$weak_libs $arg" -+ func_append weak_libs " $arg" - prev= - continue - ;; - xcclinker) -- linker_flags="$linker_flags $qarg" -- compiler_flags="$compiler_flags $qarg" -+ func_append linker_flags " $qarg" -+ func_append compiler_flags " $qarg" - prev= - func_append compile_command " $qarg" - func_append finalize_command " $qarg" - continue - ;; - xcompiler) -- compiler_flags="$compiler_flags $qarg" -+ func_append compiler_flags " $qarg" - prev= - func_append compile_command " $qarg" - func_append finalize_command " $qarg" - continue - ;; - xlinker) -- linker_flags="$linker_flags $qarg" -- compiler_flags="$compiler_flags $wl$qarg" -+ func_append linker_flags " $qarg" -+ func_append compiler_flags " $wl$qarg" - prev= - func_append compile_command " $wl$qarg" - func_append finalize_command " $wl$qarg" -@@ -4686,15 +5542,16 @@ func_mode_link () - ;; - - -L*) -- func_stripname '-L' '' "$arg" -- dir=$func_stripname_result -- if test -z "$dir"; then -+ func_stripname "-L" '' "$arg" -+ if test -z "$func_stripname_result"; then - if test "$#" -gt 0; then - func_fatal_error "require no space between \`-L' and \`$1'" - else - func_fatal_error "need path for \`-L' option" - fi - fi -+ func_resolve_sysroot "$func_stripname_result" -+ dir=$func_resolve_sysroot_result - # We need an absolute path. - case $dir in - [\\/]* | [A-Za-z]:[\\/]*) ;; -@@ -4706,10 +5563,16 @@ func_mode_link () - ;; - esac - case "$deplibs " in -- *" -L$dir "*) ;; -+ *" -L$dir "* | *" $arg "*) -+ # Will only happen for absolute or sysroot arguments -+ ;; - *) -- deplibs="$deplibs -L$dir" -- lib_search_path="$lib_search_path $dir" -+ # Preserve sysroot, but never include relative directories -+ case $dir in -+ [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;; -+ *) func_append deplibs " -L$dir" ;; -+ esac -+ func_append lib_search_path " $dir" - ;; - esac - case $host in -@@ -4718,12 +5581,12 @@ func_mode_link () - case :$dllsearchpath: in - *":$dir:"*) ;; - ::) dllsearchpath=$dir;; -- *) dllsearchpath="$dllsearchpath:$dir";; -+ *) func_append dllsearchpath ":$dir";; - esac - case :$dllsearchpath: in - *":$testbindir:"*) ;; - ::) dllsearchpath=$testbindir;; -- *) dllsearchpath="$dllsearchpath:$testbindir";; -+ *) func_append dllsearchpath ":$testbindir";; - esac - ;; - esac -@@ -4747,7 +5610,7 @@ func_mode_link () - ;; - *-*-rhapsody* | *-*-darwin1.[012]) - # Rhapsody C and math libraries are in the System framework -- deplibs="$deplibs System.ltframework" -+ func_append deplibs " System.ltframework" - continue - ;; - *-*-sco3.2v5* | *-*-sco5v6*) -@@ -4758,9 +5621,6 @@ func_mode_link () - # Compiler inserts libc in the correct place for threads to work - test "X$arg" = "X-lc" && continue - ;; -- *-*-linux*) -- test "X$arg" = "X-lc" && continue -- ;; - esac - elif test "X$arg" = "X-lc_r"; then - case $host in -@@ -4770,7 +5630,7 @@ func_mode_link () - ;; - esac - fi -- deplibs="$deplibs $arg" -+ func_append deplibs " $arg" - continue - ;; - -@@ -4782,8 +5642,8 @@ func_mode_link () - # Tru64 UNIX uses -model [arg] to determine the layout of C++ - # classes, name mangling, and exception handling. - # Darwin uses the -arch flag to determine output architecture. -- -model|-arch|-isysroot) -- compiler_flags="$compiler_flags $arg" -+ -model|-arch|-isysroot|--sysroot) -+ func_append compiler_flags " $arg" - func_append compile_command " $arg" - func_append finalize_command " $arg" - prev=xcompiler -@@ -4791,12 +5651,12 @@ func_mode_link () - ;; - - -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) -- compiler_flags="$compiler_flags $arg" -+ func_append compiler_flags " $arg" - func_append compile_command " $arg" - func_append finalize_command " $arg" - case "$new_inherited_linker_flags " in - *" $arg "*) ;; -- * ) new_inherited_linker_flags="$new_inherited_linker_flags $arg" ;; -+ * ) func_append new_inherited_linker_flags " $arg" ;; - esac - continue - ;; -@@ -4863,13 +5723,17 @@ func_mode_link () - # We need an absolute path. - case $dir in - [\\/]* | [A-Za-z]:[\\/]*) ;; -+ =*) -+ func_stripname '=' '' "$dir" -+ dir=$lt_sysroot$func_stripname_result -+ ;; - *) - func_fatal_error "only absolute run-paths are allowed" - ;; - esac - case "$xrpath " in - *" $dir "*) ;; -- *) xrpath="$xrpath $dir" ;; -+ *) func_append xrpath " $dir" ;; - esac - continue - ;; -@@ -4922,8 +5786,8 @@ func_mode_link () - for flag in $args; do - IFS="$save_ifs" - func_quote_for_eval "$flag" -- arg="$arg $func_quote_for_eval_result" -- compiler_flags="$compiler_flags $func_quote_for_eval_result" -+ func_append arg " $func_quote_for_eval_result" -+ func_append compiler_flags " $func_quote_for_eval_result" - done - IFS="$save_ifs" - func_stripname ' ' '' "$arg" -@@ -4938,9 +5802,9 @@ func_mode_link () - for flag in $args; do - IFS="$save_ifs" - func_quote_for_eval "$flag" -- arg="$arg $wl$func_quote_for_eval_result" -- compiler_flags="$compiler_flags $wl$func_quote_for_eval_result" -- linker_flags="$linker_flags $func_quote_for_eval_result" -+ func_append arg " $wl$func_quote_for_eval_result" -+ func_append compiler_flags " $wl$func_quote_for_eval_result" -+ func_append linker_flags " $func_quote_for_eval_result" - done - IFS="$save_ifs" - func_stripname ' ' '' "$arg" -@@ -4968,24 +5832,27 @@ func_mode_link () - arg="$func_quote_for_eval_result" - ;; - -- # -64, -mips[0-9] enable 64-bit mode on the SGI compiler -- # -r[0-9][0-9]* specifies the processor on the SGI compiler -- # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler -- # +DA*, +DD* enable 64-bit mode on the HP compiler -- # -q* pass through compiler args for the IBM compiler -- # -m*, -t[45]*, -txscale* pass through architecture-specific -- # compiler args for GCC -- # -F/path gives path to uninstalled frameworks, gcc on darwin -- # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC -- # @file GCC response files -- # -tp=* Portland pgcc target processor selection -+ # Flags to be passed through unchanged, with rationale: -+ # -64, -mips[0-9] enable 64-bit mode for the SGI compiler -+ # -r[0-9][0-9]* specify processor for the SGI compiler -+ # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler -+ # +DA*, +DD* enable 64-bit mode for the HP compiler -+ # -q* compiler args for the IBM compiler -+ # -m*, -t[45]*, -txscale* architecture-specific flags for GCC -+ # -F/path path to uninstalled frameworks, gcc on darwin -+ # -p, -pg, --coverage, -fprofile-* profiling flags for GCC -+ # @file GCC response files -+ # -tp=* Portland pgcc target processor selection -+ # --sysroot=* for sysroot support -+ # -O*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization - -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ -- -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*) -+ -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \ -+ -O*|-flto*|-fwhopr*|-fuse-linker-plugin) - func_quote_for_eval "$arg" - arg="$func_quote_for_eval_result" - func_append compile_command " $arg" - func_append finalize_command " $arg" -- compiler_flags="$compiler_flags $arg" -+ func_append compiler_flags " $arg" - continue - ;; - -@@ -4997,7 +5864,7 @@ func_mode_link () - - *.$objext) - # A standard object. -- objs="$objs $arg" -+ func_append objs " $arg" - ;; - - *.lo) -@@ -5028,7 +5895,7 @@ func_mode_link () - - if test "$prev" = dlfiles; then - if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then -- dlfiles="$dlfiles $pic_object" -+ func_append dlfiles " $pic_object" - prev= - continue - else -@@ -5040,7 +5907,7 @@ func_mode_link () - # CHECK ME: I think I busted this. -Ossama - if test "$prev" = dlprefiles; then - # Preload the old-style object. -- dlprefiles="$dlprefiles $pic_object" -+ func_append dlprefiles " $pic_object" - prev= - fi - -@@ -5085,24 +5952,25 @@ func_mode_link () - - *.$libext) - # An archive. -- deplibs="$deplibs $arg" -- old_deplibs="$old_deplibs $arg" -+ func_append deplibs " $arg" -+ func_append old_deplibs " $arg" - continue - ;; - - *.la) - # A libtool-controlled library. - -+ func_resolve_sysroot "$arg" - if test "$prev" = dlfiles; then - # This library was specified with -dlopen. -- dlfiles="$dlfiles $arg" -+ func_append dlfiles " $func_resolve_sysroot_result" - prev= - elif test "$prev" = dlprefiles; then - # The library was specified with -dlpreopen. -- dlprefiles="$dlprefiles $arg" -+ func_append dlprefiles " $func_resolve_sysroot_result" - prev= - else -- deplibs="$deplibs $arg" -+ func_append deplibs " $func_resolve_sysroot_result" - fi - continue - ;; -@@ -5127,7 +5995,7 @@ func_mode_link () - func_fatal_help "the \`$prevarg' option requires an argument" - - if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then -- eval "arg=\"$export_dynamic_flag_spec\"" -+ eval arg=\"$export_dynamic_flag_spec\" - func_append compile_command " $arg" - func_append finalize_command " $arg" - fi -@@ -5144,11 +6012,13 @@ func_mode_link () - else - shlib_search_path= - fi -- eval "sys_lib_search_path=\"$sys_lib_search_path_spec\"" -- eval "sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"" -+ eval sys_lib_search_path=\"$sys_lib_search_path_spec\" -+ eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" - - func_dirname "$output" "/" "" - output_objdir="$func_dirname_result$objdir" -+ func_to_tool_file "$output_objdir/" -+ tool_output_objdir=$func_to_tool_file_result - # Create the object directory. - func_mkdir_p "$output_objdir" - -@@ -5169,12 +6039,12 @@ func_mode_link () - # Find all interdependent deplibs by searching for libraries - # that are linked more than once (e.g. -la -lb -la) - for deplib in $deplibs; do -- if $opt_duplicate_deps ; then -+ if $opt_preserve_dup_deps ; then - case "$libs " in -- *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; -+ *" $deplib "*) func_append specialdeplibs " $deplib" ;; - esac - fi -- libs="$libs $deplib" -+ func_append libs " $deplib" - done - - if test "$linkmode" = lib; then -@@ -5187,9 +6057,9 @@ func_mode_link () - if $opt_duplicate_compiler_generated_deps; then - for pre_post_dep in $predeps $postdeps; do - case "$pre_post_deps " in -- *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;; -+ *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;; - esac -- pre_post_deps="$pre_post_deps $pre_post_dep" -+ func_append pre_post_deps " $pre_post_dep" - done - fi - pre_post_deps= -@@ -5256,8 +6126,9 @@ func_mode_link () - for lib in $dlprefiles; do - # Ignore non-libtool-libs - dependency_libs= -+ func_resolve_sysroot "$lib" - case $lib in -- *.la) func_source "$lib" ;; -+ *.la) func_source "$func_resolve_sysroot_result" ;; - esac - - # Collect preopened libtool deplibs, except any this library -@@ -5267,7 +6138,7 @@ func_mode_link () - deplib_base=$func_basename_result - case " $weak_libs " in - *" $deplib_base "*) ;; -- *) deplibs="$deplibs $deplib" ;; -+ *) func_append deplibs " $deplib" ;; - esac - done - done -@@ -5288,11 +6159,11 @@ func_mode_link () - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - else -- compiler_flags="$compiler_flags $deplib" -+ func_append compiler_flags " $deplib" - if test "$linkmode" = lib ; then - case "$new_inherited_linker_flags " in - *" $deplib "*) ;; -- * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;; -+ * ) func_append new_inherited_linker_flags " $deplib" ;; - esac - fi - fi -@@ -5377,7 +6248,7 @@ func_mode_link () - if test "$linkmode" = lib ; then - case "$new_inherited_linker_flags " in - *" $deplib "*) ;; -- * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;; -+ * ) func_append new_inherited_linker_flags " $deplib" ;; - esac - fi - fi -@@ -5390,7 +6261,8 @@ func_mode_link () - test "$pass" = conv && continue - newdependency_libs="$deplib $newdependency_libs" - func_stripname '-L' '' "$deplib" -- newlib_search_path="$newlib_search_path $func_stripname_result" -+ func_resolve_sysroot "$func_stripname_result" -+ func_append newlib_search_path " $func_resolve_sysroot_result" - ;; - prog) - if test "$pass" = conv; then -@@ -5404,7 +6276,8 @@ func_mode_link () - finalize_deplibs="$deplib $finalize_deplibs" - fi - func_stripname '-L' '' "$deplib" -- newlib_search_path="$newlib_search_path $func_stripname_result" -+ func_resolve_sysroot "$func_stripname_result" -+ func_append newlib_search_path " $func_resolve_sysroot_result" - ;; - *) - func_warning "\`-L' is ignored for archives/objects" -@@ -5415,17 +6288,21 @@ func_mode_link () - -R*) - if test "$pass" = link; then - func_stripname '-R' '' "$deplib" -- dir=$func_stripname_result -+ func_resolve_sysroot "$func_stripname_result" -+ dir=$func_resolve_sysroot_result - # Make sure the xrpath contains only unique directories. - case "$xrpath " in - *" $dir "*) ;; -- *) xrpath="$xrpath $dir" ;; -+ *) func_append xrpath " $dir" ;; - esac - fi - deplibs="$deplib $deplibs" - continue - ;; -- *.la) lib="$deplib" ;; -+ *.la) -+ func_resolve_sysroot "$deplib" -+ lib=$func_resolve_sysroot_result -+ ;; - *.$libext) - if test "$pass" = conv; then - deplibs="$deplib $deplibs" -@@ -5488,11 +6365,11 @@ func_mode_link () - if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then - # If there is no dlopen support or we're linking statically, - # we need to preload. -- newdlprefiles="$newdlprefiles $deplib" -+ func_append newdlprefiles " $deplib" - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - else -- newdlfiles="$newdlfiles $deplib" -+ func_append newdlfiles " $deplib" - fi - fi - continue -@@ -5538,7 +6415,7 @@ func_mode_link () - for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do - case " $new_inherited_linker_flags " in - *" $tmp_inherited_linker_flag "*) ;; -- *) new_inherited_linker_flags="$new_inherited_linker_flags $tmp_inherited_linker_flag";; -+ *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";; - esac - done - fi -@@ -5546,8 +6423,8 @@ func_mode_link () - if test "$linkmode,$pass" = "lib,link" || - test "$linkmode,$pass" = "prog,scan" || - { test "$linkmode" != prog && test "$linkmode" != lib; }; then -- test -n "$dlopen" && dlfiles="$dlfiles $dlopen" -- test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen" -+ test -n "$dlopen" && func_append dlfiles " $dlopen" -+ test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen" - fi - - if test "$pass" = conv; then -@@ -5558,20 +6435,20 @@ func_mode_link () - func_fatal_error "cannot find name of link library for \`$lib'" - fi - # It is a libtool convenience library, so add in its objects. -- convenience="$convenience $ladir/$objdir/$old_library" -- old_convenience="$old_convenience $ladir/$objdir/$old_library" -+ func_append convenience " $ladir/$objdir/$old_library" -+ func_append old_convenience " $ladir/$objdir/$old_library" - elif test "$linkmode" != prog && test "$linkmode" != lib; then - func_fatal_error "\`$lib' is not a convenience library" - fi - tmp_libs= - for deplib in $dependency_libs; do - deplibs="$deplib $deplibs" -- if $opt_duplicate_deps ; then -+ if $opt_preserve_dup_deps ; then - case "$tmp_libs " in -- *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; -+ *" $deplib "*) func_append specialdeplibs " $deplib" ;; - esac - fi -- tmp_libs="$tmp_libs $deplib" -+ func_append tmp_libs " $deplib" - done - continue - fi # $pass = conv -@@ -5579,9 +6456,15 @@ func_mode_link () - - # Get the name of the library we link against. - linklib= -- for l in $old_library $library_names; do -- linklib="$l" -- done -+ if test -n "$old_library" && -+ { test "$prefer_static_libs" = yes || -+ test "$prefer_static_libs,$installed" = "built,no"; }; then -+ linklib=$old_library -+ else -+ for l in $old_library $library_names; do -+ linklib="$l" -+ done -+ fi - if test -z "$linklib"; then - func_fatal_error "cannot find name of link library for \`$lib'" - fi -@@ -5598,9 +6481,9 @@ func_mode_link () - # statically, we need to preload. We also need to preload any - # dependent libraries so libltdl's deplib preloader doesn't - # bomb out in the load deplibs phase. -- dlprefiles="$dlprefiles $lib $dependency_libs" -+ func_append dlprefiles " $lib $dependency_libs" - else -- newdlfiles="$newdlfiles $lib" -+ func_append newdlfiles " $lib" - fi - continue - fi # $pass = dlopen -@@ -5622,14 +6505,14 @@ func_mode_link () - - # Find the relevant object directory and library name. - if test "X$installed" = Xyes; then -- if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then -+ if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then - func_warning "library \`$lib' was moved." - dir="$ladir" - absdir="$abs_ladir" - libdir="$abs_ladir" - else -- dir="$libdir" -- absdir="$libdir" -+ dir="$lt_sysroot$libdir" -+ absdir="$lt_sysroot$libdir" - fi - test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes - else -@@ -5637,12 +6520,12 @@ func_mode_link () - dir="$ladir" - absdir="$abs_ladir" - # Remove this search path later -- notinst_path="$notinst_path $abs_ladir" -+ func_append notinst_path " $abs_ladir" - else - dir="$ladir/$objdir" - absdir="$abs_ladir/$objdir" - # Remove this search path later -- notinst_path="$notinst_path $abs_ladir" -+ func_append notinst_path " $abs_ladir" - fi - fi # $installed = yes - func_stripname 'lib' '.la' "$laname" -@@ -5653,20 +6536,46 @@ func_mode_link () - if test -z "$libdir" && test "$linkmode" = prog; then - func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'" - fi -- # Prefer using a static library (so that no silly _DYNAMIC symbols -- # are required to link). -- if test -n "$old_library"; then -- newdlprefiles="$newdlprefiles $dir/$old_library" -- # Keep a list of preopened convenience libraries to check -- # that they are being used correctly in the link pass. -- test -z "$libdir" && \ -- dlpreconveniencelibs="$dlpreconveniencelibs $dir/$old_library" -- # Otherwise, use the dlname, so that lt_dlopen finds it. -- elif test -n "$dlname"; then -- newdlprefiles="$newdlprefiles $dir/$dlname" -- else -- newdlprefiles="$newdlprefiles $dir/$linklib" -- fi -+ case "$host" in -+ # special handling for platforms with PE-DLLs. -+ *cygwin* | *mingw* | *cegcc* ) -+ # Linker will automatically link against shared library if both -+ # static and shared are present. Therefore, ensure we extract -+ # symbols from the import library if a shared library is present -+ # (otherwise, the dlopen module name will be incorrect). We do -+ # this by putting the import library name into $newdlprefiles. -+ # We recover the dlopen module name by 'saving' the la file -+ # name in a special purpose variable, and (later) extracting the -+ # dlname from the la file. -+ if test -n "$dlname"; then -+ func_tr_sh "$dir/$linklib" -+ eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname" -+ func_append newdlprefiles " $dir/$linklib" -+ else -+ func_append newdlprefiles " $dir/$old_library" -+ # Keep a list of preopened convenience libraries to check -+ # that they are being used correctly in the link pass. -+ test -z "$libdir" && \ -+ func_append dlpreconveniencelibs " $dir/$old_library" -+ fi -+ ;; -+ * ) -+ # Prefer using a static library (so that no silly _DYNAMIC symbols -+ # are required to link). -+ if test -n "$old_library"; then -+ func_append newdlprefiles " $dir/$old_library" -+ # Keep a list of preopened convenience libraries to check -+ # that they are being used correctly in the link pass. -+ test -z "$libdir" && \ -+ func_append dlpreconveniencelibs " $dir/$old_library" -+ # Otherwise, use the dlname, so that lt_dlopen finds it. -+ elif test -n "$dlname"; then -+ func_append newdlprefiles " $dir/$dlname" -+ else -+ func_append newdlprefiles " $dir/$linklib" -+ fi -+ ;; -+ esac - fi # $pass = dlpreopen - - if test -z "$libdir"; then -@@ -5684,7 +6593,7 @@ func_mode_link () - - - if test "$linkmode" = prog && test "$pass" != link; then -- newlib_search_path="$newlib_search_path $ladir" -+ func_append newlib_search_path " $ladir" - deplibs="$lib $deplibs" - - linkalldeplibs=no -@@ -5697,7 +6606,8 @@ func_mode_link () - for deplib in $dependency_libs; do - case $deplib in - -L*) func_stripname '-L' '' "$deplib" -- newlib_search_path="$newlib_search_path $func_stripname_result" -+ func_resolve_sysroot "$func_stripname_result" -+ func_append newlib_search_path " $func_resolve_sysroot_result" - ;; - esac - # Need to link against all dependency_libs? -@@ -5708,12 +6618,12 @@ func_mode_link () - # or/and link against static libraries - newdependency_libs="$deplib $newdependency_libs" - fi -- if $opt_duplicate_deps ; then -+ if $opt_preserve_dup_deps ; then - case "$tmp_libs " in -- *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; -+ *" $deplib "*) func_append specialdeplibs " $deplib" ;; - esac - fi -- tmp_libs="$tmp_libs $deplib" -+ func_append tmp_libs " $deplib" - done # for deplib - continue - fi # $linkmode = prog... -@@ -5728,7 +6638,7 @@ func_mode_link () - # Make sure the rpath contains only unique directories. - case "$temp_rpath:" in - *"$absdir:"*) ;; -- *) temp_rpath="$temp_rpath$absdir:" ;; -+ *) func_append temp_rpath "$absdir:" ;; - esac - fi - -@@ -5740,7 +6650,7 @@ func_mode_link () - *) - case "$compile_rpath " in - *" $absdir "*) ;; -- *) compile_rpath="$compile_rpath $absdir" -+ *) func_append compile_rpath " $absdir" ;; - esac - ;; - esac -@@ -5749,7 +6659,7 @@ func_mode_link () - *) - case "$finalize_rpath " in - *" $libdir "*) ;; -- *) finalize_rpath="$finalize_rpath $libdir" -+ *) func_append finalize_rpath " $libdir" ;; - esac - ;; - esac -@@ -5774,12 +6684,12 @@ func_mode_link () - case $host in - *cygwin* | *mingw* | *cegcc*) - # No point in relinking DLLs because paths are not encoded -- notinst_deplibs="$notinst_deplibs $lib" -+ func_append notinst_deplibs " $lib" - need_relink=no - ;; - *) - if test "$installed" = no; then -- notinst_deplibs="$notinst_deplibs $lib" -+ func_append notinst_deplibs " $lib" - need_relink=yes - fi - ;; -@@ -5814,7 +6724,7 @@ func_mode_link () - *) - case "$compile_rpath " in - *" $absdir "*) ;; -- *) compile_rpath="$compile_rpath $absdir" -+ *) func_append compile_rpath " $absdir" ;; - esac - ;; - esac -@@ -5823,7 +6733,7 @@ func_mode_link () - *) - case "$finalize_rpath " in - *" $libdir "*) ;; -- *) finalize_rpath="$finalize_rpath $libdir" -+ *) func_append finalize_rpath " $libdir" ;; - esac - ;; - esac -@@ -5835,7 +6745,7 @@ func_mode_link () - shift - realname="$1" - shift -- eval "libname=\"$libname_spec\"" -+ libname=`eval "\\$ECHO \"$libname_spec\""` - # use dlname if we got it. it's perfectly good, no? - if test -n "$dlname"; then - soname="$dlname" -@@ -5848,7 +6758,7 @@ func_mode_link () - versuffix="-$major" - ;; - esac -- eval "soname=\"$soname_spec\"" -+ eval soname=\"$soname_spec\" - else - soname="$realname" - fi -@@ -5877,7 +6787,7 @@ func_mode_link () - linklib=$newlib - fi # test -n "$old_archive_from_expsyms_cmds" - -- if test "$linkmode" = prog || test "$mode" != relink; then -+ if test "$linkmode" = prog || test "$opt_mode" != relink; then - add_shlibpath= - add_dir= - add= -@@ -5933,7 +6843,7 @@ func_mode_link () - if test -n "$inst_prefix_dir"; then - case $libdir in - [\\/]*) -- add_dir="$add_dir -L$inst_prefix_dir$libdir" -+ func_append add_dir " -L$inst_prefix_dir$libdir" - ;; - esac - fi -@@ -5955,7 +6865,7 @@ func_mode_link () - if test -n "$add_shlibpath"; then - case :$compile_shlibpath: in - *":$add_shlibpath:"*) ;; -- *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;; -+ *) func_append compile_shlibpath "$add_shlibpath:" ;; - esac - fi - if test "$linkmode" = prog; then -@@ -5969,13 +6879,13 @@ func_mode_link () - test "$hardcode_shlibpath_var" = yes; then - case :$finalize_shlibpath: in - *":$libdir:"*) ;; -- *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; -+ *) func_append finalize_shlibpath "$libdir:" ;; - esac - fi - fi - fi - -- if test "$linkmode" = prog || test "$mode" = relink; then -+ if test "$linkmode" = prog || test "$opt_mode" = relink; then - add_shlibpath= - add_dir= - add= -@@ -5989,7 +6899,7 @@ func_mode_link () - elif test "$hardcode_shlibpath_var" = yes; then - case :$finalize_shlibpath: in - *":$libdir:"*) ;; -- *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; -+ *) func_append finalize_shlibpath "$libdir:" ;; - esac - add="-l$name" - elif test "$hardcode_automatic" = yes; then -@@ -6001,12 +6911,12 @@ func_mode_link () - fi - else - # We cannot seem to hardcode it, guess we'll fake it. -- add_dir="-L$libdir" -+ add_dir="-L$lt_sysroot$libdir" - # Try looking first in the location we're being installed to. - if test -n "$inst_prefix_dir"; then - case $libdir in - [\\/]*) -- add_dir="$add_dir -L$inst_prefix_dir$libdir" -+ func_append add_dir " -L$inst_prefix_dir$libdir" - ;; - esac - fi -@@ -6083,27 +6993,33 @@ func_mode_link () - temp_xrpath=$func_stripname_result - case " $xrpath " in - *" $temp_xrpath "*) ;; -- *) xrpath="$xrpath $temp_xrpath";; -+ *) func_append xrpath " $temp_xrpath";; - esac;; -- *) temp_deplibs="$temp_deplibs $libdir";; -+ *) func_append temp_deplibs " $libdir";; - esac - done - dependency_libs="$temp_deplibs" - fi - -- newlib_search_path="$newlib_search_path $absdir" -+ func_append newlib_search_path " $absdir" - # Link against this library - test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" - # ... and its dependency_libs - tmp_libs= - for deplib in $dependency_libs; do - newdependency_libs="$deplib $newdependency_libs" -- if $opt_duplicate_deps ; then -+ case $deplib in -+ -L*) func_stripname '-L' '' "$deplib" -+ func_resolve_sysroot "$func_stripname_result";; -+ *) func_resolve_sysroot "$deplib" ;; -+ esac -+ if $opt_preserve_dup_deps ; then - case "$tmp_libs " in -- *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; -+ *" $func_resolve_sysroot_result "*) -+ func_append specialdeplibs " $func_resolve_sysroot_result" ;; - esac - fi -- tmp_libs="$tmp_libs $deplib" -+ func_append tmp_libs " $func_resolve_sysroot_result" - done - - if test "$link_all_deplibs" != no; then -@@ -6113,8 +7029,10 @@ func_mode_link () - case $deplib in - -L*) path="$deplib" ;; - *.la) -+ func_resolve_sysroot "$deplib" -+ deplib=$func_resolve_sysroot_result - func_dirname "$deplib" "" "." -- dir="$func_dirname_result" -+ dir=$func_dirname_result - # We need an absolute path. - case $dir in - [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; -@@ -6130,7 +7048,7 @@ func_mode_link () - case $host in - *-*-darwin*) - depdepl= -- deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` -+ eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` - if test -n "$deplibrary_names" ; then - for tmp in $deplibrary_names ; do - depdepl=$tmp -@@ -6141,8 +7059,8 @@ func_mode_link () - if test -z "$darwin_install_name"; then - darwin_install_name=`${OTOOL64} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` - fi -- compiler_flags="$compiler_flags ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}" -- linker_flags="$linker_flags -dylib_file ${darwin_install_name}:${depdepl}" -+ func_append compiler_flags " ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}" -+ func_append linker_flags " -dylib_file ${darwin_install_name}:${depdepl}" - path= - fi - fi -@@ -6152,7 +7070,7 @@ func_mode_link () - ;; - esac - else -- libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` -+ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` - test -z "$libdir" && \ - func_fatal_error "\`$deplib' is not a valid libtool archive" - test "$absdir" != "$libdir" && \ -@@ -6192,7 +7110,7 @@ func_mode_link () - for dir in $newlib_search_path; do - case "$lib_search_path " in - *" $dir "*) ;; -- *) lib_search_path="$lib_search_path $dir" ;; -+ *) func_append lib_search_path " $dir" ;; - esac - done - newlib_search_path= -@@ -6205,7 +7123,7 @@ func_mode_link () - fi - for var in $vars dependency_libs; do - # Add libraries to $var in reverse order -- eval tmp_libs=\$$var -+ eval tmp_libs=\"\$$var\" - new_libs= - for deplib in $tmp_libs; do - # FIXME: Pedantically, this is the right thing to do, so -@@ -6250,13 +7168,13 @@ func_mode_link () - -L*) - case " $tmp_libs " in - *" $deplib "*) ;; -- *) tmp_libs="$tmp_libs $deplib" ;; -+ *) func_append tmp_libs " $deplib" ;; - esac - ;; -- *) tmp_libs="$tmp_libs $deplib" ;; -+ *) func_append tmp_libs " $deplib" ;; - esac - done -- eval $var=\$tmp_libs -+ eval $var=\"$tmp_libs\" - done # for var - fi - # Last step: remove runtime libs from dependency_libs -@@ -6269,7 +7187,7 @@ func_mode_link () - ;; - esac - if test -n "$i" ; then -- tmp_libs="$tmp_libs $i" -+ func_append tmp_libs " $i" - fi - done - dependency_libs=$tmp_libs -@@ -6310,7 +7228,7 @@ func_mode_link () - # Now set the variables for building old libraries. - build_libtool_libs=no - oldlibs="$output" -- objs="$objs$old_deplibs" -+ func_append objs "$old_deplibs" - ;; - - lib) -@@ -6319,8 +7237,8 @@ func_mode_link () - lib*) - func_stripname 'lib' '.la' "$outputname" - name=$func_stripname_result -- eval "shared_ext=\"$shrext_cmds\"" -- eval "libname=\"$libname_spec\"" -+ eval shared_ext=\"$shrext_cmds\" -+ eval libname=\"$libname_spec\" - ;; - *) - test "$module" = no && \ -@@ -6330,8 +7248,8 @@ func_mode_link () - # Add the "lib" prefix for modules if required - func_stripname '' '.la' "$outputname" - name=$func_stripname_result -- eval "shared_ext=\"$shrext_cmds\"" -- eval "libname=\"$libname_spec\"" -+ eval shared_ext=\"$shrext_cmds\" -+ eval libname=\"$libname_spec\" - else - func_stripname '' '.la' "$outputname" - libname=$func_stripname_result -@@ -6346,7 +7264,7 @@ func_mode_link () - echo - $ECHO "*** Warning: Linking the shared library $output against the non-libtool" - $ECHO "*** objects $objs is not portable!" -- libobjs="$libobjs $objs" -+ func_append libobjs " $objs" - fi - fi - -@@ -6544,7 +7462,7 @@ func_mode_link () - done - - # Make executables depend on our current version. -- verstring="$verstring:${current}.0" -+ func_append verstring ":${current}.0" - ;; - - qnx) -@@ -6612,10 +7530,10 @@ func_mode_link () - fi - - func_generate_dlsyms "$libname" "$libname" "yes" -- libobjs="$libobjs $symfileobj" -+ func_append libobjs " $symfileobj" - test "X$libobjs" = "X " && libobjs= - -- if test "$mode" != relink; then -+ if test "$opt_mode" != relink; then - # Remove our outputs, but don't remove object files since they - # may have been created when compiling PIC objects. - removelist= -@@ -6631,7 +7549,7 @@ func_mode_link () - continue - fi - fi -- removelist="$removelist $p" -+ func_append removelist " $p" - ;; - *) ;; - esac -@@ -6642,7 +7560,7 @@ func_mode_link () - - # Now set the variables for building old libraries. - if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then -- oldlibs="$oldlibs $output_objdir/$libname.$libext" -+ func_append oldlibs " $output_objdir/$libname.$libext" - - # Transform .lo files to .o files. - oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; $lo2o" | $NL2SP` -@@ -6659,10 +7577,11 @@ func_mode_link () - # If the user specified any rpath flags, then add them. - temp_xrpath= - for libdir in $xrpath; do -- temp_xrpath="$temp_xrpath -R$libdir" -+ func_replace_sysroot "$libdir" -+ func_append temp_xrpath " -R$func_replace_sysroot_result" - case "$finalize_rpath " in - *" $libdir "*) ;; -- *) finalize_rpath="$finalize_rpath $libdir" ;; -+ *) func_append finalize_rpath " $libdir" ;; - esac - done - if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then -@@ -6676,7 +7595,7 @@ func_mode_link () - for lib in $old_dlfiles; do - case " $dlprefiles $dlfiles " in - *" $lib "*) ;; -- *) dlfiles="$dlfiles $lib" ;; -+ *) func_append dlfiles " $lib" ;; - esac - done - -@@ -6686,7 +7605,7 @@ func_mode_link () - for lib in $old_dlprefiles; do - case "$dlprefiles " in - *" $lib "*) ;; -- *) dlprefiles="$dlprefiles $lib" ;; -+ *) func_append dlprefiles " $lib" ;; - esac - done - -@@ -6698,7 +7617,7 @@ func_mode_link () - ;; - *-*-rhapsody* | *-*-darwin1.[012]) - # Rhapsody C library is in the System framework -- deplibs="$deplibs System.ltframework" -+ func_append deplibs " System.ltframework" - ;; - *-*-netbsd*) - # Don't link with libc until the a.out ld.so is fixed. -@@ -6715,7 +7634,7 @@ func_mode_link () - *) - # Add libc to deplibs on all other systems if necessary. - if test "$build_libtool_need_lc" = "yes"; then -- deplibs="$deplibs -lc" -+ func_append deplibs " -lc" - fi - ;; - esac -@@ -6764,18 +7683,18 @@ EOF - if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then - case " $predeps $postdeps " in - *" $i "*) -- newdeplibs="$newdeplibs $i" -+ func_append newdeplibs " $i" - i="" - ;; - esac - fi - if test -n "$i" ; then -- eval "libname=\"$libname_spec\"" -- eval "deplib_matches=\"$library_names_spec\"" -+ libname=`eval "\\$ECHO \"$libname_spec\""` -+ deplib_matches=`eval "\\$ECHO \"$library_names_spec\""` - set dummy $deplib_matches; shift - deplib_match=$1 - if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then -- newdeplibs="$newdeplibs $i" -+ func_append newdeplibs " $i" - else - droppeddeps=yes - echo -@@ -6789,7 +7708,7 @@ EOF - fi - ;; - *) -- newdeplibs="$newdeplibs $i" -+ func_append newdeplibs " $i" - ;; - esac - done -@@ -6807,18 +7726,18 @@ EOF - if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then - case " $predeps $postdeps " in - *" $i "*) -- newdeplibs="$newdeplibs $i" -+ func_append newdeplibs " $i" - i="" - ;; - esac - fi - if test -n "$i" ; then -- eval "libname=\"$libname_spec\"" -- eval "deplib_matches=\"$library_names_spec\"" -+ libname=`eval "\\$ECHO \"$libname_spec\""` -+ deplib_matches=`eval "\\$ECHO \"$library_names_spec\""` - set dummy $deplib_matches; shift - deplib_match=$1 - if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then -- newdeplibs="$newdeplibs $i" -+ func_append newdeplibs " $i" - else - droppeddeps=yes - echo -@@ -6840,7 +7759,7 @@ EOF - fi - ;; - *) -- newdeplibs="$newdeplibs $i" -+ func_append newdeplibs " $i" - ;; - esac - done -@@ -6857,15 +7776,27 @@ EOF - if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then - case " $predeps $postdeps " in - *" $a_deplib "*) -- newdeplibs="$newdeplibs $a_deplib" -+ func_append newdeplibs " $a_deplib" - a_deplib="" - ;; - esac - fi - if test -n "$a_deplib" ; then -- eval "libname=\"$libname_spec\"" -+ libname=`eval "\\$ECHO \"$libname_spec\""` -+ if test -n "$file_magic_glob"; then -+ libnameglob=`func_echo_all "$libname" | $SED -e $file_magic_glob` -+ else -+ libnameglob=$libname -+ fi -+ test "$want_nocaseglob" = yes && nocaseglob=`shopt -p nocaseglob` - for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do -- potential_libs=`ls $i/$libname[.-]* 2>/dev/null` -+ if test "$want_nocaseglob" = yes; then -+ shopt -s nocaseglob -+ potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null` -+ $nocaseglob -+ else -+ potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null` -+ fi - for potent_lib in $potential_libs; do - # Follow soft links. - if ls -lLd "$potent_lib" 2>/dev/null | -@@ -6885,10 +7816,10 @@ EOF - *) potlib=`$ECHO "$potlib" | $SED 's,[^/]*$,,'`"$potliblink";; - esac - done -- if eval "$file_magic_cmd \"\$potlib\"" 2>/dev/null | -+ if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | - $SED -e 10q | - $EGREP "$file_magic_regex" > /dev/null; then -- newdeplibs="$newdeplibs $a_deplib" -+ func_append newdeplibs " $a_deplib" - a_deplib="" - break 2 - fi -@@ -6913,7 +7844,7 @@ EOF - ;; - *) - # Add a -L argument. -- newdeplibs="$newdeplibs $a_deplib" -+ func_append newdeplibs " $a_deplib" - ;; - esac - done # Gone through all deplibs. -@@ -6929,20 +7860,20 @@ EOF - if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then - case " $predeps $postdeps " in - *" $a_deplib "*) -- newdeplibs="$newdeplibs $a_deplib" -+ func_append newdeplibs " $a_deplib" - a_deplib="" - ;; - esac - fi - if test -n "$a_deplib" ; then -- eval "libname=\"$libname_spec\"" -+ libname=`eval "\\$ECHO \"$libname_spec\""` - for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do - potential_libs=`ls $i/$libname[.-]* 2>/dev/null` - for potent_lib in $potential_libs; do - potlib="$potent_lib" # see symlink-check above in file_magic test - if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \ - $EGREP "$match_pattern_regex" > /dev/null; then -- newdeplibs="$newdeplibs $a_deplib" -+ func_append newdeplibs " $a_deplib" - a_deplib="" - break 2 - fi -@@ -6967,7 +7898,7 @@ EOF - ;; - *) - # Add a -L argument. -- newdeplibs="$newdeplibs $a_deplib" -+ func_append newdeplibs " $a_deplib" - ;; - esac - done # Gone through all deplibs. -@@ -7071,7 +8002,7 @@ EOF - *) - case " $deplibs " in - *" -L$path/$objdir "*) -- new_libs="$new_libs -L$path/$objdir" ;; -+ func_append new_libs " -L$path/$objdir" ;; - esac - ;; - esac -@@ -7081,10 +8012,10 @@ EOF - -L*) - case " $new_libs " in - *" $deplib "*) ;; -- *) new_libs="$new_libs $deplib" ;; -+ *) func_append new_libs " $deplib" ;; - esac - ;; -- *) new_libs="$new_libs $deplib" ;; -+ *) func_append new_libs " $deplib" ;; - esac - done - deplibs="$new_libs" -@@ -7101,10 +8032,12 @@ EOF - hardcode_libdirs= - dep_rpath= - rpath="$finalize_rpath" -- test "$mode" != relink && rpath="$compile_rpath$rpath" -+ test "$opt_mode" != relink && rpath="$compile_rpath$rpath" - for libdir in $rpath; do - if test -n "$hardcode_libdir_flag_spec"; then - if test -n "$hardcode_libdir_separator"; then -+ func_replace_sysroot "$libdir" -+ libdir=$func_replace_sysroot_result - if test -z "$hardcode_libdirs"; then - hardcode_libdirs="$libdir" - else -@@ -7113,18 +8046,18 @@ EOF - *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) - ;; - *) -- hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" -+ func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" - ;; - esac - fi - else -- eval "flag=\"$hardcode_libdir_flag_spec\"" -- dep_rpath="$dep_rpath $flag" -+ eval flag=\"$hardcode_libdir_flag_spec\" -+ func_append dep_rpath " $flag" - fi - elif test -n "$runpath_var"; then - case "$perm_rpath " in - *" $libdir "*) ;; -- *) perm_rpath="$perm_rpath $libdir" ;; -+ *) func_append perm_rpath " $libdir" ;; - esac - fi - done -@@ -7133,40 +8066,38 @@ EOF - test -n "$hardcode_libdirs"; then - libdir="$hardcode_libdirs" - if test -n "$hardcode_libdir_flag_spec_ld"; then -- eval "dep_rpath=\"$hardcode_libdir_flag_spec_ld\"" -+ eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" - else -- eval "dep_rpath=\"$hardcode_libdir_flag_spec\"" -+ eval dep_rpath=\"$hardcode_libdir_flag_spec\" - fi - fi - if test -n "$runpath_var" && test -n "$perm_rpath"; then - # We should set the runpath_var. - rpath= - for dir in $perm_rpath; do -- rpath="$rpath$dir:" -+ func_append rpath "$dir:" - done -- eval $runpath_var=\$rpath\$$runpath_var -- export $runpath_var -+ eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" - fi - test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" - fi - - shlibpath="$finalize_shlibpath" -- test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath" -+ test "$opt_mode" != relink && shlibpath="$compile_shlibpath$shlibpath" - if test -n "$shlibpath"; then -- eval $shlibpath_var=\$shlibpath\$$shlibpath_var -- export $shlibpath_var -+ eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" - fi - - # Get the real and link names of the library. -- eval "shared_ext=\"$shrext_cmds\"" -- eval "library_names=\"$library_names_spec\"" -+ eval shared_ext=\"$shrext_cmds\" -+ eval library_names=\"$library_names_spec\" - set dummy $library_names - shift - realname="$1" - shift - - if test -n "$soname_spec"; then -- eval "soname=\"$soname_spec\"" -+ eval soname=\"$soname_spec\" - else - soname="$realname" - fi -@@ -7178,7 +8109,7 @@ EOF - linknames= - for link - do -- linknames="$linknames $link" -+ func_append linknames " $link" - done - - # Use standard objects if they are pic -@@ -7189,7 +8120,7 @@ EOF - if test -n "$export_symbols" && test -n "$include_expsyms"; then - $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" - export_symbols="$output_objdir/$libname.uexp" -- delfiles="$delfiles $export_symbols" -+ func_append delfiles " $export_symbols" - fi - - orig_export_symbols= -@@ -7220,13 +8151,45 @@ EOF - $opt_dry_run || $RM $export_symbols - cmds=$export_symbols_cmds - save_ifs="$IFS"; IFS='~' -- for cmd in $cmds; do -+ for cmd1 in $cmds; do - IFS="$save_ifs" -- eval "cmd=\"$cmd\"" -- func_len " $cmd" -- len=$func_len_result -- if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then -+ # Take the normal branch if the nm_file_list_spec branch -+ # doesn't work or if tool conversion is not needed. -+ case $nm_file_list_spec~$to_tool_file_cmd in -+ *~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*) -+ try_normal_branch=yes -+ eval cmd=\"$cmd1\" -+ func_len " $cmd" -+ len=$func_len_result -+ ;; -+ *) -+ try_normal_branch=no -+ ;; -+ esac -+ if test "$try_normal_branch" = yes \ -+ && { test "$len" -lt "$max_cmd_len" \ -+ || test "$max_cmd_len" -le -1; } -+ then -+ func_show_eval "$cmd" 'exit $?' -+ skipped_export=false -+ elif test -n "$nm_file_list_spec"; then -+ func_basename "$output" -+ output_la=$func_basename_result -+ save_libobjs=$libobjs -+ save_output=$output -+ output=${output_objdir}/${output_la}.nm -+ func_to_tool_file "$output" -+ libobjs=$nm_file_list_spec$func_to_tool_file_result -+ func_append delfiles " $output" -+ func_verbose "creating $NM input file list: $output" -+ for obj in $save_libobjs; do -+ func_to_tool_file "$obj" -+ $ECHO "$func_to_tool_file_result" -+ done > "$output" -+ eval cmd=\"$cmd1\" - func_show_eval "$cmd" 'exit $?' -+ output=$save_output -+ libobjs=$save_libobjs - skipped_export=false - else - # The command line is too long to execute in one step. -@@ -7248,7 +8211,7 @@ EOF - if test -n "$export_symbols" && test -n "$include_expsyms"; then - tmp_export_symbols="$export_symbols" - test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" -- $opt_dry_run || $ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols" -+ $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' - fi - - if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then -@@ -7260,7 +8223,7 @@ EOF - # global variables. join(1) would be nice here, but unfortunately - # isn't a blessed tool. - $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter -- delfiles="$delfiles $export_symbols $output_objdir/$libname.filter" -+ func_append delfiles " $export_symbols $output_objdir/$libname.filter" - export_symbols=$output_objdir/$libname.def - $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols - fi -@@ -7270,7 +8233,7 @@ EOF - case " $convenience " in - *" $test_deplib "*) ;; - *) -- tmp_deplibs="$tmp_deplibs $test_deplib" -+ func_append tmp_deplibs " $test_deplib" - ;; - esac - done -@@ -7286,43 +8249,43 @@ EOF - fi - if test -n "$whole_archive_flag_spec"; then - save_libobjs=$libobjs -- eval "libobjs=\"\$libobjs $whole_archive_flag_spec\"" -+ eval libobjs=\"\$libobjs $whole_archive_flag_spec\" - test "X$libobjs" = "X " && libobjs= - else - gentop="$output_objdir/${outputname}x" -- generated="$generated $gentop" -+ func_append generated " $gentop" - - func_extract_archives $gentop $convenience -- libobjs="$libobjs $func_extract_archives_result" -+ func_append libobjs " $func_extract_archives_result" - test "X$libobjs" = "X " && libobjs= - fi - fi - - if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then -- eval "flag=\"$thread_safe_flag_spec\"" -- linker_flags="$linker_flags $flag" -+ eval flag=\"$thread_safe_flag_spec\" -+ func_append linker_flags " $flag" - fi - - # Make a backup of the uninstalled library when relinking -- if test "$mode" = relink; then -- $opt_dry_run || (cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U) || exit $? -+ if test "$opt_mode" = relink; then -+ $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? - fi - - # Do each of the archive commands. - if test "$module" = yes && test -n "$module_cmds" ; then - if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then -- eval "test_cmds=\"$module_expsym_cmds\"" -+ eval test_cmds=\"$module_expsym_cmds\" - cmds=$module_expsym_cmds - else -- eval "test_cmds=\"$module_cmds\"" -+ eval test_cmds=\"$module_cmds\" - cmds=$module_cmds - fi - else - if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then -- eval "test_cmds=\"$archive_expsym_cmds\"" -+ eval test_cmds=\"$archive_expsym_cmds\" - cmds=$archive_expsym_cmds - else -- eval "test_cmds=\"$archive_cmds\"" -+ eval test_cmds=\"$archive_cmds\" - cmds=$archive_cmds - fi - fi -@@ -7366,10 +8329,13 @@ EOF - echo 'INPUT (' > $output - for obj in $save_libobjs - do -- $ECHO "$obj" >> $output -+ func_to_tool_file "$obj" -+ $ECHO "$func_to_tool_file_result" >> $output - done - echo ')' >> $output -- delfiles="$delfiles $output" -+ func_append delfiles " $output" -+ func_to_tool_file "$output" -+ output=$func_to_tool_file_result - elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then - output=${output_objdir}/${output_la}.lnk - func_verbose "creating linker input file list: $output" -@@ -7383,15 +8349,17 @@ EOF - fi - for obj - do -- $ECHO "$obj" >> $output -+ func_to_tool_file "$obj" -+ $ECHO "$func_to_tool_file_result" >> $output - done -- delfiles="$delfiles $output" -- output=$firstobj\"$file_list_spec$output\" -+ func_append delfiles " $output" -+ func_to_tool_file "$output" -+ output=$firstobj\"$file_list_spec$func_to_tool_file_result\" - else - if test -n "$save_libobjs"; then - func_verbose "creating reloadable object files..." - output=$output_objdir/$output_la-${k}.$objext -- eval "test_cmds=\"$reload_cmds\"" -+ eval test_cmds=\"$reload_cmds\" - func_len " $test_cmds" - len0=$func_len_result - len=$len0 -@@ -7411,12 +8379,12 @@ EOF - if test "$k" -eq 1 ; then - # The first file doesn't have a previous command to add. - reload_objs=$objlist -- eval "concat_cmds=\"$reload_cmds\"" -+ eval concat_cmds=\"$reload_cmds\" - else - # All subsequent reloadable object files will link in - # the last one created. - reload_objs="$objlist $last_robj" -- eval "concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\"" -+ eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\" - fi - last_robj=$output_objdir/$output_la-${k}.$objext - func_arith $k + 1 -@@ -7433,11 +8401,11 @@ EOF - # files will link in the last one created. - test -z "$concat_cmds" || concat_cmds=$concat_cmds~ - reload_objs="$objlist $last_robj" -- eval "concat_cmds=\"\${concat_cmds}$reload_cmds\"" -+ eval concat_cmds=\"\${concat_cmds}$reload_cmds\" - if test -n "$last_robj"; then -- eval "concat_cmds=\"\${concat_cmds}~\$RM $last_robj\"" -+ eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\" - fi -- delfiles="$delfiles $output" -+ func_append delfiles " $output" - - else - output= -@@ -7450,9 +8418,9 @@ EOF - libobjs=$output - # Append the command to create the export file. - test -z "$concat_cmds" || concat_cmds=$concat_cmds~ -- eval "concat_cmds=\"\$concat_cmds$export_symbols_cmds\"" -+ eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\" - if test -n "$last_robj"; then -- eval "concat_cmds=\"\$concat_cmds~\$RM $last_robj\"" -+ eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" - fi - fi - -@@ -7471,7 +8439,7 @@ EOF - lt_exit=$? - - # Restore the uninstalled library and exit -- if test "$mode" = relink; then -+ if test "$opt_mode" = relink; then - ( cd "$output_objdir" && \ - $RM "${realname}T" && \ - $MV "${realname}U" "$realname" ) -@@ -7492,7 +8460,7 @@ EOF - if test -n "$export_symbols" && test -n "$include_expsyms"; then - tmp_export_symbols="$export_symbols" - test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" -- $opt_dry_run || $ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols" -+ $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' - fi - - if test -n "$orig_export_symbols"; then -@@ -7504,7 +8472,7 @@ EOF - # global variables. join(1) would be nice here, but unfortunately - # isn't a blessed tool. - $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter -- delfiles="$delfiles $export_symbols $output_objdir/$libname.filter" -+ func_append delfiles " $export_symbols $output_objdir/$libname.filter" - export_symbols=$output_objdir/$libname.def - $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols - fi -@@ -7515,7 +8483,7 @@ EOF - output=$save_output - - if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then -- eval "libobjs=\"\$libobjs $whole_archive_flag_spec\"" -+ eval libobjs=\"\$libobjs $whole_archive_flag_spec\" - test "X$libobjs" = "X " && libobjs= - fi - # Expand the library linking commands again to reset the -@@ -7539,23 +8507,23 @@ EOF - - if test -n "$delfiles"; then - # Append the command to remove temporary files to $cmds. -- eval "cmds=\"\$cmds~\$RM $delfiles\"" -+ eval cmds=\"\$cmds~\$RM $delfiles\" - fi - - # Add any objects from preloaded convenience libraries - if test -n "$dlprefiles"; then - gentop="$output_objdir/${outputname}x" -- generated="$generated $gentop" -+ func_append generated " $gentop" - - func_extract_archives $gentop $dlprefiles -- libobjs="$libobjs $func_extract_archives_result" -+ func_append libobjs " $func_extract_archives_result" - test "X$libobjs" = "X " && libobjs= - fi - - save_ifs="$IFS"; IFS='~' - for cmd in $cmds; do - IFS="$save_ifs" -- eval "cmd=\"$cmd\"" -+ eval cmd=\"$cmd\" - $opt_silent || { - func_quote_for_expand "$cmd" - eval "func_echo $func_quote_for_expand_result" -@@ -7564,7 +8532,7 @@ EOF - lt_exit=$? - - # Restore the uninstalled library and exit -- if test "$mode" = relink; then -+ if test "$opt_mode" = relink; then - ( cd "$output_objdir" && \ - $RM "${realname}T" && \ - $MV "${realname}U" "$realname" ) -@@ -7576,8 +8544,8 @@ EOF - IFS="$save_ifs" - - # Restore the uninstalled library and exit -- if test "$mode" = relink; then -- $opt_dry_run || (cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname) || exit $? -+ if test "$opt_mode" = relink; then -+ $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? - - if test -n "$convenience"; then - if test -z "$whole_archive_flag_spec"; then -@@ -7656,17 +8624,20 @@ EOF - - if test -n "$convenience"; then - if test -n "$whole_archive_flag_spec"; then -- eval "tmp_whole_archive_flags=\"$whole_archive_flag_spec\"" -+ eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" - reload_conv_objs=$reload_objs\ `$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'` - else - gentop="$output_objdir/${obj}x" -- generated="$generated $gentop" -+ func_append generated " $gentop" - - func_extract_archives $gentop $convenience - reload_conv_objs="$reload_objs $func_extract_archives_result" - fi - fi - -+ # If we're not building shared, we need to use non_pic_objs -+ test "$build_libtool_libs" != yes && libobjs="$non_pic_objects" -+ - # Create the old-style object. - reload_objs="$objs$old_deplibs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; /\.lib$/d; $lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test - -@@ -7690,7 +8661,7 @@ EOF - # Create an invalid libtool object if no PIC, so that we don't - # accidentally link it into a program. - # $show "echo timestamp > $libobj" -- # $opt_dry_run || echo timestamp > $libobj || exit $? -+ # $opt_dry_run || eval "echo timestamp > $libobj" || exit $? - exit $EXIT_SUCCESS - fi - -@@ -7740,8 +8711,8 @@ EOF - if test "$tagname" = CXX ; then - case ${MACOSX_DEPLOYMENT_TARGET-10.0} in - 10.[0123]) -- compile_command="$compile_command ${wl}-bind_at_load" -- finalize_command="$finalize_command ${wl}-bind_at_load" -+ func_append compile_command " ${wl}-bind_at_load" -+ func_append finalize_command " ${wl}-bind_at_load" - ;; - esac - fi -@@ -7761,7 +8732,7 @@ EOF - *) - case " $compile_deplibs " in - *" -L$path/$objdir "*) -- new_libs="$new_libs -L$path/$objdir" ;; -+ func_append new_libs " -L$path/$objdir" ;; - esac - ;; - esac -@@ -7771,17 +8742,17 @@ EOF - -L*) - case " $new_libs " in - *" $deplib "*) ;; -- *) new_libs="$new_libs $deplib" ;; -+ *) func_append new_libs " $deplib" ;; - esac - ;; -- *) new_libs="$new_libs $deplib" ;; -+ *) func_append new_libs " $deplib" ;; - esac - done - compile_deplibs="$new_libs" - - -- compile_command="$compile_command $compile_deplibs" -- finalize_command="$finalize_command $finalize_deplibs" -+ func_append compile_command " $compile_deplibs" -+ func_append finalize_command " $finalize_deplibs" - - if test -n "$rpath$xrpath"; then - # If the user specified any rpath flags, then add them. -@@ -7789,7 +8760,7 @@ EOF - # This is the magic to use -rpath. - case "$finalize_rpath " in - *" $libdir "*) ;; -- *) finalize_rpath="$finalize_rpath $libdir" ;; -+ *) func_append finalize_rpath " $libdir" ;; - esac - done - fi -@@ -7808,18 +8779,18 @@ EOF - *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) - ;; - *) -- hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" -+ func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" - ;; - esac - fi - else -- eval "flag=\"$hardcode_libdir_flag_spec\"" -- rpath="$rpath $flag" -+ eval flag=\"$hardcode_libdir_flag_spec\" -+ func_append rpath " $flag" - fi - elif test -n "$runpath_var"; then - case "$perm_rpath " in - *" $libdir "*) ;; -- *) perm_rpath="$perm_rpath $libdir" ;; -+ *) func_append perm_rpath " $libdir" ;; - esac - fi - case $host in -@@ -7828,12 +8799,12 @@ EOF - case :$dllsearchpath: in - *":$libdir:"*) ;; - ::) dllsearchpath=$libdir;; -- *) dllsearchpath="$dllsearchpath:$libdir";; -+ *) func_append dllsearchpath ":$libdir";; - esac - case :$dllsearchpath: in - *":$testbindir:"*) ;; - ::) dllsearchpath=$testbindir;; -- *) dllsearchpath="$dllsearchpath:$testbindir";; -+ *) func_append dllsearchpath ":$testbindir";; - esac - ;; - esac -@@ -7842,7 +8813,7 @@ EOF - if test -n "$hardcode_libdir_separator" && - test -n "$hardcode_libdirs"; then - libdir="$hardcode_libdirs" -- eval "rpath=\" $hardcode_libdir_flag_spec\"" -+ eval rpath=\" $hardcode_libdir_flag_spec\" - fi - compile_rpath="$rpath" - -@@ -7859,18 +8830,18 @@ EOF - *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) - ;; - *) -- hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" -+ func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" - ;; - esac - fi - else -- eval "flag=\"$hardcode_libdir_flag_spec\"" -- rpath="$rpath $flag" -+ eval flag=\"$hardcode_libdir_flag_spec\" -+ func_append rpath " $flag" - fi - elif test -n "$runpath_var"; then - case "$finalize_perm_rpath " in - *" $libdir "*) ;; -- *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;; -+ *) func_append finalize_perm_rpath " $libdir" ;; - esac - fi - done -@@ -7878,7 +8849,7 @@ EOF - if test -n "$hardcode_libdir_separator" && - test -n "$hardcode_libdirs"; then - libdir="$hardcode_libdirs" -- eval "rpath=\" $hardcode_libdir_flag_spec\"" -+ eval rpath=\" $hardcode_libdir_flag_spec\" - fi - finalize_rpath="$rpath" - -@@ -7921,6 +8892,12 @@ EOF - exit_status=0 - func_show_eval "$link_command" 'exit_status=$?' - -+ if test -n "$postlink_cmds"; then -+ func_to_tool_file "$output" -+ postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` -+ func_execute_cmds "$postlink_cmds" 'exit $?' -+ fi -+ - # Delete the generated files. - if test -f "$output_objdir/${outputname}S.${objext}"; then - func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"' -@@ -7943,7 +8920,7 @@ EOF - # We should set the runpath_var. - rpath= - for dir in $perm_rpath; do -- rpath="$rpath$dir:" -+ func_append rpath "$dir:" - done - compile_var="$runpath_var=\"$rpath\$$runpath_var\" " - fi -@@ -7951,7 +8928,7 @@ EOF - # We should set the runpath_var. - rpath= - for dir in $finalize_perm_rpath; do -- rpath="$rpath$dir:" -+ func_append rpath "$dir:" - done - finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " - fi -@@ -7966,6 +8943,13 @@ EOF - $opt_dry_run || $RM $output - # Link the executable and exit - func_show_eval "$link_command" 'exit $?' -+ -+ if test -n "$postlink_cmds"; then -+ func_to_tool_file "$output" -+ postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` -+ func_execute_cmds "$postlink_cmds" 'exit $?' -+ fi -+ - exit $EXIT_SUCCESS - fi - -@@ -7999,6 +8983,12 @@ EOF - - func_show_eval "$link_command" 'exit $?' - -+ if test -n "$postlink_cmds"; then -+ func_to_tool_file "$output_objdir/$outputname" -+ postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` -+ func_execute_cmds "$postlink_cmds" 'exit $?' -+ fi -+ - # Now create the wrapper script. - func_verbose "creating $output" - -@@ -8096,7 +9086,7 @@ EOF - else - oldobjs="$old_deplibs $non_pic_objects" - if test "$preload" = yes && test -f "$symfileobj"; then -- oldobjs="$oldobjs $symfileobj" -+ func_append oldobjs " $symfileobj" - fi - fi - addlibs="$old_convenience" -@@ -8104,10 +9094,10 @@ EOF - - if test -n "$addlibs"; then - gentop="$output_objdir/${outputname}x" -- generated="$generated $gentop" -+ func_append generated " $gentop" - - func_extract_archives $gentop $addlibs -- oldobjs="$oldobjs $func_extract_archives_result" -+ func_append oldobjs " $func_extract_archives_result" - fi - - # Do each command in the archive commands. -@@ -8118,10 +9108,10 @@ EOF - # Add any objects from preloaded convenience libraries - if test -n "$dlprefiles"; then - gentop="$output_objdir/${outputname}x" -- generated="$generated $gentop" -+ func_append generated " $gentop" - - func_extract_archives $gentop $dlprefiles -- oldobjs="$oldobjs $func_extract_archives_result" -+ func_append oldobjs " $func_extract_archives_result" - fi - - # POSIX demands no paths to be encoded in archives. We have -@@ -8139,7 +9129,7 @@ EOF - else - echo "copying selected object files to avoid basename conflicts..." - gentop="$output_objdir/${outputname}x" -- generated="$generated $gentop" -+ func_append generated " $gentop" - func_mkdir_p "$gentop" - save_oldobjs=$oldobjs - oldobjs= -@@ -8163,18 +9153,28 @@ EOF - esac - done - func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" -- oldobjs="$oldobjs $gentop/$newobj" -+ func_append oldobjs " $gentop/$newobj" - ;; -- *) oldobjs="$oldobjs $obj" ;; -+ *) func_append oldobjs " $obj" ;; - esac - done - fi -- eval "cmds=\"$old_archive_cmds\"" -+ eval cmds=\"$old_archive_cmds\" - - func_len " $cmds" - len=$func_len_result - if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then - cmds=$old_archive_cmds -+ elif test -n "$archiver_list_spec"; then -+ func_verbose "using command file archive linking..." -+ for obj in $oldobjs -+ do -+ func_to_tool_file "$obj" -+ $ECHO "$func_to_tool_file_result" -+ done > $output_objdir/$libname.libcmd -+ func_to_tool_file "$output_objdir/$libname.libcmd" -+ oldobjs=" $archiver_list_spec$func_to_tool_file_result" -+ cmds=$old_archive_cmds - else - # the command line is too long to link in one step, link in parts - func_verbose "using piecewise archive linking..." -@@ -8189,7 +9189,7 @@ EOF - do - last_oldobj=$obj - done -- eval "test_cmds=\"$old_archive_cmds\"" -+ eval test_cmds=\"$old_archive_cmds\" - func_len " $test_cmds" - len0=$func_len_result - len=$len0 -@@ -8208,7 +9208,7 @@ EOF - RANLIB=$save_RANLIB - fi - test -z "$concat_cmds" || concat_cmds=$concat_cmds~ -- eval "concat_cmds=\"\${concat_cmds}$old_archive_cmds\"" -+ eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" - objlist= - len=$len0 - fi -@@ -8216,9 +9216,9 @@ EOF - RANLIB=$save_RANLIB - oldobjs=$objlist - if test "X$oldobjs" = "X" ; then -- eval "cmds=\"\$concat_cmds\"" -+ eval cmds=\"\$concat_cmds\" - else -- eval "cmds=\"\$concat_cmds~\$old_archive_cmds\"" -+ eval cmds=\"\$concat_cmds~\$old_archive_cmds\" - fi - fi - fi -@@ -8268,12 +9268,23 @@ EOF - *.la) - func_basename "$deplib" - name="$func_basename_result" -- libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` -+ func_resolve_sysroot "$deplib" -+ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result` - test -z "$libdir" && \ - func_fatal_error "\`$deplib' is not a valid libtool archive" -- newdependency_libs="$newdependency_libs $libdir/$name" -+ func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name" -+ ;; -+ -L*) -+ func_stripname -L '' "$deplib" -+ func_replace_sysroot "$func_stripname_result" -+ func_append newdependency_libs " -L$func_replace_sysroot_result" - ;; -- *) newdependency_libs="$newdependency_libs $deplib" ;; -+ -R*) -+ func_stripname -R '' "$deplib" -+ func_replace_sysroot "$func_stripname_result" -+ func_append newdependency_libs " -R$func_replace_sysroot_result" -+ ;; -+ *) func_append newdependency_libs " $deplib" ;; - esac - done - dependency_libs="$newdependency_libs" -@@ -8284,12 +9295,14 @@ EOF - *.la) - func_basename "$lib" - name="$func_basename_result" -- libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` -+ func_resolve_sysroot "$lib" -+ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result` -+ - test -z "$libdir" && \ - func_fatal_error "\`$lib' is not a valid libtool archive" -- newdlfiles="$newdlfiles $libdir/$name" -+ func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name" - ;; -- *) newdlfiles="$newdlfiles $lib" ;; -+ *) func_append newdlfiles " $lib" ;; - esac - done - dlfiles="$newdlfiles" -@@ -8303,10 +9316,11 @@ EOF - # the library: - func_basename "$lib" - name="$func_basename_result" -- libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` -+ func_resolve_sysroot "$lib" -+ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result` - test -z "$libdir" && \ - func_fatal_error "\`$lib' is not a valid libtool archive" -- newdlprefiles="$newdlprefiles $libdir/$name" -+ func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name" - ;; - esac - done -@@ -8318,7 +9332,7 @@ EOF - [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; - *) abs=`pwd`"/$lib" ;; - esac -- newdlfiles="$newdlfiles $abs" -+ func_append newdlfiles " $abs" - done - dlfiles="$newdlfiles" - newdlprefiles= -@@ -8327,7 +9341,7 @@ EOF - [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; - *) abs=`pwd`"/$lib" ;; - esac -- newdlprefiles="$newdlprefiles $abs" -+ func_append newdlprefiles " $abs" - done - dlprefiles="$newdlprefiles" - fi -@@ -8412,7 +9426,7 @@ relink_command=\"$relink_command\"" - exit $EXIT_SUCCESS - } - --{ test "$mode" = link || test "$mode" = relink; } && -+{ test "$opt_mode" = link || test "$opt_mode" = relink; } && - func_mode_link ${1+"$@"} - - -@@ -8432,9 +9446,9 @@ func_mode_uninstall () - for arg - do - case $arg in -- -f) RM="$RM $arg"; rmforce=yes ;; -- -*) RM="$RM $arg" ;; -- *) files="$files $arg" ;; -+ -f) func_append RM " $arg"; rmforce=yes ;; -+ -*) func_append RM " $arg" ;; -+ *) func_append files " $arg" ;; - esac - done - -@@ -8443,24 +9457,23 @@ func_mode_uninstall () - - rmdirs= - -- origobjdir="$objdir" - for file in $files; do - func_dirname "$file" "" "." - dir="$func_dirname_result" - if test "X$dir" = X.; then -- objdir="$origobjdir" -+ odir="$objdir" - else -- objdir="$dir/$origobjdir" -+ odir="$dir/$objdir" - fi - func_basename "$file" - name="$func_basename_result" -- test "$mode" = uninstall && objdir="$dir" -+ test "$opt_mode" = uninstall && odir="$dir" - -- # Remember objdir for removal later, being careful to avoid duplicates -- if test "$mode" = clean; then -+ # Remember odir for removal later, being careful to avoid duplicates -+ if test "$opt_mode" = clean; then - case " $rmdirs " in -- *" $objdir "*) ;; -- *) rmdirs="$rmdirs $objdir" ;; -+ *" $odir "*) ;; -+ *) func_append rmdirs " $odir" ;; - esac - fi - -@@ -8486,18 +9499,17 @@ func_mode_uninstall () - - # Delete the libtool libraries and symlinks. - for n in $library_names; do -- rmfiles="$rmfiles $objdir/$n" -+ func_append rmfiles " $odir/$n" - done -- test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library" -+ test -n "$old_library" && func_append rmfiles " $odir/$old_library" - -- case "$mode" in -+ case "$opt_mode" in - clean) -- case " $library_names " in -- # " " in the beginning catches empty $dlname -+ case " $library_names " in - *" $dlname "*) ;; -- *) rmfiles="$rmfiles $objdir/$dlname" ;; -+ *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;; - esac -- test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" -+ test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i" - ;; - uninstall) - if test -n "$library_names"; then -@@ -8525,19 +9537,19 @@ func_mode_uninstall () - # Add PIC object to the list of files to remove. - if test -n "$pic_object" && - test "$pic_object" != none; then -- rmfiles="$rmfiles $dir/$pic_object" -+ func_append rmfiles " $dir/$pic_object" - fi - - # Add non-PIC object to the list of files to remove. - if test -n "$non_pic_object" && - test "$non_pic_object" != none; then -- rmfiles="$rmfiles $dir/$non_pic_object" -+ func_append rmfiles " $dir/$non_pic_object" - fi - fi - ;; - - *) -- if test "$mode" = clean ; then -+ if test "$opt_mode" = clean ; then - noexename=$name - case $file in - *.exe) -@@ -8547,7 +9559,7 @@ func_mode_uninstall () - noexename=$func_stripname_result - # $file with .exe has already been added to rmfiles, - # add $file without .exe -- rmfiles="$rmfiles $file" -+ func_append rmfiles " $file" - ;; - esac - # Do a test to see if this is a libtool program. -@@ -8556,7 +9568,7 @@ func_mode_uninstall () - func_ltwrapper_scriptname "$file" - relink_command= - func_source $func_ltwrapper_scriptname_result -- rmfiles="$rmfiles $func_ltwrapper_scriptname_result" -+ func_append rmfiles " $func_ltwrapper_scriptname_result" - else - relink_command= - func_source $dir/$noexename -@@ -8564,12 +9576,12 @@ func_mode_uninstall () - - # note $name still contains .exe if it was in $file originally - # as does the version of $file that was added into $rmfiles -- rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}" -+ func_append rmfiles " $odir/$name $odir/${name}S.${objext}" - if test "$fast_install" = yes && test -n "$relink_command"; then -- rmfiles="$rmfiles $objdir/lt-$name" -+ func_append rmfiles " $odir/lt-$name" - fi - if test "X$noexename" != "X$name" ; then -- rmfiles="$rmfiles $objdir/lt-${noexename}.c" -+ func_append rmfiles " $odir/lt-${noexename}.c" - fi - fi - fi -@@ -8577,7 +9589,6 @@ func_mode_uninstall () - esac - func_show_eval "$RM $rmfiles" 'exit_status=1' - done -- objdir="$origobjdir" - - # Try to remove the ${objdir}s in the directories where we deleted files - for dir in $rmdirs; do -@@ -8589,16 +9600,16 @@ func_mode_uninstall () - exit $exit_status - } - --{ test "$mode" = uninstall || test "$mode" = clean; } && -+{ test "$opt_mode" = uninstall || test "$opt_mode" = clean; } && - func_mode_uninstall ${1+"$@"} - --test -z "$mode" && { -+test -z "$opt_mode" && { - help="$generic_help" - func_fatal_help "you must specify a MODE" - } - - test -z "$exec_cmd" && \ -- func_fatal_help "invalid operation mode \`$mode'" -+ func_fatal_help "invalid operation mode \`$opt_mode'" - - if test -n "$exec_cmd"; then - eval exec "$exec_cmd" -diff --git a/ltoptions.m4 b/ltoptions.m4 -index 5ef12ce..17cfd51 100644 ---- a/ltoptions.m4 -+++ b/ltoptions.m4 -@@ -8,7 +8,7 @@ - # unlimited permission to copy and/or distribute it, with or without - # modifications, as long as this notice is preserved. - --# serial 6 ltoptions.m4 -+# serial 7 ltoptions.m4 - - # This is to help aclocal find these macros, as it can't see m4_define. - AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) -diff --git a/ltversion.m4 b/ltversion.m4 -index bf87f77..9c7b5d4 100644 ---- a/ltversion.m4 -+++ b/ltversion.m4 -@@ -7,17 +7,17 @@ - # unlimited permission to copy and/or distribute it, with or without - # modifications, as long as this notice is preserved. - --# Generated from ltversion.in. -+# @configure_input@ - --# serial 3134 ltversion.m4 -+# serial 3293 ltversion.m4 - # This file is part of GNU Libtool - --m4_define([LT_PACKAGE_VERSION], [2.2.7a]) --m4_define([LT_PACKAGE_REVISION], [1.3134]) -+m4_define([LT_PACKAGE_VERSION], [2.4]) -+m4_define([LT_PACKAGE_REVISION], [1.3293]) - - AC_DEFUN([LTVERSION_VERSION], --[macro_version='2.2.7a' --macro_revision='1.3134' -+[macro_version='2.4' -+macro_revision='1.3293' - _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) - _LT_DECL(, macro_revision, 0) - ]) -diff --git a/lt~obsolete.m4 b/lt~obsolete.m4 -index bf92b5e..c573da9 100644 ---- a/lt~obsolete.m4 -+++ b/lt~obsolete.m4 -@@ -7,7 +7,7 @@ - # unlimited permission to copy and/or distribute it, with or without - # modifications, as long as this notice is preserved. - --# serial 4 lt~obsolete.m4 -+# serial 5 lt~obsolete.m4 - - # These exist entirely to fool aclocal when bootstrapping libtool. - # -diff --git a/opcodes/configure b/opcodes/configure -index f615634..a340983 100755 ---- a/opcodes/configure -+++ b/opcodes/configure -@@ -649,6 +649,9 @@ OTOOL - LIPO - NMEDIT - DSYMUTIL -+MANIFEST_TOOL -+ac_ct_AR -+DLLTOOL - OBJDUMP - LN_S - NM -@@ -762,6 +765,7 @@ enable_static - with_pic - enable_fast_install - with_gnu_ld -+with_libtool_sysroot - enable_libtool_lock - enable_targets - enable_werror -@@ -1422,6 +1426,8 @@ Optional Packages: - --with-pic try to use only PIC/non-PIC objects [default=use - both] - --with-gnu-ld assume the C compiler uses GNU ld [default=no] -+ --with-libtool-sysroot=DIR Search for dependent libraries within DIR -+ (or the compiler's sysroot if not specified). - - Some influential environment variables: - CC C compiler command -@@ -5114,8 +5120,8 @@ esac - - - --macro_version='2.2.7a' --macro_revision='1.3134' -+macro_version='2.4' -+macro_revision='1.3293' - - - -@@ -5155,7 +5161,7 @@ ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO - { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5 - $as_echo_n "checking how to print strings... " >&6; } - # Test print first, because it will be a builtin if present. --if test "X`print -r -- -n 2>/dev/null`" = X-n && \ -+if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ - test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then - ECHO='print -r --' - elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then -@@ -5841,8 +5847,8 @@ $as_echo_n "checking whether the shell understands some XSI constructs... " >&6; - # Try some XSI features - xsi_shell=no - ( _lt_dummy="a/b/c" -- test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \ -- = c,a/b,, \ -+ test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ -+ = c,a/b,b/c, \ - && eval 'test $(( 1 + 1 )) -eq 2 \ - && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ - && xsi_shell=yes -@@ -5891,6 +5897,80 @@ esac - - - -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5 -+$as_echo_n "checking how to convert $build file names to $host format... " >&6; } -+if test "${lt_cv_to_host_file_cmd+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ case $host in -+ *-*-mingw* ) -+ case $build in -+ *-*-mingw* ) # actually msys -+ lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 -+ ;; -+ *-*-cygwin* ) -+ lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 -+ ;; -+ * ) # otherwise, assume *nix -+ lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 -+ ;; -+ esac -+ ;; -+ *-*-cygwin* ) -+ case $build in -+ *-*-mingw* ) # actually msys -+ lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin -+ ;; -+ *-*-cygwin* ) -+ lt_cv_to_host_file_cmd=func_convert_file_noop -+ ;; -+ * ) # otherwise, assume *nix -+ lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin -+ ;; -+ esac -+ ;; -+ * ) # unhandled hosts (and "normal" native builds) -+ lt_cv_to_host_file_cmd=func_convert_file_noop -+ ;; -+esac -+ -+fi -+ -+to_host_file_cmd=$lt_cv_to_host_file_cmd -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5 -+$as_echo "$lt_cv_to_host_file_cmd" >&6; } -+ -+ -+ -+ -+ -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5 -+$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; } -+if test "${lt_cv_to_tool_file_cmd+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ #assume ordinary cross tools, or native build. -+lt_cv_to_tool_file_cmd=func_convert_file_noop -+case $host in -+ *-*-mingw* ) -+ case $build in -+ *-*-mingw* ) # actually msys -+ lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 -+ ;; -+ esac -+ ;; -+esac -+ -+fi -+ -+to_tool_file_cmd=$lt_cv_to_tool_file_cmd -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5 -+$as_echo "$lt_cv_to_tool_file_cmd" >&6; } -+ -+ -+ -+ -+ - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 - $as_echo_n "checking for $LD option to reload object files... " >&6; } - if test "${lt_cv_ld_reload_flag+set}" = set; then : -@@ -5907,6 +5987,11 @@ case $reload_flag in - esac - reload_cmds='$LD$reload_flag -o $output$reload_objs' - case $host_os in -+ cygwin* | mingw* | pw32* | cegcc*) -+ if test "$GCC" != yes; then -+ reload_cmds=false -+ fi -+ ;; - darwin*) - if test "$GCC" = yes; then - reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' -@@ -6075,7 +6160,8 @@ mingw* | pw32*) - lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' - lt_cv_file_magic_cmd='func_win32_libid' - else -- lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' -+ # Keep this pattern in sync with the one in func_win32_libid. -+ lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' - lt_cv_file_magic_cmd='$OBJDUMP -f' - fi - ;; -@@ -6229,6 +6315,21 @@ esac - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 - $as_echo "$lt_cv_deplibs_check_method" >&6; } -+ -+file_magic_glob= -+want_nocaseglob=no -+if test "$build" = "$host"; then -+ case $host_os in -+ mingw* | pw32*) -+ if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then -+ want_nocaseglob=yes -+ else -+ file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"` -+ fi -+ ;; -+ esac -+fi -+ - file_magic_cmd=$lt_cv_file_magic_cmd - deplibs_check_method=$lt_cv_deplibs_check_method - test -z "$deplibs_check_method" && deplibs_check_method=unknown -@@ -6244,9 +6345,162 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown - - - -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ - if test -n "$ac_tool_prefix"; then -- # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. --set dummy ${ac_tool_prefix}ar; ac_word=$2 -+ # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. -+set dummy ${ac_tool_prefix}dlltool; ac_word=$2 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+$as_echo_n "checking for $ac_word... " >&6; } -+if test "${ac_cv_prog_DLLTOOL+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ if test -n "$DLLTOOL"; then -+ ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. -+else -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then -+ ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" -+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+ done -+IFS=$as_save_IFS -+ -+fi -+fi -+DLLTOOL=$ac_cv_prog_DLLTOOL -+if test -n "$DLLTOOL"; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 -+$as_echo "$DLLTOOL" >&6; } -+else -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+$as_echo "no" >&6; } -+fi -+ -+ -+fi -+if test -z "$ac_cv_prog_DLLTOOL"; then -+ ac_ct_DLLTOOL=$DLLTOOL -+ # Extract the first word of "dlltool", so it can be a program name with args. -+set dummy dlltool; ac_word=$2 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+$as_echo_n "checking for $ac_word... " >&6; } -+if test "${ac_cv_prog_ac_ct_DLLTOOL+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ if test -n "$ac_ct_DLLTOOL"; then -+ ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. -+else -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then -+ ac_cv_prog_ac_ct_DLLTOOL="dlltool" -+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+ done -+IFS=$as_save_IFS -+ -+fi -+fi -+ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL -+if test -n "$ac_ct_DLLTOOL"; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 -+$as_echo "$ac_ct_DLLTOOL" >&6; } -+else -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+$as_echo "no" >&6; } -+fi -+ -+ if test "x$ac_ct_DLLTOOL" = x; then -+ DLLTOOL="false" -+ else -+ case $cross_compiling:$ac_tool_warned in -+yes:) -+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -+ac_tool_warned=yes ;; -+esac -+ DLLTOOL=$ac_ct_DLLTOOL -+ fi -+else -+ DLLTOOL="$ac_cv_prog_DLLTOOL" -+fi -+ -+test -z "$DLLTOOL" && DLLTOOL=dlltool -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5 -+$as_echo_n "checking how to associate runtime and link libraries... " >&6; } -+if test "${lt_cv_sharedlib_from_linklib_cmd+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ lt_cv_sharedlib_from_linklib_cmd='unknown' -+ -+case $host_os in -+cygwin* | mingw* | pw32* | cegcc*) -+ # two different shell functions defined in ltmain.sh -+ # decide which to use based on capabilities of $DLLTOOL -+ case `$DLLTOOL --help 2>&1` in -+ *--identify-strict*) -+ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib -+ ;; -+ *) -+ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback -+ ;; -+ esac -+ ;; -+*) -+ # fallback: assume linklib IS sharedlib -+ lt_cv_sharedlib_from_linklib_cmd="$ECHO" -+ ;; -+esac -+ -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5 -+$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; } -+sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd -+test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO -+ -+ -+ -+ -+ -+ -+ -+if test -n "$ac_tool_prefix"; then -+ for ac_prog in ar -+ do -+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -+set dummy $ac_tool_prefix$ac_prog; ac_word=$2 - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 - $as_echo_n "checking for $ac_word... " >&6; } - if test "${ac_cv_prog_AR+set}" = set; then : -@@ -6262,7 +6516,7 @@ do - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then -- ac_cv_prog_AR="${ac_tool_prefix}ar" -+ ac_cv_prog_AR="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -@@ -6282,11 +6536,15 @@ $as_echo "no" >&6; } - fi - - -+ test -n "$AR" && break -+ done - fi --if test -z "$ac_cv_prog_AR"; then -+if test -z "$AR"; then - ac_ct_AR=$AR -- # Extract the first word of "ar", so it can be a program name with args. --set dummy ar; ac_word=$2 -+ for ac_prog in ar -+do -+ # Extract the first word of "$ac_prog", so it can be a program name with args. -+set dummy $ac_prog; ac_word=$2 - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 - $as_echo_n "checking for $ac_word... " >&6; } - if test "${ac_cv_prog_ac_ct_AR+set}" = set; then : -@@ -6302,7 +6560,7 @@ do - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then -- ac_cv_prog_ac_ct_AR="ar" -+ ac_cv_prog_ac_ct_AR="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -@@ -6321,6 +6579,10 @@ else - $as_echo "no" >&6; } - fi - -+ -+ test -n "$ac_ct_AR" && break -+done -+ - if test "x$ac_ct_AR" = x; then - AR="false" - else -@@ -6332,16 +6594,72 @@ ac_tool_warned=yes ;; - esac - AR=$ac_ct_AR - fi --else -- AR="$ac_cv_prog_AR" - fi - --test -z "$AR" && AR=ar --test -z "$AR_FLAGS" && AR_FLAGS=cru -+: ${AR=ar} -+: ${AR_FLAGS=cru} -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 -+$as_echo_n "checking for archiver @FILE support... " >&6; } -+if test "${lt_cv_ar_at_file+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ lt_cv_ar_at_file=no -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+/* end confdefs.h. */ -+ -+int -+main () -+{ - -+ ; -+ return 0; -+} -+_ACEOF -+if ac_fn_c_try_compile "$LINENO"; then : -+ echo conftest.$ac_objext > conftest.lst -+ lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5' -+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 -+ (eval $lt_ar_try) 2>&5 -+ ac_status=$? -+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 -+ test $ac_status = 0; } -+ if test "$ac_status" -eq 0; then -+ # Ensure the archiver fails upon bogus file names. -+ rm -f conftest.$ac_objext libconftest.a -+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 -+ (eval $lt_ar_try) 2>&5 -+ ac_status=$? -+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 -+ test $ac_status = 0; } -+ if test "$ac_status" -ne 0; then -+ lt_cv_ar_at_file=@ -+ fi -+ fi -+ rm -f conftest.* libconftest.a - -+fi -+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 -+$as_echo "$lt_cv_ar_at_file" >&6; } - -+if test "x$lt_cv_ar_at_file" = xno; then -+ archiver_list_spec= -+else -+ archiver_list_spec=$lt_cv_ar_at_file -+fi - - - -@@ -6683,8 +7001,8 @@ esac - lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" - - # Transform an extracted symbol line into symbol name and symbol address --lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" --lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" -+lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" -+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" - - # Handle CRLF in mingw tool chain - opt_cr= -@@ -6720,6 +7038,7 @@ for ac_symprfx in "" "_"; do - else - lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" - fi -+ lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" - - # Check to see that the pipe works correctly. - pipe_works=no -@@ -6761,6 +7080,18 @@ _LT_EOF - if $GREP ' nm_test_var$' "$nlist" >/dev/null; then - if $GREP ' nm_test_func$' "$nlist" >/dev/null; then - cat <<_LT_EOF > conftest.$ac_ext -+/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ -+#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) -+/* DATA imports from DLLs on WIN32 con't be const, because runtime -+ relocations are performed -- see ld's documentation on pseudo-relocs. */ -+# define LT_DLSYM_CONST -+#elif defined(__osf__) -+/* This system does not cope well with relocations in const data. */ -+# define LT_DLSYM_CONST -+#else -+# define LT_DLSYM_CONST const -+#endif -+ - #ifdef __cplusplus - extern "C" { - #endif -@@ -6772,7 +7103,7 @@ _LT_EOF - cat <<_LT_EOF >> conftest.$ac_ext - - /* The mapping between symbol names and symbols. */ --const struct { -+LT_DLSYM_CONST struct { - const char *name; - void *address; - } -@@ -6798,8 +7129,8 @@ static const void *lt_preloaded_setup() { - _LT_EOF - # Now try linking the two files. - mv conftest.$ac_objext conftstm.$ac_objext -- lt_save_LIBS="$LIBS" -- lt_save_CFLAGS="$CFLAGS" -+ lt_globsym_save_LIBS=$LIBS -+ lt_globsym_save_CFLAGS=$CFLAGS - LIBS="conftstm.$ac_objext" - CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 -@@ -6809,8 +7140,8 @@ _LT_EOF - test $ac_status = 0; } && test -s conftest${ac_exeext}; then - pipe_works=yes - fi -- LIBS="$lt_save_LIBS" -- CFLAGS="$lt_save_CFLAGS" -+ LIBS=$lt_globsym_save_LIBS -+ CFLAGS=$lt_globsym_save_CFLAGS - else - echo "cannot find nm_test_func in $nlist" >&5 - fi -@@ -6847,6 +7178,16 @@ else - $as_echo "ok" >&6; } - fi - -+# Response file support. -+if test "$lt_cv_nm_interface" = "MS dumpbin"; then -+ nm_file_list_spec='@' -+elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then -+ nm_file_list_spec='@' -+fi -+ -+ -+ -+ - - - -@@ -6868,6 +7209,45 @@ fi - - - -+ -+ -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 -+$as_echo_n "checking for sysroot... " >&6; } -+ -+# Check whether --with-libtool-sysroot was given. -+if test "${with_libtool_sysroot+set}" = set; then : -+ withval=$with_libtool_sysroot; -+else -+ with_libtool_sysroot=no -+fi -+ -+ -+lt_sysroot= -+case ${with_libtool_sysroot} in #( -+ yes) -+ if test "$GCC" = yes; then -+ lt_sysroot=`$CC --print-sysroot 2>/dev/null` -+ fi -+ ;; #( -+ /*) -+ lt_sysroot=`echo "$with_libtool_sysroot" | sed -e "$sed_quote_subst"` -+ ;; #( -+ no|'') -+ ;; #( -+ *) -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_libtool_sysroot}" >&5 -+$as_echo "${with_libtool_sysroot}" >&6; } -+ as_fn_error "The sysroot must be an absolute path." "$LINENO" 5 -+ ;; -+esac -+ -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5 -+$as_echo "${lt_sysroot:-no}" >&6; } -+ -+ -+ -+ -+ - # Check whether --enable-libtool-lock was given. - if test "${enable_libtool_lock+set}" = set; then : - enableval=$enable_libtool_lock; -@@ -7074,6 +7454,123 @@ esac - - need_locks="$enable_libtool_lock" - -+if test -n "$ac_tool_prefix"; then -+ # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args. -+set dummy ${ac_tool_prefix}mt; ac_word=$2 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+$as_echo_n "checking for $ac_word... " >&6; } -+if test "${ac_cv_prog_MANIFEST_TOOL+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ if test -n "$MANIFEST_TOOL"; then -+ ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test. -+else -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then -+ ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt" -+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+ done -+IFS=$as_save_IFS -+ -+fi -+fi -+MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL -+if test -n "$MANIFEST_TOOL"; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5 -+$as_echo "$MANIFEST_TOOL" >&6; } -+else -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+$as_echo "no" >&6; } -+fi -+ -+ -+fi -+if test -z "$ac_cv_prog_MANIFEST_TOOL"; then -+ ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL -+ # Extract the first word of "mt", so it can be a program name with args. -+set dummy mt; ac_word=$2 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+$as_echo_n "checking for $ac_word... " >&6; } -+if test "${ac_cv_prog_ac_ct_MANIFEST_TOOL+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ if test -n "$ac_ct_MANIFEST_TOOL"; then -+ ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test. -+else -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then -+ ac_cv_prog_ac_ct_MANIFEST_TOOL="mt" -+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+ done -+IFS=$as_save_IFS -+ -+fi -+fi -+ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL -+if test -n "$ac_ct_MANIFEST_TOOL"; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5 -+$as_echo "$ac_ct_MANIFEST_TOOL" >&6; } -+else -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+$as_echo "no" >&6; } -+fi -+ -+ if test "x$ac_ct_MANIFEST_TOOL" = x; then -+ MANIFEST_TOOL=":" -+ else -+ case $cross_compiling:$ac_tool_warned in -+yes:) -+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -+ac_tool_warned=yes ;; -+esac -+ MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL -+ fi -+else -+ MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL" -+fi -+ -+test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5 -+$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; } -+if test "${lt_cv_path_mainfest_tool+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ lt_cv_path_mainfest_tool=no -+ echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5 -+ $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out -+ cat conftest.err >&5 -+ if $GREP 'Manifest Tool' conftest.out > /dev/null; then -+ lt_cv_path_mainfest_tool=yes -+ fi -+ rm -f conftest* -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5 -+$as_echo "$lt_cv_path_mainfest_tool" >&6; } -+if test "x$lt_cv_path_mainfest_tool" != xyes; then -+ MANIFEST_TOOL=: -+fi -+ -+ -+ -+ -+ - - case $host_os in - rhapsody* | darwin*) -@@ -7637,6 +8134,8 @@ _LT_EOF - $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 - echo "$AR cru libconftest.a conftest.o" >&5 - $AR cru libconftest.a conftest.o 2>&5 -+ echo "$RANLIB libconftest.a" >&5 -+ $RANLIB libconftest.a 2>&5 - cat > conftest.c << _LT_EOF - int main() { return 0;} - _LT_EOF -@@ -7802,7 +8301,8 @@ fi - LIBTOOL_DEPS="$ltmain" - - # Always use our own libtool. --LIBTOOL='$(SHELL) $(top_builddir)/libtool' -+LIBTOOL='$(SHELL) $(top_builddir)' -+LIBTOOL="$LIBTOOL/${host_alias}-libtool" - - - -@@ -7891,7 +8391,7 @@ aix3*) - esac - - # Global variables: --ofile=libtool -+ofile=${host_alias}-libtool - can_build_shared=yes - - # All known linkers require a `.a' archive for static linking (except MSVC, -@@ -8189,8 +8689,6 @@ fi - lt_prog_compiler_pic= - lt_prog_compiler_static= - --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 --$as_echo_n "checking for $compiler option to produce PIC... " >&6; } - - if test "$GCC" = yes; then - lt_prog_compiler_wl='-Wl,' -@@ -8356,6 +8854,12 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; } - lt_prog_compiler_pic='--shared' - lt_prog_compiler_static='--static' - ;; -+ nagfor*) -+ # NAG Fortran compiler -+ lt_prog_compiler_wl='-Wl,-Wl,,' -+ lt_prog_compiler_pic='-PIC' -+ lt_prog_compiler_static='-Bstatic' -+ ;; - pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) - # Portland Group compilers (*not* the Pentium gcc compiler, - # which looks to be a dead project) -@@ -8418,7 +8922,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; } - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-Bstatic' - case $cc_basename in -- f77* | f90* | f95*) -+ f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) - lt_prog_compiler_wl='-Qoption ld ';; - *) - lt_prog_compiler_wl='-Wl,';; -@@ -8475,13 +8979,17 @@ case $host_os in - lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" - ;; - esac --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic" >&5 --$as_echo "$lt_prog_compiler_pic" >&6; } -- -- -- -- - -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 -+$as_echo_n "checking for $compiler option to produce PIC... " >&6; } -+if test "${lt_cv_prog_compiler_pic+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ lt_cv_prog_compiler_pic=$lt_prog_compiler_pic -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 -+$as_echo "$lt_cv_prog_compiler_pic" >&6; } -+lt_prog_compiler_pic=$lt_cv_prog_compiler_pic - - # - # Check to make sure the PIC flag actually works. -@@ -8542,6 +9050,11 @@ fi - - - -+ -+ -+ -+ -+ - # - # Check to make sure the static flag actually works. - # -@@ -8892,7 +9405,8 @@ _LT_EOF - allow_undefined_flag=unsupported - always_export_symbols=no - enable_shared_with_static_runtimes=yes -- export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' -+ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' -+ exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' - - if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' -@@ -8991,12 +9505,12 @@ _LT_EOF - whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' - hardcode_libdir_flag_spec= - hardcode_libdir_flag_spec_ld='-rpath $libdir' -- archive_cmds='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib' -+ archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' - if test "x$supports_anon_versioning" = xyes; then - archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ - cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ - echo "local: *; };" >> $output_objdir/$libname.ver~ -- $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' -+ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' - fi - ;; - esac -@@ -9010,8 +9524,8 @@ _LT_EOF - archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' - wlarc= - else -- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' -+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - fi - ;; - -@@ -9029,8 +9543,8 @@ _LT_EOF - - _LT_EOF - elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then -- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' -+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - ld_shlibs=no - fi -@@ -9076,8 +9590,8 @@ _LT_EOF - - *) - if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then -- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' -+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - ld_shlibs=no - fi -@@ -9207,7 +9721,13 @@ _LT_EOF - allow_undefined_flag='-berok' - # Determine the default libpath from the value encoded in an - # empty executable. -- cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+ if test "${lt_cv_aix_libpath+set}" = set; then -+ aix_libpath=$lt_cv_aix_libpath -+else -+ if test "${lt_cv_aix_libpath_+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - - int -@@ -9220,22 +9740,29 @@ main () - _ACEOF - if ac_fn_c_try_link "$LINENO"; then : - --lt_aix_libpath_sed=' -- /Import File Strings/,/^$/ { -- /^0/ { -- s/^0 *\(.*\)$/\1/ -- p -- } -- }' --aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` --# Check for a 64-bit object if we didn't find anything. --if test -z "$aix_libpath"; then -- aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` --fi -+ lt_aix_libpath_sed=' -+ /Import File Strings/,/^$/ { -+ /^0/ { -+ s/^0 *\([^ ]*\) *$/\1/ -+ p -+ } -+ }' -+ lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -+ # Check for a 64-bit object if we didn't find anything. -+ if test -z "$lt_cv_aix_libpath_"; then -+ lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -+ fi - fi - rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext --if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi -+ if test -z "$lt_cv_aix_libpath_"; then -+ lt_cv_aix_libpath_="/usr/lib:/lib" -+ fi -+ -+fi -+ -+ aix_libpath=$lt_cv_aix_libpath_ -+fi - - hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" - archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" -@@ -9247,7 +9774,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi - else - # Determine the default libpath from the value encoded in an - # empty executable. -- cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+ if test "${lt_cv_aix_libpath+set}" = set; then -+ aix_libpath=$lt_cv_aix_libpath -+else -+ if test "${lt_cv_aix_libpath_+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - - int -@@ -9260,22 +9793,29 @@ main () - _ACEOF - if ac_fn_c_try_link "$LINENO"; then : - --lt_aix_libpath_sed=' -- /Import File Strings/,/^$/ { -- /^0/ { -- s/^0 *\(.*\)$/\1/ -- p -- } -- }' --aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` --# Check for a 64-bit object if we didn't find anything. --if test -z "$aix_libpath"; then -- aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` --fi -+ lt_aix_libpath_sed=' -+ /Import File Strings/,/^$/ { -+ /^0/ { -+ s/^0 *\([^ ]*\) *$/\1/ -+ p -+ } -+ }' -+ lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -+ # Check for a 64-bit object if we didn't find anything. -+ if test -z "$lt_cv_aix_libpath_"; then -+ lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -+ fi - fi - rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext --if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi -+ if test -z "$lt_cv_aix_libpath_"; then -+ lt_cv_aix_libpath_="/usr/lib:/lib" -+ fi -+ -+fi -+ -+ aix_libpath=$lt_cv_aix_libpath_ -+fi - - hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" - # Warning - without using the other run time loading flags, -@@ -9320,20 +9860,63 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi - # Microsoft Visual C++. - # hardcode_libdir_flag_spec is actually meaningless, as there is - # no search path for DLLs. -- hardcode_libdir_flag_spec=' ' -- allow_undefined_flag=unsupported -- # Tell ltmain to make .lib files, not .a files. -- libext=lib -- # Tell ltmain to make .dll files, not .so files. -- shrext_cmds=".dll" -- # FIXME: Setting linknames here is a bad hack. -- archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' -- # The linker will automatically build a .lib file if we build a DLL. -- old_archive_from_new_cmds='true' -- # FIXME: Should let the user specify the lib program. -- old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' -- fix_srcfile_path='`cygpath -w "$srcfile"`' -- enable_shared_with_static_runtimes=yes -+ case $cc_basename in -+ cl*) -+ # Native MSVC -+ hardcode_libdir_flag_spec=' ' -+ allow_undefined_flag=unsupported -+ always_export_symbols=yes -+ file_list_spec='@' -+ # Tell ltmain to make .lib files, not .a files. -+ libext=lib -+ # Tell ltmain to make .dll files, not .so files. -+ shrext_cmds=".dll" -+ # FIXME: Setting linknames here is a bad hack. -+ archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' -+ archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then -+ sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; -+ else -+ sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; -+ fi~ -+ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ -+ linknames=' -+ # The linker will not automatically build a static lib if we build a DLL. -+ # _LT_TAGVAR(old_archive_from_new_cmds, )='true' -+ enable_shared_with_static_runtimes=yes -+ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' -+ # Don't use ranlib -+ old_postinstall_cmds='chmod 644 $oldlib' -+ postlink_cmds='lt_outputfile="@OUTPUT@"~ -+ lt_tool_outputfile="@TOOL_OUTPUT@"~ -+ case $lt_outputfile in -+ *.exe|*.EXE) ;; -+ *) -+ lt_outputfile="$lt_outputfile.exe" -+ lt_tool_outputfile="$lt_tool_outputfile.exe" -+ ;; -+ esac~ -+ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then -+ $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; -+ $RM "$lt_outputfile.manifest"; -+ fi' -+ ;; -+ *) -+ # Assume MSVC wrapper -+ hardcode_libdir_flag_spec=' ' -+ allow_undefined_flag=unsupported -+ # Tell ltmain to make .lib files, not .a files. -+ libext=lib -+ # Tell ltmain to make .dll files, not .so files. -+ shrext_cmds=".dll" -+ # FIXME: Setting linknames here is a bad hack. -+ archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' -+ # The linker will automatically build a .lib file if we build a DLL. -+ old_archive_from_new_cmds='true' -+ # FIXME: Should let the user specify the lib program. -+ old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' -+ enable_shared_with_static_runtimes=yes -+ ;; -+ esac - ;; - - darwin* | rhapsody*) -@@ -9394,7 +9977,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi - - # FreeBSD 3 and greater uses gcc -shared to do shared libraries. - freebsd* | dragonfly*) -- archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' -+ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - hardcode_libdir_flag_spec='-R$libdir' - hardcode_direct=yes - hardcode_shlibpath_var=no -@@ -9402,7 +9985,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi - - hpux9*) - if test "$GCC" = yes; then -- archive_cmds='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' -+ archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - else - archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - fi -@@ -9418,7 +10001,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi - - hpux10*) - if test "$GCC" = yes && test "$with_gnu_ld" = no; then -- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' -+ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' - fi -@@ -9442,10 +10025,10 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi - archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - ia64*) -- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' -+ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) -- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' -+ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - ;; - esac - else -@@ -9524,23 +10107,36 @@ fi - - irix5* | irix6* | nonstopux*) - if test "$GCC" = yes; then -- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' -+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - # Try to use the -exported_symbol ld option, if it does not - # work, assume that -exports_file does not work either and - # implicitly export all symbols. -- save_LDFLAGS="$LDFLAGS" -- LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" -- cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+ # This should be the same for all languages, so no per-tag cache variable. -+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5 -+$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; } -+if test "${lt_cv_irix_exported_symbol+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ save_LDFLAGS="$LDFLAGS" -+ LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ --int foo(void) {} -+int foo (void) { return 0; } - _ACEOF - if ac_fn_c_try_link "$LINENO"; then : -- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' -- -+ lt_cv_irix_exported_symbol=yes -+else -+ lt_cv_irix_exported_symbol=no - fi - rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -- LDFLAGS="$save_LDFLAGS" -+ LDFLAGS="$save_LDFLAGS" -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5 -+$as_echo "$lt_cv_irix_exported_symbol" >&6; } -+ if test "$lt_cv_irix_exported_symbol" = yes; then -+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' -+ fi - else - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' - archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' -@@ -9625,7 +10221,7 @@ rm -f core conftest.err conftest.$ac_objext \ - osf4* | osf5*) # as osf3* with the addition of -msym flag - if test "$GCC" = yes; then - allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' -- archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' -+ archive_cmds='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - else - allow_undefined_flag=' -expect_unresolved \*' -@@ -9644,9 +10240,9 @@ rm -f core conftest.err conftest.$ac_objext \ - no_undefined_flag=' -z defs' - if test "$GCC" = yes; then - wlarc='${wl}' -- archive_cmds='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' -+ archive_cmds='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ -- $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' -+ $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' - else - case `$CC -V 2>&1` in - *"Compilers 5.0"*) -@@ -10222,8 +10818,9 @@ cygwin* | mingw* | pw32* | cegcc*) - need_version=no - need_lib_prefix=no - -- case $GCC,$host_os in -- yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) -+ case $GCC,$cc_basename in -+ yes,*) -+ # gcc - library_names_spec='$libname.dll.a' - # DLL is installed to $(libdir)/../bin by postinstall_cmds - postinstall_cmds='base_file=`basename \${file}`~ -@@ -10256,13 +10853,71 @@ cygwin* | mingw* | pw32* | cegcc*) - library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - ;; - esac -+ dynamic_linker='Win32 ld.exe' -+ ;; -+ -+ *,cl*) -+ # Native MSVC -+ libname_spec='$name' -+ soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' -+ library_names_spec='${libname}.dll.lib' -+ -+ case $build_os in -+ mingw*) -+ sys_lib_search_path_spec= -+ lt_save_ifs=$IFS -+ IFS=';' -+ for lt_path in $LIB -+ do -+ IFS=$lt_save_ifs -+ # Let DOS variable expansion print the short 8.3 style file name. -+ lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` -+ sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" -+ done -+ IFS=$lt_save_ifs -+ # Convert to MSYS style. -+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` -+ ;; -+ cygwin*) -+ # Convert to unix form, then to dos form, then back to unix form -+ # but this time dos style (no spaces!) so that the unix form looks -+ # like /cygdrive/c/PROGRA~1:/cygdr... -+ sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` -+ sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` -+ sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` -+ ;; -+ *) -+ sys_lib_search_path_spec="$LIB" -+ if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then -+ # It is most probably a Windows format PATH. -+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` -+ else -+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` -+ fi -+ # FIXME: find the short name or the path components, as spaces are -+ # common. (e.g. "Program Files" -> "PROGRA~1") -+ ;; -+ esac -+ -+ # DLL is installed to $(libdir)/../bin by postinstall_cmds -+ postinstall_cmds='base_file=`basename \${file}`~ -+ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ -+ dldir=$destdir/`dirname \$dlpath`~ -+ test -d \$dldir || mkdir -p \$dldir~ -+ $install_prog $dir/$dlname \$dldir/$dlname' -+ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ -+ dlpath=$dir/\$dldll~ -+ $RM \$dlpath' -+ shlibpath_overrides_runpath=yes -+ dynamic_linker='Win32 link.exe' - ;; - - *) -+ # Assume MSVC wrapper - library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' -+ dynamic_linker='Win32 ld.exe' - ;; - esac -- dynamic_linker='Win32 ld.exe' - # FIXME: first we should search . and the directory the executable is in - shlibpath_var=PATH - ;; -@@ -10354,7 +11009,7 @@ haiku*) - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LIBRARY_PATH - shlibpath_overrides_runpath=yes -- sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/beos/system/lib' -+ sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' - hardcode_into_libs=yes - ;; - -@@ -11194,10 +11849,10 @@ else - /* When -fvisbility=hidden is used, assume the code has been annotated - correspondingly for the symbols needed. */ - #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) --void fnord () __attribute__((visibility("default"))); -+int fnord () __attribute__((visibility("default"))); - #endif - --void fnord () { int i=42; } -+int fnord () { return 42; } - int main () - { - void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); -@@ -11300,10 +11955,10 @@ else - /* When -fvisbility=hidden is used, assume the code has been annotated - correspondingly for the symbols needed. */ - #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) --void fnord () __attribute__((visibility("default"))); -+int fnord () __attribute__((visibility("default"))); - #endif - --void fnord () { int i=42; } -+int fnord () { return 42; } - int main () - { - void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); -@@ -12499,7 +13154,7 @@ if test "$enable_shared" = "yes"; then - # since libbfd may not pull in the entirety of libiberty. - x=`sed -n -e 's/^[ ]*PICFLAG[ ]*=[ ]*//p' < ../libiberty/Makefile | sed -n '$p'` - if test -n "$x"; then -- SHARED_LIBADD="-L`pwd`/../libiberty/pic -liberty" -+ SHARED_LIBADD="`pwd`/../libiberty/pic/libiberty.a" - fi - - case "${host}" in -@@ -13473,13 +14128,20 @@ exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`' - lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`' - lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`' - lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`' -+lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`' -+lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`' - reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' - reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' - OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' - deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' - file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' -+file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`' -+want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`' -+DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' -+sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' - AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' - AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' -+archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`' - STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' - RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`' - old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`' -@@ -13494,14 +14156,17 @@ lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$de - lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`' - lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`' - lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`' -+nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`' -+lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`' - objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`' - MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`' - lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`' --lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' - lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`' -+lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' - lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`' - lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`' - need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`' -+MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`' - DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`' - NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`' - LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`' -@@ -13534,12 +14199,12 @@ hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_q - hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`' - inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`' - link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`' --fix_srcfile_path='`$ECHO "$fix_srcfile_path" | $SED "$delay_single_quote_subst"`' - always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`' - export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`' - exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`' - include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`' - prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`' -+postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`' - file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`' - variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`' - need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`' -@@ -13594,8 +14259,13 @@ reload_flag \ - OBJDUMP \ - deplibs_check_method \ - file_magic_cmd \ -+file_magic_glob \ -+want_nocaseglob \ -+DLLTOOL \ -+sharedlib_from_linklib_cmd \ - AR \ - AR_FLAGS \ -+archiver_list_spec \ - STRIP \ - RANLIB \ - CC \ -@@ -13605,12 +14275,14 @@ lt_cv_sys_global_symbol_pipe \ - lt_cv_sys_global_symbol_to_cdecl \ - lt_cv_sys_global_symbol_to_c_name_address \ - lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ -+nm_file_list_spec \ - lt_prog_compiler_no_builtin_flag \ --lt_prog_compiler_wl \ - lt_prog_compiler_pic \ -+lt_prog_compiler_wl \ - lt_prog_compiler_static \ - lt_cv_prog_compiler_c_o \ - need_locks \ -+MANIFEST_TOOL \ - DSYMUTIL \ - NMEDIT \ - LIPO \ -@@ -13626,7 +14298,6 @@ no_undefined_flag \ - hardcode_libdir_flag_spec \ - hardcode_libdir_flag_spec_ld \ - hardcode_libdir_separator \ --fix_srcfile_path \ - exclude_expsyms \ - include_expsyms \ - file_list_spec \ -@@ -13662,6 +14333,7 @@ module_cmds \ - module_expsym_cmds \ - export_symbols_cmds \ - prelink_cmds \ -+postlink_cmds \ - postinstall_cmds \ - postuninstall_cmds \ - finish_cmds \ -@@ -14418,7 +15090,8 @@ $as_echo X"$file" | - # NOTE: Changes made to this file will be lost: look at ltmain.sh. - # - # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, --# 2006, 2007, 2008, 2009 Free Software Foundation, Inc. -+# 2006, 2007, 2008, 2009, 2010 Free Software Foundation, -+# Inc. - # Written by Gordon Matzigkeit, 1996 - # - # This file is part of GNU Libtool. -@@ -14521,19 +15194,42 @@ SP2NL=$lt_lt_SP2NL - # turn newlines into spaces. - NL2SP=$lt_lt_NL2SP - -+# convert \$build file names to \$host format. -+to_host_file_cmd=$lt_cv_to_host_file_cmd -+ -+# convert \$build files to toolchain format. -+to_tool_file_cmd=$lt_cv_to_tool_file_cmd -+ - # An object symbol dumper. - OBJDUMP=$lt_OBJDUMP - - # Method to check whether dependent libraries are shared objects. - deplibs_check_method=$lt_deplibs_check_method - --# Command to use when deplibs_check_method == "file_magic". -+# Command to use when deplibs_check_method = "file_magic". - file_magic_cmd=$lt_file_magic_cmd - -+# How to find potential files when deplibs_check_method = "file_magic". -+file_magic_glob=$lt_file_magic_glob -+ -+# Find potential files using nocaseglob when deplibs_check_method = "file_magic". -+want_nocaseglob=$lt_want_nocaseglob -+ -+# DLL creation program. -+DLLTOOL=$lt_DLLTOOL -+ -+# Command to associate shared and link libraries. -+sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd -+ - # The archiver. - AR=$lt_AR -+ -+# Flags to create an archive. - AR_FLAGS=$lt_AR_FLAGS - -+# How to feed a file listing to the archiver. -+archiver_list_spec=$lt_archiver_list_spec -+ - # A symbol stripping program. - STRIP=$lt_STRIP - -@@ -14563,6 +15259,12 @@ global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address - # Transform the output of nm in a C name address pair when lib prefix is needed. - global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix - -+# Specify filename containing input files for \$NM. -+nm_file_list_spec=$lt_nm_file_list_spec -+ -+# The root where to search for dependent libraries,and in which our libraries should be installed. -+lt_sysroot=$lt_sysroot -+ - # The name of the directory that contains temporary libtool files. - objdir=$objdir - -@@ -14572,6 +15274,9 @@ MAGIC_CMD=$MAGIC_CMD - # Must we lock files when doing compilation? - need_locks=$lt_need_locks - -+# Manifest tool. -+MANIFEST_TOOL=$lt_MANIFEST_TOOL -+ - # Tool to manipulate archived DWARF debug symbol files on Mac OS X. - DSYMUTIL=$lt_DSYMUTIL - -@@ -14686,12 +15391,12 @@ with_gcc=$GCC - # Compiler flag to turn off builtin functions. - no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag - --# How to pass a linker flag through the compiler. --wl=$lt_lt_prog_compiler_wl -- - # Additional compiler flags for building library objects. - pic_flag=$lt_lt_prog_compiler_pic - -+# How to pass a linker flag through the compiler. -+wl=$lt_lt_prog_compiler_wl -+ - # Compiler flag to prevent dynamic linking. - link_static_flag=$lt_lt_prog_compiler_static - -@@ -14778,9 +15483,6 @@ inherit_rpath=$inherit_rpath - # Whether libtool must link a program against all its dependency libraries. - link_all_deplibs=$link_all_deplibs - --# Fix the shell variable \$srcfile for the compiler. --fix_srcfile_path=$lt_fix_srcfile_path -- - # Set to "yes" if exported symbols are required. - always_export_symbols=$always_export_symbols - -@@ -14796,6 +15498,9 @@ include_expsyms=$lt_include_expsyms - # Commands necessary for linking programs (against libraries) with templates. - prelink_cmds=$lt_prelink_cmds - -+# Commands necessary for finishing linking programs. -+postlink_cmds=$lt_postlink_cmds -+ - # Specify filename containing input files. - file_list_spec=$lt_file_list_spec - -@@ -14828,210 +15533,169 @@ ltmain="$ac_aux_dir/ltmain.sh" - # if finds mixed CR/LF and LF-only lines. Since sed operates in - # text mode, it properly converts lines to CR/LF. This bash problem - # is reportedly fixed, but why not run on old versions too? -- sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ -- || (rm -f "$cfgfile"; exit 1) -- -- case $xsi_shell in -- yes) -- cat << \_LT_EOF >> "$cfgfile" -- --# func_dirname file append nondir_replacement --# Compute the dirname of FILE. If nonempty, add APPEND to the result, --# otherwise set result to NONDIR_REPLACEMENT. --func_dirname () --{ -- case ${1} in -- */*) func_dirname_result="${1%/*}${2}" ;; -- * ) func_dirname_result="${3}" ;; -- esac --} -- --# func_basename file --func_basename () --{ -- func_basename_result="${1##*/}" --} -- --# func_dirname_and_basename file append nondir_replacement --# perform func_basename and func_dirname in a single function --# call: --# dirname: Compute the dirname of FILE. If nonempty, --# add APPEND to the result, otherwise set result --# to NONDIR_REPLACEMENT. --# value returned in "$func_dirname_result" --# basename: Compute filename of FILE. --# value retuned in "$func_basename_result" --# Implementation must be kept synchronized with func_dirname --# and func_basename. For efficiency, we do not delegate to --# those functions but instead duplicate the functionality here. --func_dirname_and_basename () --{ -- case ${1} in -- */*) func_dirname_result="${1%/*}${2}" ;; -- * ) func_dirname_result="${3}" ;; -- esac -- func_basename_result="${1##*/}" --} -- --# func_stripname prefix suffix name --# strip PREFIX and SUFFIX off of NAME. --# PREFIX and SUFFIX must not contain globbing or regex special --# characters, hashes, percent signs, but SUFFIX may contain a leading --# dot (in which case that matches only a dot). --func_stripname () --{ -- # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are -- # positional parameters, so assign one to ordinary parameter first. -- func_stripname_result=${3} -- func_stripname_result=${func_stripname_result#"${1}"} -- func_stripname_result=${func_stripname_result%"${2}"} --} -- --# func_opt_split --func_opt_split () --{ -- func_opt_split_opt=${1%%=*} -- func_opt_split_arg=${1#*=} --} -- --# func_lo2o object --func_lo2o () --{ -- case ${1} in -- *.lo) func_lo2o_result=${1%.lo}.${objext} ;; -- *) func_lo2o_result=${1} ;; -- esac --} -- --# func_xform libobj-or-source --func_xform () --{ -- func_xform_result=${1%.*}.lo --} -- --# func_arith arithmetic-term... --func_arith () --{ -- func_arith_result=$(( $* )) --} -- --# func_len string --# STRING may not start with a hyphen. --func_len () --{ -- func_len_result=${#1} --} -- --_LT_EOF -- ;; -- *) # Bourne compatible functions. -- cat << \_LT_EOF >> "$cfgfile" -- --# func_dirname file append nondir_replacement --# Compute the dirname of FILE. If nonempty, add APPEND to the result, --# otherwise set result to NONDIR_REPLACEMENT. --func_dirname () --{ -- # Extract subdirectory from the argument. -- func_dirname_result=`$ECHO "${1}" | $SED "$dirname"` -- if test "X$func_dirname_result" = "X${1}"; then -- func_dirname_result="${3}" -- else -- func_dirname_result="$func_dirname_result${2}" -- fi --} -- --# func_basename file --func_basename () --{ -- func_basename_result=`$ECHO "${1}" | $SED "$basename"` --} -- -- --# func_stripname prefix suffix name --# strip PREFIX and SUFFIX off of NAME. --# PREFIX and SUFFIX must not contain globbing or regex special --# characters, hashes, percent signs, but SUFFIX may contain a leading --# dot (in which case that matches only a dot). --# func_strip_suffix prefix name --func_stripname () --{ -- case ${2} in -- .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; -- *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; -- esac --} -- --# sed scripts: --my_sed_long_opt='1s/^\(-[^=]*\)=.*/\1/;q' --my_sed_long_arg='1s/^-[^=]*=//' -- --# func_opt_split --func_opt_split () --{ -- func_opt_split_opt=`$ECHO "${1}" | $SED "$my_sed_long_opt"` -- func_opt_split_arg=`$ECHO "${1}" | $SED "$my_sed_long_arg"` --} -- --# func_lo2o object --func_lo2o () --{ -- func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"` --} -- --# func_xform libobj-or-source --func_xform () --{ -- func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'` --} -- --# func_arith arithmetic-term... --func_arith () --{ -- func_arith_result=`expr "$@"` --} -- --# func_len string --# STRING may not start with a hyphen. --func_len () --{ -- func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len` --} -- --_LT_EOF --esac -- --case $lt_shell_append in -- yes) -- cat << \_LT_EOF >> "$cfgfile" -- --# func_append var value --# Append VALUE to the end of shell variable VAR. --func_append () --{ -- eval "$1+=\$2" --} --_LT_EOF -- ;; -- *) -- cat << \_LT_EOF >> "$cfgfile" -- --# func_append var value --# Append VALUE to the end of shell variable VAR. --func_append () --{ -- eval "$1=\$$1\$2" --} -- --_LT_EOF -- ;; -- esac -- -- -- sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ -- || (rm -f "$cfgfile"; exit 1) -- -- mv -f "$cfgfile" "$ofile" || -+ sed '$q' "$ltmain" >> "$cfgfile" \ -+ || (rm -f "$cfgfile"; exit 1) -+ -+ if test x"$xsi_shell" = xyes; then -+ sed -e '/^func_dirname ()$/,/^} # func_dirname /c\ -+func_dirname ()\ -+{\ -+\ case ${1} in\ -+\ */*) func_dirname_result="${1%/*}${2}" ;;\ -+\ * ) func_dirname_result="${3}" ;;\ -+\ esac\ -+} # Extended-shell func_dirname implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_basename ()$/,/^} # func_basename /c\ -+func_basename ()\ -+{\ -+\ func_basename_result="${1##*/}"\ -+} # Extended-shell func_basename implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_dirname_and_basename ()$/,/^} # func_dirname_and_basename /c\ -+func_dirname_and_basename ()\ -+{\ -+\ case ${1} in\ -+\ */*) func_dirname_result="${1%/*}${2}" ;;\ -+\ * ) func_dirname_result="${3}" ;;\ -+\ esac\ -+\ func_basename_result="${1##*/}"\ -+} # Extended-shell func_dirname_and_basename implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_stripname ()$/,/^} # func_stripname /c\ -+func_stripname ()\ -+{\ -+\ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are\ -+\ # positional parameters, so assign one to ordinary parameter first.\ -+\ func_stripname_result=${3}\ -+\ func_stripname_result=${func_stripname_result#"${1}"}\ -+\ func_stripname_result=${func_stripname_result%"${2}"}\ -+} # Extended-shell func_stripname implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_split_long_opt ()$/,/^} # func_split_long_opt /c\ -+func_split_long_opt ()\ -+{\ -+\ func_split_long_opt_name=${1%%=*}\ -+\ func_split_long_opt_arg=${1#*=}\ -+} # Extended-shell func_split_long_opt implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_split_short_opt ()$/,/^} # func_split_short_opt /c\ -+func_split_short_opt ()\ -+{\ -+\ func_split_short_opt_arg=${1#??}\ -+\ func_split_short_opt_name=${1%"$func_split_short_opt_arg"}\ -+} # Extended-shell func_split_short_opt implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_lo2o ()$/,/^} # func_lo2o /c\ -+func_lo2o ()\ -+{\ -+\ case ${1} in\ -+\ *.lo) func_lo2o_result=${1%.lo}.${objext} ;;\ -+\ *) func_lo2o_result=${1} ;;\ -+\ esac\ -+} # Extended-shell func_lo2o implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_xform ()$/,/^} # func_xform /c\ -+func_xform ()\ -+{\ -+ func_xform_result=${1%.*}.lo\ -+} # Extended-shell func_xform implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_arith ()$/,/^} # func_arith /c\ -+func_arith ()\ -+{\ -+ func_arith_result=$(( $* ))\ -+} # Extended-shell func_arith implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_len ()$/,/^} # func_len /c\ -+func_len ()\ -+{\ -+ func_len_result=${#1}\ -+} # Extended-shell func_len implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+fi -+ -+if test x"$lt_shell_append" = xyes; then -+ sed -e '/^func_append ()$/,/^} # func_append /c\ -+func_append ()\ -+{\ -+ eval "${1}+=\\${2}"\ -+} # Extended-shell func_append implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_append_quoted ()$/,/^} # func_append_quoted /c\ -+func_append_quoted ()\ -+{\ -+\ func_quote_for_eval "${2}"\ -+\ eval "${1}+=\\\\ \\$func_quote_for_eval_result"\ -+} # Extended-shell func_append_quoted implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ # Save a `func_append' function call where possible by direct use of '+=' -+ sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+ test 0 -eq $? || _lt_function_replace_fail=: -+else -+ # Save a `func_append' function call even when '+=' is not available -+ sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+ test 0 -eq $? || _lt_function_replace_fail=: -+fi -+ -+if test x"$_lt_function_replace_fail" = x":"; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5 -+$as_echo "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;} -+fi -+ -+ -+ mv -f "$cfgfile" "$ofile" || - (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") - chmod +x "$ofile" - -diff --git a/opcodes/configure.ac b/opcodes/configure.ac -index c7f4783..f2e002d 100644 ---- a/opcodes/configure.ac -+++ b/opcodes/configure.ac -@@ -167,7 +167,7 @@ changequote(,)dnl - x=`sed -n -e 's/^[ ]*PICFLAG[ ]*=[ ]*//p' < ../libiberty/Makefile | sed -n '$p'` - changequote([,])dnl - if test -n "$x"; then -- SHARED_LIBADD="-L`pwd`/../libiberty/pic -liberty" -+ SHARED_LIBADD="`pwd`/../libiberty/pic/libiberty.a" - fi - - case "${host}" in -diff --git a/zlib/configure b/zlib/configure -index bba9fd2..25a2dae 100755 ---- a/zlib/configure -+++ b/zlib/configure -@@ -614,8 +614,11 @@ OTOOL - LIPO - NMEDIT - DSYMUTIL -+MANIFEST_TOOL - RANLIB -+ac_ct_AR - AR -+DLLTOOL - OBJDUMP - LN_S - NM -@@ -737,6 +740,7 @@ enable_static - with_pic - enable_fast_install - with_gnu_ld -+with_libtool_sysroot - enable_libtool_lock - enable_host_shared - ' -@@ -1385,6 +1389,8 @@ Optional Packages: - --with-pic try to use only PIC/non-PIC objects [default=use - both] - --with-gnu-ld assume the C compiler uses GNU ld [default=no] -+ --with-libtool-sysroot=DIR Search for dependent libraries within DIR -+ (or the compiler's sysroot if not specified). - - Some influential environment variables: - CC C compiler command -@@ -3910,8 +3916,8 @@ esac - - - --macro_version='2.2.7a' --macro_revision='1.3134' -+macro_version='2.4' -+macro_revision='1.3293' - - - -@@ -3951,7 +3957,7 @@ ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO - { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5 - $as_echo_n "checking how to print strings... " >&6; } - # Test print first, because it will be a builtin if present. --if test "X`print -r -- -n 2>/dev/null`" = X-n && \ -+if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ - test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then - ECHO='print -r --' - elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then -@@ -4767,8 +4773,8 @@ $as_echo_n "checking whether the shell understands some XSI constructs... " >&6; - # Try some XSI features - xsi_shell=no - ( _lt_dummy="a/b/c" -- test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \ -- = c,a/b,, \ -+ test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ -+ = c,a/b,b/c, \ - && eval 'test $(( 1 + 1 )) -eq 2 \ - && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ - && xsi_shell=yes -@@ -4817,6 +4823,80 @@ esac - - - -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5 -+$as_echo_n "checking how to convert $build file names to $host format... " >&6; } -+if test "${lt_cv_to_host_file_cmd+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ case $host in -+ *-*-mingw* ) -+ case $build in -+ *-*-mingw* ) # actually msys -+ lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 -+ ;; -+ *-*-cygwin* ) -+ lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 -+ ;; -+ * ) # otherwise, assume *nix -+ lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 -+ ;; -+ esac -+ ;; -+ *-*-cygwin* ) -+ case $build in -+ *-*-mingw* ) # actually msys -+ lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin -+ ;; -+ *-*-cygwin* ) -+ lt_cv_to_host_file_cmd=func_convert_file_noop -+ ;; -+ * ) # otherwise, assume *nix -+ lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin -+ ;; -+ esac -+ ;; -+ * ) # unhandled hosts (and "normal" native builds) -+ lt_cv_to_host_file_cmd=func_convert_file_noop -+ ;; -+esac -+ -+fi -+ -+to_host_file_cmd=$lt_cv_to_host_file_cmd -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5 -+$as_echo "$lt_cv_to_host_file_cmd" >&6; } -+ -+ -+ -+ -+ -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5 -+$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; } -+if test "${lt_cv_to_tool_file_cmd+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ #assume ordinary cross tools, or native build. -+lt_cv_to_tool_file_cmd=func_convert_file_noop -+case $host in -+ *-*-mingw* ) -+ case $build in -+ *-*-mingw* ) # actually msys -+ lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 -+ ;; -+ esac -+ ;; -+esac -+ -+fi -+ -+to_tool_file_cmd=$lt_cv_to_tool_file_cmd -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5 -+$as_echo "$lt_cv_to_tool_file_cmd" >&6; } -+ -+ -+ -+ -+ - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 - $as_echo_n "checking for $LD option to reload object files... " >&6; } - if test "${lt_cv_ld_reload_flag+set}" = set; then : -@@ -4833,6 +4913,11 @@ case $reload_flag in - esac - reload_cmds='$LD$reload_flag -o $output$reload_objs' - case $host_os in -+ cygwin* | mingw* | pw32* | cegcc*) -+ if test "$GCC" != yes; then -+ reload_cmds=false -+ fi -+ ;; - darwin*) - if test "$GCC" = yes; then - reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' -@@ -5001,7 +5086,8 @@ mingw* | pw32*) - lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' - lt_cv_file_magic_cmd='func_win32_libid' - else -- lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' -+ # Keep this pattern in sync with the one in func_win32_libid. -+ lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' - lt_cv_file_magic_cmd='$OBJDUMP -f' - fi - ;; -@@ -5155,6 +5241,21 @@ esac - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 - $as_echo "$lt_cv_deplibs_check_method" >&6; } -+ -+file_magic_glob= -+want_nocaseglob=no -+if test "$build" = "$host"; then -+ case $host_os in -+ mingw* | pw32*) -+ if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then -+ want_nocaseglob=yes -+ else -+ file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"` -+ fi -+ ;; -+ esac -+fi -+ - file_magic_cmd=$lt_cv_file_magic_cmd - deplibs_check_method=$lt_cv_deplibs_check_method - test -z "$deplibs_check_method" && deplibs_check_method=unknown -@@ -5170,9 +5271,163 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown - - - -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ - if test -n "$ac_tool_prefix"; then -- # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. --set dummy ${ac_tool_prefix}ar; ac_word=$2 -+ # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. -+set dummy ${ac_tool_prefix}dlltool; ac_word=$2 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+$as_echo_n "checking for $ac_word... " >&6; } -+if test "${ac_cv_prog_DLLTOOL+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ if test -n "$DLLTOOL"; then -+ ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. -+else -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then -+ ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" -+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+ done -+IFS=$as_save_IFS -+ -+fi -+fi -+DLLTOOL=$ac_cv_prog_DLLTOOL -+if test -n "$DLLTOOL"; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 -+$as_echo "$DLLTOOL" >&6; } -+else -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+$as_echo "no" >&6; } -+fi -+ -+ -+fi -+if test -z "$ac_cv_prog_DLLTOOL"; then -+ ac_ct_DLLTOOL=$DLLTOOL -+ # Extract the first word of "dlltool", so it can be a program name with args. -+set dummy dlltool; ac_word=$2 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+$as_echo_n "checking for $ac_word... " >&6; } -+if test "${ac_cv_prog_ac_ct_DLLTOOL+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ if test -n "$ac_ct_DLLTOOL"; then -+ ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. -+else -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then -+ ac_cv_prog_ac_ct_DLLTOOL="dlltool" -+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+ done -+IFS=$as_save_IFS -+ -+fi -+fi -+ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL -+if test -n "$ac_ct_DLLTOOL"; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 -+$as_echo "$ac_ct_DLLTOOL" >&6; } -+else -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+$as_echo "no" >&6; } -+fi -+ -+ if test "x$ac_ct_DLLTOOL" = x; then -+ DLLTOOL="false" -+ else -+ case $cross_compiling:$ac_tool_warned in -+yes:) -+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -+ac_tool_warned=yes ;; -+esac -+ DLLTOOL=$ac_ct_DLLTOOL -+ fi -+else -+ DLLTOOL="$ac_cv_prog_DLLTOOL" -+fi -+ -+test -z "$DLLTOOL" && DLLTOOL=dlltool -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5 -+$as_echo_n "checking how to associate runtime and link libraries... " >&6; } -+if test "${lt_cv_sharedlib_from_linklib_cmd+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ lt_cv_sharedlib_from_linklib_cmd='unknown' -+ -+case $host_os in -+cygwin* | mingw* | pw32* | cegcc*) -+ # two different shell functions defined in ltmain.sh -+ # decide which to use based on capabilities of $DLLTOOL -+ case `$DLLTOOL --help 2>&1` in -+ *--identify-strict*) -+ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib -+ ;; -+ *) -+ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback -+ ;; -+ esac -+ ;; -+*) -+ # fallback: assume linklib IS sharedlib -+ lt_cv_sharedlib_from_linklib_cmd="$ECHO" -+ ;; -+esac -+ -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5 -+$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; } -+sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd -+test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO -+ -+ -+ -+ -+ -+ -+ -+ -+if test -n "$ac_tool_prefix"; then -+ for ac_prog in ar -+ do -+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -+set dummy $ac_tool_prefix$ac_prog; ac_word=$2 - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 - $as_echo_n "checking for $ac_word... " >&6; } - if test "${ac_cv_prog_AR+set}" = set; then : -@@ -5188,7 +5443,7 @@ do - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then -- ac_cv_prog_AR="${ac_tool_prefix}ar" -+ ac_cv_prog_AR="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -@@ -5208,11 +5463,15 @@ $as_echo "no" >&6; } - fi - - -+ test -n "$AR" && break -+ done - fi --if test -z "$ac_cv_prog_AR"; then -+if test -z "$AR"; then - ac_ct_AR=$AR -- # Extract the first word of "ar", so it can be a program name with args. --set dummy ar; ac_word=$2 -+ for ac_prog in ar -+do -+ # Extract the first word of "$ac_prog", so it can be a program name with args. -+set dummy $ac_prog; ac_word=$2 - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 - $as_echo_n "checking for $ac_word... " >&6; } - if test "${ac_cv_prog_ac_ct_AR+set}" = set; then : -@@ -5228,7 +5487,7 @@ do - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then -- ac_cv_prog_ac_ct_AR="ar" -+ ac_cv_prog_ac_ct_AR="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -@@ -5247,6 +5506,10 @@ else - $as_echo "no" >&6; } - fi - -+ -+ test -n "$ac_ct_AR" && break -+done -+ - if test "x$ac_ct_AR" = x; then - AR="false" - else -@@ -5258,16 +5521,72 @@ ac_tool_warned=yes ;; - esac - AR=$ac_ct_AR - fi --else -- AR="$ac_cv_prog_AR" - fi - --test -z "$AR" && AR=ar --test -z "$AR_FLAGS" && AR_FLAGS=cru -+: ${AR=ar} -+: ${AR_FLAGS=cru} -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 -+$as_echo_n "checking for archiver @FILE support... " >&6; } -+if test "${lt_cv_ar_at_file+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ lt_cv_ar_at_file=no -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+/* end confdefs.h. */ -+ -+int -+main () -+{ - -+ ; -+ return 0; -+} -+_ACEOF -+if ac_fn_c_try_compile "$LINENO"; then : -+ echo conftest.$ac_objext > conftest.lst -+ lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5' -+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 -+ (eval $lt_ar_try) 2>&5 -+ ac_status=$? -+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 -+ test $ac_status = 0; } -+ if test "$ac_status" -eq 0; then -+ # Ensure the archiver fails upon bogus file names. -+ rm -f conftest.$ac_objext libconftest.a -+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 -+ (eval $lt_ar_try) 2>&5 -+ ac_status=$? -+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 -+ test $ac_status = 0; } -+ if test "$ac_status" -ne 0; then -+ lt_cv_ar_at_file=@ -+ fi -+ fi -+ rm -f conftest.* libconftest.a - -+fi -+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 -+$as_echo "$lt_cv_ar_at_file" >&6; } - -+if test "x$lt_cv_ar_at_file" = xno; then -+ archiver_list_spec= -+else -+ archiver_list_spec=$lt_cv_ar_at_file -+fi - - - -@@ -5609,8 +5928,8 @@ esac - lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" - - # Transform an extracted symbol line into symbol name and symbol address --lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" --lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" -+lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" -+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" - - # Handle CRLF in mingw tool chain - opt_cr= -@@ -5646,6 +5965,7 @@ for ac_symprfx in "" "_"; do - else - lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" - fi -+ lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" - - # Check to see that the pipe works correctly. - pipe_works=no -@@ -5687,6 +6007,18 @@ _LT_EOF - if $GREP ' nm_test_var$' "$nlist" >/dev/null; then - if $GREP ' nm_test_func$' "$nlist" >/dev/null; then - cat <<_LT_EOF > conftest.$ac_ext -+/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ -+#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) -+/* DATA imports from DLLs on WIN32 con't be const, because runtime -+ relocations are performed -- see ld's documentation on pseudo-relocs. */ -+# define LT_DLSYM_CONST -+#elif defined(__osf__) -+/* This system does not cope well with relocations in const data. */ -+# define LT_DLSYM_CONST -+#else -+# define LT_DLSYM_CONST const -+#endif -+ - #ifdef __cplusplus - extern "C" { - #endif -@@ -5698,7 +6030,7 @@ _LT_EOF - cat <<_LT_EOF >> conftest.$ac_ext - - /* The mapping between symbol names and symbols. */ --const struct { -+LT_DLSYM_CONST struct { - const char *name; - void *address; - } -@@ -5724,8 +6056,8 @@ static const void *lt_preloaded_setup() { - _LT_EOF - # Now try linking the two files. - mv conftest.$ac_objext conftstm.$ac_objext -- lt_save_LIBS="$LIBS" -- lt_save_CFLAGS="$CFLAGS" -+ lt_globsym_save_LIBS=$LIBS -+ lt_globsym_save_CFLAGS=$CFLAGS - LIBS="conftstm.$ac_objext" - CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 -@@ -5735,8 +6067,8 @@ _LT_EOF - test $ac_status = 0; } && test -s conftest${ac_exeext}; then - pipe_works=yes - fi -- LIBS="$lt_save_LIBS" -- CFLAGS="$lt_save_CFLAGS" -+ LIBS=$lt_globsym_save_LIBS -+ CFLAGS=$lt_globsym_save_CFLAGS - else - echo "cannot find nm_test_func in $nlist" >&5 - fi -@@ -5773,6 +6105,19 @@ else - $as_echo "ok" >&6; } - fi - -+# Response file support. -+if test "$lt_cv_nm_interface" = "MS dumpbin"; then -+ nm_file_list_spec='@' -+elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then -+ nm_file_list_spec='@' -+fi -+ -+ -+ -+ -+ -+ -+ - - - -@@ -5793,6 +6138,41 @@ fi - - - -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 -+$as_echo_n "checking for sysroot... " >&6; } -+ -+# Check whether --with-libtool-sysroot was given. -+if test "${with_libtool_sysroot+set}" = set; then : -+ withval=$with_libtool_sysroot; -+else -+ with_libtool_sysroot=no -+fi -+ -+ -+lt_sysroot= -+case ${with_libtool_sysroot} in #( -+ yes) -+ if test "$GCC" = yes; then -+ lt_sysroot=`$CC --print-sysroot 2>/dev/null` -+ fi -+ ;; #( -+ /*) -+ lt_sysroot=`echo "$with_libtool_sysroot" | sed -e "$sed_quote_subst"` -+ ;; #( -+ no|'') -+ ;; #( -+ *) -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_libtool_sysroot}" >&5 -+$as_echo "${with_libtool_sysroot}" >&6; } -+ as_fn_error "The sysroot must be an absolute path." "$LINENO" 5 -+ ;; -+esac -+ -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5 -+$as_echo "${lt_sysroot:-no}" >&6; } -+ -+ -+ - - - # Check whether --enable-libtool-lock was given. -@@ -6004,6 +6384,123 @@ esac - - need_locks="$enable_libtool_lock" - -+if test -n "$ac_tool_prefix"; then -+ # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args. -+set dummy ${ac_tool_prefix}mt; ac_word=$2 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+$as_echo_n "checking for $ac_word... " >&6; } -+if test "${ac_cv_prog_MANIFEST_TOOL+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ if test -n "$MANIFEST_TOOL"; then -+ ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test. -+else -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then -+ ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt" -+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+ done -+IFS=$as_save_IFS -+ -+fi -+fi -+MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL -+if test -n "$MANIFEST_TOOL"; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5 -+$as_echo "$MANIFEST_TOOL" >&6; } -+else -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+$as_echo "no" >&6; } -+fi -+ -+ -+fi -+if test -z "$ac_cv_prog_MANIFEST_TOOL"; then -+ ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL -+ # Extract the first word of "mt", so it can be a program name with args. -+set dummy mt; ac_word=$2 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+$as_echo_n "checking for $ac_word... " >&6; } -+if test "${ac_cv_prog_ac_ct_MANIFEST_TOOL+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ if test -n "$ac_ct_MANIFEST_TOOL"; then -+ ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test. -+else -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then -+ ac_cv_prog_ac_ct_MANIFEST_TOOL="mt" -+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+ done -+IFS=$as_save_IFS -+ -+fi -+fi -+ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL -+if test -n "$ac_ct_MANIFEST_TOOL"; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5 -+$as_echo "$ac_ct_MANIFEST_TOOL" >&6; } -+else -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+$as_echo "no" >&6; } -+fi -+ -+ if test "x$ac_ct_MANIFEST_TOOL" = x; then -+ MANIFEST_TOOL=":" -+ else -+ case $cross_compiling:$ac_tool_warned in -+yes:) -+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -+ac_tool_warned=yes ;; -+esac -+ MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL -+ fi -+else -+ MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL" -+fi -+ -+test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5 -+$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; } -+if test "${lt_cv_path_mainfest_tool+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ lt_cv_path_mainfest_tool=no -+ echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5 -+ $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out -+ cat conftest.err >&5 -+ if $GREP 'Manifest Tool' conftest.out > /dev/null; then -+ lt_cv_path_mainfest_tool=yes -+ fi -+ rm -f conftest* -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5 -+$as_echo "$lt_cv_path_mainfest_tool" >&6; } -+if test "x$lt_cv_path_mainfest_tool" != xyes; then -+ MANIFEST_TOOL=: -+fi -+ -+ -+ -+ -+ - - case $host_os in - rhapsody* | darwin*) -@@ -6570,6 +7067,8 @@ _LT_EOF - $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 - echo "$AR cru libconftest.a conftest.o" >&5 - $AR cru libconftest.a conftest.o 2>&5 -+ echo "$RANLIB libconftest.a" >&5 -+ $RANLIB libconftest.a 2>&5 - cat > conftest.c << _LT_EOF - int main() { return 0;} - _LT_EOF -@@ -7033,7 +7532,8 @@ fi - LIBTOOL_DEPS="$ltmain" - - # Always use our own libtool. --LIBTOOL='$(SHELL) $(top_builddir)/libtool' -+LIBTOOL='$(SHELL) $(top_builddir)' -+LIBTOOL="$LIBTOOL/${host_alias}-libtool" - - - -@@ -7122,7 +7622,7 @@ aix3*) - esac - - # Global variables: --ofile=libtool -+ofile=${host_alias}-libtool - can_build_shared=yes - - # All known linkers require a `.a' archive for static linking (except MSVC, -@@ -7420,8 +7920,6 @@ fi - lt_prog_compiler_pic= - lt_prog_compiler_static= - --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 --$as_echo_n "checking for $compiler option to produce PIC... " >&6; } - - if test "$GCC" = yes; then - lt_prog_compiler_wl='-Wl,' -@@ -7587,6 +8085,12 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; } - lt_prog_compiler_pic='--shared' - lt_prog_compiler_static='--static' - ;; -+ nagfor*) -+ # NAG Fortran compiler -+ lt_prog_compiler_wl='-Wl,-Wl,,' -+ lt_prog_compiler_pic='-PIC' -+ lt_prog_compiler_static='-Bstatic' -+ ;; - pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) - # Portland Group compilers (*not* the Pentium gcc compiler, - # which looks to be a dead project) -@@ -7649,7 +8153,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; } - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-Bstatic' - case $cc_basename in -- f77* | f90* | f95*) -+ f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) - lt_prog_compiler_wl='-Qoption ld ';; - *) - lt_prog_compiler_wl='-Wl,';; -@@ -7706,13 +8210,17 @@ case $host_os in - lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" - ;; - esac --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic" >&5 --$as_echo "$lt_prog_compiler_pic" >&6; } -- -- -- -- - -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 -+$as_echo_n "checking for $compiler option to produce PIC... " >&6; } -+if test "${lt_cv_prog_compiler_pic+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ lt_cv_prog_compiler_pic=$lt_prog_compiler_pic -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 -+$as_echo "$lt_cv_prog_compiler_pic" >&6; } -+lt_prog_compiler_pic=$lt_cv_prog_compiler_pic - - # - # Check to make sure the PIC flag actually works. -@@ -7773,6 +8281,11 @@ fi - - - -+ -+ -+ -+ -+ - # - # Check to make sure the static flag actually works. - # -@@ -8123,7 +8636,8 @@ _LT_EOF - allow_undefined_flag=unsupported - always_export_symbols=no - enable_shared_with_static_runtimes=yes -- export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' -+ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' -+ exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' - - if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' -@@ -8222,12 +8736,12 @@ _LT_EOF - whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' - hardcode_libdir_flag_spec= - hardcode_libdir_flag_spec_ld='-rpath $libdir' -- archive_cmds='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib' -+ archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' - if test "x$supports_anon_versioning" = xyes; then - archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ - cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ - echo "local: *; };" >> $output_objdir/$libname.ver~ -- $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' -+ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' - fi - ;; - esac -@@ -8241,8 +8755,8 @@ _LT_EOF - archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' - wlarc= - else -- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' -+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - fi - ;; - -@@ -8260,8 +8774,8 @@ _LT_EOF - - _LT_EOF - elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then -- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' -+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - ld_shlibs=no - fi -@@ -8307,8 +8821,8 @@ _LT_EOF - - *) - if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then -- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' -+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - ld_shlibs=no - fi -@@ -8438,7 +8952,13 @@ _LT_EOF - allow_undefined_flag='-berok' - # Determine the default libpath from the value encoded in an - # empty executable. -- if test x$gcc_no_link = xyes; then -+ if test "${lt_cv_aix_libpath+set}" = set; then -+ aix_libpath=$lt_cv_aix_libpath -+else -+ if test "${lt_cv_aix_libpath_+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ if test x$gcc_no_link = xyes; then - as_fn_error "Link tests are not allowed after GCC_NO_EXECUTABLES." "$LINENO" 5 - fi - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -@@ -8454,22 +8974,29 @@ main () - _ACEOF - if ac_fn_c_try_link "$LINENO"; then : - --lt_aix_libpath_sed=' -- /Import File Strings/,/^$/ { -- /^0/ { -- s/^0 *\(.*\)$/\1/ -- p -- } -- }' --aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` --# Check for a 64-bit object if we didn't find anything. --if test -z "$aix_libpath"; then -- aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` --fi -+ lt_aix_libpath_sed=' -+ /Import File Strings/,/^$/ { -+ /^0/ { -+ s/^0 *\([^ ]*\) *$/\1/ -+ p -+ } -+ }' -+ lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -+ # Check for a 64-bit object if we didn't find anything. -+ if test -z "$lt_cv_aix_libpath_"; then -+ lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -+ fi - fi - rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext --if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi -+ if test -z "$lt_cv_aix_libpath_"; then -+ lt_cv_aix_libpath_="/usr/lib:/lib" -+ fi -+ -+fi -+ -+ aix_libpath=$lt_cv_aix_libpath_ -+fi - - hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" - archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" -@@ -8481,7 +9008,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi - else - # Determine the default libpath from the value encoded in an - # empty executable. -- if test x$gcc_no_link = xyes; then -+ if test "${lt_cv_aix_libpath+set}" = set; then -+ aix_libpath=$lt_cv_aix_libpath -+else -+ if test "${lt_cv_aix_libpath_+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ if test x$gcc_no_link = xyes; then - as_fn_error "Link tests are not allowed after GCC_NO_EXECUTABLES." "$LINENO" 5 - fi - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -@@ -8497,22 +9030,29 @@ main () - _ACEOF - if ac_fn_c_try_link "$LINENO"; then : - --lt_aix_libpath_sed=' -- /Import File Strings/,/^$/ { -- /^0/ { -- s/^0 *\(.*\)$/\1/ -- p -- } -- }' --aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` --# Check for a 64-bit object if we didn't find anything. --if test -z "$aix_libpath"; then -- aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` --fi -+ lt_aix_libpath_sed=' -+ /Import File Strings/,/^$/ { -+ /^0/ { -+ s/^0 *\([^ ]*\) *$/\1/ -+ p -+ } -+ }' -+ lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -+ # Check for a 64-bit object if we didn't find anything. -+ if test -z "$lt_cv_aix_libpath_"; then -+ lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -+ fi - fi - rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext --if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi -+ if test -z "$lt_cv_aix_libpath_"; then -+ lt_cv_aix_libpath_="/usr/lib:/lib" -+ fi -+ -+fi -+ -+ aix_libpath=$lt_cv_aix_libpath_ -+fi - - hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" - # Warning - without using the other run time loading flags, -@@ -8557,20 +9097,63 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi - # Microsoft Visual C++. - # hardcode_libdir_flag_spec is actually meaningless, as there is - # no search path for DLLs. -- hardcode_libdir_flag_spec=' ' -- allow_undefined_flag=unsupported -- # Tell ltmain to make .lib files, not .a files. -- libext=lib -- # Tell ltmain to make .dll files, not .so files. -- shrext_cmds=".dll" -- # FIXME: Setting linknames here is a bad hack. -- archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' -- # The linker will automatically build a .lib file if we build a DLL. -- old_archive_from_new_cmds='true' -- # FIXME: Should let the user specify the lib program. -- old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' -- fix_srcfile_path='`cygpath -w "$srcfile"`' -- enable_shared_with_static_runtimes=yes -+ case $cc_basename in -+ cl*) -+ # Native MSVC -+ hardcode_libdir_flag_spec=' ' -+ allow_undefined_flag=unsupported -+ always_export_symbols=yes -+ file_list_spec='@' -+ # Tell ltmain to make .lib files, not .a files. -+ libext=lib -+ # Tell ltmain to make .dll files, not .so files. -+ shrext_cmds=".dll" -+ # FIXME: Setting linknames here is a bad hack. -+ archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' -+ archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then -+ sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; -+ else -+ sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; -+ fi~ -+ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ -+ linknames=' -+ # The linker will not automatically build a static lib if we build a DLL. -+ # _LT_TAGVAR(old_archive_from_new_cmds, )='true' -+ enable_shared_with_static_runtimes=yes -+ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' -+ # Don't use ranlib -+ old_postinstall_cmds='chmod 644 $oldlib' -+ postlink_cmds='lt_outputfile="@OUTPUT@"~ -+ lt_tool_outputfile="@TOOL_OUTPUT@"~ -+ case $lt_outputfile in -+ *.exe|*.EXE) ;; -+ *) -+ lt_outputfile="$lt_outputfile.exe" -+ lt_tool_outputfile="$lt_tool_outputfile.exe" -+ ;; -+ esac~ -+ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then -+ $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; -+ $RM "$lt_outputfile.manifest"; -+ fi' -+ ;; -+ *) -+ # Assume MSVC wrapper -+ hardcode_libdir_flag_spec=' ' -+ allow_undefined_flag=unsupported -+ # Tell ltmain to make .lib files, not .a files. -+ libext=lib -+ # Tell ltmain to make .dll files, not .so files. -+ shrext_cmds=".dll" -+ # FIXME: Setting linknames here is a bad hack. -+ archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' -+ # The linker will automatically build a .lib file if we build a DLL. -+ old_archive_from_new_cmds='true' -+ # FIXME: Should let the user specify the lib program. -+ old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' -+ enable_shared_with_static_runtimes=yes -+ ;; -+ esac - ;; - - darwin* | rhapsody*) -@@ -8631,7 +9214,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi - - # FreeBSD 3 and greater uses gcc -shared to do shared libraries. - freebsd* | dragonfly*) -- archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' -+ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - hardcode_libdir_flag_spec='-R$libdir' - hardcode_direct=yes - hardcode_shlibpath_var=no -@@ -8639,7 +9222,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi - - hpux9*) - if test "$GCC" = yes; then -- archive_cmds='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' -+ archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - else - archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - fi -@@ -8655,7 +9238,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi - - hpux10*) - if test "$GCC" = yes && test "$with_gnu_ld" = no; then -- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' -+ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' - fi -@@ -8679,10 +9262,10 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi - archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - ia64*) -- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' -+ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) -- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' -+ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - ;; - esac - else -@@ -8761,26 +9344,39 @@ fi - - irix5* | irix6* | nonstopux*) - if test "$GCC" = yes; then -- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' -+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - # Try to use the -exported_symbol ld option, if it does not - # work, assume that -exports_file does not work either and - # implicitly export all symbols. -- save_LDFLAGS="$LDFLAGS" -- LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" -- if test x$gcc_no_link = xyes; then -+ # This should be the same for all languages, so no per-tag cache variable. -+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5 -+$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; } -+if test "${lt_cv_irix_exported_symbol+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ save_LDFLAGS="$LDFLAGS" -+ LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" -+ if test x$gcc_no_link = xyes; then - as_fn_error "Link tests are not allowed after GCC_NO_EXECUTABLES." "$LINENO" 5 - fi - cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ --int foo(void) {} -+int foo (void) { return 0; } - _ACEOF - if ac_fn_c_try_link "$LINENO"; then : -- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' -- -+ lt_cv_irix_exported_symbol=yes -+else -+ lt_cv_irix_exported_symbol=no - fi - rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -- LDFLAGS="$save_LDFLAGS" -+ LDFLAGS="$save_LDFLAGS" -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5 -+$as_echo "$lt_cv_irix_exported_symbol" >&6; } -+ if test "$lt_cv_irix_exported_symbol" = yes; then -+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' -+ fi - else - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' - archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' -@@ -8865,7 +9461,7 @@ rm -f core conftest.err conftest.$ac_objext \ - osf4* | osf5*) # as osf3* with the addition of -msym flag - if test "$GCC" = yes; then - allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' -- archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' -+ archive_cmds='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - else - allow_undefined_flag=' -expect_unresolved \*' -@@ -8884,9 +9480,9 @@ rm -f core conftest.err conftest.$ac_objext \ - no_undefined_flag=' -z defs' - if test "$GCC" = yes; then - wlarc='${wl}' -- archive_cmds='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' -+ archive_cmds='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ -- $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' -+ $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' - else - case `$CC -V 2>&1` in - *"Compilers 5.0"*) -@@ -9462,8 +10058,9 @@ cygwin* | mingw* | pw32* | cegcc*) - need_version=no - need_lib_prefix=no - -- case $GCC,$host_os in -- yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) -+ case $GCC,$cc_basename in -+ yes,*) -+ # gcc - library_names_spec='$libname.dll.a' - # DLL is installed to $(libdir)/../bin by postinstall_cmds - postinstall_cmds='base_file=`basename \${file}`~ -@@ -9496,13 +10093,71 @@ cygwin* | mingw* | pw32* | cegcc*) - library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - ;; - esac -+ dynamic_linker='Win32 ld.exe' -+ ;; -+ -+ *,cl*) -+ # Native MSVC -+ libname_spec='$name' -+ soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' -+ library_names_spec='${libname}.dll.lib' -+ -+ case $build_os in -+ mingw*) -+ sys_lib_search_path_spec= -+ lt_save_ifs=$IFS -+ IFS=';' -+ for lt_path in $LIB -+ do -+ IFS=$lt_save_ifs -+ # Let DOS variable expansion print the short 8.3 style file name. -+ lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` -+ sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" -+ done -+ IFS=$lt_save_ifs -+ # Convert to MSYS style. -+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` -+ ;; -+ cygwin*) -+ # Convert to unix form, then to dos form, then back to unix form -+ # but this time dos style (no spaces!) so that the unix form looks -+ # like /cygdrive/c/PROGRA~1:/cygdr... -+ sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` -+ sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` -+ sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` -+ ;; -+ *) -+ sys_lib_search_path_spec="$LIB" -+ if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then -+ # It is most probably a Windows format PATH. -+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` -+ else -+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` -+ fi -+ # FIXME: find the short name or the path components, as spaces are -+ # common. (e.g. "Program Files" -> "PROGRA~1") -+ ;; -+ esac -+ -+ # DLL is installed to $(libdir)/../bin by postinstall_cmds -+ postinstall_cmds='base_file=`basename \${file}`~ -+ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ -+ dldir=$destdir/`dirname \$dlpath`~ -+ test -d \$dldir || mkdir -p \$dldir~ -+ $install_prog $dir/$dlname \$dldir/$dlname' -+ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ -+ dlpath=$dir/\$dldll~ -+ $RM \$dlpath' -+ shlibpath_overrides_runpath=yes -+ dynamic_linker='Win32 link.exe' - ;; - - *) -+ # Assume MSVC wrapper - library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' -+ dynamic_linker='Win32 ld.exe' - ;; - esac -- dynamic_linker='Win32 ld.exe' - # FIXME: first we should search . and the directory the executable is in - shlibpath_var=PATH - ;; -@@ -9594,7 +10249,7 @@ haiku*) - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LIBRARY_PATH - shlibpath_overrides_runpath=yes -- sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/beos/system/lib' -+ sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' - hardcode_into_libs=yes - ;; - -@@ -10408,7 +11063,7 @@ else - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext <<_LT_EOF --#line 10411 "configure" -+#line $LINENO "configure" - #include "confdefs.h" - - #if HAVE_DLFCN_H -@@ -10452,10 +11107,10 @@ else - /* When -fvisbility=hidden is used, assume the code has been annotated - correspondingly for the symbols needed. */ - #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) --void fnord () __attribute__((visibility("default"))); -+int fnord () __attribute__((visibility("default"))); - #endif - --void fnord () { int i=42; } -+int fnord () { return 42; } - int main () - { - void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); -@@ -10514,7 +11169,7 @@ else - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext <<_LT_EOF --#line 10517 "configure" -+#line $LINENO "configure" - #include "confdefs.h" - - #if HAVE_DLFCN_H -@@ -10558,10 +11213,10 @@ else - /* When -fvisbility=hidden is used, assume the code has been annotated - correspondingly for the symbols needed. */ - #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) --void fnord () __attribute__((visibility("default"))); -+int fnord () __attribute__((visibility("default"))); - #endif - --void fnord () { int i=42; } -+int fnord () { return 42; } - int main () - { - void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); -@@ -11993,13 +12648,20 @@ exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`' - lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`' - lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`' - lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`' -+lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`' -+lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`' - reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' - reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' - OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' - deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' - file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' -+file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`' -+want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`' -+DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' -+sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' - AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' - AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' -+archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`' - STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' - RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`' - old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`' -@@ -12014,14 +12676,17 @@ lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$de - lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`' - lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`' - lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`' -+nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`' -+lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`' - objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`' - MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`' - lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`' --lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' - lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`' -+lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' - lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`' - lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`' - need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`' -+MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`' - DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`' - NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`' - LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`' -@@ -12054,12 +12719,12 @@ hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_q - hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`' - inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`' - link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`' --fix_srcfile_path='`$ECHO "$fix_srcfile_path" | $SED "$delay_single_quote_subst"`' - always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`' - export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`' - exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`' - include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`' - prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`' -+postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`' - file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`' - variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`' - need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`' -@@ -12114,8 +12779,13 @@ reload_flag \ - OBJDUMP \ - deplibs_check_method \ - file_magic_cmd \ -+file_magic_glob \ -+want_nocaseglob \ -+DLLTOOL \ -+sharedlib_from_linklib_cmd \ - AR \ - AR_FLAGS \ -+archiver_list_spec \ - STRIP \ - RANLIB \ - CC \ -@@ -12125,12 +12795,14 @@ lt_cv_sys_global_symbol_pipe \ - lt_cv_sys_global_symbol_to_cdecl \ - lt_cv_sys_global_symbol_to_c_name_address \ - lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ -+nm_file_list_spec \ - lt_prog_compiler_no_builtin_flag \ --lt_prog_compiler_wl \ - lt_prog_compiler_pic \ -+lt_prog_compiler_wl \ - lt_prog_compiler_static \ - lt_cv_prog_compiler_c_o \ - need_locks \ -+MANIFEST_TOOL \ - DSYMUTIL \ - NMEDIT \ - LIPO \ -@@ -12146,7 +12818,6 @@ no_undefined_flag \ - hardcode_libdir_flag_spec \ - hardcode_libdir_flag_spec_ld \ - hardcode_libdir_separator \ --fix_srcfile_path \ - exclude_expsyms \ - include_expsyms \ - file_list_spec \ -@@ -12182,6 +12853,7 @@ module_cmds \ - module_expsym_cmds \ - export_symbols_cmds \ - prelink_cmds \ -+postlink_cmds \ - postinstall_cmds \ - postuninstall_cmds \ - finish_cmds \ -@@ -12771,7 +13443,8 @@ $as_echo X"$file" | - # NOTE: Changes made to this file will be lost: look at ltmain.sh. - # - # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, --# 2006, 2007, 2008, 2009 Free Software Foundation, Inc. -+# 2006, 2007, 2008, 2009, 2010 Free Software Foundation, -+# Inc. - # Written by Gordon Matzigkeit, 1996 - # - # This file is part of GNU Libtool. -@@ -12874,19 +13547,42 @@ SP2NL=$lt_lt_SP2NL - # turn newlines into spaces. - NL2SP=$lt_lt_NL2SP - -+# convert \$build file names to \$host format. -+to_host_file_cmd=$lt_cv_to_host_file_cmd -+ -+# convert \$build files to toolchain format. -+to_tool_file_cmd=$lt_cv_to_tool_file_cmd -+ - # An object symbol dumper. - OBJDUMP=$lt_OBJDUMP - - # Method to check whether dependent libraries are shared objects. - deplibs_check_method=$lt_deplibs_check_method - --# Command to use when deplibs_check_method == "file_magic". -+# Command to use when deplibs_check_method = "file_magic". - file_magic_cmd=$lt_file_magic_cmd - -+# How to find potential files when deplibs_check_method = "file_magic". -+file_magic_glob=$lt_file_magic_glob -+ -+# Find potential files using nocaseglob when deplibs_check_method = "file_magic". -+want_nocaseglob=$lt_want_nocaseglob -+ -+# DLL creation program. -+DLLTOOL=$lt_DLLTOOL -+ -+# Command to associate shared and link libraries. -+sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd -+ - # The archiver. - AR=$lt_AR -+ -+# Flags to create an archive. - AR_FLAGS=$lt_AR_FLAGS - -+# How to feed a file listing to the archiver. -+archiver_list_spec=$lt_archiver_list_spec -+ - # A symbol stripping program. - STRIP=$lt_STRIP - -@@ -12916,6 +13612,12 @@ global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address - # Transform the output of nm in a C name address pair when lib prefix is needed. - global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix - -+# Specify filename containing input files for \$NM. -+nm_file_list_spec=$lt_nm_file_list_spec -+ -+# The root where to search for dependent libraries,and in which our libraries should be installed. -+lt_sysroot=$lt_sysroot -+ - # The name of the directory that contains temporary libtool files. - objdir=$objdir - -@@ -12925,6 +13627,9 @@ MAGIC_CMD=$MAGIC_CMD - # Must we lock files when doing compilation? - need_locks=$lt_need_locks - -+# Manifest tool. -+MANIFEST_TOOL=$lt_MANIFEST_TOOL -+ - # Tool to manipulate archived DWARF debug symbol files on Mac OS X. - DSYMUTIL=$lt_DSYMUTIL - -@@ -13039,12 +13744,12 @@ with_gcc=$GCC - # Compiler flag to turn off builtin functions. - no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag - --# How to pass a linker flag through the compiler. --wl=$lt_lt_prog_compiler_wl -- - # Additional compiler flags for building library objects. - pic_flag=$lt_lt_prog_compiler_pic - -+# How to pass a linker flag through the compiler. -+wl=$lt_lt_prog_compiler_wl -+ - # Compiler flag to prevent dynamic linking. - link_static_flag=$lt_lt_prog_compiler_static - -@@ -13131,9 +13836,6 @@ inherit_rpath=$inherit_rpath - # Whether libtool must link a program against all its dependency libraries. - link_all_deplibs=$link_all_deplibs - --# Fix the shell variable \$srcfile for the compiler. --fix_srcfile_path=$lt_fix_srcfile_path -- - # Set to "yes" if exported symbols are required. - always_export_symbols=$always_export_symbols - -@@ -13149,6 +13851,9 @@ include_expsyms=$lt_include_expsyms - # Commands necessary for linking programs (against libraries) with templates. - prelink_cmds=$lt_prelink_cmds - -+# Commands necessary for finishing linking programs. -+postlink_cmds=$lt_postlink_cmds -+ - # Specify filename containing input files. - file_list_spec=$lt_file_list_spec - -@@ -13181,210 +13886,169 @@ ltmain="$ac_aux_dir/ltmain.sh" - # if finds mixed CR/LF and LF-only lines. Since sed operates in - # text mode, it properly converts lines to CR/LF. This bash problem - # is reportedly fixed, but why not run on old versions too? -- sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ -- || (rm -f "$cfgfile"; exit 1) -- -- case $xsi_shell in -- yes) -- cat << \_LT_EOF >> "$cfgfile" -- --# func_dirname file append nondir_replacement --# Compute the dirname of FILE. If nonempty, add APPEND to the result, --# otherwise set result to NONDIR_REPLACEMENT. --func_dirname () --{ -- case ${1} in -- */*) func_dirname_result="${1%/*}${2}" ;; -- * ) func_dirname_result="${3}" ;; -- esac --} -- --# func_basename file --func_basename () --{ -- func_basename_result="${1##*/}" --} -- --# func_dirname_and_basename file append nondir_replacement --# perform func_basename and func_dirname in a single function --# call: --# dirname: Compute the dirname of FILE. If nonempty, --# add APPEND to the result, otherwise set result --# to NONDIR_REPLACEMENT. --# value returned in "$func_dirname_result" --# basename: Compute filename of FILE. --# value retuned in "$func_basename_result" --# Implementation must be kept synchronized with func_dirname --# and func_basename. For efficiency, we do not delegate to --# those functions but instead duplicate the functionality here. --func_dirname_and_basename () --{ -- case ${1} in -- */*) func_dirname_result="${1%/*}${2}" ;; -- * ) func_dirname_result="${3}" ;; -- esac -- func_basename_result="${1##*/}" --} -- --# func_stripname prefix suffix name --# strip PREFIX and SUFFIX off of NAME. --# PREFIX and SUFFIX must not contain globbing or regex special --# characters, hashes, percent signs, but SUFFIX may contain a leading --# dot (in which case that matches only a dot). --func_stripname () --{ -- # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are -- # positional parameters, so assign one to ordinary parameter first. -- func_stripname_result=${3} -- func_stripname_result=${func_stripname_result#"${1}"} -- func_stripname_result=${func_stripname_result%"${2}"} --} -- --# func_opt_split --func_opt_split () --{ -- func_opt_split_opt=${1%%=*} -- func_opt_split_arg=${1#*=} --} -- --# func_lo2o object --func_lo2o () --{ -- case ${1} in -- *.lo) func_lo2o_result=${1%.lo}.${objext} ;; -- *) func_lo2o_result=${1} ;; -- esac --} -- --# func_xform libobj-or-source --func_xform () --{ -- func_xform_result=${1%.*}.lo --} -- --# func_arith arithmetic-term... --func_arith () --{ -- func_arith_result=$(( $* )) --} -- --# func_len string --# STRING may not start with a hyphen. --func_len () --{ -- func_len_result=${#1} --} -- --_LT_EOF -- ;; -- *) # Bourne compatible functions. -- cat << \_LT_EOF >> "$cfgfile" -- --# func_dirname file append nondir_replacement --# Compute the dirname of FILE. If nonempty, add APPEND to the result, --# otherwise set result to NONDIR_REPLACEMENT. --func_dirname () --{ -- # Extract subdirectory from the argument. -- func_dirname_result=`$ECHO "${1}" | $SED "$dirname"` -- if test "X$func_dirname_result" = "X${1}"; then -- func_dirname_result="${3}" -- else -- func_dirname_result="$func_dirname_result${2}" -- fi --} -- --# func_basename file --func_basename () --{ -- func_basename_result=`$ECHO "${1}" | $SED "$basename"` --} -- -- --# func_stripname prefix suffix name --# strip PREFIX and SUFFIX off of NAME. --# PREFIX and SUFFIX must not contain globbing or regex special --# characters, hashes, percent signs, but SUFFIX may contain a leading --# dot (in which case that matches only a dot). --# func_strip_suffix prefix name --func_stripname () --{ -- case ${2} in -- .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; -- *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; -- esac --} -- --# sed scripts: --my_sed_long_opt='1s/^\(-[^=]*\)=.*/\1/;q' --my_sed_long_arg='1s/^-[^=]*=//' -- --# func_opt_split --func_opt_split () --{ -- func_opt_split_opt=`$ECHO "${1}" | $SED "$my_sed_long_opt"` -- func_opt_split_arg=`$ECHO "${1}" | $SED "$my_sed_long_arg"` --} -- --# func_lo2o object --func_lo2o () --{ -- func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"` --} -- --# func_xform libobj-or-source --func_xform () --{ -- func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'` --} -- --# func_arith arithmetic-term... --func_arith () --{ -- func_arith_result=`expr "$@"` --} -- --# func_len string --# STRING may not start with a hyphen. --func_len () --{ -- func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len` --} -- --_LT_EOF --esac -- --case $lt_shell_append in -- yes) -- cat << \_LT_EOF >> "$cfgfile" -- --# func_append var value --# Append VALUE to the end of shell variable VAR. --func_append () --{ -- eval "$1+=\$2" --} --_LT_EOF -- ;; -- *) -- cat << \_LT_EOF >> "$cfgfile" -- --# func_append var value --# Append VALUE to the end of shell variable VAR. --func_append () --{ -- eval "$1=\$$1\$2" --} -- --_LT_EOF -- ;; -- esac -- -- -- sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ -- || (rm -f "$cfgfile"; exit 1) -- -- mv -f "$cfgfile" "$ofile" || -+ sed '$q' "$ltmain" >> "$cfgfile" \ -+ || (rm -f "$cfgfile"; exit 1) -+ -+ if test x"$xsi_shell" = xyes; then -+ sed -e '/^func_dirname ()$/,/^} # func_dirname /c\ -+func_dirname ()\ -+{\ -+\ case ${1} in\ -+\ */*) func_dirname_result="${1%/*}${2}" ;;\ -+\ * ) func_dirname_result="${3}" ;;\ -+\ esac\ -+} # Extended-shell func_dirname implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_basename ()$/,/^} # func_basename /c\ -+func_basename ()\ -+{\ -+\ func_basename_result="${1##*/}"\ -+} # Extended-shell func_basename implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_dirname_and_basename ()$/,/^} # func_dirname_and_basename /c\ -+func_dirname_and_basename ()\ -+{\ -+\ case ${1} in\ -+\ */*) func_dirname_result="${1%/*}${2}" ;;\ -+\ * ) func_dirname_result="${3}" ;;\ -+\ esac\ -+\ func_basename_result="${1##*/}"\ -+} # Extended-shell func_dirname_and_basename implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_stripname ()$/,/^} # func_stripname /c\ -+func_stripname ()\ -+{\ -+\ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are\ -+\ # positional parameters, so assign one to ordinary parameter first.\ -+\ func_stripname_result=${3}\ -+\ func_stripname_result=${func_stripname_result#"${1}"}\ -+\ func_stripname_result=${func_stripname_result%"${2}"}\ -+} # Extended-shell func_stripname implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_split_long_opt ()$/,/^} # func_split_long_opt /c\ -+func_split_long_opt ()\ -+{\ -+\ func_split_long_opt_name=${1%%=*}\ -+\ func_split_long_opt_arg=${1#*=}\ -+} # Extended-shell func_split_long_opt implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_split_short_opt ()$/,/^} # func_split_short_opt /c\ -+func_split_short_opt ()\ -+{\ -+\ func_split_short_opt_arg=${1#??}\ -+\ func_split_short_opt_name=${1%"$func_split_short_opt_arg"}\ -+} # Extended-shell func_split_short_opt implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_lo2o ()$/,/^} # func_lo2o /c\ -+func_lo2o ()\ -+{\ -+\ case ${1} in\ -+\ *.lo) func_lo2o_result=${1%.lo}.${objext} ;;\ -+\ *) func_lo2o_result=${1} ;;\ -+\ esac\ -+} # Extended-shell func_lo2o implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_xform ()$/,/^} # func_xform /c\ -+func_xform ()\ -+{\ -+ func_xform_result=${1%.*}.lo\ -+} # Extended-shell func_xform implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_arith ()$/,/^} # func_arith /c\ -+func_arith ()\ -+{\ -+ func_arith_result=$(( $* ))\ -+} # Extended-shell func_arith implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_len ()$/,/^} # func_len /c\ -+func_len ()\ -+{\ -+ func_len_result=${#1}\ -+} # Extended-shell func_len implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+fi -+ -+if test x"$lt_shell_append" = xyes; then -+ sed -e '/^func_append ()$/,/^} # func_append /c\ -+func_append ()\ -+{\ -+ eval "${1}+=\\${2}"\ -+} # Extended-shell func_append implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ sed -e '/^func_append_quoted ()$/,/^} # func_append_quoted /c\ -+func_append_quoted ()\ -+{\ -+\ func_quote_for_eval "${2}"\ -+\ eval "${1}+=\\\\ \\$func_quote_for_eval_result"\ -+} # Extended-shell func_append_quoted implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+ -+ -+ # Save a `func_append' function call where possible by direct use of '+=' -+ sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+ test 0 -eq $? || _lt_function_replace_fail=: -+else -+ # Save a `func_append' function call even when '+=' is not available -+ sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+ test 0 -eq $? || _lt_function_replace_fail=: -+fi -+ -+if test x"$_lt_function_replace_fail" = x":"; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5 -+$as_echo "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;} -+fi -+ -+ -+ mv -f "$cfgfile" "$ofile" || - (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") - chmod +x "$ofile" - --- -2.9.0 diff --git a/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.27/0007-Add-the-armv5e-architecture-to-binutils.patch b/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.27/0007-Add-the-armv5e-architecture-to-binutils.patch deleted file mode 100644 index 795abf36..00000000 --- a/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.27/0007-Add-the-armv5e-architecture-to-binutils.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 9475aee8a702aa531737ec12dfd928d52951bc84 Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Mon, 2 Mar 2015 01:37:10 +0000 -Subject: [PATCH 07/13] Add the armv5e architecture to binutils - -Binutils has a comment that indicates it is supposed to match gcc for -all of the support "-march=" settings, but it was lacking the armv5e setting. -This was a simple way to add it, as thumb instructions shouldn't be generated -by the compiler anyway. - -Upstream-Status: Denied -Upstream maintainer indicated that we should not be using armv5e, even -though it is a legal archicture defined by our gcc. - -Signed-off-by: Mark Hatle <mark.hatle@windriver.com> -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - gas/config/tc-arm.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/gas/config/tc-arm.c b/gas/config/tc-arm.c -index 73d0531..4b9e32f 100644 ---- a/gas/config/tc-arm.c -+++ b/gas/config/tc-arm.c -@@ -25421,6 +25421,7 @@ static const struct arm_arch_option_table arm_archs[] = - ARM_ARCH_OPT ("armv4t", ARM_ARCH_V4T, FPU_ARCH_FPA), - ARM_ARCH_OPT ("armv4txm", ARM_ARCH_V4TxM, FPU_ARCH_FPA), - ARM_ARCH_OPT ("armv5", ARM_ARCH_V5, FPU_ARCH_VFP), -+ ARM_ARCH_OPT ("armv5e", ARM_ARCH_V5TE, FPU_ARCH_VFP), - ARM_ARCH_OPT ("armv5t", ARM_ARCH_V5T, FPU_ARCH_VFP), - ARM_ARCH_OPT ("armv5txm", ARM_ARCH_V5TxM, FPU_ARCH_VFP), - ARM_ARCH_OPT ("armv5te", ARM_ARCH_V5TE, FPU_ARCH_VFP), --- -2.9.0 - diff --git a/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.27/0008-don-t-let-the-distro-compiler-point-to-the-wrong-ins.patch b/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.27/0008-don-t-let-the-distro-compiler-point-to-the-wrong-ins.patch deleted file mode 100644 index af524ced..00000000 --- a/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.27/0008-don-t-let-the-distro-compiler-point-to-the-wrong-ins.patch +++ /dev/null @@ -1,35 +0,0 @@ -From b2d277937d11f1ce1d581f48ff74a25822a052da Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Mon, 2 Mar 2015 01:39:01 +0000 -Subject: [PATCH 08/13] don't let the distro compiler point to the wrong - installation location - -Thanks to RP for helping find the source code causing the issue. - -2010/08/13 -Nitin A Kamble <nitin.a.kamble@intel.com> - -Upstream-Status: Inappropriate [embedded specific] - -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - libiberty/Makefile.in | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/libiberty/Makefile.in b/libiberty/Makefile.in -index c7a4568..f766b72 100644 ---- a/libiberty/Makefile.in -+++ b/libiberty/Makefile.in -@@ -364,7 +364,8 @@ install-strip: install - # multilib-specific flags, it's overridden by FLAGS_TO_PASS from the - # default multilib, so we have to take CFLAGS into account as well, - # since it will be passed the multilib flags. --MULTIOSDIR = `$(CC) $(CFLAGS) -print-multi-os-directory` -+#MULTIOSDIR = `$(CC) $(CFLAGS) -print-multi-os-directory` -+MULTIOSDIR = "" - install_to_libdir: all - if test -n "${target_header_dir}"; then \ - ${mkinstalldirs} $(DESTDIR)$(libdir)/$(MULTIOSDIR); \ --- -2.9.0 - diff --git a/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.27/0009-warn-for-uses-of-system-directories-when-cross-linki.patch b/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.27/0009-warn-for-uses-of-system-directories-when-cross-linki.patch deleted file mode 100644 index 3c83e69e..00000000 --- a/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.27/0009-warn-for-uses-of-system-directories-when-cross-linki.patch +++ /dev/null @@ -1,273 +0,0 @@ -From 7ab8e318659eb5d9adc758c78d084a95560b93fd Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Fri, 15 Jan 2016 06:31:09 +0000 -Subject: [PATCH 09/13] warn for uses of system directories when cross linking - -2008-07-02 Joseph Myers <joseph@codesourcery.com> - - ld/ - * ld.h (args_type): Add error_poison_system_directories. - * ld.texinfo (--error-poison-system-directories): Document. - * ldfile.c (ldfile_add_library_path): Check - command_line.error_poison_system_directories. - * ldmain.c (main): Initialize - command_line.error_poison_system_directories. - * lexsup.c (enum option_values): Add - OPTION_ERROR_POISON_SYSTEM_DIRECTORIES. - (ld_options): Add --error-poison-system-directories. - (parse_args): Handle new option. - -2007-06-13 Joseph Myers <joseph@codesourcery.com> - - ld/ - * config.in: Regenerate. - * ld.h (args_type): Add poison_system_directories. - * ld.texinfo (--no-poison-system-directories): Document. - * ldfile.c (ldfile_add_library_path): Check - command_line.poison_system_directories. - * ldmain.c (main): Initialize - command_line.poison_system_directories. - * lexsup.c (enum option_values): Add - OPTION_NO_POISON_SYSTEM_DIRECTORIES. - (ld_options): Add --no-poison-system-directories. - (parse_args): Handle new option. - -2007-04-20 Joseph Myers <joseph@codesourcery.com> - - Merge from Sourcery G++ binutils 2.17: - - 2007-03-20 Joseph Myers <joseph@codesourcery.com> - Based on patch by Mark Hatle <mark.hatle@windriver.com>. - ld/ - * configure.in (--enable-poison-system-directories): New option. - * configure, config.in: Regenerate. - * ldfile.c (ldfile_add_library_path): If - ENABLE_POISON_SYSTEM_DIRECTORIES defined, warn for use of /lib, - /usr/lib, /usr/local/lib or /usr/X11R6/lib. - -Signed-off-by: Mark Hatle <mark.hatle@windriver.com> -Signed-off-by: Scott Garman <scott.a.garman@intel.com> -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- -Upstream-Status: Pending - - ld/config.in | 3 +++ - ld/configure | 16 ++++++++++++++++ - ld/configure.ac | 10 ++++++++++ - ld/ld.h | 8 ++++++++ - ld/ld.texinfo | 12 ++++++++++++ - ld/ldfile.c | 17 +++++++++++++++++ - ld/ldlex.h | 2 ++ - ld/ldmain.c | 2 ++ - ld/lexsup.c | 16 ++++++++++++++++ - 9 files changed, 86 insertions(+) - -diff --git a/ld/config.in b/ld/config.in -index 2c6d698..d3cb7e8 100644 ---- a/ld/config.in -+++ b/ld/config.in -@@ -17,6 +17,9 @@ - language is requested. */ - #undef ENABLE_NLS - -+/* Define to warn for use of native system library directories */ -+#undef ENABLE_POISON_SYSTEM_DIRECTORIES -+ - /* Additional extension a shared object might have. */ - #undef EXTRA_SHLIB_EXTENSION - -diff --git a/ld/configure b/ld/configure -index 3df1149..0601c98 100755 ---- a/ld/configure -+++ b/ld/configure -@@ -792,6 +792,7 @@ with_lib_path - enable_targets - enable_64_bit_bfd - with_sysroot -+enable_poison_system_directories - enable_gold - enable_got - enable_compressed_debug_sections -@@ -1449,6 +1450,8 @@ Optional Features: - --disable-largefile omit support for large files - --enable-targets alternative target configurations - --enable-64-bit-bfd 64-bit support (on hosts with narrower word sizes) -+ --enable-poison-system-directories -+ warn for use of native system library directories - --enable-gold[=ARG] build gold [ARG={default,yes,no}] - --enable-got=<type> GOT handling scheme (target, single, negative, - multigot) -@@ -16313,6 +16316,19 @@ fi - - - -+# Check whether --enable-poison-system-directories was given. -+if test "${enable_poison_system_directories+set}" = set; then : -+ enableval=$enable_poison_system_directories; -+else -+ enable_poison_system_directories=no -+fi -+ -+if test "x${enable_poison_system_directories}" = "xyes"; then -+ -+$as_echo "#define ENABLE_POISON_SYSTEM_DIRECTORIES 1" >>confdefs.h -+ -+fi -+ - # Check whether --enable-gold was given. - if test "${enable_gold+set}" = set; then : - enableval=$enable_gold; case "${enableval}" in -diff --git a/ld/configure.ac b/ld/configure.ac -index d17281f..9fb3db9 100644 ---- a/ld/configure.ac -+++ b/ld/configure.ac -@@ -95,6 +95,16 @@ AC_SUBST(use_sysroot) - AC_SUBST(TARGET_SYSTEM_ROOT) - AC_SUBST(TARGET_SYSTEM_ROOT_DEFINE) - -+AC_ARG_ENABLE([poison-system-directories], -+ AS_HELP_STRING([--enable-poison-system-directories], -+ [warn for use of native system library directories]),, -+ [enable_poison_system_directories=no]) -+if test "x${enable_poison_system_directories}" = "xyes"; then -+ AC_DEFINE([ENABLE_POISON_SYSTEM_DIRECTORIES], -+ [1], -+ [Define to warn for use of native system library directories]) -+fi -+ - dnl Use --enable-gold to decide if this linker should be the default. - dnl "install_as_default" is set to false if gold is the default linker. - dnl "installed_linker" is the installed BFD linker name. -diff --git a/ld/ld.h b/ld/ld.h -index 85a48ad..a8fdddf 100644 ---- a/ld/ld.h -+++ b/ld/ld.h -@@ -169,6 +169,14 @@ typedef struct - /* If set, display the target memory usage (per memory region). */ - bfd_boolean print_memory_usage; - -+ /* If TRUE (the default) warn for uses of system directories when -+ cross linking. */ -+ bfd_boolean poison_system_directories; -+ -+ /* If TRUE (default FALSE) give an error for uses of system -+ directories when cross linking instead of a warning. */ -+ bfd_boolean error_poison_system_directories; -+ - /* Big or little endian as set on command line. */ - enum endian_enum endian; - -diff --git a/ld/ld.texinfo b/ld/ld.texinfo -index bc16764..838c75d 100644 ---- a/ld/ld.texinfo -+++ b/ld/ld.texinfo -@@ -2357,6 +2357,18 @@ string identifying the original linked file does not change. - - Passing @code{none} for @var{style} disables the setting from any - @code{--build-id} options earlier on the command line. -+ -+@kindex --no-poison-system-directories -+@item --no-poison-system-directories -+Do not warn for @option{-L} options using system directories such as -+@file{/usr/lib} when cross linking. This option is intended for use -+in chroot environments when such directories contain the correct -+libraries for the target system rather than the host. -+ -+@kindex --error-poison-system-directories -+@item --error-poison-system-directories -+Give an error instead of a warning for @option{-L} options using -+system directories when cross linking. - @end table - - @c man end -diff --git a/ld/ldfile.c b/ld/ldfile.c -index e397737..013727b 100644 ---- a/ld/ldfile.c -+++ b/ld/ldfile.c -@@ -114,6 +114,23 @@ ldfile_add_library_path (const char *name, bfd_boolean cmdline) - new_dirs->name = concat (ld_sysroot, name + 1, (const char *) NULL); - else - new_dirs->name = xstrdup (name); -+ -+#ifdef ENABLE_POISON_SYSTEM_DIRECTORIES -+ if (command_line.poison_system_directories -+ && ((!strncmp (name, "/lib", 4)) -+ || (!strncmp (name, "/usr/lib", 8)) -+ || (!strncmp (name, "/usr/local/lib", 14)) -+ || (!strncmp (name, "/usr/X11R6/lib", 14)))) -+ { -+ if (command_line.error_poison_system_directories) -+ einfo (_("%X%P: error: library search path \"%s\" is unsafe for " -+ "cross-compilation\n"), name); -+ else -+ einfo (_("%P: warning: library search path \"%s\" is unsafe for " -+ "cross-compilation\n"), name); -+ } -+#endif -+ - } - - /* Try to open a BFD for a lang_input_statement. */ -diff --git a/ld/ldlex.h b/ld/ldlex.h -index cf943e4..12cfcaa 100644 ---- a/ld/ldlex.h -+++ b/ld/ldlex.h -@@ -144,6 +144,8 @@ enum option_values - OPTION_PRINT_MEMORY_USAGE, - OPTION_REQUIRE_DEFINED_SYMBOL, - OPTION_ORPHAN_HANDLING, -+ OPTION_NO_POISON_SYSTEM_DIRECTORIES, -+ OPTION_ERROR_POISON_SYSTEM_DIRECTORIES, - }; - - /* The initial parser states. */ -diff --git a/ld/ldmain.c b/ld/ldmain.c -index e7a8dff..3ccf2af 100644 ---- a/ld/ldmain.c -+++ b/ld/ldmain.c -@@ -257,6 +257,8 @@ main (int argc, char **argv) - command_line.warn_mismatch = TRUE; - command_line.warn_search_mismatch = TRUE; - command_line.check_section_addresses = -1; -+ command_line.poison_system_directories = TRUE; -+ command_line.error_poison_system_directories = FALSE; - - /* We initialize DEMANGLING based on the environment variable - COLLECT_NO_DEMANGLE. The gcc collect2 program will demangle the -diff --git a/ld/lexsup.c b/ld/lexsup.c -index 6d28e91..5c9da57 100644 ---- a/ld/lexsup.c -+++ b/ld/lexsup.c -@@ -530,6 +530,14 @@ static const struct ld_option ld_options[] = - { {"orphan-handling", required_argument, NULL, OPTION_ORPHAN_HANDLING}, - '\0', N_("=MODE"), N_("Control how orphan sections are handled."), - TWO_DASHES }, -+ { {"no-poison-system-directories", no_argument, NULL, -+ OPTION_NO_POISON_SYSTEM_DIRECTORIES}, -+ '\0', NULL, N_("Do not warn for -L options using system directories"), -+ TWO_DASHES }, -+ { {"error-poison-system-directories", no_argument, NULL, -+ + OPTION_ERROR_POISON_SYSTEM_DIRECTORIES}, -+ '\0', NULL, N_("Give an error for -L options using system directories"), -+ TWO_DASHES }, - }; - - #define OPTION_COUNT ARRAY_SIZE (ld_options) -@@ -1550,6 +1558,14 @@ parse_args (unsigned argc, char **argv) - einfo (_("%P%F: invalid argument to option" - " \"--orphan-handling\"\n")); - break; -+ -+ case OPTION_NO_POISON_SYSTEM_DIRECTORIES: -+ command_line.poison_system_directories = FALSE; -+ break; -+ -+ case OPTION_ERROR_POISON_SYSTEM_DIRECTORIES: -+ command_line.error_poison_system_directories = TRUE; -+ break; - } - } - --- -2.9.0 - diff --git a/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.27/0010-Fix-rpath-in-libtool-when-sysroot-is-enabled.patch b/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.27/0010-Fix-rpath-in-libtool-when-sysroot-is-enabled.patch deleted file mode 100644 index e2f6a51a..00000000 --- a/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.27/0010-Fix-rpath-in-libtool-when-sysroot-is-enabled.patch +++ /dev/null @@ -1,52 +0,0 @@ -From 27fc7a4927ab92925a5be84217959d9f1c808ccc Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Mon, 2 Mar 2015 01:42:38 +0000 -Subject: [PATCH 10/13] Fix rpath in libtool when sysroot is enabled - -Enabling sysroot support in libtool exposed a bug where the final -library had an RPATH encoded into it which still pointed to the -sysroot. This works around the issue until it gets sorted out -upstream. - -Fix suggested by Richard Purdie <richard.purdie@linuxfoundation.org> - -Upstream-Status: Inappropriate [embedded specific] - -Signed-off-by: Scott Garman <scott.a.garman@intel.com> -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - ltmain.sh | 10 ++++++++-- - 1 file changed, 8 insertions(+), 2 deletions(-) - -diff --git a/ltmain.sh b/ltmain.sh -index 70e856e..11ee684 100644 ---- a/ltmain.sh -+++ b/ltmain.sh -@@ -8035,9 +8035,11 @@ EOF - test "$opt_mode" != relink && rpath="$compile_rpath$rpath" - for libdir in $rpath; do - if test -n "$hardcode_libdir_flag_spec"; then -+ func_replace_sysroot "$libdir" -+ libdir=$func_replace_sysroot_result -+ func_stripname '=' '' "$libdir" -+ libdir=$func_stripname_result - if test -n "$hardcode_libdir_separator"; then -- func_replace_sysroot "$libdir" -- libdir=$func_replace_sysroot_result - if test -z "$hardcode_libdirs"; then - hardcode_libdirs="$libdir" - else -@@ -8770,6 +8772,10 @@ EOF - hardcode_libdirs= - for libdir in $compile_rpath $finalize_rpath; do - if test -n "$hardcode_libdir_flag_spec"; then -+ func_replace_sysroot "$libdir" -+ libdir=$func_replace_sysroot_result -+ func_stripname '=' '' "$libdir" -+ libdir=$func_stripname_result - if test -n "$hardcode_libdir_separator"; then - if test -z "$hardcode_libdirs"; then - hardcode_libdirs="$libdir" --- -2.9.0 - diff --git a/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.27/0011-Change-default-emulation-for-mips64-linux.patch b/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.27/0011-Change-default-emulation-for-mips64-linux.patch deleted file mode 100644 index 3fdb5eb9..00000000 --- a/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.27/0011-Change-default-emulation-for-mips64-linux.patch +++ /dev/null @@ -1,59 +0,0 @@ -From 6b018e8129298dbd5b714e459ef0b3aef5bbce13 Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Mon, 2 Mar 2015 01:44:14 +0000 -Subject: [PATCH 11/13] Change default emulation for mips64*-*-linux - -we change the default emulations to be N64 instead of N32 - -Upstream-Status: Inappropriate [ OE configuration Specific] - -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - bfd/config.bfd | 8 ++++---- - ld/configure.tgt | 8 ++++---- - 2 files changed, 8 insertions(+), 8 deletions(-) - -diff --git a/bfd/config.bfd b/bfd/config.bfd -index b998830..ab17e72 100644 ---- a/bfd/config.bfd -+++ b/bfd/config.bfd -@@ -1101,12 +1101,12 @@ case "${targ}" in - targ_selvecs="mips_elf32_le_vec mips_elf64_be_vec mips_elf64_le_vec mips_ecoff_be_vec mips_ecoff_le_vec" - ;; - mips64*el-*-linux*) -- targ_defvec=mips_elf32_ntrad_le_vec -- targ_selvecs="mips_elf32_ntrad_be_vec mips_elf32_trad_le_vec mips_elf32_trad_be_vec mips_elf64_trad_le_vec mips_elf64_trad_be_vec" -+ targ_defvec=mips_elf64_trad_le_vec -+ targ_selvecs="mips_elf32_ntrad_be_vec mips_elf32_ntrad_le_vec mips_elf32_trad_le_vec mips_elf32_trad_be_vec mips_elf64_trad_be_vec" - ;; - mips64*-*-linux*) -- targ_defvec=mips_elf32_ntrad_be_vec -- targ_selvecs="mips_elf32_ntrad_le_vec mips_elf32_trad_be_vec mips_elf32_trad_le_vec mips_elf64_trad_be_vec mips_elf64_trad_le_vec" -+ targ_defvec=mips_elf64_trad_be_vec -+ targ_selvecs="mips_elf32_ntrad_be_vec mips_elf32_ntrad_be_vec mips_elf32_trad_be_vec mips_elf32_trad_le_vec mips_elf64_trad_le_vec" - ;; - mips*el-*-linux*) - targ_defvec=mips_elf32_trad_le_vec -diff --git a/ld/configure.tgt b/ld/configure.tgt -index a3db909..212327c 100644 ---- a/ld/configure.tgt -+++ b/ld/configure.tgt -@@ -513,11 +513,11 @@ mips*el-*-vxworks*) targ_emul=elf32elmipvxworks - mips*-*-vxworks*) targ_emul=elf32ebmipvxworks - targ_extra_emuls="elf32elmipvxworks" ;; - mips*-*-windiss) targ_emul=elf32mipswindiss ;; --mips64*el-*-linux-*) targ_emul=elf32ltsmipn32 -- targ_extra_emuls="elf32btsmipn32 elf32ltsmip elf32btsmip elf64ltsmip elf64btsmip" -+mips64*el-*-linux-*) targ_emul=elf64ltsmip -+ targ_extra_emuls="elf32btsmipn32 elf32ltsmipn32 elf32ltsmip elf32btsmip elf64btsmip" - targ_extra_libpath=$targ_extra_emuls ;; --mips64*-*-linux-*) targ_emul=elf32btsmipn32 -- targ_extra_emuls="elf32ltsmipn32 elf32btsmip elf32ltsmip elf64btsmip elf64ltsmip" -+mips64*-*-linux-*) targ_emul=elf64btsmip -+ targ_extra_emuls="elf32btsmipn32 elf32ltsmipn32 elf32btsmip elf32ltsmip elf64ltsmip" - targ_extra_libpath=$targ_extra_emuls ;; - mips*el-*-linux-*) targ_emul=elf32ltsmip - targ_extra_emuls="elf32btsmip elf32ltsmipn32 elf64ltsmip elf32btsmipn32 elf64btsmip" --- -2.9.0 - diff --git a/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.27/0012-Add-support-for-Netlogic-XLP.patch b/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.27/0012-Add-support-for-Netlogic-XLP.patch deleted file mode 100644 index 8103347b..00000000 --- a/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.27/0012-Add-support-for-Netlogic-XLP.patch +++ /dev/null @@ -1,413 +0,0 @@ -From c2e138f4ccdf8af81c18c8511c901d3deee696b5 Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Sun, 14 Feb 2016 17:06:19 +0000 -Subject: [PATCH 12/13] Add support for Netlogic XLP - -Patch From: Nebu Philips <nphilips@netlogicmicro.com> - -Using the mipsisa64r2nlm target, add support for XLP from -Netlogic. Also, update vendor name to NLM wherever applicable. - -Use 0x00000080 for INSN_XLP, the value 0x00000040 has already been -assigned to INSN_OCTEON3 - -Signed-off-by: Khem Raj <raj.khem@gmail.com> -Signed-off-by: Baoshan Pang <baoshan.pang@windriver.com> -Signed-off-by: Mark Hatle <mark.hatle@windriver.com> ---- -Upstream-Status: Pending - - bfd/aoutx.h | 1 + - bfd/archures.c | 1 + - bfd/bfd-in2.h | 1 + - bfd/config.bfd | 5 +++++ - bfd/cpu-mips.c | 6 ++++-- - bfd/elfxx-mips.c | 8 ++++++++ - binutils/readelf.c | 1 + - gas/config/tc-mips.c | 4 +++- - gas/configure | 3 +++ - gas/configure.tgt | 2 +- - include/elf/mips.h | 1 + - include/opcode/mips.h | 10 ++++++++-- - ld/configure.tgt | 2 ++ - opcodes/mips-dis.c | 12 +++++------- - opcodes/mips-opc.c | 33 +++++++++++++++++++++------------ - 15 files changed, 65 insertions(+), 25 deletions(-) - -diff --git a/bfd/aoutx.h b/bfd/aoutx.h -index be0126a..4ca7e24 100644 ---- a/bfd/aoutx.h -+++ b/bfd/aoutx.h -@@ -812,6 +812,7 @@ NAME (aout, machine_type) (enum bfd_architecture arch, - case bfd_mach_mipsisa64r6: - case bfd_mach_mips_sb1: - case bfd_mach_mips_xlr: -+ case bfd_mach_mips_xlp: - /* FIXME: These should be MIPS3, MIPS4, MIPS16, MIPS32, etc. */ - arch_flags = M_MIPS2; - break; -diff --git a/bfd/archures.c b/bfd/archures.c -index 96c9109..5a30d02 100644 ---- a/bfd/archures.c -+++ b/bfd/archures.c -@@ -197,6 +197,7 @@ DESCRIPTION - .#define bfd_mach_mips_octeon2 6502 - .#define bfd_mach_mips_octeon3 6503 - .#define bfd_mach_mips_xlr 887682 {* decimal 'XLR' *} -+.#define bfd_mach_mips_xlp 887680 {* decimal 'XLP' *} - .#define bfd_mach_mipsisa32 32 - .#define bfd_mach_mipsisa32r2 33 - .#define bfd_mach_mipsisa32r3 34 -diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h -index 30513c4..5e8ed4c 100644 ---- a/bfd/bfd-in2.h -+++ b/bfd/bfd-in2.h -@@ -2008,6 +2008,7 @@ enum bfd_architecture - #define bfd_mach_mips_octeon2 6502 - #define bfd_mach_mips_octeon3 6503 - #define bfd_mach_mips_xlr 887682 /* decimal 'XLR' */ -+#define bfd_mach_mips_xlp 887680 /* decimal 'XLP' */ - #define bfd_mach_mipsisa32 32 - #define bfd_mach_mipsisa32r2 33 - #define bfd_mach_mipsisa32r3 34 -diff --git a/bfd/config.bfd b/bfd/config.bfd -index ab17e72..863be89 100644 ---- a/bfd/config.bfd -+++ b/bfd/config.bfd -@@ -1084,6 +1084,11 @@ case "${targ}" in - targ_defvec=mips_elf32_le_vec - targ_selvecs="mips_elf32_be_vec mips_elf64_be_vec mips_elf64_le_vec" - ;; -+ mipsisa64*-*-elf*) -+ targ_defvec=mips_elf32_trad_be_vec -+ targ_selvecs="mips_elf32_trad_le_vec mips_elf64_trad_be_vec mips_elf64_trad_le_vec" -+ want64=true -+ ;; - mips*-*-elf* | mips*-*-rtems* | mips*-*-windiss | mips*-*-none) - targ_defvec=mips_elf32_be_vec - targ_selvecs="mips_elf32_le_vec mips_elf64_be_vec mips_elf64_le_vec" -diff --git a/bfd/cpu-mips.c b/bfd/cpu-mips.c -index d209fb6..b6a86ae 100644 ---- a/bfd/cpu-mips.c -+++ b/bfd/cpu-mips.c -@@ -104,7 +104,8 @@ enum - I_mipsocteon2, - I_mipsocteon3, - I_xlr, -- I_micromips -+ I_micromips, -+ I_xlp - }; - - #define NN(index) (&arch_info_struct[(index) + 1]) -@@ -155,7 +156,8 @@ static const bfd_arch_info_type arch_info_struct[] = - N (64, 64, bfd_mach_mips_octeon2,"mips:octeon2", FALSE, NN(I_mipsocteon2)), - N (64, 64, bfd_mach_mips_octeon3, "mips:octeon3", FALSE, NN(I_mipsocteon3)), - N (64, 64, bfd_mach_mips_xlr, "mips:xlr", FALSE, NN(I_xlr)), -- N (64, 64, bfd_mach_mips_micromips,"mips:micromips",FALSE,0) -+ N (64, 64, bfd_mach_mips_micromips,"mips:micromips",FALSE,NN(I_micromips)), -+ N (64, 64, bfd_mach_mips_xlp, "mips:xlp", FALSE, 0) - }; - - /* The default architecture is mips:3000, but with a machine number of -diff --git a/bfd/elfxx-mips.c b/bfd/elfxx-mips.c -index e47276b..71c30a0 100644 ---- a/bfd/elfxx-mips.c -+++ b/bfd/elfxx-mips.c -@@ -6646,6 +6646,9 @@ _bfd_elf_mips_mach (flagword flags) - case E_MIPS_MACH_XLR: - return bfd_mach_mips_xlr; - -+ case E_MIPS_MACH_XLP: -+ return bfd_mach_mips_xlp; -+ - default: - switch (flags & EF_MIPS_ARCH) - { -@@ -11949,6 +11952,10 @@ mips_set_isa_flags (bfd *abfd) - val = E_MIPS_ARCH_64R2 | E_MIPS_MACH_OCTEON2; - break; - -+ case bfd_mach_mips_xlp: -+ val = E_MIPS_ARCH_64R2 | E_MIPS_MACH_XLP; -+ break; -+ - case bfd_mach_mipsisa32: - val = E_MIPS_ARCH_32; - break; -@@ -13975,6 +13982,7 @@ static const struct mips_mach_extension mips_mach_extensions[] = - { bfd_mach_mips_octeonp, bfd_mach_mips_octeon }, - { bfd_mach_mips_octeon, bfd_mach_mipsisa64r2 }, - { bfd_mach_mips_loongson_3a, bfd_mach_mipsisa64r2 }, -+ { bfd_mach_mips_xlp, bfd_mach_mipsisa64r2 }, - - /* MIPS64 extensions. */ - { bfd_mach_mipsisa64r2, bfd_mach_mipsisa64 }, -diff --git a/binutils/readelf.c b/binutils/readelf.c -index 274ddd1..d31558c 100644 ---- a/binutils/readelf.c -+++ b/binutils/readelf.c -@@ -3230,6 +3230,7 @@ get_machine_flags (unsigned e_flags, unsigned e_machine) - case E_MIPS_MACH_OCTEON2: strcat (buf, ", octeon2"); break; - case E_MIPS_MACH_OCTEON3: strcat (buf, ", octeon3"); break; - case E_MIPS_MACH_XLR: strcat (buf, ", xlr"); break; -+ case E_MIPS_MACH_XLP: strcat (buf, ", xlp"); break; - case 0: - /* We simply ignore the field in this case to avoid confusion: - MIPS ELF does not specify EF_MIPS_MACH, it is a GNU -diff --git a/gas/config/tc-mips.c b/gas/config/tc-mips.c -index eb8b26b..e59dce6 100644 ---- a/gas/config/tc-mips.c -+++ b/gas/config/tc-mips.c -@@ -552,6 +552,7 @@ static int mips_32bitmode = 0; - || mips_opts.arch == CPU_RM7000 \ - || mips_opts.arch == CPU_VR5500 \ - || mips_opts.micromips \ -+ || mips_opts.arch == CPU_XLP \ - ) - - /* Whether the processor uses hardware interlocks to protect reads -@@ -581,6 +582,7 @@ static int mips_32bitmode = 0; - && mips_opts.isa != ISA_MIPS3) \ - || mips_opts.arch == CPU_R4300 \ - || mips_opts.micromips \ -+ || mips_opts.arch == CPU_XLP \ - ) - - /* Whether the processor uses hardware interlocks to protect reads -@@ -18858,7 +18860,7 @@ static const struct mips_cpu_info mips_cpu_info_table[] = - /* Broadcom XLP. - XLP is mostly like XLR, with the prominent exception that it is - MIPS64R2 rather than MIPS64. */ -- { "xlp", 0, 0, ISA_MIPS64R2, CPU_XLR }, -+ { "xlp", 0, 0, ISA_MIPS64R2, CPU_XLP }, - - /* MIPS 64 Release 6 */ - { "i6400", 0, ASE_MSA, ISA_MIPS64R6, CPU_MIPS64R6}, -diff --git a/gas/configure b/gas/configure -index 45da030..aba89f7 100755 ---- a/gas/configure -+++ b/gas/configure -@@ -12914,6 +12914,9 @@ _ACEOF - mipsisa64r6 | mipsisa64r6el) - mips_cpu=mips64r6 - ;; -+ mipsisa64r2nlm | mipsisa64r2nlmel) -+ mips_cpu=xlp -+ ;; - mipstx39 | mipstx39el) - mips_cpu=r3900 - ;; -diff --git a/gas/configure.tgt b/gas/configure.tgt -index 1b9fd99..a9f1977 100644 ---- a/gas/configure.tgt -+++ b/gas/configure.tgt -@@ -339,7 +339,7 @@ case ${generic_target} in - mips-*-sysv4*MP* | mips-*-gnu*) fmt=elf em=tmips ;; - mips*-sde-elf* | mips*-mti-elf* | mips*-img-elf*) - fmt=elf em=tmips ;; -- mips-*-elf* | mips-*-rtems*) fmt=elf ;; -+ mips-*-elf* | mips-*-rtems*) fmt=elf em=tmips ;; - mips-*-netbsd*) fmt=elf em=tmips ;; - mips-*-openbsd*) fmt=elf em=tmips ;; - -diff --git a/include/elf/mips.h b/include/elf/mips.h -index 7e813de..d7d72c1 100644 ---- a/include/elf/mips.h -+++ b/include/elf/mips.h -@@ -290,6 +290,7 @@ END_RELOC_NUMBERS (R_MIPS_maxext) - #define E_MIPS_MACH_SB1 0x008a0000 - #define E_MIPS_MACH_OCTEON 0x008b0000 - #define E_MIPS_MACH_XLR 0x008c0000 -+#define E_MIPS_MACH_XLP 0x008f0000 - #define E_MIPS_MACH_OCTEON2 0x008d0000 - #define E_MIPS_MACH_OCTEON3 0x008e0000 - #define E_MIPS_MACH_5400 0x00910000 -diff --git a/include/opcode/mips.h b/include/opcode/mips.h -index b1d4ef6..f2c8e88 100644 ---- a/include/opcode/mips.h -+++ b/include/opcode/mips.h -@@ -1232,8 +1232,10 @@ static const unsigned int mips_isa_table[] = { - #define INSN_LOONGSON_2F 0x80000000 - /* Loongson 3A. */ - #define INSN_LOONGSON_3A 0x00000400 --/* RMI Xlr instruction */ --#define INSN_XLR 0x00000020 -+/* Netlogic Xlr instruction */ -+#define INSN_XLR 0x00000020 -+/* Netlogic XlP instruction */ -+#define INSN_XLP 0x00000080 - - /* DSP ASE */ - #define ASE_DSP 0x00000001 -@@ -1331,6 +1333,7 @@ static const unsigned int mips_isa_table[] = { - #define CPU_OCTEON2 6502 - #define CPU_OCTEON3 6503 - #define CPU_XLR 887682 /* decimal 'XLR' */ -+#define CPU_XLP 887680 /* decimal 'XLP' */ - - /* Return true if the given CPU is included in INSN_* mask MASK. */ - -@@ -1408,6 +1411,9 @@ cpu_is_member (int cpu, unsigned int mask) - return ((mask & INSN_ISA_MASK) == INSN_ISA32R6) - || ((mask & INSN_ISA_MASK) == INSN_ISA64R6); - -+ case CPU_XLP: -+ return (mask & INSN_XLP) != 0; -+ - default: - return FALSE; - } -diff --git a/ld/configure.tgt b/ld/configure.tgt -index 212327c..212e09c 100644 ---- a/ld/configure.tgt -+++ b/ld/configure.tgt -@@ -499,6 +499,8 @@ mips*el-sde-elf* | mips*el-mti-elf* | mips*el-img-elf*) - mips*-sde-elf* | mips*-mti-elf* | mips*-img-elf*) - targ_emul=elf32btsmip - targ_extra_emuls="elf32ltsmip elf32btsmipn32 elf64btsmip elf32ltsmipn32 elf64ltsmip" ;; -+mipsisa64*-*-elf*) targ_emul=elf32btsmip -+ targ_extra_emuls="elf32ltsmip elf64btsmip elf64ltsmip" ;; - mips64*el-ps2-elf*) targ_emul=elf32lr5900n32 - targ_extra_emuls="elf32lr5900" - targ_extra_libpath=$targ_extra_emuls ;; -diff --git a/opcodes/mips-dis.c b/opcodes/mips-dis.c -index 3f874e7..9813d0e 100644 ---- a/opcodes/mips-dis.c -+++ b/opcodes/mips-dis.c -@@ -648,13 +648,11 @@ const struct mips_arch_choice mips_arch_choices[] = - mips_cp0sel_names_xlr, ARRAY_SIZE (mips_cp0sel_names_xlr), - mips_cp1_names_mips3264, mips_hwr_names_numeric }, - -- /* XLP is mostly like XLR, with the prominent exception it is being -- MIPS64R2. */ -- { "xlp", 1, bfd_mach_mips_xlr, CPU_XLR, -- ISA_MIPS64R2 | INSN_XLR, 0, -- mips_cp0_names_xlr, -- mips_cp0sel_names_xlr, ARRAY_SIZE (mips_cp0sel_names_xlr), -- mips_cp1_names_mips3264, mips_hwr_names_numeric }, -+ { "xlp", 1, bfd_mach_mips_xlp, CPU_XLP, -+ ISA_MIPS64R2 | INSN_XLP, 0, -+ mips_cp0_names_mips3264r2, -+ mips_cp0sel_names_mips3264r2, ARRAY_SIZE (mips_cp0sel_names_mips3264r2), -+ mips_cp1_names_mips3264, mips_hwr_names_mips3264r2 }, - - /* This entry, mips16, is here only for ISA/processor selection; do - not print its name. */ -diff --git a/opcodes/mips-opc.c b/opcodes/mips-opc.c -index a95eff1..99fb7bb 100644 ---- a/opcodes/mips-opc.c -+++ b/opcodes/mips-opc.c -@@ -320,7 +320,8 @@ decode_mips_operand (const char *p) - #define IOCTP (INSN_OCTEONP | INSN_OCTEON2 | INSN_OCTEON3) - #define IOCT2 (INSN_OCTEON2 | INSN_OCTEON3) - #define IOCT3 INSN_OCTEON3 --#define XLR INSN_XLR -+#define XLR INSN_XLR -+#define XLP INSN_XLP - #define IVIRT ASE_VIRT - #define IVIRT64 ASE_VIRT64 - -@@ -958,6 +959,7 @@ const struct mips_opcode mips_builtin_opcodes[] = - {"clo", "U,s", 0x70000021, 0xfc0007ff, WR_1|RD_2, 0, I32|N55, 0, I37 }, - {"clz", "d,s", 0x00000050, 0xfc1f07ff, WR_1|RD_2, 0, I37, 0, 0 }, - {"clz", "U,s", 0x70000020, 0xfc0007ff, WR_1|RD_2, 0, I32|N55, 0, I37 }, -+{"crc", "d,s,t", 0x7000001c, 0xfc0007ff, WR_1|RD_2|RD_3, 0, XLP, 0, 0 }, - /* ctc0 is at the bottom of the table. */ - {"ctc1", "t,G", 0x44c00000, 0xffe007ff, RD_1|WR_CC|CM, 0, I1, 0, 0 }, - {"ctc1", "t,S", 0x44c00000, 0xffe007ff, RD_1|WR_CC|CM, 0, I1, 0, 0 }, -@@ -990,12 +992,13 @@ const struct mips_opcode mips_builtin_opcodes[] = - {"daddiu", "t,r,j", 0x64000000, 0xfc000000, WR_1|RD_2, 0, I3, 0, 0 }, - {"daddu", "d,v,t", 0x0000002d, 0xfc0007ff, WR_1|RD_2|RD_3, 0, I3, 0, 0 }, - {"daddu", "t,r,I", 0, (int) M_DADDU_I, INSN_MACRO, 0, I3, 0, 0 }, --{"daddwc", "d,s,t", 0x70000038, 0xfc0007ff, WR_1|RD_2|RD_3|WR_C0|RD_C0, 0, XLR, 0, 0 }, -+{"daddwc", "d,s,t", 0x70000038, 0xfc0007ff, WR_1|RD_2|RD_3|WR_C0|RD_C0, 0, XLR|XLP, 0, 0 }, - {"dbreak", "", 0x7000003f, 0xffffffff, 0, 0, N5, 0, 0 }, - {"dclo", "d,s", 0x00000053, 0xfc1f07ff, WR_1|RD_2, 0, I69, 0, 0 }, - {"dclo", "U,s", 0x70000025, 0xfc0007ff, WR_1|RD_2, 0, I64|N55, 0, I69 }, - {"dclz", "d,s", 0x00000052, 0xfc1f07ff, WR_1|RD_2, 0, I69, 0, 0 }, - {"dclz", "U,s", 0x70000024, 0xfc0007ff, WR_1|RD_2, 0, I64|N55, 0, I69 }, -+{"dcrc", "d,s,t", 0x7000001d, 0xfc0007ff, WR_1|RD_2|RD_3, 0, XLP, 0, 0 }, - /* dctr and dctw are used on the r5000. */ - {"dctr", "o(b)", 0xbc050000, 0xfc1f0000, RD_2, 0, I3, 0, 0 }, - {"dctw", "o(b)", 0xbc090000, 0xfc1f0000, RD_2, 0, I3, 0, 0 }, -@@ -1067,6 +1070,7 @@ const struct mips_opcode mips_builtin_opcodes[] = - {"dmfc0", "t,G,H", 0x40200000, 0xffe007f8, WR_1|RD_C0|LC, 0, I64, 0, 0 }, - {"dmfgc0", "t,G", 0x40600100, 0xffe007ff, WR_1|RD_C0|LC, 0, 0, IVIRT64, 0 }, - {"dmfgc0", "t,G,H", 0x40600100, 0xffe007f8, WR_1|RD_C0|LC, 0, 0, IVIRT64, 0 }, -+{"dmfur", "t,d", 0x7000001e, 0xffe007ff, WR_1, 0, XLP, 0, 0 }, - {"dmt", "", 0x41600bc1, 0xffffffff, TRAP, 0, 0, MT32, 0 }, - {"dmt", "t", 0x41600bc1, 0xffe0ffff, WR_1|TRAP, 0, 0, MT32, 0 }, - {"dmtc0", "t,G", 0x40a00000, 0xffe007ff, RD_1|WR_C0|WR_CC|CM, 0, I3, 0, EE }, -@@ -1082,6 +1086,8 @@ const struct mips_opcode mips_builtin_opcodes[] = - /* dmfc3 is at the bottom of the table. */ - /* dmtc3 is at the bottom of the table. */ - {"dmuh", "d,s,t", 0x000000dc, 0xfc0007ff, WR_1|RD_2|RD_3, 0, I69, 0, 0 }, -+{"dmtur", "t,d", 0x7000001f, 0xffe007ff, RD_1, 0, XLP, 0, 0 }, -+{"dmul", "d,s,t", 0x70000006, 0xfc0007ff, WR_1|RD_2|RD_3, 0, XLP, 0, 0 }, - {"dmul", "d,s,t", 0x0000009c, 0xfc0007ff, WR_1|RD_2|RD_3, 0, I69, 0, 0 }, - {"dmul", "d,v,t", 0x70000003, 0xfc0007ff, WR_1|RD_2|RD_3|WR_HILO, 0, IOCT, 0, 0 }, - {"dmul", "d,v,t", 0, (int) M_DMUL, INSN_MACRO, 0, I3, 0, M32|I69 }, -@@ -1235,9 +1241,9 @@ const struct mips_opcode mips_builtin_opcodes[] = - {"ld", "s,-b(+R)", 0xec180000, 0xfc1c0000, WR_1, RD_pc, I69, 0, 0 }, - {"ld", "t,A(b)", 0, (int) M_LD_AB, INSN_MACRO, 0, I1, 0, 0 }, - {"ld", "t,o(b)", 0xdc000000, 0xfc000000, WR_1|RD_3|LM, 0, I3, 0, 0 }, --{"ldaddw", "t,b", 0x70000010, 0xfc00ffff, MOD_1|RD_2|LM|SM, 0, XLR, 0, 0 }, --{"ldaddwu", "t,b", 0x70000011, 0xfc00ffff, MOD_1|RD_2|LM|SM, 0, XLR, 0, 0 }, --{"ldaddd", "t,b", 0x70000012, 0xfc00ffff, MOD_1|RD_2|LM|SM, 0, XLR, 0, 0 }, -+{"ldaddw", "t,b", 0x70000010, 0xfc00ffff, MOD_1|RD_2|SM, 0, XLR|XLP, 0, 0 }, -+{"ldaddwu", "t,b", 0x70000011, 0xfc00ffff, MOD_1|RD_2|SM, 0, XLR|XLP, 0, 0 }, -+{"ldaddd", "t,b", 0x70000012, 0xfc00ffff, MOD_1|RD_2|SM, 0, XLR|XLP, 0, 0 }, - {"ldc1", "T,o(b)", 0xd4000000, 0xfc000000, WR_1|RD_3|CLD|FP_D, 0, I2, 0, SF }, - {"ldc1", "E,o(b)", 0xd4000000, 0xfc000000, WR_1|RD_3|CLD|FP_D, 0, I2, 0, SF }, - {"ldc1", "T,A(b)", 0, (int) M_LDC1_AB, INSN_MACRO, INSN2_M_FP_D, I2, 0, SF }, -@@ -1402,7 +1408,7 @@ const struct mips_opcode mips_builtin_opcodes[] = - {"mflo", "d,9", 0x00000012, 0xff9f07ff, WR_1|RD_LO, 0, 0, D32, 0 }, - {"mflo1", "d", 0x70000012, 0xffff07ff, WR_1|RD_LO, 0, EE, 0, 0 }, - {"mflhxu", "d", 0x00000052, 0xffff07ff, WR_1|MOD_HILO, 0, 0, SMT, 0 }, --{"mfcr", "t,s", 0x70000018, 0xfc00ffff, WR_1|RD_2, 0, XLR, 0, 0 }, -+{"mfcr", "t,s", 0x70000018, 0xfc00ffff, WR_1, 0, XLR|XLP, 0, 0 }, - {"mfsa", "d", 0x00000028, 0xffff07ff, WR_1, 0, EE, 0, 0 }, - {"min.ob", "X,Y,Q", 0x78000006, 0xfc20003f, WR_1|RD_2|RD_3|FP_D, 0, SB1, MX, 0 }, - {"min.ob", "D,S,Q", 0x48000006, 0xfc20003f, WR_1|RD_2|RD_3|FP_D, 0, N54, 0, 0 }, -@@ -1447,10 +1453,13 @@ const struct mips_opcode mips_builtin_opcodes[] = - /* move is at the top of the table. */ - {"msgn.qh", "X,Y,Q", 0x78200000, 0xfc20003f, WR_1|RD_2|RD_3|FP_D, 0, 0, MX, 0 }, - {"msgsnd", "t", 0, (int) M_MSGSND, INSN_MACRO, 0, XLR, 0, 0 }, -+{"msgsnds", "d,t", 0x4a000001, 0xffe007ff, WR_1|RD_2|RD_C0|WR_C0, 0, XLP, 0, 0 }, - {"msgld", "", 0, (int) M_MSGLD, INSN_MACRO, 0, XLR, 0, 0 }, - {"msgld", "t", 0, (int) M_MSGLD_T, INSN_MACRO, 0, XLR, 0, 0 }, --{"msgwait", "", 0, (int) M_MSGWAIT, INSN_MACRO, 0, XLR, 0, 0 }, --{"msgwait", "t", 0, (int) M_MSGWAIT_T,INSN_MACRO, 0, XLR, 0, 0 }, -+{"msglds", "d,t", 0x4a000002, 0xffe007ff, WR_1|RD_2|RD_C0|WR_C0, 0, XLP, 0, 0 }, -+{"msgwait", "", 0, (int) M_MSGWAIT, INSN_MACRO, 0, XLR|XLP, 0, 0 }, -+{"msgwait", "t", 0, (int) M_MSGWAIT_T,INSN_MACRO, 0, XLR|XLP, 0, 0 }, -+{"msgsync", "", 0x4a000004, 0xffffffff,0, 0, XLP, 0, 0 }, - {"msub.d", "D,R,S,T", 0x4c000029, 0xfc00003f, WR_1|RD_2|RD_3|RD_4|FP_D, 0, I4_33, 0, I37 }, - {"msub.d", "D,S,T", 0x46200019, 0xffe0003f, WR_1|RD_2|RD_3|FP_D, 0, IL2E, 0, 0 }, - {"msub.d", "D,S,T", 0x72200019, 0xffe0003f, WR_1|RD_2|RD_3|FP_D, 0, IL2F, 0, 0 }, -@@ -1500,7 +1509,7 @@ const struct mips_opcode mips_builtin_opcodes[] = - {"mtlo", "s,7", 0x00000013, 0xfc1fe7ff, RD_1|WR_LO, 0, 0, D32, 0 }, - {"mtlo1", "s", 0x70000013, 0xfc1fffff, RD_1|WR_LO, 0, EE, 0, 0 }, - {"mtlhx", "s", 0x00000053, 0xfc1fffff, RD_1|MOD_HILO, 0, 0, SMT, 0 }, --{"mtcr", "t,s", 0x70000019, 0xfc00ffff, RD_1|RD_2, 0, XLR, 0, 0 }, -+{"mtcr", "t,s", 0x70000019, 0xfc00ffff, RD_1, 0, XLR|XLP, 0, 0 }, - {"mtm0", "s", 0x70000008, 0xfc1fffff, RD_1, 0, IOCT, 0, 0 }, - {"mtm0", "s,t", 0x70000008, 0xfc00ffff, RD_1|RD_2, 0, IOCT3, 0, 0 }, - {"mtm1", "s", 0x7000000c, 0xfc1fffff, RD_1, 0, IOCT, 0, 0 }, -@@ -1937,9 +1946,9 @@ const struct mips_opcode mips_builtin_opcodes[] = - {"suxc1", "S,t(b)", 0x4c00000d, 0xfc0007ff, RD_1|RD_2|RD_3|SM|FP_D, 0, I5_33|N55, 0, I37}, - {"sw", "t,o(b)", 0xac000000, 0xfc000000, RD_1|RD_3|SM, 0, I1, 0, 0 }, - {"sw", "t,A(b)", 0, (int) M_SW_AB, INSN_MACRO, 0, I1, 0, 0 }, --{"swapw", "t,b", 0x70000014, 0xfc00ffff, MOD_1|RD_2|LM|SM, 0, XLR, 0, 0 }, --{"swapwu", "t,b", 0x70000015, 0xfc00ffff, MOD_1|RD_2|LM|SM, 0, XLR, 0, 0 }, --{"swapd", "t,b", 0x70000016, 0xfc00ffff, MOD_1|RD_2|LM|SM, 0, XLR, 0, 0 }, -+{"swapw", "t,b", 0x70000014, 0xfc00ffff, MOD_1|RD_2|SM, 0, XLR|XLP, 0, 0 }, -+{"swapwu", "t,b", 0x70000015, 0xfc00ffff, MOD_1|RD_2|SM, 0, XLR|XLP, 0, 0 }, -+{"swapd", "t,b", 0x70000016, 0xfc00ffff, MOD_1|RD_2|SM, 0, XLR|XLP, 0, 0 }, - {"swc0", "E,o(b)", 0xe0000000, 0xfc000000, RD_3|RD_C0|SM, 0, I1, 0, IOCT|IOCTP|IOCT2|I37 }, - {"swc0", "E,A(b)", 0, (int) M_SWC0_AB, INSN_MACRO, 0, I1, 0, IOCT|IOCTP|IOCT2|I37 }, - {"swc1", "T,o(b)", 0xe4000000, 0xfc000000, RD_1|RD_3|SM|FP_S, 0, I1, 0, 0 }, --- -2.9.0 - diff --git a/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.27/0013-fix-the-incorrect-assembling-for-ppc-wait-mnemonic.patch b/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.27/0013-fix-the-incorrect-assembling-for-ppc-wait-mnemonic.patch deleted file mode 100644 index f314d642..00000000 --- a/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.27/0013-fix-the-incorrect-assembling-for-ppc-wait-mnemonic.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 0c04c3b626998c8e7b595381b35456428581f52a Mon Sep 17 00:00:00 2001 -From: Zhenhua Luo <zhenhua.luo@nxp.com> -Date: Sat, 11 Jun 2016 22:08:29 -0500 -Subject: [PATCH 13/13] fix the incorrect assembling for ppc wait mnemonic - -Signed-off-by: Zhenhua Luo <zhenhua.luo@nxp.com> - -Upstream-Status: Pending ---- - opcodes/ppc-opc.c | 3 +-- - 1 file changed, 1 insertion(+), 2 deletions(-) - -diff --git a/opcodes/ppc-opc.c b/opcodes/ppc-opc.c -index 8106ab7..ca4b0f3 100644 ---- a/opcodes/ppc-opc.c -+++ b/opcodes/ppc-opc.c -@@ -4811,7 +4811,6 @@ const struct powerpc_opcode powerpc_opcodes[] = { - {"ldepx", X(31,29), X_MASK, E500MC|PPCA2, 0, {RT, RA0, RB}}, - - {"waitasec", X(31,30), XRTRARB_MASK, POWER8, POWER9, {0}}, --{"wait", X(31,30), XWC_MASK, POWER9, 0, {WC}}, - - {"lwepx", X(31,31), X_MASK, E500MC|PPCA2, 0, {RT, RA0, RB}}, - -@@ -4865,7 +4864,7 @@ const struct powerpc_opcode powerpc_opcodes[] = { - - {"waitrsv", X(31,62)|(1<<21), 0xffffffff, E500MC|PPCA2, 0, {0}}, - {"waitimpl", X(31,62)|(2<<21), 0xffffffff, E500MC|PPCA2, 0, {0}}, --{"wait", X(31,62), XWC_MASK, E500MC|PPCA2, 0, {WC}}, -+{"wait", X(31,62), XWC_MASK, E500MC|PPCA2|POWER9, 0, {WC}}, - - {"dcbstep", XRT(31,63,0), XRT_MASK, E500MC|PPCA2, 0, {RA0, RB}}, - --- -2.9.0 - diff --git a/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.27/0014-libtool-remove-rpath.patch b/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.27/0014-libtool-remove-rpath.patch deleted file mode 100644 index d56948f1..00000000 --- a/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.27/0014-libtool-remove-rpath.patch +++ /dev/null @@ -1,100 +0,0 @@ -Apply these patches from our libtool patches as not only are redundant RPATHs a -waste of space but they can cause incorrect linking when native packages are -restored from sstate. - -fix-rpath.patch: -We don't want to add RPATHS which match default linker -search paths, they're a waste of space. This patch -filters libtools list and removes the ones we don't need. - -norm-rpath.patch: -Libtool may be passed link paths of the form "/usr/lib/../lib", which -fool its detection code into thinking it should be included as an -RPATH in the generated binary. Normalize before comparision. - -Upstream-Status: Inappropriate -Signed-off-by: Ross Burton <ross.burton@intel.com> - -diff --git a/ltmain.sh b/ltmain.sh -index 683317c..860a16a 100644 ---- a/ltmain.sh -+++ b/ltmain.sh -@@ -8053,8 +8053,14 @@ EOF - esac - fi - else -- eval flag=\"$hardcode_libdir_flag_spec\" -- func_append dep_rpath " $flag" -+ # We only want to hardcode in an rpath if it isn't in the -+ # default dlsearch path. -+ case " $sys_lib_dlsearch_path " in -+ *" $libdir "*) ;; -+ *) eval flag=\"$hardcode_libdir_flag_spec\" -+ func_append dep_rpath " $flag" -+ ;; -+ esac - fi - elif test -n "$runpath_var"; then - case "$perm_rpath " in -@@ -8790,8 +8796,14 @@ EOF - esac - fi - else -- eval flag=\"$hardcode_libdir_flag_spec\" -- func_append rpath " $flag" -+ # We only want to hardcode in an rpath if it isn't in the -+ # default dlsearch path. -+ case " $sys_lib_dlsearch_path " in -+ *" $libdir "*) ;; -+ *) eval flag=\"$hardcode_libdir_flag_spec\" -+ rpath+=" $flag" -+ ;; -+ esac - fi - elif test -n "$runpath_var"; then - case "$perm_rpath " in -@@ -8841,8 +8853,14 @@ EOF - esac - fi - else -- eval flag=\"$hardcode_libdir_flag_spec\" -- func_append rpath " $flag" -+ # We only want to hardcode in an rpath if it isn't in the -+ # default dlsearch path. -+ case " $sys_lib_dlsearch_path " in -+ *" $libdir "*) ;; -+ *) eval flag=\"$hardcode_libdir_flag_spec\" -+ func_append rpath " $flag" -+ ;; -+ esac - fi - elif test -n "$runpath_var"; then - case "$finalize_perm_rpath " in -diff --git a/ltmain.sh b/ltmain.sh -index 683317c..860a16a 100644 ---- a/ltmain.sh -+++ b/ltmain.sh -@@ -8055,8 +8055,10 @@ EOF - else - # We only want to hardcode in an rpath if it isn't in the - # default dlsearch path. -+ func_normal_abspath "$libdir" -+ libdir_norm=$func_normal_abspath_result - case " $sys_lib_dlsearch_path " in -- *" $libdir "*) ;; -+ *" $libdir_norm "*) ;; - *) eval flag=\"$hardcode_libdir_flag_spec\" - func_append dep_rpath " $flag" - ;; -@@ -8798,8 +8800,10 @@ EOF - else - # We only want to hardcode in an rpath if it isn't in the - # default dlsearch path. -+ func_normal_abspath "$libdir" -+ libdir_norm=$func_normal_abspath_result - case " $sys_lib_dlsearch_path " in -- *" $libdir "*) ;; -+ *" $libdir_norm "*) ;; - *) eval flag=\"$hardcode_libdir_flag_spec\" - rpath+=" $flag" - ;; diff --git a/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.27/0015-Refine-.cfi_sections-check-to-only-consider-compact-.patch b/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.27/0015-Refine-.cfi_sections-check-to-only-consider-compact-.patch deleted file mode 100644 index f3e3a11b..00000000 --- a/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.27/0015-Refine-.cfi_sections-check-to-only-consider-compact-.patch +++ /dev/null @@ -1,97 +0,0 @@ -From 3d3424e9a8d6ad56160b98bf6e223c0346164468 Mon Sep 17 00:00:00 2001 -From: Matthew Fortune <matthew.fortune@imgtec.com> -Date: Thu, 29 Sep 2016 11:13:46 +0100 -Subject: [PATCH] Refine .cfi_sections check to only consider compact eh_frame - -The .cfi_sections directive can be safely used multiple times -with different sections named at any time unless the compact form -of exception handling is requested after CFI information has -been emitted. Only the compact form of CFI information changes -the way in which CFI is generated and therefore cannot be -retrospectively requested after generating CFI information. - -gas/ - - PR gas/20648 - * dw2gencfi.c (dot_cfi_sections): Refine the check for - inconsistent .cfi_sections to only consider compact vs non - compact forms. - * testsuite/gas/cfi/cfi-common-9.d: New file. - * testsuite/gas/cfi/cfi-common-9.s: New file. - * testsuite/gas/cfi/cfi.exp: Run new test. ---- -Upstream-Status: Backport -Signed-off-by: Khem Raj <raj.khem@gmail.com - - gas/ChangeLog | 10 ++++++++++ - gas/dw2gencfi.c | 5 ++++- - gas/testsuite/gas/cfi/cfi-common-9.d | 23 +++++++++++++++++++++++ - gas/testsuite/gas/cfi/cfi-common-9.s | 4 ++++ - gas/testsuite/gas/cfi/cfi.exp | 1 + - 5 files changed, 42 insertions(+), 1 deletion(-) - create mode 100644 gas/testsuite/gas/cfi/cfi-common-9.d - create mode 100644 gas/testsuite/gas/cfi/cfi-common-9.s - -Index: git/gas/dw2gencfi.c -=================================================================== ---- git.orig/gas/dw2gencfi.c -+++ git/gas/dw2gencfi.c -@@ -1244,7 +1244,10 @@ dot_cfi_sections (int ignored ATTRIBUTE_ - } - - demand_empty_rest_of_line (); -- if (cfi_sections_set && cfi_sections != sections) -+ if (cfi_sections_set -+ && (sections & (CFI_EMIT_eh_frame | CFI_EMIT_eh_frame_compact)) -+ && (cfi_sections & (CFI_EMIT_eh_frame | CFI_EMIT_eh_frame_compact)) -+ != (sections & (CFI_EMIT_eh_frame | CFI_EMIT_eh_frame_compact))) - as_bad (_("inconsistent uses of .cfi_sections")); - cfi_sections = sections; - } -Index: git/gas/testsuite/gas/cfi/cfi-common-9.d -=================================================================== ---- /dev/null -+++ git/gas/testsuite/gas/cfi/cfi-common-9.d -@@ -0,0 +1,23 @@ -+#objdump: -Wf -+#name: CFI common 9 -+#... -+Contents of the .eh_frame section: -+ -+00000000 0+0010 0+0000 CIE -+ Version: 1 -+ Augmentation: "zR" -+ Code alignment factor: .* -+ Data alignment factor: .* -+ Return address column: .* -+ Augmentation data: [01]b -+ -+ DW_CFA_nop -+ DW_CFA_nop -+ DW_CFA_nop -+ -+00000014 0+00(10|18|1c|20) 0+0018 FDE cie=0+0000 pc=.* -+ -+ DW_CFA_nop -+ DW_CFA_nop -+ DW_CFA_nop -+#... -Index: git/gas/testsuite/gas/cfi/cfi-common-9.s -=================================================================== ---- /dev/null -+++ git/gas/testsuite/gas/cfi/cfi-common-9.s -@@ -0,0 +1,4 @@ -+ .cfi_sections .eh_frame -+ .cfi_startproc simple -+ .cfi_sections .debug_frame -+ .cfi_endproc -Index: git/gas/testsuite/gas/cfi/cfi.exp -=================================================================== ---- git.orig/gas/testsuite/gas/cfi/cfi.exp -+++ git/gas/testsuite/gas/cfi/cfi.exp -@@ -135,4 +135,5 @@ if { ![istarget "hppa64*-*"] } then { - run_dump_test "cfi-common-6" - } - run_dump_test "cfi-common-7" -+ run_dump_test "cfi-common-9" - } diff --git a/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.27/0015-binutils-mips-gas-pic-relax-linkonce.diff b/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.27/0015-binutils-mips-gas-pic-relax-linkonce.diff deleted file mode 100644 index 78b971a9..00000000 --- a/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.27/0015-binutils-mips-gas-pic-relax-linkonce.diff +++ /dev/null @@ -1,65 +0,0 @@ -Patch taken from Binutils Bugzilla: - - https://sourceware.org/bugzilla/show_bug.cgi?id=20649 - -Upstream-Status: Pending - -Signed-off-by: Andre McCurdy <armccurdy@gmail.com> - -Index: binutils/gas/config/tc-mips.c -=================================================================== ---- binutils.orig/gas/config/tc-mips.c 2016-09-29 05:12:31.000000000 +0100 -+++ binutils/gas/config/tc-mips.c 2016-09-29 20:05:13.257411084 +0100 -@@ -1353,7 +1353,7 @@ static void s_mips_stab (int); - static void s_mips_weakext (int); - static void s_mips_file (int); - static void s_mips_loc (int); --static bfd_boolean pic_need_relax (symbolS *, asection *); -+static bfd_boolean pic_need_relax (symbolS *); - static int relaxed_branch_length (fragS *, asection *, int); - static int relaxed_micromips_16bit_branch_length (fragS *, asection *, int); - static int relaxed_micromips_32bit_branch_length (fragS *, asection *, int); -@@ -4258,6 +4258,8 @@ mips_move_text_labels (void) - mips_move_labels (seg_info (now_seg)->label_list, TRUE); - } - -+/* Duplicate the test for LINK_ONCE sections as in `adjust_reloc_syms'. */ -+ - static bfd_boolean - s_is_linkonce (symbolS *sym, segT from_seg) - { -@@ -14823,7 +14825,7 @@ mips_frob_file (void) - constants; we'll report an error for those later. */ - if (got16_reloc_p (l->fixp->fx_r_type) - && !(l->fixp->fx_addsy -- && pic_need_relax (l->fixp->fx_addsy, l->seg))) -+ && pic_need_relax (l->fixp->fx_addsy))) - continue; - - /* Check quickly whether the next fixup happens to be a matching %lo. */ -@@ -17043,7 +17045,7 @@ nopic_need_relax (symbolS *sym, int befo - /* Return true if the given symbol should be considered local for SVR4 PIC. */ - - static bfd_boolean --pic_need_relax (symbolS *sym, asection *segtype) -+pic_need_relax (symbolS *sym) - { - asection *symsec; - -@@ -17068,7 +17070,6 @@ pic_need_relax (symbolS *sym, asection * - return (!bfd_is_und_section (symsec) - && !bfd_is_abs_section (symsec) - && !bfd_is_com_section (symsec) -- && !s_is_linkonce (sym, segtype) - /* A global or weak symbol is treated as external. */ - && (!S_IS_WEAK (sym) && !S_IS_EXTERNAL (sym))); - } -@@ -17507,7 +17508,7 @@ md_estimate_size_before_relax (fragS *fr - if (mips_pic == NO_PIC) - change = nopic_need_relax (fragp->fr_symbol, 0); - else if (mips_pic == SVR4_PIC) -- change = pic_need_relax (fragp->fr_symbol, segtype); -+ change = pic_need_relax (fragp->fr_symbol); - else if (mips_pic == VXWORKS_PIC) - /* For vxworks, GOT16 relocations never have a corresponding LO16. */ - change = 0; diff --git a/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.27/no-tooldirpaths.patch b/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.27/no-tooldirpaths.patch deleted file mode 100644 index 2bfc8d4d..00000000 --- a/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.27/no-tooldirpaths.patch +++ /dev/null @@ -1,47 +0,0 @@ -We don't place target libraries within ${exec_prefix}, we'd always place these -within the target sysroot within the standard library directories. Worse, the -append_to_lib_path code prefixes these paths with the sysroot which makes even -less sense. - -These directories therefore don't make sense in our case and mean we have to -relocate all the linker scripts if they're present. Dropping them -gives a reasonable performance improvement/simplification. - -Upstream-Status: Inappropriate - -RP 2017/01/30 - -Index: git/ld/genscripts.sh -=================================================================== ---- git.orig/ld/genscripts.sh -+++ git/ld/genscripts.sh -@@ -189,29 +189,6 @@ append_to_lib_path() - fi - } - --# Always search $(tooldir)/lib, aka /usr/local/TARGET/lib when native --# except when LIBPATH=":". --if [ "${LIB_PATH}" != ":" ] ; then -- libs= -- if [ "x${TOOL_LIB}" = "x" ] ; then -- if [ "x${NATIVE}" = "xyes" ] ; then -- libs="${exec_prefix}/${target_alias}/lib" -- fi -- else -- # For multilib'ed targets, ensure both ${target_alias}/lib${LIBPATH_SUFFIX} -- # and ${TOOL_LIB}/lib${LIBPATH_SUFFIX} are in the default search path, -- # because 64bit libraries may be in both places, depending on -- # cross-development setup method (e.g.: /usr/s390x-linux/lib64 -- # vs. /usr/s390-linux/lib64) -- case "${NATIVE}:${LIBPATH_SUFFIX}:${TOOL_LIB}" in -- :* | *::* | *:*:*${LIBPATH_SUFFIX}) ;; -- *) libs="${exec_prefix}/${target_alias}/lib${LIBPATH_SUFFIX}" ;; -- esac -- libs="${exec_prefix}/${TOOL_LIB}/lib ${libs}" -- fi -- append_to_lib_path ${libs} --fi -- - if [ "x${LIB_PATH}" = "x" ] && [ "x${USE_LIBPATH}" = xyes ] ; then - libs=${NATIVE_LIB_DIRS} - if [ "x${NATIVE}" = "xyes" ] ; then diff --git a/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.27/relocatable_sdk.patch b/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.27/relocatable_sdk.patch deleted file mode 100644 index 7408c31a..00000000 --- a/meta-linaro-toolchain/recipes-devtools/binutils/binutils-linaro-2.27/relocatable_sdk.patch +++ /dev/null @@ -1,49 +0,0 @@ -Upstream-Status: Inappropriate [SDK specific] - -This patch will modify the ELF linker scripts so that the crosssdk linker will -generate binaries with a 4096 bytes PT_INTERP section. When the binaries will -be relocated, at SDK install time, the interpreter path can be easily changed -by the relocating script. - -Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com> - -Index: binutils_git/ld/genscripts.sh -=================================================================== ---- binutils_git.orig/ld/genscripts.sh 2012-11-21 11:58:23.325441925 +0200 -+++ binutils_git/ld/genscripts.sh 2012-11-21 12:03:42.106815400 +0200 -@@ -290,6 +290,7 @@ - LD_FLAG=r - DATA_ALIGNMENT=${DATA_ALIGNMENT_r} - DEFAULT_DATA_ALIGNMENT="ALIGN(${SEGMENT_SIZE})" -+PARTIAL_LINKING=" " - ( echo "/* Script for ld -r: link without relocation */" - . ${CUSTOMIZER_SCRIPT} - . ${srcdir}/scripttempl/${SCRIPT_NAME}.sc -@@ -298,10 +299,12 @@ - LD_FLAG=u - DATA_ALIGNMENT=${DATA_ALIGNMENT_u} - CONSTRUCTING=" " -+PARTIAL_LINKING=" " - ( echo "/* Script for ld -Ur: link w/out relocation, do create constructors */" - . ${CUSTOMIZER_SCRIPT} - . ${srcdir}/scripttempl/${SCRIPT_NAME}.sc - ) | sed -e '/^ *$/d;s/[ ]*$//' > ldscripts/${EMULATION_NAME}.xu -+unset PARTIAL_LINKING - - LD_FLAG= - DATA_ALIGNMENT=${DATA_ALIGNMENT_} -Index: binutils_git/ld/scripttempl/elf.sc -=================================================================== ---- binutils_git.orig/ld/scripttempl/elf.sc 2012-11-21 12:02:26.800377384 +0200 -+++ binutils_git/ld/scripttempl/elf.sc 2012-11-21 12:04:16.166109621 +0200 -@@ -124,8 +124,8 @@ - DATA_SEGMENT_END=". = DATA_SEGMENT_END (.);" - DATA_SEGMENT_RELRO_END=". = DATA_SEGMENT_RELRO_END (${SEPARATE_GOTPLT-0}, .);" - fi --if test -z "${INITIAL_READONLY_SECTIONS}${CREATE_SHLIB}"; then -- INITIAL_READONLY_SECTIONS=".interp ${RELOCATING-0} : { *(.interp) }" -+if test -z "${INITIAL_READONLY_SECTIONS}${CREATE_SHLIB}${PARTIAL_LINKING}"; then -+ INITIAL_READONLY_SECTIONS=".interp ${RELOCATING-0} : { *(.interp); . = 0x1000; }" - fi - if test -z "$PLT"; then - IPLT=".iplt ${RELOCATING-0} : { *(.iplt) }" diff --git a/meta-linaro-toolchain/recipes-devtools/binutils/binutils_linaro-2.25.bb b/meta-linaro-toolchain/recipes-devtools/binutils/binutils_linaro-2.25.bb deleted file mode 100644 index fae877aa..00000000 --- a/meta-linaro-toolchain/recipes-devtools/binutils/binutils_linaro-2.25.bb +++ /dev/null @@ -1,46 +0,0 @@ -require recipes-devtools/binutils/binutils.inc -require recipes-devtools/binutils/binutils-${PV}.inc - -DEPENDS += "flex bison zlib" - -EXTRA_OECONF += "--with-sysroot=/ \ - --enable-install-libbfd \ - --enable-install-libiberty \ - --enable-shared \ - " - -EXTRA_OECONF_class-native = "--enable-targets=all \ - --enable-64-bit-bfd \ - --enable-install-libbfd \ - --enable-install-libiberty" - -# Get rid of gdb sub-directory -do_unpack_extra() { - rm -rf ${S}/gdb ${S}/libdecnumber ${S}/readline ${S}/sim -} - -addtask unpack_extra after do_unpack before do_patch - -do_install_class-native () { - autotools_do_install - - # Install the libiberty header - install -d ${D}${includedir} - install -m 644 ${S}/include/ansidecl.h ${D}${includedir} - install -m 644 ${S}/include/libiberty.h ${D}${includedir} - - # We only want libiberty, libbfd and libopcodes - rm -rf ${D}${bindir} - rm -rf ${D}${prefix}/${TARGET_SYS} - rm -rf ${D}${prefix}/lib/ldscripts - rm -rf ${D}${prefix}/share/info - rm -rf ${D}${prefix}/share/locale - rm -rf ${D}${prefix}/share/man - rmdir ${D}${prefix}/share || : - rmdir ${D}/${libdir}/gcc-lib || : - rmdir ${D}/${libdir}64/gcc-lib || : - rmdir ${D}/${libdir} || : - rmdir ${D}/${libdir}64 || : -} - -BBCLASSEXTEND = "native" diff --git a/meta-linaro-toolchain/recipes-devtools/binutils/binutils_linaro-2.27.bb b/meta-linaro-toolchain/recipes-devtools/binutils/binutils_linaro-2.27.bb deleted file mode 100644 index 8d3f6fe9..00000000 --- a/meta-linaro-toolchain/recipes-devtools/binutils/binutils_linaro-2.27.bb +++ /dev/null @@ -1,45 +0,0 @@ -require recipes-devtools/binutils/binutils.inc -require recipes-devtools/binutils/binutils-${PV}.inc - -DEPENDS += "flex bison zlib" - -EXTRA_OECONF += "--with-sysroot=/ \ - --enable-install-libbfd \ - --enable-install-libiberty \ - --enable-shared \ - --with-system-zlib \ - " - -EXTRA_OEMAKE_append_libc-musl = "\ - gt_cv_func_gnugettext1_libc=yes \ - gt_cv_func_gnugettext2_libc=yes \ - " -EXTRA_OECONF_class-native = "--enable-targets=all \ - --enable-64-bit-bfd \ - --enable-install-libiberty \ - --enable-install-libbfd \ - --disable-werror" - -do_install_class-native () { - autotools_do_install - - # Install the libiberty header - install -d ${D}${includedir} - install -m 644 ${S}/include/ansidecl.h ${D}${includedir} - install -m 644 ${S}/include/libiberty.h ${D}${includedir} - - # We only want libiberty, libbfd and libopcodes - rm -rf ${D}${bindir} - rm -rf ${D}${prefix}/${TARGET_SYS} - rm -rf ${D}${prefix}/lib/ldscripts - rm -rf ${D}${prefix}/share/info - rm -rf ${D}${prefix}/share/locale - rm -rf ${D}${prefix}/share/man - rmdir ${D}${prefix}/share || : - rmdir ${D}/${libdir}/gcc-lib || : - rmdir ${D}/${libdir}64/gcc-lib || : - rmdir ${D}/${libdir} || : - rmdir ${D}/${libdir}64 || : -} - -BBCLASSEXTEND = "native nativesdk" |