Sat, 24 Mar 2012 21:40:49 +0100
Introduce many changes to the buildconf and source code including:
(01) clean up, update, and partially update default config files,
(02) seems that Melware is unable to perform release engineering so
update chan_capi to new daily snapshot to solve echo problems,
(03) correct Asterisk inadequate hard coded gmime version check,
(04) force postgresql pthreads linkage to solve build problem,
(05) remove buggy hard coded LibXML configure definitions,
(06) remove local architecture specification to allow GCC
internal logic to determine proper CPU type instead,
(07) remove vendor sound install target causing uncontrolled
downloads and non RPM managed file installation,
(08) solve long outstanding bug in tcptls causing Asterisk
to ignore any intermediate CA certificate signatures,
(09) back out Digium engineering team's bright idea of replacing the
very portable and pervasive POSIX rand(1) with ast_random(), and
then not even implementing it causing all references to fail in
platforms not providing the very new POSIX.1-2008 mkdtemp(3)
function only distributed by BSD and some Linux,
(10) withdraw advanced linker symbol manipulations from SVR5 builds
until either Binutils supports hybrid versioned and anonymous
linker scripts or GCC stops hard coding versioned linker scripts,
(11) correct missing library linkage, some tailored to a specific OS,
(12) remove outdated logic for the no longer distributed gmime-config(1),
(13) remove local gmime buildconf hacks now that Asterisk has corrected
their own build configuration to almost portably support gmime,
(14) solve build problems relating to undetected LibXML paths,
(15) correct erroneous out of tree include definitions,
(16) improve some variable and comment naming,
(17) simplify sound language path hierarchy creation,
and correct australian english installation logic.
michael@68 | 1 | Use the platform specific ELF branding expected under FreeBSD. |
michael@68 | 2 | This is similar to what the vendor ld(1) does on this platform. |
michael@68 | 3 | |
michael@68 | 4 | Additionally, recognize and ignore Solaris 10's "Solaris Cryptographic |
michael@68 | 5 | Framework" ELF header type "SUNW_signature", Solaris 10 "Symbol |
michael@68 | 6 | information" ELF header type "SUNW_syminfo" and Solaris 10 "DTrace |
michael@68 | 7 | Object Format" ELF header type. Also, fix the path to the dynamic |
michael@68 | 8 | linker under Solaris 10/amd64. |
michael@68 | 9 | |
michael@68 | 10 | Index: include/elf/common.h |
michael@331 | 11 | --- include/elf/common.h.orig 2010-05-18 05:31:06.000000000 +0200 |
michael@331 | 12 | +++ include/elf/common.h 2010-12-09 16:48:56.000000000 +0100 |
michael@331 | 13 | @@ -474,6 +474,9 @@ |
michael@68 | 14 | #define SHT_SUNW_verdef 0x6ffffffd /* Versions defined by file */ |
michael@68 | 15 | #define SHT_SUNW_verneed 0x6ffffffe /* Versions needed by file */ |
michael@68 | 16 | #define SHT_SUNW_versym 0x6fffffff /* Symbol versions */ |
michael@68 | 17 | +#define SHT_SUNW_syminfo 0x6ffffffc /* Symbol information */ |
michael@68 | 18 | +#define SHT_SUNW_signature 0x6ffffff6 /* Solaris Cryptographic Framework: Digital Signature */ |
michael@68 | 19 | +#define SHT_SUNW_dof 0x6ffffff4 /* Solaris DTrace Object Format */ |
michael@68 | 20 | |
michael@68 | 21 | #define SHT_GNU_verdef SHT_SUNW_verdef |
michael@68 | 22 | #define SHT_GNU_verneed SHT_SUNW_verneed |
michael@68 | 23 | Index: bfd/elf.c |
michael@331 | 24 | --- bfd/elf.c.orig 2010-10-29 14:10:24.000000000 +0200 |
michael@331 | 25 | +++ bfd/elf.c 2010-12-09 16:48:57.000000000 +0100 |
michael@331 | 26 | @@ -1884,6 +1884,11 @@ |
michael@68 | 27 | elf_tdata (abfd)->dynverref_hdr = *hdr; |
michael@68 | 28 | return _bfd_elf_make_section_from_shdr (abfd, hdr, name, shindex); |
michael@68 | 29 | |
michael@68 | 30 | + case SHT_SUNW_syminfo: |
michael@68 | 31 | + /* case SHT_SUNW_signature: conflicts with new SHT_GNU_HASH in Binutils 2.18 */ |
michael@68 | 32 | + case SHT_SUNW_dof: |
michael@68 | 33 | + return TRUE; |
michael@68 | 34 | + |
michael@68 | 35 | case SHT_SHLIB: |
michael@68 | 36 | return TRUE; |
michael@68 | 37 | |
michael@331 | 38 | @@ -5036,6 +5041,12 @@ |
michael@68 | 39 | else |
michael@68 | 40 | i_ehdrp->e_type = ET_REL; |
michael@68 | 41 | |
michael@68 | 42 | + /* OpenPKG platform branding BEGIN */ |
michael@68 | 43 | +#if defined(OPENPKG_OS_FREEBSD) |
michael@68 | 44 | + i_ehdrp->e_ident[EI_OSABI] = ELFOSABI_FREEBSD; |
michael@68 | 45 | +#endif |
michael@68 | 46 | + /* OpenPKG platform branding END */ |
michael@68 | 47 | + |
michael@68 | 48 | switch (bfd_get_arch (abfd)) |
michael@68 | 49 | { |
michael@68 | 50 | case bfd_arch_unknown: |
michael@68 | 51 | Index: bfd/elf64-x86-64.c |
michael@331 | 52 | --- bfd/elf64-x86-64.c.orig 2010-10-21 14:29:02.000000000 +0200 |
michael@331 | 53 | +++ bfd/elf64-x86-64.c 2010-12-09 16:48:57.000000000 +0100 |
michael@331 | 54 | @@ -360,7 +360,11 @@ |
michael@68 | 55 | /* The name of the dynamic interpreter. This is put in the .interp |
michael@68 | 56 | section. */ |
michael@68 | 57 | |
michael@68 | 58 | +#if defined(OPENPKG_OS_SOLARIS) |
michael@68 | 59 | +#define ELF_DYNAMIC_INTERPRETER "/lib/amd64/ld.so.1" |
michael@68 | 60 | +#else |
michael@68 | 61 | #define ELF_DYNAMIC_INTERPRETER "/lib/ld64.so.1" |
michael@68 | 62 | +#endif |
michael@68 | 63 | |
michael@68 | 64 | /* If ELIMINATE_COPY_RELOCS is non-zero, the linker will try to avoid |
michael@68 | 65 | copying dynamic variables from a shared lib into an app's dynbss |
michael@68 | 66 | |
michael@68 | 67 | ----------------------------------------------------------------------------- |
michael@68 | 68 | |
michael@68 | 69 | Support FreeBSD >= 4.10 by fixing platform detection. |
michael@68 | 70 | |
michael@68 | 71 | Index: bfd/configure |
michael@331 | 72 | --- bfd/configure.orig 2010-12-08 09:37:34.000000000 +0100 |
michael@331 | 73 | +++ bfd/configure 2010-12-09 16:48:57.000000000 +0100 |
michael@331 | 74 | @@ -13876,6 +13876,10 @@ |
michael@68 | 75 | i[3-7]86-*-bsdi) |
michael@68 | 76 | COREFILE= |
michael@68 | 77 | ;; |
michael@68 | 78 | + i[3456]86-*-freebsd4.1[0-9]*) |
michael@68 | 79 | + COREFILE='' |
michael@68 | 80 | + TRAD_HEADER='"hosts/i386bsd.h"' |
michael@68 | 81 | + ;; |
michael@68 | 82 | i[3-7]86-*-bsd* | i[3-7]86-*-freebsd[123] | i[3-7]86-*-freebsd[123]\.* | i[3-7]86-*-freebsd4\.[01234] | i[3-7]86-*-freebsd4\.[01234]\.* | i[3-7]86-*-freebsd*aout*) |
michael@68 | 83 | COREFILE=trad-core.lo |
michael@68 | 84 | TRAD_HEADER='"hosts/i386bsd.h"' |
michael@68 | 85 | |
michael@68 | 86 | ----------------------------------------------------------------------------- |
michael@68 | 87 | |
michael@68 | 88 | Fight problems with --disable-nls under Solaris |
michael@68 | 89 | |
michael@68 | 90 | Index: gas/asintl.h |
michael@331 | 91 | --- gas/asintl.h.orig 2007-07-03 13:01:02.000000000 +0200 |
michael@331 | 92 | +++ gas/asintl.h 2010-12-09 16:48:57.000000000 +0100 |
michael@68 | 93 | @@ -20,6 +20,11 @@ |
michael@68 | 94 | Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA |
michael@68 | 95 | 02110-1301, USA. */ |
michael@68 | 96 | |
michael@68 | 97 | +#ifndef ENABLE_NLS |
michael@68 | 98 | +# define _LIBINTL_H |
michael@68 | 99 | +# define _LIBGETTEXT_H |
michael@68 | 100 | +#endif |
michael@68 | 101 | + |
michael@68 | 102 | #ifdef HAVE_LOCALE_H |
michael@68 | 103 | # ifndef ENABLE_NLS |
michael@68 | 104 | /* The Solaris version of locale.h always includes libintl.h. If we have |
michael@68 | 105 | Index: ld/ld.h |
michael@331 | 106 | --- ld/ld.h.orig 2009-11-26 14:45:25.000000000 +0100 |
michael@331 | 107 | +++ ld/ld.h 2010-12-09 16:48:57.000000000 +0100 |
michael@68 | 108 | @@ -23,6 +23,11 @@ |
michael@68 | 109 | #ifndef LD_H |
michael@68 | 110 | #define LD_H |
michael@68 | 111 | |
michael@68 | 112 | +#ifndef ENABLE_NLS |
michael@68 | 113 | +# define _LIBINTL_H |
michael@68 | 114 | +# define _LIBGETTEXT_H |
michael@68 | 115 | +#endif |
michael@68 | 116 | + |
michael@68 | 117 | #ifdef HAVE_LOCALE_H |
michael@68 | 118 | #endif |
michael@68 | 119 | #ifndef SEEK_CUR |
michael@68 | 120 | Index: ld/Makefile.in |
michael@331 | 121 | --- ld/Makefile.in.orig 2010-11-05 11:34:22.000000000 +0100 |
michael@331 | 122 | +++ ld/Makefile.in 2010-12-09 16:48:57.000000000 +0100 |
michael@331 | 123 | @@ -360,7 +360,7 @@ |
michael@68 | 124 | # We put the scripts in the directory $(scriptdir)/ldscripts. |
michael@68 | 125 | # We can't put the scripts in $(datadir) because the SEARCH_DIR |
michael@68 | 126 | # directives need to be different for native and cross linkers. |
michael@68 | 127 | -scriptdir = $(tooldir)/lib |
michael@68 | 128 | +scriptdir = $(libdir) |
michael@68 | 129 | BASEDIR = $(srcdir)/.. |
michael@68 | 130 | BFDDIR = $(BASEDIR)/bfd |
michael@68 | 131 | INCDIR = $(BASEDIR)/include |
michael@68 | 132 | |
michael@68 | 133 | ----------------------------------------------------------------------------- |
michael@68 | 134 | |
michael@331 | 135 | Workaround problems under Mac OS X. |
michael@68 | 136 | |
michael@68 | 137 | Index: libiberty/fibheap.c |
michael@331 | 138 | --- libiberty/fibheap.c.orig 2009-05-29 05:01:15.000000000 +0200 |
michael@331 | 139 | +++ libiberty/fibheap.c 2010-12-09 16:48:57.000000000 +0100 |
michael@68 | 140 | @@ -34,8 +34,11 @@ |
michael@68 | 141 | #include "libiberty.h" |
michael@68 | 142 | #include "fibheap.h" |
michael@68 | 143 | |
michael@68 | 144 | - |
michael@68 | 145 | +#ifdef LONG_MIN |
michael@68 | 146 | #define FIBHEAPKEY_MIN LONG_MIN |
michael@68 | 147 | +#else |
michael@68 | 148 | +#define FIBHEAPKEY_MIN (-0x7fffffffL - 1) |
michael@68 | 149 | +#endif |
michael@68 | 150 | |
michael@68 | 151 | static void fibheap_ins_root (fibheap_t, fibnode_t); |
michael@68 | 152 | static void fibheap_rem_root (fibheap_t, fibnode_t); |
michael@68 | 153 | |
michael@68 | 154 | ----------------------------------------------------------------------------- |
michael@68 | 155 | |
michael@68 | 156 | Disable the "error" about "eh_frame_hdr" as it is actually more a |
michael@68 | 157 | warning (the linking is *not* aborted) and it occurs at least under |
michael@68 | 158 | FreeBSD-7.0/amd64 regularily without doing any obvious harm. Seems |
michael@68 | 159 | like the issue itself exists since a longer time, but in recent GNU |
michael@68 | 160 | binutils this additional message was introduced. As we cannot observe |
michael@68 | 161 | any problems and this message really confused, just disable it for now. |
michael@68 | 162 | |
michael@68 | 163 | Index: bfd/elf-eh-frame.c |
michael@331 | 164 | --- bfd/elf-eh-frame.c.orig 2010-04-09 16:40:15.000000000 +0200 |
michael@331 | 165 | +++ bfd/elf-eh-frame.c 2010-12-09 16:48:57.000000000 +0100 |
michael@331 | 166 | @@ -909,9 +909,11 @@ |
michael@331 | 167 | goto success; |
michael@68 | 168 | |
michael@331 | 169 | free_no_table: |
michael@68 | 170 | +#if 0 |
michael@68 | 171 | (*info->callbacks->einfo) |
michael@68 | 172 | (_("%P: error in %B(%A); no .eh_frame_hdr table will be created.\n"), |
michael@68 | 173 | abfd, sec); |
michael@68 | 174 | +#endif |
michael@331 | 175 | hdr_info->table = FALSE; |
michael@68 | 176 | if (sec_info) |
michael@331 | 177 | free (sec_info); |
michael@331 | 178 |