Multicore support for the Xeon Phi
authorReto Achermann <acreto@student.ethz.ch>
Thu, 17 Apr 2014 11:35:22 +0000 (13:35 +0200)
committerStefan Kaestle <stefan.kaestle@inf.ethz.ch>
Wed, 20 Aug 2014 13:46:07 +0000 (15:46 +0200)
- Adapted the xapic.dev to account for the special register layout in
icr and id register
- added switches to use alternative register layout in apic.c
- added APIC and FLASH memoryhole in mmap
- Bugfix: Wrong CPU information (cpu_arch.h)
- Added: delay_ms assembly that stalls the CPU some time (needed for
booting the cores)
- Some fixes with memory offsets in startu parch
- Added: support for pagetables that map MMIO range of the xeon phi in
init_ap.S
- Added Delays in start_aps
- Adpted offset in entry.S fo match for the new layout
- Removed Global Flag for the valid page table bits
- Disabled activation of MMX

31 files changed:
devices/xapic.dev
hake/menu.lst.k1om
hake/symbolic_targets.mk
include/arch/k1om/barrelfish/cpu_arch.h
include/arch/k1om/barrelfish_kpi/asm_inlines_arch.h
kernel/arch/k1om/init.c
kernel/arch/k1om/serial.c
kernel/arch/k1om/startup_arch.c
kernel/arch/x86/apic.c
kernel/arch/x86/init_ap_x86_64.S
kernel/arch/x86/misc.c
kernel/arch/x86/start_aps.c
kernel/arch/x86/startup_x86.c
kernel/arch/x86/syscall.c
kernel/dispatch.c
kernel/include/arch/k1om/x86.h
kernel/include/target/k1om/offsets_target.h
kernel/include/target/k1om/paging_kernel_target.h
tools/k1om/gnu-gcc/binutils-2.24-barrelfish.patch [deleted file]
tools/k1om/gnu-gcc/build-toolchain.sh [deleted file]
tools/k1om/gnu-gcc/gcc-4.8.2-barrelfish.patch [deleted file]
tools/k1om/mpss-gcc/binutils-2.22+mpss3.2-barrelfish.patch [deleted file]
tools/k1om/mpss-gcc/build-gcc.sh [deleted file]
tools/k1om/mpss-gcc/build-toolchain.sh [deleted file]
tools/k1om/mpss-gcc/gcc-4.7.0+mpss3.2-barrelfish.patch [deleted file]
tools/k1om/mpss-gcc/glibc-2.14+mpss3.2-cpuheader.patch [deleted file]
tools/xeon_phi/mpss.patch [new file with mode: 0644]
usr/monitor/arch/x86/boot.c
usr/skb/skb_simple/Hakefile
usr/spawnd/bsp_bootup.c
usr/spawnd/main.c

index 37abd77..db3bec1 100644 (file)
@@ -23,6 +23,13 @@ device xapic lsbfirst ( addr base ) "Local APIC" {
     _   24;
     id  8 "apic id";
   };
+  /*
+   * the xeon phi has a slighly different register layout than normal xapic
+   */
+  register id_xeon_phi rw also addr(base, 0x0020) "Local APIC ID (Xeon Phi)" {
+    _   23;
+    id  9 "apic id";
+  };
 
   // 8.4.8
   register version ro addr(base, 0x0030) "Local APIC Version" {
@@ -170,12 +177,25 @@ device xapic lsbfirst ( addr base ) "Local APIC" {
     _           24;
     dest        8 "Destination field";
   };
+  
+  /*
+   * the xeon phi has a slightly different register layout than normal apic
+   */
+  register icr_hi_xeon_phi rw also addr(base, 0x0310) "Interrupt Commmand (hi)" {
+    _           16;
+    dest        16 "Destination field";
+  };
 
   // 8.6.2
   register ldr rw addr(base, 0x00d0) "Logical Destination" {
     _           24;
     log_id      8 "Logical APIC ID";
   };
+  
+  register ldr_xeon_phi rw also  addr(base, 0x00d0) "Logical Destination" {
+    _           16;
+    log_id      16 "Logical APIC ID";
+  };
   constants model_type "Destination model type" {
     flat        = 0b1111;
     cluster     = 0b0000;
index 31e6723..5c12c65 100644 (file)
@@ -26,9 +26,8 @@ module  /k1om/sbin/skb boot
 #modulenounzip /skb_ramfs.cpio.gz nospawn
 #module  /k1om/sbin/kaluga boot
 #module  /k1om/sbin/acpi boot
-#module  /k1om/sbin/spawnd boot
-#bootapic-x86_64=1-15
-#module  /k1om/sbin/startd boot
+module  /k1om/sbin/spawnd boot bootk1om=0-227
+module  /k1om/sbin/startd boot
 #module /k1om/sbin/routing_setup boot
 
 #low gddr memory
@@ -36,8 +35,15 @@ module  /k1om/sbin/skb boot
 
 # GDDR Memory we have 6GB on our Xeon PHi
 #mmap map 0x0800000000 0x0180000000 1
-mmap map 0x0000000000 0x0180000000 1
 
+mmap map 0x0000000000 0x00FEE00000 1
+# memory hole for the APIC and the flash rom 
+mmap map 0x00FEE00000 0x120000 3
+mmap map 0x0100000000 0x80000000 1             
+
+DBOX registers 0x08_007C_0000 to 0x08_007C_FFFF (64 kB)
+SBOX registers 0x08_007D_0000 to 0x08_007D_FFFF (64 kB)
+#
 # host system memory size 512GB
 #mmap map 0x8000000000 0x8000000000 2
 
index ba76c88..39a8dbb 100644 (file)
@@ -497,7 +497,10 @@ XEON_PHI_MODULES =\
        k1om/sbin/mem_serv \
        k1om/sbin/monitor \
        k1om/sbin/ramfsd \
-       k1om/sbin/skb 
+       k1om/sbin/skb \
+       k1om/sbin/spawnd \
+       k1om/sbin/startd \
+       k1om/sbin/acpi
        
 
 menu.lst.k1om: $(SRCDIR)/hake/menu.lst.k1om
index 16b472d..3500f13 100644 (file)
@@ -15,6 +15,6 @@
 #ifndef X86_64_BARRELFISH_CPU_H
 #define X86_64_BARRELFISH_CPU_H
 
-#define CURRENT_CPU_TYPE CPU_X86_64
+#define CURRENT_CPU_TYPE CPU_K1OM
 
 #endif
index 1c72fed..cc80e58 100644 (file)
 
 #include <target/k1om/barrelfish_kpi/registers_target.h>
 
-static inline void cpuid(uint32_t function, uint32_t *eax, uint32_t *ebx,
-                         uint32_t *ecx, uint32_t *edx)
+#define CLOCK_PER_MS 1046008
+
+static inline void
+delay_ms(uint32_t ms)
+{
+    if (ms == 0) {
+        return;
+    }
+    uint64_t num_cpu_clks = ms * CLOCK_PER_MS;
+
+    if (num_cpu_clks <= 1023) {
+        /* since delay can only go upto 1023 clocks */
+        __asm __volatile("delay %0"::"r"(num_cpu_clks));
+    } else {
+        /* break it up into 1000 clock chunks */
+        for (uint32_t tick = 1000; num_cpu_clks >= 1000; num_cpu_clks -= 1000) {
+            __asm __volatile("delay %0"::"r"(tick));
+        }
+
+        /* the remaining */
+        __asm __volatile("delay %0"::"r"(num_cpu_clks));
+    }
+    return;
+}
+
+/*
+ * some functions require to have the register ECX set to a specific value
+ * and will produce wrong results if the value in register ECX is out of range.
+ */
+static inline void
+cpuid_ext(uint32_t function,
+          uint32_t ecx_in,
+          uint32_t *eax,
+          uint32_t *ebx,
+          uint32_t *ecx,
+          uint32_t *edx)
 {
     // make it possible to omit certain return registers
     uint32_t a, b, c, d;
@@ -37,105 +71,128 @@ static inline void cpuid(uint32_t function, uint32_t *eax, uint32_t *ebx,
         edx = &d;
     }
     __asm volatile("cpuid"
-                   : "=a" (*eax), "=b" (*ebx), "=c" (*ecx), "=d" (*edx)
-                   : "a" (function)
-                   );
+            : "=a" (*eax), "=b" (*ebx), "=c" (*ecx), "=d" (*edx)
+            : "a" (function), "c" (ecx_in)
+    );
 }
 
+static inline void
+cpuid(uint32_t function,
+      uint32_t *eax,
+      uint32_t *ebx,
+      uint32_t *ecx,
+      uint32_t *edx)
+{
+    cpuid_ext(function, 0, eax, ebx, ecx, edx);
+}
 
 /** \brief Atomic compare-and-swap on 128 bits
  *
  * If *dst == old then *dst = new, returns 0 on failure
- * 
- * Note, dest should point to a 128bit structure that is to be overwritten 
+ *
+ * Note, dest should point to a 128bit structure that is to be overwritten
  */
-static inline int cmpxchg128(volatile uint64_t dest[2], uint64_t old_top, uint64_t old_bot, uint64_t new_top, uint64_t new_bot)
+static inline int
+cmpxchg128(volatile uint64_t dest[2],
+           uint64_t old_top,
+           uint64_t old_bot,
+           uint64_t new_top,
+           uint64_t new_bot)
 {
     uint8_t ret;
 
     __asm volatile (
-        "lock cmpxchg16b %1\n\t"
-        "setz %0\n\t"
-        : "=a"(ret), "=m"(*dest)//, "=d"(old_top), "=a"(old_bot)
-        : "a"(old_top), "d"(old_bot), "b"(new_top), "c"(new_bot), "m"(*dest)
-        : "memory");
+            "lock cmpxchg16b %1\n\t"
+            "setz %0\n\t"
+            : "=a"(ret), "=m"(*dest)  //, "=d"(old_top), "=a"(old_bot)
+            : "a"(old_top), "d"(old_bot), "b"(new_top), "c"(new_bot), "m"(*dest)
+            : "memory");
 
     return ret;
 }
 
-static inline void fpu_init(void)
+static inline void
+fpu_init(void)
 {
     __asm volatile ("fninit");
 }
 
-static inline void fpu_save(struct registers_fpu_x86_64 *fpustate)
+static inline void
+fpu_save(struct registers_fpu_x86_64 *fpustate)
 {
     uint8_t *regs = fpustate->registers;
-    regs += 16 - ((uintptr_t)regs % 16);
+    regs += 16 - ((uintptr_t) regs % 16);
 
     __asm volatile("fxsaveq %0" : "=m" (*regs));
 }
 
-static inline void fpu_restore(struct registers_fpu_x86_64 *fpustate)
+static inline void
+fpu_restore(struct registers_fpu_x86_64 *fpustate)
 {
     uint8_t *regs = fpustate->registers;
-    regs += 16 - ((uintptr_t)regs % 16);
+    regs += 16 - ((uintptr_t) regs % 16);
 
     __asm volatile ("fxrstorq %0" :: "m" (*regs));
 }
 
-
 /** \brief This code reads the cycle counter */
-static inline uint64_t rdtsc(void)
+static inline uint64_t
+rdtsc(void)
 {
 
     uint32_t eax, edx;
     __asm volatile ("rdtsc" : "=a" (eax), "=d" (edx));
-    return ((uint64_t)edx << 32) | eax;
+    return ((uint64_t) edx << 32) | eax;
 
     return 0;
 }
 
 /** \brief This code reads the cycle counter -- flushing the
-    instruction pipeline first. Throws away the processor ID information. */
-static inline uint64_t rdtscp(void)
+ instruction pipeline first. Throws away the processor ID information. */
+static inline uint64_t
+rdtscp(void)
 {
     /*
-    uint32_t eax, edx;
-    __asm volatile ("rdtscp" : "=a" (eax), "=d" (edx) :: "ecx");
-    return ((uint64_t)edx << 32) | eax;
-    */
+     uint32_t eax, edx;
+     __asm volatile ("rdtscp" : "=a" (eax), "=d" (edx) :: "ecx");
+     return ((uint64_t)edx << 32) | eax;
+     */
     return 0;
 }
 
-static inline uint64_t rdpmc(uint32_t counter)
+static inline uint64_t
+rdpmc(uint32_t counter)
 {
     uint32_t eax, edx;
-/*
-    __asm volatile("rdpmc"
-                   : "=a" (eax), "=d" (edx)
-                   : "c" (counter)
-                   );
-*/
-    return ((uint64_t)edx << 32) | eax;
+    /*
+     __asm volatile("rdpmc"
+     : "=a" (eax), "=d" (edx)
+     : "c" (counter)
+     );
+     */
+    return ((uint64_t) edx << 32) | eax;
 }
 
-static inline void mfence(void)
+static inline void
+mfence(void)
 {
-   // __asm volatile("mfence");
+    // __asm volatile("mfence");
 }
 
-static inline void sfence(void)
+static inline void
+sfence(void)
 {
-   //  __asm volatile("sfence");
+    //  __asm volatile("sfence");
 }
 
-static inline void lfence(void)
+static inline void
+lfence(void)
 {
-   // __asm volatile("lfence");
+    // __asm volatile("lfence");
 }
 
-static inline void clflush(void *line)
+static inline void
+clflush(void *line)
 {
     __asm volatile("clflush %0" :: "m" (line));
 }
@@ -156,12 +213,10 @@ static inline void cache_flush_range(void *base, size_t len)
     do {
         clflush(line);
         line += CACHE_LINE_SIZE;
-    } while (line < (uint8_t *)base + len);
+    }while (line < (uint8_t *)base + len);
 }
 #endif
 
-
-
 #endif // __ASSEMBLER__
 
 #endif // ARCH_X86_64_BARRELFISH_KPI_ASM_INLINES_H
index 94833ee..443dafe 100644 (file)
@@ -39,6 +39,7 @@
 #include <arch/x86/ipi_notify.h>
 #include <barrelfish_kpi/cpu_arch.h>
 #include <target/k1om/barrelfish_kpi/cpu_target.h>
+#include <barrelfish_kpi/asm_inlines_arch.h>
 #include <linux_host.h>
 
 #include <xeon_phi.h>
@@ -229,16 +230,18 @@ paging_init(lpaddr_t base,
                               (lpaddr_t) boot_pdpt);
         paging_k1om_map_table(&boot_pdpt[X86_64_PDPT_BASE(base)],
                               (lpaddr_t) boot_pdir);
-        paging_k1om_map_large(&boot_pdir[X86_64_PDIR_BASE(base)], base,
-        PTABLE_PRESENT | PTABLE_READ_WRITE | PTABLE_USER_SUPERVISOR);
+        paging_k1om_map_large(
+                &boot_pdir[X86_64_PDIR_BASE(base)], base,
+                PTABLE_PRESENT | PTABLE_READ_WRITE | PTABLE_USER_SUPERVISOR);
 
         // Alias the same region at MEMORY_OFFSET
         paging_k1om_map_table(&boot_pml4[X86_64_PML4_BASE(vbase)],
                               (lpaddr_t) boot_pdpt_hi);
         paging_k1om_map_table(&boot_pdpt_hi[X86_64_PDPT_BASE(vbase)],
                               (lpaddr_t) boot_pdir_hi);
-        paging_k1om_map_large(&boot_pdir_hi[X86_64_PDIR_BASE(vbase)], base,
-        PTABLE_PRESENT | PTABLE_READ_WRITE | PTABLE_USER_SUPERVISOR);
+        paging_k1om_map_large(
+                &boot_pdir_hi[X86_64_PDIR_BASE(vbase)], base,
+                PTABLE_PRESENT | PTABLE_READ_WRITE | PTABLE_USER_SUPERVISOR);
 
     }
 
@@ -344,7 +347,6 @@ relocate_stack(lvaddr_t offset)
     );
 }
 
-
 /**
  * \brief Enable SYSCALL/SYSRET fast system calls.
  *
@@ -488,23 +490,22 @@ text_init(void)
      */
 
     // Initialize local APIC
-    printf("apic_init\n");
     apic_init();
 
-
     // do not remove/change this printf: needed by regression harness
-    printf("Barrelfish CPU driver starting on x86_64 apic_id %u\n", apic_id);
+    printf("Barrelfish CPU driver starting on k1om apic_id %u\n", apic_id);
+
+
 
     /*
      * there is no such thing as a PIC on the xeon phi
      * XXX: verify!
-    if (apic_is_bsp()) {
-        printf("apic_is_bsp\n");
-        // Initialize classic (8259A) PIC
-        pic_init();
-    }
-    */
-
+     if (apic_is_bsp()) {
+     printf("apic_is_bsp\n");
+     // Initialize classic (8259A) PIC
+     pic_init();
+     }
+     */
 
     // Initialize local APIC timer
     if (kernel_ticks_enabled) {
@@ -521,37 +522,30 @@ text_init(void)
         apic_mask_timer();
     }
 
-    printf("ipi_notify_init\n");
     // Initialize IPI notification mechanism
     ipi_notify_init();
 
-    printf("enable_fast_syscalls\n");
     // Enable SYSCALL/SYSRET fast system calls
     /*
      * NOTE: the xeon phi does not support SYSENTER/SYSEXIT
      */
     enable_fast_syscalls();
 
-    printf("ia32_efer_nxe_wrf\n");
     // Enable "no execute" page-level protection bit
     ia32_efer_nxe_wrf(NULL, 1);
 
-    printf("enable_fpu\n");
     // Enable FPU and MMX
-    //enable_fpu();
+    enable_fpu();
 
-    printf("amd64_cr4_pce_wrf\n");
     // Enable user-mode RDPMC opcode
     amd64_cr4_pce_wrf(NULL, 1);
 
-    printf("enable_tlb_flush_filter\n");
     // AMD64: Check if TLB flush filter is enabled
     enable_tlb_flush_filter();
 
-//    printf("amd64_cr4_pge_wrf\n");
 
     // Enable global pages
-    // there are no global page tables
+    // there are no global page tables, enabling this will result in a GP
     // amd64_cr4_pge_wrf(NULL, 1);
 
     // Check/Enable MONITOR/MWAIT opcodes
@@ -565,6 +559,8 @@ text_init(void)
     // Returning here will crash! -- low pages not mapped anymore!
 }
 
+
+
 /**
  * \brief Architecture-specific initialization function.
  *
@@ -641,7 +637,6 @@ arch_init(uint64_t magic,
         global = (struct global*) pointer;
         // Store the address of global to retrive it across relocation
         addr_global = (uint64_t) global;
-        printf("Barrelfish (with kernel boot)\n");
         break;
 
     case K1OM_BOOT_MAGIC:
@@ -651,6 +646,7 @@ arch_init(uint64_t magic,
         printf("Barrelfish from xloader: MBI: 0x%"PRIxLVADDR", IMG: [0x%x, 0x%x]\n",
                (lpaddr_t) pointer, mb->mem_lower, mb->mem_upper);
 
+
         /*
          * XXX: The multiboot structure when invoked from the xloader will
          *      contain additional information.
@@ -694,7 +690,7 @@ arch_init(uint64_t magic,
                 BASE_PAGE_SIZE);
 
         printf("Start Free RAM at 0x%x (%i MB)\n", glbl_core_data->start_free_ram,
-                               glbl_core_data->start_free_ram >> 20);
+               glbl_core_data->start_free_ram >> 20);
 
         glbl_core_data->mods_addr = mb->mods_addr;
         glbl_core_data->mods_count = mb->mods_count;
index 2c7710b..72fa000 100644 (file)
@@ -38,9 +38,6 @@ errval_t serial_init(lvaddr_t base) {
 
     serial_base = base;
 
-    printf("Setting Serial address to 0x%"PRIxLVADDR"\n",
-                       (lpaddr_t) serial_base);
-
        // XXX: if non-BSP core, assume HW is already initialised
        if (!arch_core_is_bsp()) {
                return SYS_ERR_OK;
index f2414b6..485b113 100644 (file)
@@ -158,7 +158,7 @@ static void create_phys_caps(lpaddr_t init_alloc_addr)
         for(char * printcur = map; printcur < map + map_length;) {\
             struct multiboot_mmap * printcurmmap = (struct multiboot_mmap * SAFE)TC(printcur);\
             printf("\t0x%08lx - 0x%08lx Type: %d Length: 0x%lx\n", printcurmmap->base_addr, printcurmmap->base_addr + printcurmmap->length, printcurmmap->type, printcurmmap->length);\
-            printcur += printcurmmap->size + 4;\
+            printcur += printcurmmap->size;\
         }\
     } while (0)
 
@@ -180,10 +180,10 @@ static void create_phys_caps(lpaddr_t init_alloc_addr)
 
         for(char * cur = clean_mmap_addr; cur < clean_mmap_addr + clean_mmap_length;) {
             struct multiboot_mmap * curmmap = (struct multiboot_mmap * SAFE)TC(cur);
-            if (cur + curmmap->size + 4 >= clean_mmap_addr + clean_mmap_length)
+            if (cur + curmmap->size >= clean_mmap_addr + clean_mmap_length)
                 break; // do not try to move this check into the forloop as entries do not have to be the same length
 
-            struct multiboot_mmap * nextmmap = (struct multiboot_mmap * SAFE)TC(cur + curmmap->size + 4);
+            struct multiboot_mmap * nextmmap = (struct multiboot_mmap * SAFE)TC(cur + curmmap->size);
 
             if (nextmmap->base_addr < curmmap->base_addr ||
                 (nextmmap->base_addr == curmmap->base_addr && nextmmap->length > curmmap->length)) {
@@ -206,13 +206,14 @@ static void create_phys_caps(lpaddr_t init_alloc_addr)
     printf("Sorted MMAP\n");
     PRINT_REGIONS(clean_mmap_addr, clean_mmap_length);
 
+#if 0
     // now merge consecutive memory regions of the same or lower type
     for(char * cur = clean_mmap_addr; cur < clean_mmap_addr + clean_mmap_length;) {
         struct multiboot_mmap * curmmap = (struct multiboot_mmap * SAFE)TC(cur);
         if (cur + curmmap->size + 4 >= clean_mmap_addr + clean_mmap_length)
             break; // do not try to move this check into the forloop as entries do not have to be the same length
 
-        struct multiboot_mmap * nextmmap = (struct multiboot_mmap * SAFE)TC(cur + curmmap->size + 4);
+        struct multiboot_mmap * nextmmap = (struct multiboot_mmap * SAFE)TC(cur + curmmap->size);
 
         /* On some machines (brie1) the IOAPIC region is only 1kB.
          * Currently we're not able to map regions that are <4kB so we
@@ -347,12 +348,12 @@ static void create_phys_caps(lpaddr_t init_alloc_addr)
             }
         } while (reduced);
 
-        cur += curmmap->size + 4;
+        cur += curmmap->size;
 
 #undef DISCARD_NEXT_MMAP
 #undef BUBBLE_NEXT_MMAP
     }
-
+#endif
     printf("Preprocessed MMAP\n");
     PRINT_REGIONS(clean_mmap_addr, clean_mmap_length);
 
@@ -362,7 +363,7 @@ static void create_phys_caps(lpaddr_t init_alloc_addr)
         if (cur + curmmap->size + 4 >= clean_mmap_addr + clean_mmap_length)
             break; // do not try to move this check into the forloop as entries do not have to be the same length
 
-        struct multiboot_mmap * nextmmap = (struct multiboot_mmap * SAFE)TC(cur + curmmap->size + 4);
+        struct multiboot_mmap * nextmmap = (struct multiboot_mmap * SAFE)TC(cur + curmmap->size);
 
         if (nextmmap->base_addr & BASE_PAGE_MASK) {
             uint64_t offset = nextmmap->base_addr - ((nextmmap->base_addr >> BASE_PAGE_BITS) << BASE_PAGE_BITS);
@@ -379,7 +380,7 @@ static void create_phys_caps(lpaddr_t init_alloc_addr)
             }
         }
 
-        cur += curmmap->size + 4;
+        cur += curmmap->size;
     }
 
     printf("Pagealigned MMAP\n");
@@ -435,7 +436,7 @@ static void create_phys_caps(lpaddr_t init_alloc_addr)
         }
 
         last_end_addr = mmap->base_addr + mmap->length;
-        m += mmap->size + 4;
+        m += mmap->size;
     }
 
     assert(last_end_addr != 0);
index 5a1504f..a51680c 100644 (file)
@@ -107,42 +107,6 @@ void apic_timer_set_divide(xapic_divide_t divide)
 */
 void apic_init(void)
 {
-    /*
-     * XXX: Xeon Phi Notes:
-     * The local APIC registers have expanded fields for the APIC ID, Logical
-     * APIC ID, and APIC Destination ID. Refer to the SDM Volume 3A System
-     * Programming Guide for details.
-     *
-     * There is a local APIC (LAPIC) per hardware thread in the Intel Xeon Phi
-     * coprocessor. In addition, the SBox contains within it a LAPIC that has
-     * 8 Interrupt Command Registers (ICRs) to support host-to-coprocessor
-     * and inter-coprocessor interrupts. To initiate an interrupt from the
-     * host to an Intel Xeon Phi coprocessor or from one Intel Xeon Phi
-     * coprocessor to another, the initiator must write to an ICR on the target
-     * IntelĀ® Xeon PhiTM coprocessor. Since there are 8 ICRs, the system can
-     * have up to 8 Intel Xeon Phi coprocessors that can be organized in a mesh
-     * topology along with the host.
-     *
-     *
-     * XXX:
-     * APIC On-Chip. The processor contains an Advanced Programmable Interrupt
-     * Controller (APIC), responding to memory mapped commands in the physical
-     * address range FFFE0000H to FFFE0FFFH (by default - some processors permit
-     * the APIC to be relocated).
-     *
-     * Xeon Phi:
-     * 0x00_0000_0000 to 0x03_FFFF_FFFF (16 GiB)
-     *      GDDR (Low) Memory
-     *      Local APIC Range (relocatable) 0x00_FEE0_0000 to 0x00_FEE0_0FFF (4 kB)
-     *      Boot Code (Flash) and Fuse (via SBOX) 0x00_FF00_0000 to 0x00_FFFF_FFFF (16 MB)
-     * 0x04_0000_0000 to 0x07_FFFF_FFFF (16 GB)
-     * 0x08_0000_0000 to 0x0B_FFFF_FFFF (16 GB)
-           GDDR Memory (up to PHY_GDDR_TOP)
-     * Xeon Phi:
-     * 0x000000000 0x400000000
-     */
-
-
     //pointer to a variable used as pseudo-lock to synchronize the BSP
     //and the AP which gets enabled
 #if defined(__k1om__)
@@ -180,12 +144,12 @@ void apic_init(void)
           apic_phys, apic_base);
     xapic_initialize(&apic, (void *)apic_base);
 
+
 #if !defined(__scc__)
     apic_id = apic_get_id();
     debug(SUBSYS_APIC, "APIC ID=%hhu\n", apic_id);
     if (ia32_apic_base_bsp_extract(apic_base_msr)) {
         debug(SUBSYS_APIC, "APIC: bootstrap processor\n");
-        printf("APIC: bootstrap processor\n");
         apic_bsp = true;
     } else {
         debug(SUBSYS_APIC, "APIC: application processor\n");
@@ -197,7 +161,7 @@ void apic_init(void)
     // initialize spurious interrupt register
     // no focus, software enabled
     {
-       xapic_svr_t t = xapic_svr_initial; 
+       xapic_svr_t t = xapic_svr_initial;
        t = xapic_svr_vector_insert(t, APIC_SPURIOUS_INTERRUPT_VECTOR);
        t = xapic_svr_enable_insert(t, 1);
        t = xapic_svr_focus_insert( t, 1);
@@ -232,7 +196,7 @@ void apic_init(void)
     /*
      * TODO: How are the local intercore interrups handled using the APIC?
      */
-#if defined(__scc__)
+#if defined(__scc__) // || defined(__k1om__)
     //LINT0: inter-core interrupt
     //generate fixed int
     {
@@ -325,7 +289,11 @@ static void apic_send_ipi( xapic_icr_lo_t cmd, uint8_t destination, bool wait)
 
     //send the IPI
     xapic_icr_hi_t t = xapic_icr_hi_initial;
+#if !defined(__k1om__)
     t = xapic_icr_hi_dest_insert(t, destination);
+#else
+    t = xapic_icr_hi_xeon_phi_dest_insert(t, destination);
+#endif
     xapic_icr_hi_rawwr(&apic, t);
     xapic_icr_lo_rawwr(&apic, cmd);
 
@@ -438,7 +406,11 @@ void apic_seoi(uint8_t int_nr)
 
 uint8_t apic_get_id(void)
 {
+#if !defined(__k1om__)
     return xapic_id_id_rdf(&apic);
+#else
+    return xapic_id_xeon_phi_id_rdf(&apic);
+#endif
 }
 
 /**
index c1c3fe8..816231b 100644 (file)
@@ -52,7 +52,7 @@ x86_64_start_ap:
        mov %ax,%ds
        mov $(gdt_ptr - x86_64_start_ap),%si
        lgdt (%si)
-        
+
         // Work around for M5's limited support for protected
         // mode.  Once in protected mode it will treat instruction
         // fetches as if ES is the segment selector.  Therefore
@@ -78,8 +78,13 @@ start_ap_pm:
        mov $PROT_DS,%eax
        mov %eax,%ds
 
+          mov $(x86_64_init_ap_wait - x86_64_start_ap + X86_64_REAL_MODE_LINEAR_OFFSET),%esi
+          movl $123, (%esi)
+
         // acquire start-up lock
        mov $(x86_64_init_ap_lock - x86_64_start_ap + X86_64_REAL_MODE_LINEAR_OFFSET),%esi
+
+
 start_ap_spin:
        xor %ax,%ax
        lock bts %ax,(%esi)
@@ -99,11 +104,30 @@ rep_fill:
        movl $0, init_ap_pdir - x86_64_start_ap + X86_64_REAL_MODE_LINEAR_OFFSET + 4(%ecx)
        add $0x200000, %ebx
        add $8, %ecx
-       cmp $4096 * 4, %ecx
+          cmp $4096 * 4, %ecx
        jne rep_fill
 
-        // enable page address extension
-        mov %cr4,%eax
+#ifdef __k1om__
+       mov $0, %ecx
+          mov $PAGE_BITS, %ebx
+rep_mmio:
+          mov %ebx, init_ap_pdirMMIO - x86_64_start_ap + X86_64_REAL_MODE_LINEAR_OFFSET(%ecx)
+          movl $0x8, init_ap_pdirMMIO - x86_64_start_ap + X86_64_REAL_MODE_LINEAR_OFFSET + 4(%ecx)
+          add $0x200000, %ebx
+          add $8, %ecx
+          cmp $4096, %ecx
+          jne rep_mmio
+
+          // add mapping
+          mov $(init_ap_pdpt - x86_64_start_ap + X86_64_REAL_MODE_LINEAR_OFFSET), %ecx
+          add $256, %ecx
+          mov $(init_ap_pdirMMIO - x86_64_start_ap + X86_64_REAL_MODE_LINEAR_OFFSET), %ebx
+          addl $TABLE_BITS, %ebx
+          mov %ebx, (%ecx)
+#endif
+
+         // enable page address extension
+          mov %cr4,%eax
        or $PAE,%eax
        mov %eax,%cr4
 
@@ -133,21 +157,15 @@ rep_fill:
            .long start_ap_64 - x86_64_start_ap + X86_64_REAL_MODE_LINEAR_OFFSET
            .word LONG_MODE_CS
 
-
-
-
-
 //start the 64bit long-mode code here
 
         .code64
 start_ap_64:
-       
+
        // initialize bootup stack for the 64bit long mode
        lea (start_ap_stack)(%rip), %rsp
 //        lea (kernel_stack + KERNEL_STACK_SIZE)(%rip), %rsp
 
-
-
 //we should not return here after the call, but for any case, use a call
 //instead of a jmp...
 
@@ -185,7 +203,7 @@ gdt:
         .byte 0xff,0xff,0x00,0x00,0x00,0x9a,0xaf,0x00 // 64bit code segment, D _cleared_ => "16bit"
         .byte 0xff,0xff,0x00,0x00,0x00,0x92,0xcf,0x00 // data
         .byte 0xff,0xff,0x00,0x00,0x00,0x9a,0xcf,0x00 // 32bit code segment for protected-mode
-       .byte 0xff,0xff,0x00,0x80,0x0b,0x92,0xff,0x00 // screen
+        .byte 0xff,0xff,0x00,0x80,0x0b,0x92,0xff,0x00 // screen
         .byte 0xff,0xff,0x00,0x60,0x00,0x9a,0xcf,0x00 // segment at linear address 0x6000
         .byte 0xff,0xff,0x00,0x00,0x00,0x92,0xaf,0x00 // stack segment in 64bit mode
 
@@ -204,11 +222,10 @@ init_ap_pml4:
 
        .align X86_64_BASE_PAGE_SIZE
 init_ap_pdpt:
-       .quad (init_ap_pdir  - x86_64_start_ap + X86_64_REAL_MODE_LINEAR_OFFSET) + TABLE_BITS
-       .quad (init_ap_pdir2 - x86_64_start_ap + X86_64_REAL_MODE_LINEAR_OFFSET) + TABLE_BITS
-       .quad (init_ap_pdir3 - x86_64_start_ap + X86_64_REAL_MODE_LINEAR_OFFSET) + TABLE_BITS
-       .quad (init_ap_pdir4 - x86_64_start_ap + X86_64_REAL_MODE_LINEAR_OFFSET) + TABLE_BITS
-       // Fill the rest with zeroes
+ /* 0 */       .quad (init_ap_pdir  - x86_64_start_ap + X86_64_REAL_MODE_LINEAR_OFFSET) + TABLE_BITS
+ /* 1 */       .quad (init_ap_pdir2 - x86_64_start_ap + X86_64_REAL_MODE_LINEAR_OFFSET) + TABLE_BITS
+ /* 2 */       .quad (init_ap_pdir3 - x86_64_start_ap + X86_64_REAL_MODE_LINEAR_OFFSET) + TABLE_BITS
+ /* 3 */       .quad (init_ap_pdir4 - x86_64_start_ap + X86_64_REAL_MODE_LINEAR_OFFSET) + TABLE_BITS
        .fill X86_64_BASE_PAGE_SIZE - (4 * 8), 1, 0
 
        .align X86_64_BASE_PAGE_SIZE
@@ -227,6 +244,11 @@ init_ap_pdir3:
 init_ap_pdir4:
        .fill X86_64_BASE_PAGE_SIZE, 1, 0
 
+#ifdef __k1om__
+       .align X86_64_BASE_PAGE_SIZE
+init_ap_pdirMMIO:
+          .fill X86_64_BASE_PAGE_SIZE, 1, 0
+#endif
         // the absolute destination address to the first C function in the kernel.
        // The address is copied to this variable by start_aps_startall.
        .global x86_64_init_ap_absolute_entry
index ac7c373..32ed537 100644 (file)
@@ -28,6 +28,7 @@
 #define DEFAULT_LOGLEVEL        LOG_NOTE
 #define DEFAULT_SUBSYSTEM_MASK  (~0L)
 
+
 /**
  * Global kernel loglevel.
  */
index 0ca4360..19ecaba 100644 (file)
 #include <init.h>
 #include <arch/x86/kputchar.h>
 #include "xapic_dev.h"
+#ifdef __k1om__
 #include <target/k1om/offsets_target.h>
+#include <barrelfish_kpi/asm_inlines_arch.h>
+#else
 #include <target/x86_64/offsets_target.h>
+#endif
 #include <target/x86_32/offsets_target.h>
 
+#ifdef __k1om__
 #define STARTUP_TIMEOUT         0xffffff
-
+#else
+#define STARTUP_TIMEOUT         0xfffff
+#endif
 /**
  * start_ap and start_ap_end mark the start end the end point of the assembler
  * startup code to be copied
@@ -56,7 +63,7 @@ extern uint64_t x86_32_init_ap_global;
  * \brief Boot a app core of x86_64 type
  *
  * The processors are started by a sequency of INIT and STARTUP IPIs
- * which are sent by this function. 
+ * which are sent by this function.
  *
  * \param core_id   APIC ID of the core to try booting
  * \param entry     Entry address for new kernel in the destination
@@ -66,6 +73,7 @@ extern uint64_t x86_32_init_ap_global;
  */
 int start_aps_x86_64_start(uint8_t core_id, genvaddr_t entry)
 {
+    printf("Starting hwid core: %u\n", core_id);
     /* Copy the startup code to the real-mode address */
     uint8_t *real_dest = (uint8_t*) local_phys_to_mem(X86_64_REAL_MODE_LINEAR_OFFSET);
     uint8_t *real_src = (uint8_t *) &x86_64_start_ap;
@@ -104,16 +112,16 @@ int start_aps_x86_64_start(uint8_t core_id, genvaddr_t entry)
     if (CPU_IS_M5_SIMULATOR) {
         printk(LOG_WARN, "Warning: skipping shutdown/init of APs on M5\n");
     } else {
-        //set shutdown status to WARM_SHUTDOWN and set start-vector
-        cmos_write( CMOS_RAM_SHUTDOWN_ADDR, CMOS_RAM_WARM_SHUTDOWN);
+
         *init_vector = X86_64_REAL_MODE_ADDR_TO_REAL_MODE_VECTOR(X86_64_REAL_MODE_SEGMENT,
                                                           X86_64_REAL_MODE_OFFSET);
 
         //INIT 1 assert
         apic_send_init_assert(core_id, xapic_none);
 
-        //set shutdown status to WARM_SHUTDOWN and set start-vector
-        cmos_write( CMOS_RAM_SHUTDOWN_ADDR, CMOS_RAM_WARM_SHUTDOWN);
+#ifdef __k1om__
+       delay_ms(10);
+#endif
         *init_vector = X86_64_REAL_MODE_ADDR_TO_REAL_MODE_VECTOR(X86_64_REAL_MODE_SEGMENT,
                                                           X86_64_REAL_MODE_OFFSET);
 
@@ -121,14 +129,23 @@ int start_aps_x86_64_start(uint8_t core_id, genvaddr_t entry)
         apic_send_init_deassert();
     }
 
+#ifdef __k1om__
+       delay_ms(200);
+#endif
+
     //SIPI1
     apic_send_start_up(core_id, xapic_none,
                        X86_64_REAL_MODE_SEGMENT_TO_REAL_MODE_PAGE(X86_64_REAL_MODE_SEGMENT));
 
+#ifdef __k1om__
+       delay_ms(200);
+#endif
     //SIPI2
     apic_send_start_up(core_id, xapic_none,
                        X86_64_REAL_MODE_SEGMENT_TO_REAL_MODE_PAGE(X86_64_REAL_MODE_SEGMENT));
 
+
+
     //give the new core a bit time to start-up and set the lock
     for (uint64_t i = 0; i < STARTUP_TIMEOUT; i++) {
         if (*ap_lock != 0) {
@@ -139,7 +156,13 @@ int start_aps_x86_64_start(uint8_t core_id, genvaddr_t entry)
     //if the lock is set, the core has been started, otherwise assume, that
     //a core with this APIC ID doesn't exist.
     if (*ap_lock != 0) {
-        while (*ap_wait != AP_STARTED);
+        int count = 0;
+        while (*ap_wait != AP_STARTED) {
+            if (count == 0xFFFFFFF) {
+                printf("Waiting for started: %i, [%i]\n", core_id, *ap_wait);
+            }
+            count++;
+        }
         *ap_lock = 0;
         debug(SUBSYS_STARTUP, "booted CPU%hhu\n", core_id);
         return 0;
@@ -151,7 +174,7 @@ int start_aps_x86_64_start(uint8_t core_id, genvaddr_t entry)
  * \brief Boot a app core of x86_32 type
  *
  * The processors are started by a sequency of INIT and STARTUP IPIs
- * which are sent by this function. 
+ * which are sent by this function.
  *
  * \param core_id   APIC ID of the core to try booting
  * \param entry     Entry address for new kernel in the destination
index fc5228a..f461d7e 100644 (file)
@@ -252,7 +252,7 @@ static struct cmdarg cmdargs[] = {
  * Name of multiboot module containing program for init domains.
  */
 #if defined(__k1om__)
-#       define BSP_INIT_MODULE_PATH     "k1om/sbin/init_null"
+#       define BSP_INIT_MODULE_PATH     "k1om/sbin/init"
 #elif defined(__x86_64__)
 #       define BSP_INIT_MODULE_PATH     "x86_64/sbin/init"
 #elif defined(__scc__)
index 87d856f..d302d64 100644 (file)
@@ -33,6 +33,8 @@ struct sysret sys_monitor_spawn_core(coreid_t core_id, enum cpu_type cpu_type,
 {
     int r;
     switch(cpu_type) {
+    case CPU_K1OM :
+        /* fall through */
     case CPU_X86_64:
         r = start_aps_x86_64_start(core_id, entry);
         if (r != 0) {
index 2c8cdc5..bdbee40 100644 (file)
@@ -105,7 +105,7 @@ static inline void context_switch(struct dcb *dcb)
         /* FIXME: incomplete clean-up of "thread_register" in progress here.
          * Complain vigorously to AB if he checks this mess in
          */
-#ifdef __x86_64__  /* Setup new LDT */
+#if defined(__x86_64__) || defined(__k1om__)  /* Setup new LDT */
         maybe_reload_ldt(dcb, false);
 #else
         struct dispatcher_shared_generic *disp =
@@ -194,7 +194,7 @@ void __attribute__ ((noreturn)) dispatch(struct dcb *dcb)
     // If we have nothing to do we should call something other than dispatch
     if (dcb == NULL) {
         dcb_current = NULL;
-#if defined(__x86_64__) || defined(__i386__)
+#if defined(__x86_64__) || defined(__i386__) || defined(__k1om__)
         // Can this be moved into wait_for_interrupt?
         // Or wait_for_nonscheduling_interrupt()?
         if (!wakeup_is_pending()) {
index e366693..f3a30d3 100644 (file)
@@ -77,7 +77,7 @@ enum x86_64_cpu_save_registers {
 /** \brief Enable FPU */
 static inline void enable_fpu(void)
 {
-    uint64_t cr0, cr4;
+    uint64_t cr0;
     __asm__ __volatile__("mov %%cr0, %%rax" : "=a" (cr0) : );
     //clear EM
     cr0 &= ~(1 << 2);
@@ -94,10 +94,13 @@ static inline void enable_fpu(void)
 #endif
     __asm__ __volatile__("mov %%rax,%%cr0" : : "a" (cr0));
     //set OSFXSR
+#ifndef __k1om__
+    uint64_t cr4;
+    /* Enabling SSE instruction os K1OM causes a GP*/
     __asm__ __volatile__("mov %%cr4, %%rax" : "=a" (cr4) : );
     cr4 |= (1 << 9);
     __asm__ __volatile__("mov %%rax,%%cr4" : : "a" (cr4));
-
+#endif
 #ifndef FPU_LAZY_CONTEXT_SWITCH
     __asm volatile ("finit");
 #endif
index ebc6959..9031058 100644 (file)
  * Aligns an address to the nearest PML4 entry by masking out lower 39
  * bits.
  */
-#define K1OM_PML4_ALIGN(addr)        ((addr) & ((genpaddr_t)0x1ffffff << 39))
+#define K1OM_PML4_ALIGN(addr)        ((addr) & ((genpaddr_t)0x1ffffffUL << 39))
 
 /**
  * Absolute offset of mapped physical memory within virtual address
 #define K1OM_REAL_MODE_SEGMENT_TO_REAL_MODE_PAGE(seg) ((uint8_t)(seg >> 8))
 #define K1OM_REAL_MODE_ADDR_TO_REAL_MODE_VECTOR(seg,off) ((uint32_t)(seg << 16) | off)
 
+#define X86_64_REAL_MODE_SEGMENT 0x0600 /**< The real-mode segment */
+#define X86_64_REAL_MODE_OFFSET  0x0000 /**< The real-mode offset _has to be_ 0000!! */
+
+#define X86_64_REAL_MODE_LINEAR_OFFSET \
+    (X86_64_REAL_MODE_SEGMENT << 4) /**< The linear offset
+                                       of the real-mode
+                                       segment */
+
+#define X86_64_REAL_MODE_SEGMENT_TO_REAL_MODE_PAGE(seg) ((uint8_t)(seg >> 8))
+#define X86_64_REAL_MODE_ADDR_TO_REAL_MODE_VECTOR(seg,off) ((uint32_t)(seg << 16) | off)
 
 /*
  * TODO: Add K1OM offsets
index 33aa22d..5a57b08 100644 (file)
@@ -31,7 +31,7 @@ void paging_k1om_make_good_pml4(lpaddr_t base);
 
 /// All arch-specific flags valid to be set from user-space
 #define X86_64_PTABLE_FLAGS_MASK                                        \
-    (X86_64_PTABLE_GLOBAL_PAGE | X86_64_PTABLE_ATTR_INDEX |             \
+    (X86_64_PTABLE_ATTR_INDEX |             \
      X86_64_PTABLE_DIRTY | X86_64_PTABLE_ACCESSED |                     \
      X86_64_PTABLE_CACHE_DISABLED | X86_64_PTABLE_WRITE_THROUGH)
 
@@ -180,7 +180,7 @@ static inline void paging_k1om_map_large(union x86_64_ptable_entry *entry,
     tmp.large.user_supervisor = bitmap & X86_64_PTABLE_USER_SUPERVISOR ? 1 : 0;
     tmp.large.write_through = bitmap & X86_64_PTABLE_WRITE_THROUGH ? 1 : 0;
     tmp.large.cache_disabled = bitmap & X86_64_PTABLE_CACHE_DISABLED ? 1 : 0;
-    tmp.large.global = 0;
+    tmp.large.global = 0; // always zero
     tmp.large.attr_index = bitmap & X86_64_PTABLE_ATTR_INDEX ? 1 : 0;
     tmp.large.execute_disable = bitmap & X86_64_PTABLE_EXECUTE_DISABLE ? 1 : 0;
     tmp.large.always1 = 1;
@@ -211,7 +211,7 @@ static inline void paging_k1om_map(union x86_64_ptable_entry * NONNULL entry,
     tmp.base.write_through = bitmap & X86_64_PTABLE_WRITE_THROUGH ? 1 : 0;
     tmp.base.cache_disabled = bitmap & X86_64_PTABLE_CACHE_DISABLED ? 1 : 0;
     tmp.base.attr_index = bitmap & X86_64_PTABLE_ATTR_INDEX ? 1 : 0;
-    tmp.base.global = 0;
+    tmp.base.global = 0; // always zero
     tmp.base.execute_disable = bitmap & X86_64_PTABLE_EXECUTE_DISABLE ? 1 : 0;
     tmp.base.base_addr = base >> 12;
 
diff --git a/tools/k1om/gnu-gcc/binutils-2.24-barrelfish.patch b/tools/k1om/gnu-gcc/binutils-2.24-barrelfish.patch
deleted file mode 100644 (file)
index ea83842..0000000
+++ /dev/null
@@ -1,901 +0,0 @@
-diff --git a/bfd/config.bfd b/bfd/config.bfd
-index 5324d39a21cb..3f0119ab2649 100644
---- a/bfd/config.bfd
-+++ b/bfd/config.bfd
-@@ -630,6 +630,10 @@ case "${targ}" in
-     targ64_selvecs="bfd_elf64_x86_64_nacl_vec bfd_elf32_x86_64_nacl_vec"
-     targ_archs="$targ_archs bfd_arm_arch"
-     ;;
-+  i[3-7]86-*-barrelfish*)
-+    targ_defvec=bfd_elf32_i386_vec
-+    targ_selvecs=bfd_elf32_i386_vec
-+    ;;
- #ifdef BFD64
-   x86_64-*-darwin*)
-     targ_defvec=mach_o_x86_64_vec
-@@ -673,6 +681,16 @@ case "${targ}" in
-     targ_archs="$targ_archs bfd_arm_arch"
-     want64=true
-     ;;
-+  x86_64-k1om-barrelfish*)
-+    targ_defvec=bfd_elf64_k1om_vec
-+    targ_selvecs="bfd_elf32_x86_64_vec bfd_elf64_l1om_vec bfd_elf64_k1om_vec bfd_elf64_x86_64_vec"
-+    want64=true
-+    ;;
-+  x86_64-*-barrelfish*)
-+    targ_defvec=bfd_elf64_x86_64_vec
-+    targ_selvecs=bfd_elf64_x86_64_vec
-+    want64=true
-+    ;;
-   x86_64-*-mingw* | x86_64-*-pe | x86_64-*-pep | x86_64-*-cygwin)
-     targ_defvec=x86_64pe_vec
-     targ_selvecs="x86_64pe_vec x86_64pei_vec bfd_elf64_x86_64_vec bfd_elf64_l1om_vec bfd_elf64_k1om_vec i386pe_vec i386pei_vec bfd_elf32_i386_vec"
-diff --git a/config.sub b/config.sub
-index 61cb4bc22db8..bc3ec8c48906 100755
---- a/config.sub
-+++ b/config.sub
-@@ -1357,6 +1357,7 @@ case $os in
-             | -sym* | -kopensolaris* | -plan9* \
-             | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
-             | -aos* | -aros* \
-+            | -barrelfish* \
-             | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
-             | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
-             | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
-diff --git a/configure b/configure
-index ee45e1b00f90..5bb841e5899d 100755
---- a/configure
-+++ b/configure
-@@ -2953,7 +2953,7 @@ case "${ENABLE_GOLD}" in
-       *-*-elf* | *-*-sysv4* | *-*-unixware* | *-*-eabi* | hppa*64*-*-hpux* \
-       | *-*-linux* | *-*-gnu* | frv-*-uclinux* | *-*-irix5* | *-*-irix6* \
-       | *-*-netbsd* | *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* \
--      | *-*-solaris2* | *-*-nto* | *-*-nacl*)
-+      | *-*-solaris2* | *-*-nto* | *-*-nacl* | *-*-barrelfish*)
-         case "${target}" in
-           *-*-linux*aout* | *-*-linux*oldld*)
-             ;;
-diff --git a/gas/configure.tgt b/gas/configure.tgt
-index 77c1d9b59246..5b32ae8f8a0c 100644
---- a/gas/configure.tgt
-+++ b/gas/configure.tgt
-@@ -270,6 +270,7 @@ case ${generic_target} in
-   i386-*-chaos)                               fmt=elf ;;
-   i386-*-rdos*)                               fmt=elf ;;
-   i386-*-darwin*)                     fmt=macho ;;
-+  i386-*-barrelfish*)                 fmt=elf ;;
-
-   i860-*-*)                           fmt=elf endian=little ;;
-
-diff --git a/ld/Makefile.am b/ld/Makefile.am
-index b2b2a6ebe362..c01570b158ba 100644
---- a/ld/Makefile.am
-+++ b/ld/Makefile.am
-@@ -263,6 +263,7 @@ ALL_EMULATION_SOURCES = \
-       eelf32xstormy16.c \
-       eelf32xtensa.c \
-       eelf_i386.c \
-+      ebarrelfish_i386.c \
-       eelf_i386_be.c \
-       eelf_i386_chaos.c \
-       eelf_i386_fbsd.c \
-@@ -522,6 +522,8 @@ ALL_64_EMULATION_SOURCES = \
-       eelf_l1om_fbsd.c \
-       eelf_k1om.c \
-       eelf_k1om_fbsd.c \
-+      ebarrelfish_x86_64.c \
-+      ebarrelfish_k1om.c \
-       eelf_x86_64.c \
-       eelf_x86_64_fbsd.c \
-       eelf_x86_64_nacl.c \
-@@ -1268,6 +1269,15 @@ eelf32xtensa.c: $(srcdir)/emulparams/elf32xtensa.sh $(ELF_DEPS) \
- eelf_i386.c: $(srcdir)/emulparams/elf_i386.sh \
-   $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
-       ${GENSCRIPTS} elf_i386 "$(tdir_elf_i386)"
-+ebarrelfish_i386.c: $(srcdir)/emulparams/barrelfish_i386.sh \
-+  $(ELF_DEPS) $(srcdir)/scripttempl/elf-barrelfish.sc ${GEN_DEPENDS}
-+      ${GENSCRIPTS} barrelfish_i386 "$(tdir_barrelfish_i386)"
-+ebarrelfish_x86_64.c: $(srcdir)/emulparams/barrelfish_x86_64.sh \
-+  $(ELF_DEPS) $(srcdir)/scripttempl/elf-barrelfish.sc ${GEN_DEPENDS}
-+      ${GENSCRIPTS} barrelfish_x86_64 "$(tdir_barrelfish_x86_64)"
-+ebarrelfish_k1om.c: $(srcdir)/emulparams/barrelfish_k1om.sh \
-+  $(ELF_DEPS) $(srcdir)/scripttempl/elf-barrelfish.sc ${GEN_DEPENDS}
-+      ${GENSCRIPTS} barrelfish_k1om "$(tdir_barrelfish_k1om)"
- eelf_i386_be.c: $(srcdir)/emulparams/elf_i386_be.sh \
-   $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
-       ${GENSCRIPTS} elf_i386_be "$(tdir_elf_i386_be)"
-diff --git a/ld/Makefile.in b/ld/Makefile.in
-index b95a3d103de4..d41557b3334c 100644
---- a/ld/Makefile.in
-+++ b/ld/Makefile.in
-@@ -571,6 +571,7 @@ ALL_EMULATION_SOURCES = \
-       eelf32xstormy16.c \
-       eelf32xtensa.c \
-       eelf_i386.c \
-+      ebarrelfish_i386.c \
-       eelf_i386_be.c \
-       eelf_i386_chaos.c \
-       eelf_i386_fbsd.c \
-@@ -830,6 +832,8 @@ ALL_64_EMULATION_SOURCES = \
-       eelf_k1om.c \
-       eelf_k1om_fbsd.c \
-       eelf_x86_64.c \
-+      ebarrelfish_x86_64.c \
-+      ebarrelfish_k1om.c \
-       eelf_x86_64_fbsd.c \
-       eelf_x86_64_nacl.c \
-       eelf_x86_64_sol2.c \
-@@ -3619,6 +3621,15 @@ eelf_k1om_fbsd.c: $(srcdir)/emulparams/elf_k1om_fbsd.sh \
-   $(srcdir)/emulparams/elf_k1om.sh \
-   $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
-       ${GENSCRIPTS} elf_k1om_fbsd "$(tdir_elf_k1om_fbsd)"
-+ebarrelfish_i386.c: $(srcdir)/emulparams/barrelfish_i386.sh \
-+  $(ELF_DEPS) $(srcdir)/scripttempl/elf-barrelfish.sc ${GEN_DEPENDS}
-+      ${GENSCRIPTS} barrelfish_i386 "$(tdir_barrelfish_i386)"
-+ebarrelfish_x86_64.c: $(srcdir)/emulparams/barrelfish_x86_64.sh \
-+  $(ELF_DEPS) $(srcdir)/scripttempl/elf-barrelfish.sc ${GEN_DEPENDS}
-+      ${GENSCRIPTS} barrelfish_x86_64 "$(tdir_barrelfish_x86_64)"
-+ebarrelfish_k1om.c: $(srcdir)/emulparams/barrelfish_k1om.sh \
-+  $(ELF_DEPS) $(srcdir)/scripttempl/elf-barrelfish.sc ${GEN_DEPENDS}
-+      ${GENSCRIPTS} barrelfish_k1om "$(tdir_barrelfish_k1om)"
- eelf_x86_64.c: $(srcdir)/emulparams/elf_x86_64.sh \
-   $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
-       ${GENSCRIPTS} elf_x86_64 "$(tdir_elf_x86_64)"
-diff --git a/ld/configure.tgt b/ld/configure.tgt
-index c50730b9c514..27702cbedc3a 100644
---- a/ld/configure.tgt
-+++ b/ld/configure.tgt
-@@ -224,6 +224,7 @@ i[3-7]86-*-bsd)            targ_emul=i386bsd ;;
- i[3-7]86-*-bsd386)    targ_emul=i386bsd ;;
- i[3-7]86-*-bsdi*)     targ_emul=i386bsd ;;
- i[3-7]86-*-aout)      targ_emul=i386aout ;;
-+i[3-7]86-*-barrelfish*)       targ_emul=barrelfish_i386 ;;
- i[3-7]86-*-linux*aout*)       targ_emul=i386linux
-                       targ_extra_emuls=elf_i386
-                       tdir_elf_i386=`echo ${targ_alias} | sed -e 's/aout//'` ;;
-@@ -244,6 +248,10 @@ x86_64-*-linux-*) targ_emul=elf_x86_64
-                       targ_extra_libpath="elf_i386 elf32_x86_64 elf_l1om elf_k1om"
-                       tdir_i386linux=`echo ${targ_alias}aout | sed -e 's/x86_64/i386/'`
-                       tdir_elf_i386=`echo ${targ_alias} | sed -e 's/x86_64/i386/'` ;;
-+x86_64-k1om-barrelfish*) targ_emul=elf_k1om 
-+                      targ_extra_emuls="barrelfish_k1om barrelfish_x86_64 " 
-+                      targ_extra_libpath="elf_l1om barrelfish_k1om barrelfish_x86_64"         ;;
-+x86_64-*-barrelfish*) targ_emul=barrelfish_x86_64 ;;
- i[3-7]86-*-sysv[45]*) targ_emul=elf_i386 ;;
- i[3-7]86-*-solaris2*) targ_emul=elf_i386_sol2
-                        targ_extra_emuls="elf_i386_ldso elf_i386 elf_x86_64_sol2 elf_x86_64 elf_l1om elf_k1om"
-diff --git a/ld/emulparams/barrelfish_i386.sh b/ld/emulparams/barrelfish_i386.sh
-new file mode 100644
-index 000000000000..032dd5ae18a3
---- /dev/null
-+++ b/ld/emulparams/barrelfish_i386.sh
-@@ -0,0 +1,14 @@
-+. ${srcdir}/emulparams/plt_unwind.sh
-+SCRIPT_NAME=elf-barrelfish
-+OUTPUT_FORMAT="elf32-i386"
-+NO_RELA_RELOCS=yes
-+TEXT_START_ADDR=0x400000
-+MAXPAGESIZE=0x1000
-+COMMONPAGESIZE="CONSTANT (COMMONPAGESIZE)"
-+ARCH=i386
-+MACHINE=
-+TEMPLATE_NAME=elf32
-+GENERATE_SHLIB_SCRIPT=no
-+GENERATE_PIE_SCRIPT=yes
-+NO_SMALL_DATA=yes
-+SEPARATE_GOTPLT="SIZEOF (.got.plt) >= 12 ? 12 : 0"
-diff --git a/ld/emulparams/barrelfish_x86_64.sh b/ld/emulparams/barrelfish_x86_64.sh
-new file mode 100644
-index 000000000000..bf4dafdd6b2b
---- /dev/null
-+++ b/ld/emulparams/barrelfish_x86_64.sh
-@@ -0,0 +1,16 @@
-+. ${srcdir}/emulparams/plt_unwind.sh
-+SCRIPT_NAME=elf-barrelfish
-+ELFSIZE=64
-+OUTPUT_FORMAT="elf64-x86-64"
-+NO_RELA_RELOCS=yes
-+TEXT_START_ADDR=0x400000
-+MAXPAGESIZE=0x1000
-+COMMONPAGESIZE="CONSTANT (COMMONPAGESIZE)"
-+ARCH="i386:x86-64"
-+MACHINE=
-+TEMPLATE_NAME=elf32
-+GENERATE_SHLIB_SCRIPT=no
-+GENERATE_PIE_SCRIPT=yes
-+NO_SMALL_DATA=yes
-+LARGE_SECTIONS=yes
-+SEPARATE_GOTPLT="SIZEOF (.got.plt) >= 24 ? 24 : 0"
-diff --git a/ld/emulparams/barrelfish_k1om.sh b/ld/emulparams/barrelfish_k1om.sh
-new file mode 100644
-index 000000000000..bf4dafdd6b2b
---- /dev/null
-+++ b/ld/emulparams/barrelfish_k1om.sh
-@@ -0,0 +1,17 @@
-+. ${srcdir}/emulparams/plt_unwind.sh
-+SCRIPT_NAME=elf-barrelfish
-+ELFSIZE=64
-+OUTPUT_FORMAT="elf64-k1om"
-+NO_RELA_RELOCS=yes
-+TEXT_START_ADDR=0x400000
-+MAXPAGESIZE=0x1000
-+COMMONPAGESIZE="CONSTANT (COMMONPAGESIZE)"
-+ARCH="k1om"
-+MACHINE=
-+COMPILE_IN=yes
-+TEMPLATE_NAME=elf32
-+GENERATE_SHLIB_SCRIPT=yes
-+GENERATE_PIE_SCRIPT=yes
-+NO_SMALL_DATA=yes
-+LARGE_SECTIONS=yes
-+SEPARATE_GOTPLT="SIZEOF (.got.plt) >= 24 ? 24 : 0"
-diff --git a/ld/scripttempl/elf-barrelfish.sc b/ld/scripttempl/elf-barrelfish.sc
-new file mode 100644
-index 000000000000..51a655eed65c
---- /dev/null
-+++ b/ld/scripttempl/elf-barrelfish.sc
-@@ -0,0 +1,664 @@
-+#
-+# Unusual variables checked by this code:
-+#     NOP - four byte opcode for no-op (defaults to none)
-+#     NO_SMALL_DATA - no .sbss/.sbss2/.sdata/.sdata2 sections if not
-+#             empty.
-+#     SMALL_DATA_CTOR - .ctors contains small data.
-+#     SMALL_DATA_DTOR - .dtors contains small data.
-+#     DATA_ADDR - if end-of-text-plus-one-page isn't right for data start
-+#     INITIAL_READONLY_SECTIONS - at start of text segment
-+#     OTHER_READONLY_SECTIONS - other than .text .init .rodata ...
-+#             (e.g., .PARISC.milli)
-+#     OTHER_TEXT_SECTIONS - these get put in .text when relocating
-+#     OTHER_READWRITE_SECTIONS - other than .data .bss .ctors .sdata ...
-+#             (e.g., .PARISC.global)
-+#     OTHER_RELRO_SECTIONS - other than .data.rel.ro ...
-+#             (e.g. PPC32 .fixup, .got[12])
-+#     OTHER_BSS_SECTIONS - other than .bss .sbss ...
-+#     ATTRS_SECTIONS - at the end
-+#     OTHER_SECTIONS - at the end
-+#     EXECUTABLE_SYMBOLS - symbols that must be defined for an
-+#             executable (e.g., _DYNAMIC_LINK)
-+#       TEXT_START_ADDR - the first byte of the text segment, after any
-+#               headers.
-+#       TEXT_BASE_ADDRESS - the first byte of the text segment.
-+#     TEXT_START_SYMBOLS - symbols that appear at the start of the
-+#             .text section.
-+#     DATA_START_SYMBOLS - symbols that appear at the start of the
-+#             .data section.
-+#     DATA_END_SYMBOLS - symbols that appear at the end of the
-+#             writeable data sections.
-+#     OTHER_GOT_SYMBOLS - symbols defined just before .got.
-+#     OTHER_GOT_SECTIONS - sections just after .got.
-+#     OTHER_SDATA_SECTIONS - sections just after .sdata.
-+#     OTHER_BSS_SYMBOLS - symbols that appear at the start of the
-+#             .bss section besides __bss_start.
-+#     DATA_PLT - .plt should be in data segment, not text segment.
-+#     PLT_BEFORE_GOT - .plt just before .got when .plt is in data segement.
-+#     BSS_PLT - .plt should be in bss segment
-+#     NO_REL_RELOCS - Don't include .rel.* sections in script
-+#     NO_RELA_RELOCS - Don't include .rela.* sections in script
-+#     NON_ALLOC_DYN - Place dynamic sections after data segment.
-+#     TEXT_DYNAMIC - .dynamic in text segment, not data segment.
-+#     EMBEDDED - whether this is for an embedded system.
-+#     SHLIB_TEXT_START_ADDR - if set, add to SIZEOF_HEADERS to set
-+#             start address of shared library.
-+#     INPUT_FILES - INPUT command of files to always include
-+#     WRITABLE_RODATA - if set, the .rodata section should be writable
-+#     INIT_START, INIT_END -  statements just before and just after
-+#     combination of .init sections.
-+#     FINI_START, FINI_END - statements just before and just after
-+#     combination of .fini sections.
-+#     STACK_ADDR - start of a .stack section.
-+#     OTHER_SYMBOLS - symbols to place right at the end of the script.
-+#     ETEXT_NAME - name of a symbol for the end of the text section,
-+#             normally etext.
-+#     SEPARATE_CODE - if set, .text and similar sections containing
-+#             actual machine instructions must be in wholly disjoint
-+#             pages from any other data, including headers
-+#     SEPARATE_GOTPLT - if set, .got.plt should be separate output section,
-+#             so that .got can be in the RELRO area.  It should be set to
-+#             the number of bytes in the beginning of .got.plt which can be
-+#             in the RELRO area as well.
-+#     USER_LABEL_PREFIX - prefix to add to user-visible symbols.
-+#     RODATA_NAME, SDATA_NAME, SBSS_NAME, BSS_NAME - base parts of names
-+#             for standard sections, without initial "." or suffixes.
-+#
-+# When adding sections, do note that the names of some sections are used
-+# when specifying the start address of the next.
-+#
-+
-+#  Many sections come in three flavours.  There is the 'real' section,
-+#  like ".data".  Then there are the per-procedure or per-variable
-+#  sections, generated by -ffunction-sections and -fdata-sections in GCC,
-+#  and useful for --gc-sections, which for a variable "foo" might be
-+#  ".data.foo".  Then there are the linkonce sections, for which the linker
-+#  eliminates duplicates, which are named like ".gnu.linkonce.d.foo".
-+#  The exact correspondences are:
-+#
-+#  Section    Linkonce section
-+#  .text      .gnu.linkonce.t.foo
-+#  .rodata    .gnu.linkonce.r.foo
-+#  .data      .gnu.linkonce.d.foo
-+#  .bss               .gnu.linkonce.b.foo
-+#  .sdata     .gnu.linkonce.s.foo
-+#  .sbss      .gnu.linkonce.sb.foo
-+#  .sdata2    .gnu.linkonce.s2.foo
-+#  .sbss2     .gnu.linkonce.sb2.foo
-+#  .debug_info        .gnu.linkonce.wi.foo
-+#  .tdata     .gnu.linkonce.td.foo
-+#  .tbss      .gnu.linkonce.tb.foo
-+#  .lrodata   .gnu.linkonce.lr.foo
-+#  .ldata     .gnu.linkonce.l.foo
-+#  .lbss      .gnu.linkonce.lb.foo
-+#
-+#  Each of these can also have corresponding .rel.* and .rela.* sections.
-+
-+if test -n "$NOP"; then
-+  FILL="=$NOP"
-+else
-+  FILL=
-+fi
-+
-+test -z "$RODATA_NAME" && RODATA_NAME=rodata
-+test -z "$SDATA_NAME" && SDATA_NAME=sdata
-+test -z "$SBSS_NAME" && SBSS_NAME=sbss
-+test -z "$BSS_NAME" && BSS_NAME=bss
-+test -z "$ENTRY" && ENTRY=${USER_LABEL_PREFIX}_start
-+test -z "${BIG_OUTPUT_FORMAT}" && BIG_OUTPUT_FORMAT=${OUTPUT_FORMAT}
-+test -z "${LITTLE_OUTPUT_FORMAT}" && LITTLE_OUTPUT_FORMAT=${OUTPUT_FORMAT}
-+if [ -z "$MACHINE" ]; then OUTPUT_ARCH=${ARCH}; else OUTPUT_ARCH=${ARCH}:${MACHINE}; fi
-+test -z "${ELFSIZE}" && ELFSIZE=32
-+test -z "${ALIGNMENT}" && ALIGNMENT="${ELFSIZE} / 8"
-+test "$LD_FLAG" = "N" && DATA_ADDR=.
-+test -z "${ETEXT_NAME}" && ETEXT_NAME=${USER_LABEL_PREFIX}etext
-+test -n "$CREATE_SHLIB$CREATE_PIE" && test -n "$SHLIB_DATA_ADDR" && COMMONPAGESIZE=""
-+test -z "$CREATE_SHLIB$CREATE_PIE" && test -n "$DATA_ADDR" && COMMONPAGESIZE=""
-+test -n "$RELRO_NOW" && unset SEPARATE_GOTPLT
-+test -z "$ATTRS_SECTIONS" && ATTRS_SECTIONS=".gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }"
-+DATA_SEGMENT_ALIGN="ALIGN(${SEGMENT_SIZE}) + (. & (${MAXPAGESIZE} - 1))"
-+DATA_SEGMENT_RELRO_END=""
-+DATA_SEGMENT_END=""
-+if test -n "${COMMONPAGESIZE}"; then
-+  DATA_SEGMENT_ALIGN="ALIGN (${SEGMENT_SIZE}) - ((${MAXPAGESIZE} - .) & (${MAXPAGESIZE} - 1)); . = DATA_SEGMENT_ALIGN (${MAXPAGESIZE}, ${COMMONPAGESIZE})"
-+  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) }"
-+fi
-+if test -z "$PLT"; then
-+  IPLT=".iplt         ${RELOCATING-0} : { *(.iplt) }"
-+  PLT=".plt          ${RELOCATING-0} : { *(.plt)${IREL_IN_PLT+ *(.iplt)} }
-+  ${IREL_IN_PLT-$IPLT}"
-+fi
-+test -n "${DATA_PLT-${BSS_PLT-text}}" && TEXT_PLT=yes
-+if test -z "$GOT"; then
-+  if test -z "$SEPARATE_GOTPLT"; then
-+    GOT=".got          ${RELOCATING-0} : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) }"
-+  else
-+    GOT=".got          ${RELOCATING-0} : { *(.got) *(.igot) }"
-+    GOTPLT=".got.plt      ${RELOCATING-0} : { *(.got.plt)  *(.igot.plt) }"
-+  fi
-+fi
-+REL_IFUNC=".rel.ifunc    ${RELOCATING-0} : { *(.rel.ifunc) }"
-+RELA_IFUNC=".rela.ifunc   ${RELOCATING-0} : { *(.rela.ifunc) }"
-+REL_IPLT=".rel.iplt     ${RELOCATING-0} :
-+    {
-+      ${RELOCATING+${CREATE_SHLIB-PROVIDE_HIDDEN (${USER_LABEL_PREFIX}__rel_iplt_start = .);}}
-+      *(.rel.iplt)
-+      ${RELOCATING+${CREATE_SHLIB-PROVIDE_HIDDEN (${USER_LABEL_PREFIX}__rel_iplt_end = .);}}
-+    }"
-+RELA_IPLT=".rela.iplt    ${RELOCATING-0} :
-+    {
-+      ${RELOCATING+${CREATE_SHLIB-PROVIDE_HIDDEN (${USER_LABEL_PREFIX}__rela_iplt_start = .);}}
-+      *(.rela.iplt)
-+      ${RELOCATING+${CREATE_SHLIB-PROVIDE_HIDDEN (${USER_LABEL_PREFIX}__rela_iplt_end = .);}}
-+    }"
-+DYNAMIC=".dynamic      ${RELOCATING-0} : { *(.dynamic) }"
-+RODATA=".${RODATA_NAME}       ${RELOCATING-0} : { *(.${RODATA_NAME}${RELOCATING+ .${RODATA_NAME}.* .gnu.linkonce.r.*}) }"
-+DATARELRO=".data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) }"
-+DISCARDED="/DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }"
-+if test -z "${NO_SMALL_DATA}"; then
-+  SBSS=".${SBSS_NAME}         ${RELOCATING-0} :
-+  {
-+    ${RELOCATING+${SBSS_START_SYMBOLS}}
-+    ${CREATE_SHLIB+*(.${SBSS_NAME}2 .${SBSS_NAME}2.* .gnu.linkonce.sb2.*)}
-+    *(.dyn${SBSS_NAME})
-+    *(.${SBSS_NAME}${RELOCATING+ .${SBSS_NAME}.* .gnu.linkonce.sb.*})
-+    *(.scommon)
-+    ${RELOCATING+${SBSS_END_SYMBOLS}}
-+  }"
-+  SBSS2=".${SBSS_NAME}2        ${RELOCATING-0} : { *(.${SBSS_NAME}2${RELOCATING+ .${SBSS_NAME}2.* .gnu.linkonce.sb2.*}) }"
-+  SDATA="/* We want the small data sections together, so single-instruction offsets
-+     can access them all, and initialized data all before uninitialized, so
-+     we can shorten the on-disk segment size.  */
-+  .${SDATA_NAME}        ${RELOCATING-0} :
-+  {
-+    ${RELOCATING+${SDATA_START_SYMBOLS}}
-+    ${CREATE_SHLIB+*(.${SDATA_NAME}2 .${SDATA_NAME}2.* .gnu.linkonce.s2.*)}
-+    *(.${SDATA_NAME}${RELOCATING+ .${SDATA_NAME}.* .gnu.linkonce.s.*})
-+  }"
-+  SDATA2=".${SDATA_NAME}2       ${RELOCATING-0} :
-+  {
-+    ${RELOCATING+${SDATA2_START_SYMBOLS}}
-+    *(.${SDATA_NAME}2${RELOCATING+ .${SDATA_NAME}2.* .gnu.linkonce.s2.*})
-+  }"
-+  REL_SDATA=".rel.${SDATA_NAME}    ${RELOCATING-0} : { *(.rel.${SDATA_NAME}${RELOCATING+ .rel.${SDATA_NAME}.* .rel.gnu.linkonce.s.*}) }
-+  .rela.${SDATA_NAME}   ${RELOCATING-0} : { *(.rela.${SDATA_NAME}${RELOCATING+ .rela.${SDATA_NAME}.* .rela.gnu.linkonce.s.*}) }"
-+  REL_SBSS=".rel.${SBSS_NAME}     ${RELOCATING-0} : { *(.rel.${SBSS_NAME}${RELOCATING+ .rel.${SBSS_NAME}.* .rel.gnu.linkonce.sb.*}) }
-+  .rela.${SBSS_NAME}    ${RELOCATING-0} : { *(.rela.${SBSS_NAME}${RELOCATING+ .rela.${SBSS_NAME}.* .rela.gnu.linkonce.sb.*}) }"
-+  REL_SDATA2=".rel.${SDATA_NAME}2   ${RELOCATING-0} : { *(.rel.${SDATA_NAME}2${RELOCATING+ .rel.${SDATA_NAME}2.* .rel.gnu.linkonce.s2.*}) }
-+  .rela.${SDATA_NAME}2  ${RELOCATING-0} : { *(.rela.${SDATA_NAME}2${RELOCATING+ .rela.${SDATA_NAME}2.* .rela.gnu.linkonce.s2.*}) }"
-+  REL_SBSS2=".rel.${SBSS_NAME}2    ${RELOCATING-0} : { *(.rel.${SBSS_NAME}2${RELOCATING+ .rel.${SBSS_NAME}2.* .rel.gnu.linkonce.sb2.*}) }
-+  .rela.${SBSS_NAME}2   ${RELOCATING-0} : { *(.rela.${SBSS_NAME}2${RELOCATING+ .rela.${SBSS_NAME}2.* .rela.gnu.linkonce.sb2.*}) }"
-+else
-+  NO_SMALL_DATA=" "
-+fi
-+if test -z "${DATA_GOT}"; then
-+  if test -n "${NO_SMALL_DATA}"; then
-+    DATA_GOT=" "
-+  fi
-+fi
-+if test -z "${SDATA_GOT}"; then
-+  if test -z "${NO_SMALL_DATA}"; then
-+    SDATA_GOT=" "
-+  fi
-+fi
-+test -n "$SEPARATE_GOTPLT" && SEPARATE_GOTPLT=" "
-+test "${LARGE_SECTIONS}" = "yes" && REL_LARGE="
-+  .rel.ldata    ${RELOCATING-0} : { *(.rel.ldata${RELOCATING+ .rel.ldata.* .rel.gnu.linkonce.l.*}) }
-+  .rela.ldata   ${RELOCATING-0} : { *(.rela.ldata${RELOCATING+ .rela.ldata.* .rela.gnu.linkonce.l.*}) }
-+  .rel.lbss     ${RELOCATING-0} : { *(.rel.lbss${RELOCATING+ .rel.lbss.* .rel.gnu.linkonce.lb.*}) }
-+  .rela.lbss    ${RELOCATING-0} : { *(.rela.lbss${RELOCATING+ .rela.lbss.* .rela.gnu.linkonce.lb.*}) }
-+  .rel.lrodata  ${RELOCATING-0} : { *(.rel.lrodata${RELOCATING+ .rel.lrodata.* .rel.gnu.linkonce.lr.*}) }
-+  .rela.lrodata ${RELOCATING-0} : { *(.rela.lrodata${RELOCATING+ .rela.lrodata.* .rela.gnu.linkonce.lr.*}) }"
-+test "${LARGE_SECTIONS}" = "yes" && OTHER_BSS_SECTIONS="
-+  ${OTHER_BSS_SECTIONS}
-+  .lbss ${RELOCATING-0} :
-+  {
-+    *(.dynlbss)
-+    *(.lbss${RELOCATING+ .lbss.* .gnu.linkonce.lb.*})
-+    *(LARGE_COMMON)
-+  }"
-+test "${LARGE_SECTIONS}" = "yes" && LARGE_SECTIONS="
-+  .lrodata ${RELOCATING-0} ${RELOCATING+ALIGN(${MAXPAGESIZE}) + (. & (${MAXPAGESIZE} - 1))} :
-+  {
-+    *(.lrodata${RELOCATING+ .lrodata.* .gnu.linkonce.lr.*})
-+  }
-+  .ldata ${RELOCATING-0} ${RELOCATING+ALIGN(${MAXPAGESIZE}) + (. & (${MAXPAGESIZE} - 1))} :
-+  {
-+    *(.ldata${RELOCATING+ .ldata.* .gnu.linkonce.l.*})
-+    ${RELOCATING+. = ALIGN(. != 0 ? ${ALIGNMENT} : 1);}
-+  }"
-+if test "${ENABLE_INITFINI_ARRAY}" = "yes"; then
-+  SORT_INIT_ARRAY="KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*)))"
-+  SORT_FINI_ARRAY="KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*)))"
-+  CTORS_IN_INIT_ARRAY="KEEP (*(EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o $OTHER_EXCLUDE_FILES) .ctors))"
-+  DTORS_IN_FINI_ARRAY="KEEP (*(EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o $OTHER_EXCLUDE_FILES) .dtors))"
-+else
-+  SORT_INIT_ARRAY="KEEP (*(SORT(.init_array.*)))"
-+  SORT_FINI_ARRAY="KEEP (*(SORT(.fini_array.*)))"
-+  CTORS_IN_INIT_ARRAY=
-+  DTORS_IN_FINI_ARRAY=
-+fi
-+INIT_ARRAY=".init_array   ${RELOCATING-0} :
-+  {
-+    ${RELOCATING+${CREATE_SHLIB-PROVIDE_HIDDEN (${USER_LABEL_PREFIX}__init_array_start = .);}}
-+    ${SORT_INIT_ARRAY}
-+    KEEP (*(.init_array))
-+    ${CTORS_IN_INIT_ARRAY}
-+    ${RELOCATING+${CREATE_SHLIB-PROVIDE_HIDDEN (${USER_LABEL_PREFIX}__init_array_end = .);}}
-+  }"
-+FINI_ARRAY=".fini_array   ${RELOCATING-0} :
-+  {
-+    ${RELOCATING+${CREATE_SHLIB-PROVIDE_HIDDEN (${USER_LABEL_PREFIX}__fini_array_start = .);}}
-+    ${SORT_FINI_ARRAY}
-+    KEEP (*(.fini_array))
-+    ${DTORS_IN_FINI_ARRAY}
-+    ${RELOCATING+${CREATE_SHLIB-PROVIDE_HIDDEN (${USER_LABEL_PREFIX}__fini_array_end = .);}}
-+  }"
-+CTOR=".ctors        ${CONSTRUCTING-0} :
-+  {
-+    ${CONSTRUCTING+${CTOR_START}}
-+    /* gcc uses crtbegin.o to find the start of
-+       the constructors, so we make sure it is
-+       first.  Because this is a wildcard, it
-+       doesn't matter if the user does not
-+       actually link against crtbegin.o; the
-+       linker won't look for a file to match a
-+       wildcard.  The wildcard also means that it
-+       doesn't matter which directory crtbegin.o
-+       is in.  */
-+
-+    KEEP (*crtbegin.o(.ctors))
-+    KEEP (*crtbegin?.o(.ctors))
-+
-+    /* We don't want to include the .ctor section from
-+       the crtend.o file until after the sorted ctors.
-+       The .ctor section from the crtend file contains the
-+       end of ctors marker and it must be last */
-+
-+    KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o $OTHER_EXCLUDE_FILES) .ctors))
-+    KEEP (*(SORT(.ctors.*)))
-+    KEEP (*(.ctors))
-+    ${CONSTRUCTING+${CTOR_END}}
-+  }"
-+DTOR=".dtors        ${CONSTRUCTING-0} :
-+  {
-+    ${CONSTRUCTING+${DTOR_START}}
-+    KEEP (*crtbegin.o(.dtors))
-+    KEEP (*crtbegin?.o(.dtors))
-+    KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o $OTHER_EXCLUDE_FILES) .dtors))
-+    KEEP (*(SORT(.dtors.*)))
-+    KEEP (*(.dtors))
-+    ${CONSTRUCTING+${DTOR_END}}
-+  }"
-+STACK="  .stack        ${RELOCATING-0}${RELOCATING+${STACK_ADDR}} :
-+  {
-+    ${RELOCATING+${USER_LABEL_PREFIX}_stack = .;}
-+    *(.stack)
-+  }"
-+
-+TEXT_START_ADDR="SEGMENT_START(\"text-segment\", ${TEXT_START_ADDR})"
-+SHLIB_TEXT_START_ADDR="SEGMENT_START(\"text-segment\", ${SHLIB_TEXT_START_ADDR:-0})"
-+
-+if [ -z "$SEPARATE_CODE" ]; then
-+  SIZEOF_HEADERS_CODE=" + SIZEOF_HEADERS"
-+else
-+  SIZEOF_HEADERS_CODE=
-+fi
-+
-+# if this is for an embedded system, don't add SIZEOF_HEADERS.
-+if [ -z "$EMBEDDED" ]; then
-+   test -z "${TEXT_BASE_ADDRESS}" && TEXT_BASE_ADDRESS="${TEXT_START_ADDR}${SIZEOF_HEADERS_CODE}"
-+else
-+   test -z "${TEXT_BASE_ADDRESS}" && TEXT_BASE_ADDRESS="${TEXT_START_ADDR}"
-+fi
-+
-+cat <<EOF
-+OUTPUT_FORMAT("${OUTPUT_FORMAT}", "${BIG_OUTPUT_FORMAT}",
-+            "${LITTLE_OUTPUT_FORMAT}")
-+OUTPUT_ARCH(${OUTPUT_ARCH})
-+${RELOCATING+ENTRY(${ENTRY})}
-+
-+${RELOCATING+${LIB_SEARCH_DIRS}}
-+${RELOCATING+${EXECUTABLE_SYMBOLS}}
-+${RELOCATING+${INPUT_FILES}}
-+${RELOCATING- /* For some reason, the Solaris linker makes bad executables
-+  if gld -r is used and the intermediate file has sections starting
-+  at non-zero addresses.  Could be a Solaris ld bug, could be a GNU ld
-+  bug.  But for now assigning the zero vmas works.  */}
-+
-+SECTIONS
-+{
-+  /* Read-only sections, merged into text segment: */
-+  ${CREATE_SHLIB-${CREATE_PIE-${RELOCATING+PROVIDE (__executable_start = ${TEXT_START_ADDR}); . = ${TEXT_BASE_ADDRESS};}}}
-+  ${CREATE_SHLIB+${RELOCATING+. = ${SHLIB_TEXT_START_ADDR}${SIZEOF_HEADERS_CODE};}}
-+  ${CREATE_PIE+${RELOCATING+. = ${SHLIB_TEXT_START_ADDR}${SIZEOF_HEADERS_CODE};}}
-+EOF
-+
-+emit_early_ro()
-+{
-+  cat <<EOF
-+  ${INITIAL_READONLY_SECTIONS}
-+  .note.gnu.build-id : { *(.note.gnu.build-id) }
-+EOF
-+}
-+
-+test -n "${SEPARATE_CODE}" || emit_early_ro
-+
-+test -n "${RELOCATING+0}" || unset NON_ALLOC_DYN
-+test -z "${NON_ALLOC_DYN}" || TEXT_DYNAMIC=
-+cat > ldscripts/dyntmp.$$ <<EOF
-+  ${TEXT_DYNAMIC+${DYNAMIC}}
-+  .hash         ${RELOCATING-0} : { *(.hash) }
-+  .gnu.hash     ${RELOCATING-0} : { *(.gnu.hash) }
-+  .dynsym       ${RELOCATING-0} : { *(.dynsym) }
-+  .dynstr       ${RELOCATING-0} : { *(.dynstr) }
-+  .gnu.version  ${RELOCATING-0} : { *(.gnu.version) }
-+  .gnu.version_d ${RELOCATING-0}: { *(.gnu.version_d) }
-+  .gnu.version_r ${RELOCATING-0}: { *(.gnu.version_r) }
-+EOF
-+
-+if [ "x$COMBRELOC" = x ]; then
-+  COMBRELOCCAT="cat >> ldscripts/dyntmp.$$"
-+else
-+  COMBRELOCCAT="cat > $COMBRELOC"
-+fi
-+eval $COMBRELOCCAT <<EOF
-+  ${INITIAL_RELOC_SECTIONS}
-+  .rel.init     ${RELOCATING-0} : { *(.rel.init) }
-+  .rela.init    ${RELOCATING-0} : { *(.rela.init) }
-+  .rel.text     ${RELOCATING-0} : { *(.rel.text${RELOCATING+ .rel.text.* .rel.gnu.linkonce.t.*}) }
-+  .rela.text    ${RELOCATING-0} : { *(.rela.text${RELOCATING+ .rela.text.* .rela.gnu.linkonce.t.*}) }
-+  .rel.fini     ${RELOCATING-0} : { *(.rel.fini) }
-+  .rela.fini    ${RELOCATING-0} : { *(.rela.fini) }
-+  .rel.${RODATA_NAME}   ${RELOCATING-0} : { *(.rel.${RODATA_NAME}${RELOCATING+ .rel.${RODATA_NAME}.* .rel.gnu.linkonce.r.*}) }
-+  .rela.${RODATA_NAME}  ${RELOCATING-0} : { *(.rela.${RODATA_NAME}${RELOCATING+ .rela.${RODATA_NAME}.* .rela.gnu.linkonce.r.*}) }
-+  ${OTHER_READONLY_RELOC_SECTIONS}
-+  .rel.data.rel.ro ${RELOCATING-0} : { *(.rel.data.rel.ro${RELOCATING+ .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*}) }
-+  .rela.data.rel.ro ${RELOCATING-0} : { *(.rela.data.rel.ro${RELOCATING+ .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*}) }
-+  .rel.data     ${RELOCATING-0} : { *(.rel.data${RELOCATING+ .rel.data.* .rel.gnu.linkonce.d.*}) }
-+  .rela.data    ${RELOCATING-0} : { *(.rela.data${RELOCATING+ .rela.data.* .rela.gnu.linkonce.d.*}) }
-+  ${OTHER_READWRITE_RELOC_SECTIONS}
-+  .rel.tdata  ${RELOCATING-0} : { *(.rel.tdata${RELOCATING+ .rel.tdata.* .rel.gnu.linkonce.td.*}) }
-+  .rela.tdata ${RELOCATING-0} : { *(.rela.tdata${RELOCATING+ .rela.tdata.* .rela.gnu.linkonce.td.*}) }
-+  .rel.tbss   ${RELOCATING-0} : { *(.rel.tbss${RELOCATING+ .rel.tbss.* .rel.gnu.linkonce.tb.*}) }
-+  .rela.tbss  ${RELOCATING-0} : { *(.rela.tbss${RELOCATING+ .rela.tbss.* .rela.gnu.linkonce.tb.*}) }
-+  .rel.ctors    ${RELOCATING-0} : { *(.rel.ctors) }
-+  .rela.ctors   ${RELOCATING-0} : { *(.rela.ctors) }
-+  .rel.dtors    ${RELOCATING-0} : { *(.rel.dtors) }
-+  .rela.dtors   ${RELOCATING-0} : { *(.rela.dtors) }
-+  .rel.got      ${RELOCATING-0} : { *(.rel.got) }
-+  .rela.got     ${RELOCATING-0} : { *(.rela.got) }
-+  ${OTHER_GOT_RELOC_SECTIONS}
-+  ${REL_SDATA}
-+  ${REL_SBSS}
-+  ${REL_SDATA2}
-+  ${REL_SBSS2}
-+  .rel.${BSS_NAME}      ${RELOCATING-0} : { *(.rel.${BSS_NAME}${RELOCATING+ .rel.${BSS_NAME}.* .rel.gnu.linkonce.b.*}) }
-+  .rela.${BSS_NAME}     ${RELOCATING-0} : { *(.rela.${BSS_NAME}${RELOCATING+ .rela.${BSS_NAME}.* .rela.gnu.linkonce.b.*}) }
-+  ${REL_LARGE}
-+  ${IREL_IN_PLT+$REL_IFUNC}
-+  ${IREL_IN_PLT+$RELA_IFUNC}
-+  ${IREL_IN_PLT-$REL_IPLT}
-+  ${IREL_IN_PLT-$RELA_IPLT}
-+EOF
-+
-+if [ -n "$COMBRELOC" ]; then
-+cat >> ldscripts/dyntmp.$$ <<EOF
-+  .rel.dyn      ${RELOCATING-0} :
-+    {
-+EOF
-+sed -e '/^[   ]*[{}][         ]*$/d;/:[       ]*$/d;/\.rela\./d;s/^.*: { *\(.*\)}$/      \1/' $COMBRELOC >> ldscripts/dyntmp.$$
-+cat >> ldscripts/dyntmp.$$ <<EOF
-+    }
-+  .rela.dyn     ${RELOCATING-0} :
-+    {
-+EOF
-+sed -e '/^[   ]*[{}][         ]*$/d;/:[       ]*$/d;/\.rel\./d;s/^.*: { *\(.*\)}/      \1/' $COMBRELOC >> ldscripts/dyntmp.$$
-+cat >> ldscripts/dyntmp.$$ <<EOF
-+    }
-+EOF
-+fi
-+
-+cat >> ldscripts/dyntmp.$$ <<EOF
-+  .rel.plt      ${RELOCATING-0} :
-+    {
-+      *(.rel.plt)
-+      ${IREL_IN_PLT+${RELOCATING+${CREATE_SHLIB-PROVIDE_HIDDEN (${USER_LABEL_PREFIX}__rel_iplt_start = .);}}}
-+      ${IREL_IN_PLT+${RELOCATING+*(.rel.iplt)}}
-+      ${IREL_IN_PLT+${RELOCATING+${CREATE_SHLIB-PROVIDE_HIDDEN (${USER_LABEL_PREFIX}__rel_iplt_end = .);}}}
-+    }
-+  .rela.plt     ${RELOCATING-0} :
-+    {
-+      *(.rela.plt)
-+      ${IREL_IN_PLT+${RELOCATING+${CREATE_SHLIB-PROVIDE_HIDDEN (${USER_LABEL_PREFIX}__rela_iplt_start = .);}}}
-+      ${IREL_IN_PLT+${RELOCATING+*(.rela.iplt)}}
-+      ${IREL_IN_PLT+${RELOCATING+${CREATE_SHLIB-PROVIDE_HIDDEN (${USER_LABEL_PREFIX}__rela_iplt_end = .);}}}
-+    }
-+  ${OTHER_PLT_RELOC_SECTIONS}
-+EOF
-+
-+emit_dyn()
-+{
-+  if test -z "${NO_REL_RELOCS}${NO_RELA_RELOCS}"; then
-+    cat ldscripts/dyntmp.$$
-+  else
-+    if test -z "${NO_REL_RELOCS}"; then
-+      sed -e '/^[     ]*\.rela\.[^}]*$/,/}/d' -e '/^[         ]*\.rela\./d' ldscripts/dyntmp.$$
-+    fi
-+    if test -z "${NO_RELA_RELOCS}"; then
-+      sed -e '/^[     ]*\.rel\.[^}]*$/,/}/d' -e '/^[  ]*\.rel\./d' ldscripts/dyntmp.$$
-+    fi
-+  fi
-+  rm -f ldscripts/dyntmp.$$
-+}
-+
-+test -n "${NON_ALLOC_DYN}${SEPARATE_CODE}" || emit_dyn
-+
-+cat <<EOF
-+  .init         ${RELOCATING-0} :
-+  {
-+    ${RELOCATING+${INIT_START}}
-+    KEEP (*(SORT_NONE(.init)))
-+    ${RELOCATING+${INIT_END}}
-+  } ${FILL}
-+
-+  ${TEXT_PLT+${PLT}}
-+  ${TINY_READONLY_SECTION}
-+  .text         ${RELOCATING-0} :
-+  {
-+    ${RELOCATING+${TEXT_START_SYMBOLS}}
-+    ${RELOCATING+*(.text.unlikely .text.*_unlikely)}
-+    ${RELOCATING+*(.text.exit .text.exit.*)}
-+    ${RELOCATING+*(.text.startup .text.startup.*)}
-+    ${RELOCATING+*(.text.hot .text.hot.*)}
-+    *(.text .stub${RELOCATING+ .text.* .gnu.linkonce.t.*})
-+    /* .gnu.warning sections are handled specially by elf32.em.  */
-+    *(.gnu.warning)
-+    ${RELOCATING+${OTHER_TEXT_SECTIONS}}
-+  } ${FILL}
-+  .fini         ${RELOCATING-0} :
-+  {
-+    ${RELOCATING+${FINI_START}}
-+    KEEP (*(SORT_NONE(.fini)))
-+    ${RELOCATING+${FINI_END}}
-+  } ${FILL}
-+  ${RELOCATING+PROVIDE (__${ETEXT_NAME} = .);}
-+  ${RELOCATING+PROVIDE (_${ETEXT_NAME} = .);}
-+  ${RELOCATING+PROVIDE (${ETEXT_NAME} = .);}
-+EOF
-+
-+if test -n "${SEPARATE_CODE}"; then
-+  cat <<EOF
-+  /* Adjust the address for the rodata segment.  We want to adjust up to
-+     the same address within the page on the next page up.  */
-+  ${CREATE_SHLIB-${CREATE_PIE-${RELOCATING+. = ${RODATA_ADDR-ALIGN(${SEGMENT_SIZE}) + (. & (${MAXPAGESIZE} - 1))};}}}
-+  ${CREATE_SHLIB+${RELOCATING+. = ${SHLIB_RODATA_ADDR-ALIGN(${SEGMENT_SIZE}) + (. & (${MAXPAGESIZE} - 1))};}}
-+  ${CREATE_PIE+${RELOCATING+. = ${SHLIB_RODATA_ADDR-ALIGN(${SEGMENT_SIZE}) + (. & (${MAXPAGESIZE} - 1))};}}
-+EOF
-+  emit_early_ro
-+  emit_dyn
-+fi
-+
-+cat <<EOF
-+  ${WRITABLE_RODATA-${RODATA}}
-+  .${RODATA_NAME}1      ${RELOCATING-0} : { *(.${RODATA_NAME}1) }
-+  ${CREATE_SHLIB-${SDATA2}}
-+  ${CREATE_SHLIB-${SBSS2}}
-+  ${OTHER_READONLY_SECTIONS}
-+  .eh_frame_hdr : { *(.eh_frame_hdr) }
-+  .eh_frame     ${RELOCATING-0} : ONLY_IF_RO { KEEP (*(.eh_frame)) }
-+  .gcc_except_table ${RELOCATING-0} : ONLY_IF_RO { *(.gcc_except_table
-+  .gcc_except_table.*) }
-+  /* These sections are generated by the Sun/Oracle C++ compiler.  */
-+  .exception_ranges ${RELOCATING-0} : ONLY_IF_RO { *(.exception_ranges
-+  .exception_ranges*) }
-+
-+  /* Adjust the address for the data segment.  We want to adjust up to
-+     the same address within the page on the next page up.  */
-+  ${CREATE_SHLIB-${CREATE_PIE-${RELOCATING+. = ${DATA_ADDR-${DATA_SEGMENT_ALIGN}};}}}
-+  ${CREATE_SHLIB+${RELOCATING+. = ${SHLIB_DATA_ADDR-${DATA_SEGMENT_ALIGN}};}}
-+  ${CREATE_PIE+${RELOCATING+. = ${SHLIB_DATA_ADDR-${DATA_SEGMENT_ALIGN}};}}
-+
-+  /* Exception handling  */
-+  .eh_frame     ${RELOCATING-0} : ONLY_IF_RW { KEEP (*(.eh_frame)) }
-+  .gcc_except_table ${RELOCATING-0} : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) }
-+  .exception_ranges ${RELOCATING-0} : ONLY_IF_RW { *(.exception_ranges .exception_ranges*) }
-+
-+  /* Thread Local Storage sections  */
-+  .tdata      ${RELOCATING-0} : { *(.tdata${RELOCATING+ .tdata.* .gnu.linkonce.td.*}) }
-+  .tbss               ${RELOCATING-0} : { *(.tbss${RELOCATING+ .tbss.* .gnu.linkonce.tb.*})${RELOCATING+ *(.tcommon)} }
-+
-+  .preinit_array   ${RELOCATING-0} :
-+  {
-+    ${RELOCATING+${CREATE_SHLIB-PROVIDE_HIDDEN (${USER_LABEL_PREFIX}__preinit_array_start = .);}}
-+    KEEP (*(.preinit_array))
-+    ${RELOCATING+${CREATE_SHLIB-PROVIDE_HIDDEN (${USER_LABEL_PREFIX}__preinit_array_end = .);}}
-+  }
-+  ${RELOCATING+${INIT_ARRAY}}
-+  ${RELOCATING+${FINI_ARRAY}}
-+  ${SMALL_DATA_CTOR-${RELOCATING+${CTOR}}}
-+  ${SMALL_DATA_DTOR-${RELOCATING+${DTOR}}}
-+  .jcr          ${RELOCATING-0} : { KEEP (*(.jcr)) }
-+
-+  ${RELOCATING+${DATARELRO}}
-+  ${OTHER_RELRO_SECTIONS}
-+  ${TEXT_DYNAMIC-${DYNAMIC}}
-+  ${DATA_GOT+${RELRO_NOW+${GOT}}}
-+  ${DATA_GOT+${RELRO_NOW+${GOTPLT}}}
-+  ${DATA_GOT+${RELRO_NOW-${SEPARATE_GOTPLT+${GOT}}}}
-+  ${RELOCATING+${DATA_SEGMENT_RELRO_END}}
-+  ${DATA_GOT+${RELRO_NOW-${SEPARATE_GOTPLT-${GOT}}}}
-+  ${DATA_GOT+${RELRO_NOW-${GOTPLT}}}
-+
-+  ${DATA_PLT+${PLT_BEFORE_GOT-${PLT}}}
-+
-+  .data         ${RELOCATING-0} :
-+  {
-+    ${RELOCATING+${DATA_START_SYMBOLS}}
-+    *(.data${RELOCATING+ .data.* .gnu.linkonce.d.*})
-+    ${CONSTRUCTING+SORT(CONSTRUCTORS)}
-+  }
-+  .data1        ${RELOCATING-0} : { *(.data1) }
-+  ${WRITABLE_RODATA+${RODATA}}
-+  ${OTHER_READWRITE_SECTIONS}
-+  ${SMALL_DATA_CTOR+${RELOCATING+${CTOR}}}
-+  ${SMALL_DATA_DTOR+${RELOCATING+${DTOR}}}
-+  ${DATA_PLT+${PLT_BEFORE_GOT+${PLT}}}
-+  ${SDATA_GOT+${RELOCATING+${OTHER_GOT_SYMBOLS+. = .; ${OTHER_GOT_SYMBOLS}}}}
-+  ${SDATA_GOT+${GOT}}
-+  ${SDATA_GOT+${OTHER_GOT_SECTIONS}}
-+  ${SDATA}
-+  ${OTHER_SDATA_SECTIONS}
-+  ${RELOCATING+${DATA_END_SYMBOLS-${USER_LABEL_PREFIX}_edata = .; PROVIDE (${USER_LABEL_PREFIX}edata = .);}}
-+  ${RELOCATING+. = .;}
-+  ${RELOCATING+${USER_LABEL_PREFIX}__bss_start = .;}
-+  ${RELOCATING+${OTHER_BSS_SYMBOLS}}
-+  ${SBSS}
-+  ${BSS_PLT+${PLT}}
-+  .${BSS_NAME}          ${RELOCATING-0} :
-+  {
-+   *(.dyn${BSS_NAME})
-+   *(.${BSS_NAME}${RELOCATING+ .${BSS_NAME}.* .gnu.linkonce.b.*})
-+   *(COMMON)
-+   /* Align here to ensure that the .bss section occupies space up to
-+      _end.  Align after .bss to ensure correct alignment even if the
-+      .bss section disappears because there are no input sections.
-+      FIXME: Why do we need it? When there is no .bss section, we don't
-+      pad the .data section.  */
-+   ${RELOCATING+. = ALIGN(. != 0 ? ${ALIGNMENT} : 1);}
-+  }
-+  ${OTHER_BSS_SECTIONS}
-+  ${RELOCATING+${OTHER_BSS_END_SYMBOLS}}
-+  ${RELOCATING+. = ALIGN(${ALIGNMENT});}
-+  ${LARGE_SECTIONS}
-+  ${RELOCATING+. = ALIGN(${ALIGNMENT});}
-+  ${RELOCATING+${OTHER_END_SYMBOLS}}
-+  ${RELOCATING+${END_SYMBOLS-${USER_LABEL_PREFIX}_end = .; PROVIDE (${USER_LABEL_PREFIX}end = .);}}
-+  ${RELOCATING+${DATA_SEGMENT_END}}
-+EOF
-+
-+test -z "${NON_ALLOC_DYN}" || emit_dyn
-+
-+cat <<EOF
-+  /* Stabs debugging sections.  */
-+  .stab          0 : { *(.stab) }
-+  .stabstr       0 : { *(.stabstr) }
-+  .stab.excl     0 : { *(.stab.excl) }
-+  .stab.exclstr  0 : { *(.stab.exclstr) }
-+  .stab.index    0 : { *(.stab.index) }
-+  .stab.indexstr 0 : { *(.stab.indexstr) }
-+
-+  .comment       0 : { *(.comment) }
-+
-+  /* DWARF debug sections.
-+     Symbols in the DWARF debugging sections are relative to the beginning
-+     of the section so we begin them at 0.  */
-+
-+  /* DWARF 1 */
-+  .debug          0 : { *(.debug) }
-+  .line           0 : { *(.line) }
-+
-+  /* GNU DWARF 1 extensions */
-+  .debug_srcinfo  0 : { *(.debug_srcinfo) }
-+  .debug_sfnames  0 : { *(.debug_sfnames) }
-+
-+  /* DWARF 1.1 and DWARF 2 */
-+  .debug_aranges  0 : { *(.debug_aranges) }
-+  .debug_pubnames 0 : { *(.debug_pubnames) }
-+
-+  /* DWARF 2 */
-+  .debug_info     0 : { *(.debug_info${RELOCATING+ .gnu.linkonce.wi.*}) }
-+  .debug_abbrev   0 : { *(.debug_abbrev) }
-+  .debug_line     0 : { *(.debug_line) }
-+  .debug_frame    0 : { *(.debug_frame) }
-+  .debug_str      0 : { *(.debug_str) }
-+  .debug_loc      0 : { *(.debug_loc) }
-+  .debug_macinfo  0 : { *(.debug_macinfo) }
-+
-+  /* SGI/MIPS DWARF 2 extensions */
-+  .debug_weaknames 0 : { *(.debug_weaknames) }
-+  .debug_funcnames 0 : { *(.debug_funcnames) }
-+  .debug_typenames 0 : { *(.debug_typenames) }
-+  .debug_varnames  0 : { *(.debug_varnames) }
-+
-+  /* DWARF 3 */
-+  .debug_pubtypes 0 : { *(.debug_pubtypes) }
-+  .debug_ranges   0 : { *(.debug_ranges) }
-+
-+  /* DWARF Extension.  */
-+  .debug_macro    0 : { *(.debug_macro) } 
-+  
-+  ${TINY_DATA_SECTION}
-+  ${TINY_BSS_SECTION}
-+
-+  ${STACK_ADDR+${STACK}}
-+  ${ATTRS_SECTIONS}
-+  ${OTHER_SECTIONS}
-+  ${RELOCATING+${OTHER_SYMBOLS}}
-+  ${RELOCATING+${DISCARDED}}
-+}
-+EOF
diff --git a/tools/k1om/gnu-gcc/build-toolchain.sh b/tools/k1om/gnu-gcc/build-toolchain.sh
deleted file mode 100755 (executable)
index 4174cc4..0000000
+++ /dev/null
@@ -1,146 +0,0 @@
-#!/usr/bin/env bash
-
-# C/C++ toolchain build script for Barrelfish.
-# http://redmine.aluzina.org/projects/barrelfish/wiki/Toolchain_from_sources
-# http://wiki.barrelfish.org/CrossCompiler
-#
-# In order to build a toolchain you will need to install the following packages:
-#   $ sudo apt-get install gcc g++ make patch bison flex texinfo
-#
-# These are also required but will be downloaded automatically during the build:
-#   libgmp-dev, libmpc-dev, libmpfr-dev
-#
-# Optional (for Graphite optimizations): libcloog-ppl-dev.
-
-set -e  # Die if any command fails.
-set -x  # Trace each command before execution.
-
-BASEDIR=$(pwd)
-BASEDIR=/home/acreto
-
-
-export TARGET=x86_64-k1om-barrelfish
-
-# Path of your Barrelfish source and build tree.
-BARRELFISH_SOURCE=$BASEDIR/barrelfish.xeon-phi
-BARRELFISH_BUILD=$BASEDIR/barrelfish.xeon-phi/build
-
-# Modify these versions to match the corresponding patch.
-BINUTILS=binutils-2.24
-GCC=gcc-4.8.2
-
-
-# Directory this shell script is stored in.
-# http://stackoverflow.com/questions/59895/can-a-bash-script-tell-what-directory-its-stored-in
-SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
-
-# Paths to patches.
-BINUTILS_PATCH="${SCRIPT_DIR}/${BINUTILS}-barrelfish.patch"
-GCC_PATCH="${SCRIPT_DIR}/${GCC}-barrelfish.patch"
-
-#-------------------------------------------------------------------------------
-
-# Where the toolchain will be built and installed.
-# Note: the toolchain is specific to the Barrelfish tree mentioned above.
-TOOLCHAIN_PREFIX=${BARRELFISH_SOURCE}/toolchain
-
-
-
-#-------------------------------------------------------------------------------
-
-# Sanity checks.
-exit_with_error() { echo "error: $1" && exit 1; }
-[[ ! -d "${BARRELFISH_SOURCE}" ]] && \
-    exit_with_error "Barrelfish source not found (${BARRELFISH_SOURCE})."
-[[ ! -d "${BARRELFISH_BUILD}" ]] && \
-    exit_with_error "Barrelfish tree not found (${BARRELFISH_BUILD})."
-[[   -d "${TOOLCHAIN_PREFIX}" ]] && \
-    exit_with_error "toolchain already built in ${TOOLCHAIN_PREFIX}."
-[[ ! -f "${BINUTILS_PATCH}" ]] && \
-    exit_with_error "binutils patch not found (${BINUTILS_PATCH})."
-[[ ! -f "${GCC_PATCH}" ]] && \
-    exit_with_error "GCC patch not found (${GCC_PATCH})."
-
-
-# Build the toolchain.
-export PATH=${PATH}:${TOOLCHAIN_PREFIX}/bin
-export PREFIX=${TOOLCHAIN_PREFIX}
-
-
-TOOLCHAIN_BUILD="$(mktemp -d --tmpdir barrelfish-toolchain-build.XXXXXXXXXX)"
-
-
-# Build parallelism
-MAKE_JOBS=
-if [[ -z "${MAKE_JOBS}" ]]; then
-  # Guess a sensible value - default: #cores + 2.
-  MAKE_JOBS=$(($(grep "^core id" /proc/cpuinfo | sort -u | wc -l) + 2))
-fi
-
-
-pushd "${TOOLCHAIN_BUILD}"
-
-# 1. binutils - GNU Binary Utilities
-wget "http://ftp.gnu.org/gnu/binutils/${BINUTILS}.tar.gz"
-tar xzvf ${BINUTILS}.tar.gz
-pushd ${BINUTILS}/
-patch -p1 < "${BINUTILS_PATCH}"
-popd  # ${BINUTILS}/
-mkdir -p ${BINUTILS}-build/
-pushd ${BINUTILS}-build/
-../${BINUTILS}/configure \
-    --prefix="${TOOLCHAIN_PREFIX}" \
-    --target="${TARGET}" \
-    --enable-threads \
-    --enable-lto \
-    --with-cpu=k1om \
-    --with-arch=k1om \
-    --with-tune=k1om \
-    --enable-plugins \
-    --disable-nls \
-    --enable-plugins \
-    --disable-nls
-make -j${MAKE_JOBS}
-make install-strip
-popd  # ${BINUTILS}-build/
-
-# 2. GCC - GNU Compiler Collection
-wget "ftp://ftp.fu-berlin.de/unix/languages/gcc/releases/${GCC}/${GCC}.tar.bz2"
-tar xjvf ${GCC}.tar.bz2
-pushd ${GCC}/
-source ./contrib/download_prerequisites
-# http://stackoverflow.com/questions/407523/escape-a-string-for-sed-search-pattern
-BF_SOURCE_ESCAPED=$(echo "${BARRELFISH_SOURCE}" | sed -e 's/[\/&]/\\&/g')
-BF_BUILD_ESCAPED=$(echo "${BARRELFISH_BUILD}" | sed -e 's/[\/&]/\\&/g')
-sed -r -e "s/\{\{BF_SRC\}\}/${BF_SOURCE_ESCAPED}/g" \
-       -e "s/\{\{BF_BUILD\}\}/${BF_BUILD_ESCAPED}/g" \
-       "${GCC_PATCH}" | patch -p1
-popd  # ${GCC}/
-
-mkdir -p ${GCC}-build/
-pushd ${GCC}-build/
-../${GCC}/configure \
-    --prefix="${TOOLCHAIN_PREFIX}" \
-    --target="${TARGET}" \
-    --enable-languages=c \
-    --enable-initfini-array \
-    --disable-nls \
-    --disable-libssp \
-    --with-newlib \
-    --nobootstrap \
-    --with-gnu-as \
-    --with-gnu-ld \
-    --disable-multilib # from xeon phi inside cluster
-
-#    --with-cpu=k1om \
-#    --with-arch=k1om \
-#    --with-tune=k1om \
-
-make -j$MAKE_JOBS
-make install-strip
-
-popd  # ${GCC}-build/
-
-popd  # ${TOOLCHAIN_BUILD}
-
-rm -rf "${TOOLCHAIN_BUILD}"
diff --git a/tools/k1om/gnu-gcc/gcc-4.8.2-barrelfish.patch b/tools/k1om/gnu-gcc/gcc-4.8.2-barrelfish.patch
deleted file mode 100644 (file)
index 9c0f540..0000000
+++ /dev/null
@@ -1,6490 +0,0 @@
-diff --git a/config.sub b/config.sub
-index 707e9e2efe8d..59dd372ec16c 100755
---- a/config.sub
-+++ b/config.sub
-@@ -1359,6 +1359,7 @@ case $os in
-             | -sym* | -kopensolaris* | -plan9* \
-             | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
-             | -aos* | -aros* \
-+            | -barrelfish* \
-             | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
-             | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
-             | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
-diff --git a/gcc/config.gcc b/gcc/config.gcc
-index 92d57ddf4fb3..8e794e895be0 100644
---- a/gcc/config.gcc
-+++ b/gcc/config.gcc
-@@ -683,6 +683,12 @@
-   tmake_file="${tmake_file} t-glibc"
-   target_has_targetcm=yes
-   ;;
-+*-*-barrelfish*)
-+  gas=yes
-+  gnu_ld=yes
-+  default_use_cxa_atexit=yes
-+  use_gcc_stdint=wrap
-+  ;;
- *-*-netbsd*)
-  tmake_file="t-slibgcc-elf-ver t-libc-ok t-netbsd t-libgcc-pic"
-  gas=yes
-@@ -1212,9 +1218,21 @@
- i[34567]86-*-elf*)
-       tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h"
-       ;;
-+i[34567]86-pc-barrelfish*)
-+      tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h i386/barrelfish-x86_32.h"
-+      ;;
-+i[34567]86-scc-barrelfish*)
-+      tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h i386/barrelfish-scc.h"
-+      ;;
- x86_64-*-elf*)
-       tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h i386/x86-64.h"
-       ;;
-+x86_64-k1om-barrelfish*)
-+      tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h i386/x86-64.h i386/barrelfish-k1om.h"
-+      tmake_file="${tmake_file} i386/t-i386elf i386/t-crtstuff i386/t-mic-crtfm i386/t-fprules-softfp soft-fp/t-softfp";;
-+x86_64-*-barrelfish*)
-+      tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h i386/x86-64.h i386/barrelfish-x86_64.h"
-+      ;;
- i[34567]86-*-rdos*)
-     tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h i386/rdos.h"
-     ;;
-@@ -2857,6 +2875,10 @@
-       ;;
-     esac
-     ;;
-+  x86_64-k1om-*)
-+      arch=k1om
-+      cpu=k1om
-+    ;;        
-   x86_64-*-*)
-     case ${target_noncanonical} in
-       bdver3-*)
-@@ -3402,7 +3424,7 @@
-                       | k8 | k8-sse3 | athlon64 | athlon64-sse3 | opteron \
-                       | opteron-sse3 | athlon-fx | bdver3 | bdver2 | bdver1 | btver2 \
-                       | btver1 | amdfam10 | barcelona | nocona | core2 | corei7 \
--                      | corei7-avx | core-avx-i | core-avx2 | atom)
-+                      | corei7-avx | core-avx-i | core-avx2 | atom | k1om )
-                               # OK
-                               ;;
-                       *)
-diff --git a/gcc/config/i386/barrelfish-scc.h b/gcc/config/i386/barrelfish-scc.h
-new file mode 100644
-index 000000000000..930451c4dcdb
---- /dev/null
-+++ b/gcc/config/i386/barrelfish-scc.h
-@@ -0,0 +1,72 @@
-+#define BF_SRC   "{{BF_SRC}}"
-+#define BF_BUILD "{{BF_BUILD}}"
-+
-+#undef TARGET_OS_CPP_BUILTINS
-+#define TARGET_OS_CPP_BUILTINS()                        \
-+  do {                                                  \
-+    builtin_define ("BARRELFISH");                      \
-+    builtin_define_std ("barrelfish");                  \
-+    builtin_define_std ("unix");                        \
-+    builtin_define_std ("scc");                         \
-+    builtin_define ("CONFIG_LAZY_THC");                 \
-+    builtin_define ("CONFIG_NEWLIB");                   \
-+    builtin_define ("CONFIG_INTERCONNECT_DRIVER_LMP");  \
-+    builtin_define ("CONFIG_INTERCONNECT_DRIVER_UMP");  \
-+    builtin_define ("CONFIG_FLOUNDER_BACKEND_LMP");     \
-+    builtin_define ("CONFIG_FLOUNDER_BACKEND_UMP_IPI"); \
-+    builtin_define ("BF_BUILD_DIR=\"" BF_BUILD "\"");   \
-+    builtin_define ("BF_SRC_DIR=\"" BF_SRC "\"");       \
-+    builtin_assert ("system=barrelfish");               \
-+    builtin_assert ("system=unix");                     \
-+  } while(0);
-+
-+#undef  CC1_SPEC
-+#define CC1_SPEC "%(cc1_cpu) -mno-red-zone"
-+
-+/* Default #includes are defined in 'hake/ArchDefaults.hs' (see 'cStdIncs'). */
-+#undef  CPP_SPEC
-+#define CPP_SPEC                                       \
-+  "-isystem" BF_SRC "/include "                        \
-+  "-isystem" BF_SRC "/include/arch/scc "               \
-+  "-isystem" BF_SRC "/include/arch/x86_32 "            \
-+  "-isystem" BF_SRC "/lib/newlib/newlib/libc/include " \
-+  "-isystem" BF_SRC "/include/c "                      \
-+  "-isystem" BF_SRC "/include/target/x86_32 "          \
-+  "-isystem" BF_SRC "/include/ipv4 "                   \
-+  "-isystem" BF_BUILD "/scc/include "                  \
-+  "-isystem" BF_BUILD "/scc/include/dev"
-+
-+/* Default libraries are specified in 'hake/ArchDefaults.hs' (see 'stdLibs').
-+   Follows the order given by 'libDeps' in '{BF_SRC}/hake/RuleDefs.hs'. */
-+#undef LIB_SPEC
-+#define LIB_SPEC                  \
-+  "-L" BF_BUILD "/scc/lib "       \
-+  "-lbarrelfish "                 \
-+  "-loctopus_parser "             \
-+  BF_BUILD "/scc/errors/errno.o " \
-+  "-lnewlib "                     \
-+  "-lposixcompat "                \
-+  "-lvfs "                        \
-+  "-lahci "                       \
-+  "-lnfs "                        \
-+  "-llwip "                       \
-+  "-lbarrelfish "                 \
-+  "-lnewlib"
-+
-+#undef  STARTFILE_SPEC
-+#define STARTFILE_SPEC             \
-+  BF_BUILD "/scc/lib/crt0.o%s "    \
-+  BF_BUILD "/scc/lib/crtbegin.o%s"
-+
-+#undef  ENDFILE_SPEC
-+#define ENDFILE_SPEC                                                \
-+  "%{Ofast|ffast-math|funsafe-math-optimizations:crtfastmath.o%s} " \
-+  "%{mpc32:crtprec32.o%s} "                                         \
-+  "%{mpc64:crtprec64.o%s} "                                         \
-+  "%{mpc80:crtprec80.o%s} "                                         \
-+  BF_BUILD "/scc/lib/crtend.o%s "                                   \
-+  "-lcollections"
-+
-+/* System header files are C++ ready so don't wrap in extern "C". */
-+#undef  NO_IMPLICIT_EXTERN_C
-+#define NO_IMPLICIT_EXTERN_C  1
-diff --git a/gcc/config/i386/barrelfish-x86_32.h b/gcc/config/i386/barrelfish-x86_32.h
-new file mode 100644
-index 000000000000..84d0bf56721c
---- /dev/null
-+++ b/gcc/config/i386/barrelfish-x86_32.h
-@@ -0,0 +1,70 @@
-+#define BF_SRC   "{{BF_SRC}}"
-+#define BF_BUILD "{{BF_BUILD}}"
-+
-+#undef TARGET_OS_CPP_BUILTINS
-+#define TARGET_OS_CPP_BUILTINS()                       \
-+  do {                                                 \
-+    builtin_define ("BARRELFISH");                     \
-+    builtin_define_std ("barrelfish");                 \
-+    builtin_define_std ("unix");                       \
-+    builtin_define ("CONFIG_LAZY_THC");                \
-+    builtin_define ("CONFIG_NEWLIB");                  \
-+    builtin_define ("CONFIG_INTERCONNECT_DRIVER_LMP"); \
-+    builtin_define ("CONFIG_INTERCONNECT_DRIVER_UMP"); \
-+    builtin_define ("CONFIG_FLOUNDER_BACKEND_LMP");    \
-+    builtin_define ("CONFIG_FLOUNDER_BACKEND_UMP");    \
-+    builtin_define ("BF_BUILD_DIR=\"" BF_BUILD "\"");  \
-+    builtin_define ("BF_SRC_DIR=\"" BF_SRC "\"");      \
-+    builtin_assert ("system=barrelfish");              \
-+    builtin_assert ("system=unix");                    \
-+  } while(0);
-+
-+#undef  CC1_SPEC
-+#define CC1_SPEC "%(cc1_cpu) -mno-red-zone"
-+
-+/* Default #includes are defined in 'hake/ArchDefaults.hs' (see 'cStdIncs'). */
-+#undef  CPP_SPEC
-+#define CPP_SPEC                                       \
-+  "-isystem" BF_SRC "/include "                        \
-+  "-isystem" BF_SRC "/include/arch/x86_32 "            \
-+  "-isystem" BF_SRC "/lib/newlib/newlib/libc/include " \
-+  "-isystem" BF_SRC "/include/c "                      \
-+  "-isystem" BF_SRC "/include/target/x86_32 "          \
-+  "-isystem" BF_SRC "/include/ipv4 "                   \
-+  "-isystem" BF_BUILD "/x86_32/include "               \
-+  "-isystem" BF_BUILD "/x86_32/include/dev"
-+
-+/* Default libraries are specified in 'hake/ArchDefaults.hs' (see 'stdLibs').
-+   Follows the order given by 'libDeps' in '{BF_SRC}/hake/RuleDefs.hs'. */
-+#undef LIB_SPEC
-+#define LIB_SPEC                     \
-+  "-L" BF_BUILD "/x86_32/lib "       \
-+  "-lbarrelfish "                    \
-+  "-loctopus_parser "                \
-+  BF_BUILD "/x86_32/errors/errno.o " \
-+  "-lnewlib "                        \
-+  "-lposixcompat "                   \
-+  "-lvfs "                           \
-+  "-lahci "                          \
-+  "-lnfs "                           \
-+  "-llwip "                          \
-+  "-lbarrelfish "                    \
-+  "-lnewlib"
-+
-+#undef  STARTFILE_SPEC
-+#define STARTFILE_SPEC                \
-+  BF_BUILD "/x86_32/lib/crt0.o%s "    \
-+  BF_BUILD "/x86_32/lib/crtbegin.o%s"
-+
-+#undef  ENDFILE_SPEC
-+#define ENDFILE_SPEC                                                \
-+  "%{Ofast|ffast-math|funsafe-math-optimizations:crtfastmath.o%s} " \
-+  "%{mpc32:crtprec32.o%s} "                                         \
-+  "%{mpc64:crtprec64.o%s} "                                         \
-+  "%{mpc80:crtprec80.o%s} "                                         \
-+  BF_BUILD "/x86_32/lib/crtend.o%s "                                \
-+  "-lcollections"
-+
-+/* System header files are C++ ready so don't wrap in extern "C". */
-+#undef  NO_IMPLICIT_EXTERN_C
-+#define NO_IMPLICIT_EXTERN_C  1
-diff --git a/gcc/config/i386/barrelfish-x86_64.h b/gcc/config/i386/barrelfish-x86_64.h
-new file mode 100644
-index 000000000000..8608b62b1019
---- /dev/null
-+++ b/gcc/config/i386/barrelfish-x86_64.h
-@@ -0,0 +1,70 @@
-+#define BF_SRC   "{{BF_SRC}}"
-+#define BF_BUILD "{{BF_BUILD}}"
-+
-+#undef TARGET_OS_CPP_BUILTINS
-+#define TARGET_OS_CPP_BUILTINS()                       \
-+  do {                                                 \
-+    builtin_define ("BARRELFISH");                     \
-+    builtin_define_std ("barrelfish");                 \
-+    builtin_define_std ("unix");                       \
-+    builtin_define ("CONFIG_LAZY_THC");                \
-+    builtin_define ("CONFIG_NEWLIB");                  \
-+    builtin_define ("CONFIG_INTERCONNECT_DRIVER_LMP"); \
-+    builtin_define ("CONFIG_INTERCONNECT_DRIVER_UMP"); \
-+    builtin_define ("CONFIG_FLOUNDER_BACKEND_LMP");    \
-+    builtin_define ("CONFIG_FLOUNDER_BACKEND_UMP");    \
-+    builtin_define ("BF_BUILD_DIR=\"" BF_BUILD "\"");  \
-+    builtin_define ("BF_SRC_DIR=\"" BF_SRC "\"");      \
-+    builtin_assert ("system=barrelfish");              \
-+    builtin_assert ("system=unix");                    \
-+  } while(0);
-+
-+#undef  CC1_SPEC
-+#define CC1_SPEC "%(cc1_cpu) -mno-red-zone"
-+
-+/* Default #includes are defined in 'hake/ArchDefaults.hs' (see 'cStdIncs'). */
-+#undef  CPP_SPEC
-+#define CPP_SPEC                                       \
-+  "-isystem" BF_SRC "/include "                        \
-+  "-isystem" BF_SRC "/include/arch/x86_64 "            \
-+  "-isystem" BF_SRC "/lib/newlib/newlib/libc/include " \
-+  "-isystem" BF_SRC "/include/c "                      \
-+  "-isystem" BF_SRC "/include/target/x86_64 "          \
-+  "-isystem" BF_SRC "/include/ipv4 "                   \
-+  "-isystem" BF_BUILD "/x86_64/include "               \
-+  "-isystem" BF_BUILD "/x86_64/include/dev"
-+
-+/* Default libraries are specified in 'hake/ArchDefaults.hs' (see 'stdLibs').
-+   Follows the order given by 'libDeps' in '{BF_SRC}/hake/RuleDefs.hs'. */
-+#undef LIB_SPEC
-+#define LIB_SPEC                     \
-+  "-L" BF_BUILD "/x86_64/lib "       \
-+  "-lbarrelfish "                    \
-+  "-loctopus_parser "                \
-+  BF_BUILD "/x86_64/errors/errno.o " \
-+  "-lnewlib "                        \
-+  "-lposixcompat "                   \
-+  "-lvfs "                           \
-+  "-lahci "                          \
-+  "-lnfs "                           \
-+  "-llwip "                          \
-+  "-lbarrelfish "                    \
-+  "-lnewlib"
-+
-+#undef  STARTFILE_SPEC
-+#define STARTFILE_SPEC                \
-+  BF_BUILD "/x86_64/lib/crt0.o%s "    \
-+  BF_BUILD "/x86_64/lib/crtbegin.o%s"
-+
-+#undef  ENDFILE_SPEC
-+#define ENDFILE_SPEC                                                \
-+  "%{Ofast|ffast-math|funsafe-math-optimizations:crtfastmath.o%s} " \
-+  "%{mpc32:crtprec32.o%s} "                                         \
-+  "%{mpc64:crtprec64.o%s} "                                         \
-+  "%{mpc80:crtprec80.o%s} "                                         \
-+  BF_BUILD "/x86_64/lib/crtend.o%s "                                \
-+  "-lcollections"
-+
-+/* System header files are C++ ready so don't wrap in extern "C". */
-+#undef  NO_IMPLICIT_EXTERN_C
-+#define NO_IMPLICIT_EXTERN_C  1
-diff --git a/gcc/config/i386/barrelfish-k1om.h b/gcc/config/i386/barrelfish-k1om.h
-new file mode 100644
-index 000000000000..8608b62b1019
---- /dev/null
-+++ b/gcc/config/i386/barrelfish-k1om.h
-@@ -0,0 +1,70 @@
-+#define BF_SRC   "{{BF_SRC}}"
-+#define BF_BUILD "{{BF_BUILD}}"
-+
-+#undef TARGET_OS_CPP_BUILTINS
-+#define TARGET_OS_CPP_BUILTINS()                       \
-+  do {                                                 \
-+    builtin_define ("BARRELFISH");                     \
-+    builtin_define_std ("barrelfish");                 \
-+    builtin_define_std ("unix");                       \
-+    builtin_define ("CONFIG_LAZY_THC");                \
-+    builtin_define ("CONFIG_NEWLIB");                  \
-+    builtin_define ("CONFIG_INTERCONNECT_DRIVER_LMP"); \
-+    builtin_define ("CONFIG_INTERCONNECT_DRIVER_UMP"); \
-+    builtin_define ("CONFIG_FLOUNDER_BACKEND_LMP");    \
-+    builtin_define ("CONFIG_FLOUNDER_BACKEND_UMP");    \
-+    builtin_define ("BF_BUILD_DIR=\"" BF_BUILD "\"");  \
-+    builtin_define ("BF_SRC_DIR=\"" BF_SRC "\"");      \
-+    builtin_assert ("system=barrelfish");              \
-+    builtin_assert ("system=unix");                    \
-+  } while(0);
-+
-+#undef  CC1_SPEC
-+#define CC1_SPEC "%(cc1_cpu) -mno-red-zone"
-+
-+/* Default #includes are defined in 'hake/ArchDefaults.hs' (see 'cStdIncs'). */
-+#undef  CPP_SPEC
-+#define CPP_SPEC                                       \
-+  "-isystem" BF_SRC "/include "                        \
-+  "-isystem" BF_SRC "/include/arch/k1om "            \
-+  "-isystem" BF_SRC "/lib/newlib/newlib/libc/include " \
-+  "-isystem" BF_SRC "/include/c "                      \
-+  "-isystem" BF_SRC "/include/target/k1om "          \
-+  "-isystem" BF_SRC "/include/ipv4 "                   \
-+  "-isystem" BF_BUILD "/k1om/include "               \
-+  "-isystem" BF_BUILD "/k1om/include/dev"
-+
-+/* Default libraries are specified in 'hake/ArchDefaults.hs' (see 'stdLibs').
-+   Follows the order given by 'libDeps' in '{BF_SRC}/hake/RuleDefs.hs'. */
-+#undef LIB_SPEC
-+#define LIB_SPEC                     \
-+  "-L" BF_BUILD "/k1om/lib "       \
-+  "-lbarrelfish "                    \
-+  "-loctopus_parser "                \
-+  BF_BUILD "/k1om/errors/errno.o " \
-+  "-lnewlib "                        \
-+  "-lposixcompat "                   \
-+  "-lvfs "                           \
-+  "-lahci "                          \
-+  "-lnfs "                           \
-+  "-llwip "                          \
-+  "-lbarrelfish "                    \
-+  "-lnewlib"
-+
-+#undef  STARTFILE_SPEC
-+#define STARTFILE_SPEC                \
-+  BF_BUILD "/k1om/lib/crt0.o%s "    \
-+  BF_BUILD "/k1om/lib/crtbegin.o%s"
-+
-+#undef  ENDFILE_SPEC
-+#define ENDFILE_SPEC                                                \
-+  "%{Ofast|ffast-math|funsafe-math-optimizations:crtfastmath.o%s} " \
-+  "%{mpc32:crtprec32.o%s} "                                         \
-+  "%{mpc64:crtprec64.o%s} "                                         \
-+  "%{mpc80:crtprec80.o%s} "                                         \
-+  BF_BUILD "/k1om/lib/crtend.o%s "                                \
-+  "-lcollections"
-+
-+/* System header files are C++ ready so don't wrap in extern "C". */
-+#undef  NO_IMPLICIT_EXTERN_C
-+#define NO_IMPLICIT_EXTERN_C  1
-diff --git a/gcc/ginclude/stddef.h b/gcc/ginclude/stddef.h
-index b04dd659abd8..4fe4906df44e 100644
---- a/gcc/ginclude/stddef.h
-+++ b/gcc/ginclude/stddef.h
-@@ -198,7 +198,7 @@ typedef __PTRDIFF_TYPE__ ptrdiff_t;
- #define _GCC_SIZE_T
- #define _SIZET_
- #if (defined (__FreeBSD__) && (__FreeBSD__ >= 5)) \
--  || defined(__FreeBSD_kernel__)
-+  || defined(__FreeBSD_kernel__) || defined(__barrelfish__)
- /* __size_t is a typedef on FreeBSD 5, must not trash it. */
- #elif defined (__VMS__)
- /* __size_t is also a typedef on VMS.  */
-diff --git a/gcc/testsuite/g++.dg/dg.exp b/gcc/testsuite/g++.dg/dg.exp
-index 720135942bbf..e65f8891ef1e 100644
---- a/gcc/testsuite/g++.dg/dg.exp
-+++ b/gcc/testsuite/g++.dg/dg.exp
-@@ -31,6 +31,7 @@ dg-init
- # Gather a list of all tests, with the exception of those in directories
- # that are handled specially.
- set tests [lsort [find $srcdir/$subdir *.C]]
-+set tests [prune $tests $srcdir/$subdir/eh/*]
- set tests [prune $tests $srcdir/$subdir/bprob/*]
- set tests [prune $tests $srcdir/$subdir/charset/*]
- set tests [prune $tests $srcdir/$subdir/compat/*]
-diff --git a/libgcc/config.host b/libgcc/config.host
-index 259c9a725f98..609b6a541c4f 100644
---- a/libgcc/config.host
-+++ b/libgcc/config.host
-@@ -199,6 +199,10 @@ case ${host} in
-   tmake_file="$tmake_file t-crtstuff-pic t-libgcc-pic t-eh-dw2-dip t-slibgcc t-slibgcc-gld t-slibgcc-elf-ver t-linux"
-   extra_parts="crtbegin.o crtbeginS.o crtbeginT.o crtend.o crtendS.o"
-   ;;
-+*-*-barrelfish*)
-+  tmake_file="$tmake_file t-crtstuff-pic t-libgcc-pic t-eh-dw2-dip"
-+  extra_parts="crtbegin.o crtend.o"
-+  ;;
- *-*-lynxos*)
-   tmake_file="$tmake_file t-lynx $cpu_type/t-crtstuff t-crtstuff-pic t-libgcc-pic"
-   extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
-@@ -523,6 +527,10 @@ i[34567]86-*-linux*)
-       tmake_file="${tmake_file} i386/t-crtpc i386/t-crtfm i386/t-crtstuff t-dfprules"
-       md_unwind_header=i386/linux-unwind.h
-       ;;
-+i[34567]86-*-barrelfish*)
-+      extra_parts="$extra_parts crtprec32.o crtprec64.o crtprec80.o crtfastmath.o"
-+      tmake_file="${tmake_file} i386/t-crtpc i386/t-crtfm i386/t-crtstuff t-dfprules"
-+      ;;
- i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu)
-       extra_parts="$extra_parts crtprec32.o crtprec64.o crtprec80.o crtfastmath.o"
-       tmake_file="${tmake_file} i386/t-crtpc i386/t-crtfm i386/t-crtstuff t-dfprules"
-@@ -532,6 +544,14 @@ x86_64-*-linux*)
-       tmake_file="${tmake_file} i386/t-crtpc i386/t-crtfm i386/t-crtstuff t-dfprules"
-       md_unwind_header=i386/linux-unwind.h
-       ;;
-+x86_64-k1om-barrelfish*)
-+       extra_parts="$extra_parts crtprec32.o crtprec64.o crtprec80.o crtfastmath.o"
-+       tmake_file="${tmake_file} i386/t-crtpc i386/t-mic-crtfm i386/${host_address}/t-mic-fprules-softfp  i386/t-crtstuff"
-+       ;;
-+x86_64-*-barrelfish*)
-+      extra_parts="$extra_parts crtprec32.o crtprec64.o crtprec80.o crtfastmath.o"
-+      tmake_file="${tmake_file} i386/t-crtpc i386/t-crtfm i386/t-crtstuff t-dfprules"
-+      ;;
- x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu)
-       extra_parts="$extra_parts crtprec32.o crtprec64.o crtprec80.o crtfastmath.o"
-       tmake_file="${tmake_file} i386/t-crtpc i386/t-crtfm i386/t-crtstuff t-dfprules"
-diff --git a/libiberty/clock.c b/libiberty/clock.c
-index 07d902e8a160..4d5817a30cf9 100644
---- a/libiberty/clock.c
-+++ b/libiberty/clock.c
-@@ -66,7 +66,7 @@ number of seconds used.
- /* FIXME: should be able to declare as clock_t. */
--long
-+clock_t
- clock (void)
- {
- #ifdef HAVE_GETRUSAGE
-diff --git a/libiberty/gettimeofday.c b/libiberty/gettimeofday.c
-index fca16794028e..88f2f5ae70d3 100644
---- a/libiberty/gettimeofday.c
-+++ b/libiberty/gettimeofday.c
-@@ -19,7 +19,7 @@ that @var{tz} be NULL.  Returns 0 on success, -1 on failure.
- */ 
- int
--gettimeofday (struct timeval *tp, void *tz)
-+gettimeofday (struct timeval *tp, struct timezone *tz)
- {
-   if (tz)
-     abort ();
-diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure
-index 57452f7fe590..1a1cfd4a6cfa 100755
---- a/libstdc++-v3/configure
-+++ b/libstdc++-v3/configure
-@@ -52461,6 +52461,5983 @@ _ACEOF
-   fi
-     ;;
-+  *-barrelfish*)
-+
-+  # All these tests are for C++; save the language and the compiler flags.
-+  # The CXXFLAGS thing is suspicious, but based on similar bits previously
-+  # found in GLIBCXX_CONFIGURE.
-+
-+  ac_ext=cpp
-+ac_cpp='$CXXCPP $CPPFLAGS'
-+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-+
-+  ac_test_CXXFLAGS="${CXXFLAGS+set}"
-+  ac_save_CXXFLAGS="$CXXFLAGS"
-+
-+  # Check for maintainer-mode bits.
-+  if test x"$USE_MAINTAINER_MODE" = xno; then
-+    WERROR=''
-+  else
-+    WERROR='-Werror'
-+  fi
-+
-+  # Check for -ffunction-sections -fdata-sections
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for g++ that supports -ffunction-sections -fdata-sections" >&5
-+$as_echo_n "checking for g++ that supports -ffunction-sections -fdata-sections... " >&6; }
-+  CXXFLAGS='-g -Werror -ffunction-sections -fdata-sections'
-+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+int foo; void bar() { };
-+int
-+main ()
-+{
-+
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_cxx_try_compile "$LINENO"; then :
-+  ac_fdsections=yes
-+else
-+  ac_fdsections=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+  if test "$ac_test_CXXFLAGS" = set; then
-+    CXXFLAGS="$ac_save_CXXFLAGS"
-+  else
-+    # this is the suspicious part
-+    CXXFLAGS=''
-+  fi
-+  if test x"$ac_fdsections" = x"yes"; then
-+    SECTION_FLAGS='-ffunction-sections -fdata-sections'
-+  fi
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_fdsections" >&5
-+$as_echo "$ac_fdsections" >&6; }
-+
-+  ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+
-+
-+
-+
-+  # If we're not using GNU ld, then there's no point in even trying these
-+  # tests.  Check for that first.  We should have already tested for gld
-+  # by now (in libtool), but require it now just to be safe...
-+  test -z "$SECTION_LDFLAGS" && SECTION_LDFLAGS=''
-+  test -z "$OPT_LDFLAGS" && OPT_LDFLAGS=''
-+
-+
-+
-+  # The name set by libtool depends on the version of libtool.  Shame on us
-+  # for depending on an impl detail, but c'est la vie.  Older versions used
-+  # ac_cv_prog_gnu_ld, but now it's lt_cv_prog_gnu_ld, and is copied back on
-+  # top of with_gnu_ld (which is also set by --with-gnu-ld, so that actually
-+  # makes sense).  We'll test with_gnu_ld everywhere else, so if that isn't
-+  # set (hence we're using an older libtool), then set it.
-+  if test x${with_gnu_ld+set} != xset; then
-+    if test x${ac_cv_prog_gnu_ld+set} != xset; then
-+      # We got through "ac_require(ac_prog_ld)" and still not set?  Huh?
-+      with_gnu_ld=no
-+    else
-+      with_gnu_ld=$ac_cv_prog_gnu_ld
-+    fi
-+  fi
-+
-+  # Start by getting the version number.  I think the libtool test already
-+  # does some of this, but throws away the result.
-+  glibcxx_ld_is_gold=no
-+  if test x"$with_gnu_ld" = x"yes"; then
-+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld version" >&5
-+$as_echo_n "checking for ld version... " >&6; }
-+
-+    if $LD --version 2>/dev/null | grep 'GNU gold' >/dev/null 2>&1; then
-+      glibcxx_ld_is_gold=yes
-+    fi
-+    ldver=`$LD --version 2>/dev/null |
-+         sed -e 's/GNU gold /GNU ld /;s/GNU ld version /GNU ld /;s/GNU ld ([^)]*) /GNU ld /;s/GNU ld \([0-9.][0-9.]*\).*/\1/; q'`
-+
-+    glibcxx_gnu_ld_version=`echo $ldver | \
-+         $AWK -F. '{ if (NF<3) $3=0; print ($1*100+$2)*100+$3 }'`
-+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_gnu_ld_version" >&5
-+$as_echo "$glibcxx_gnu_ld_version" >&6; }
-+  fi
-+
-+  # Set --gc-sections.
-+  glibcxx_have_gc_sections=no
-+  if test "$glibcxx_ld_is_gold" = "yes"; then
-+    if $LD --help 2>/dev/null | grep gc-sections >/dev/null 2>&1; then
-+      glibcxx_have_gc_sections=yes
-+    fi
-+  else
-+    glibcxx_gcsections_min_ld=21602
-+    if test x"$with_gnu_ld" = x"yes" &&
-+      test $glibcxx_gnu_ld_version -gt $glibcxx_gcsections_min_ld ; then
-+      glibcxx_have_gc_sections=yes
-+    fi
-+  fi
-+  if test "$glibcxx_have_gc_sections" = "yes"; then
-+    # Sufficiently young GNU ld it is!  Joy and bunny rabbits!
-+    # NB: This flag only works reliably after 2.16.1. Configure tests
-+    # for this are difficult, so hard wire a value that should work.
-+
-+    ac_test_CFLAGS="${CFLAGS+set}"
-+    ac_save_CFLAGS="$CFLAGS"
-+    CFLAGS='-Wl,--gc-sections'
-+
-+    # Check for -Wl,--gc-sections
-+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld that supports -Wl,--gc-sections" >&5
-+$as_echo_n "checking for ld that supports -Wl,--gc-sections... " >&6; }
-+    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 one(void) { return 1; }
-+     int two(void) { return 2; }
-+
-+int
-+main ()
-+{
-+ two();
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_c_try_link "$LINENO"; then :
-+  ac_gcsections=yes
-+else
-+  ac_gcsections=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext \
-+    conftest$ac_exeext conftest.$ac_ext
-+    if test "$ac_gcsections" = "yes"; then
-+      rm -f conftest.c
-+      touch conftest.c
-+      if $CC -c conftest.c; then
-+      if $LD --gc-sections -o conftest conftest.o 2>&1 | \
-+         grep "Warning: gc-sections option ignored" > /dev/null; then
-+        ac_gcsections=no
-+      fi
-+      fi
-+      rm -f conftest.c conftest.o conftest
-+    fi
-+    if test "$ac_gcsections" = "yes"; then
-+      SECTION_LDFLAGS="-Wl,--gc-sections $SECTION_LDFLAGS"
-+    fi
-+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_gcsections" >&5
-+$as_echo "$ac_gcsections" >&6; }
-+
-+    if test "$ac_test_CFLAGS" = set; then
-+      CFLAGS="$ac_save_CFLAGS"
-+    else
-+      # this is the suspicious part
-+      CFLAGS=''
-+    fi
-+  fi
-+
-+  # Set -z,relro.
-+  # Note this is only for shared objects.
-+  ac_ld_relro=no
-+  if test x"$with_gnu_ld" = x"yes"; then
-+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld that supports -Wl,-z,relro" >&5
-+$as_echo_n "checking for ld that supports -Wl,-z,relro... " >&6; }
-+    cxx_z_relo=`$LD -v --help 2>/dev/null | grep "z relro"`
-+    if test -n "$cxx_z_relo"; then
-+      OPT_LDFLAGS="-Wl,-z,relro"
-+      ac_ld_relro=yes
-+    fi
-+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ld_relro" >&5
-+$as_echo "$ac_ld_relro" >&6; }
-+  fi
-+
-+  # Set linker optimization flags.
-+  if test x"$with_gnu_ld" = x"yes"; then
-+    OPT_LDFLAGS="-Wl,-O1 $OPT_LDFLAGS"
-+  fi
-+
-+
-+
-+
-+
-+  ac_test_CXXFLAGS="${CXXFLAGS+set}"
-+  ac_save_CXXFLAGS="$CXXFLAGS"
-+  CXXFLAGS='-fno-builtin -D_GNU_SOURCE'
-+
-+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sin in -lm" >&5
-+$as_echo_n "checking for sin in -lm... " >&6; }
-+if test "${ac_cv_lib_m_sin+set}" = set; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  ac_check_lib_save_LIBS=$LIBS
-+LIBS="-lm  $LIBS"
-+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.  */
-+
-+/* Override any GCC internal prototype to avoid an error.
-+   Use char because int might match the return type of a GCC
-+   builtin and then its argument prototype would still apply.  */
-+#ifdef __cplusplus
-+extern "C"
-+#endif
-+char sin ();
-+int
-+main ()
-+{
-+return sin ();
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_c_try_link "$LINENO"; then :
-+  ac_cv_lib_m_sin=yes
-+else
-+  ac_cv_lib_m_sin=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext \
-+    conftest$ac_exeext conftest.$ac_ext
-+LIBS=$ac_check_lib_save_LIBS
-+fi
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_m_sin" >&5
-+$as_echo "$ac_cv_lib_m_sin" >&6; }
-+if test "x$ac_cv_lib_m_sin" = x""yes; then :
-+  libm="-lm"
-+fi
-+
-+  ac_save_LIBS="$LIBS"
-+  LIBS="$LIBS $libm"
-+
-+
-+
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for isinf declaration" >&5
-+$as_echo_n "checking for isinf declaration... " >&6; }
-+  if test x${glibcxx_cv_func_isinf_use+set} != xset; then
-+    if test "${glibcxx_cv_func_isinf_use+set}" = set; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+
-+
-+      ac_ext=cpp
-+ac_cpp='$CXXCPP $CPPFLAGS'
-+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-+
-+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <math.h>
-+                    #ifdef HAVE_IEEEFP_H
-+                    #include <ieeefp.h>
-+                    #endif
-+
-+int
-+main ()
-+{
-+ isinf(0);
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_cxx_try_compile "$LINENO"; then :
-+  glibcxx_cv_func_isinf_use=yes
-+else
-+  glibcxx_cv_func_isinf_use=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+      ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+
-+fi
-+
-+  fi
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func_isinf_use" >&5
-+$as_echo "$glibcxx_cv_func_isinf_use" >&6; }
-+
-+  if test x$glibcxx_cv_func_isinf_use = x"yes"; then
-+    for ac_func in isinf
-+do :
-+  ac_fn_c_check_func "$LINENO" "isinf" "ac_cv_func_isinf"
-+if test "x$ac_cv_func_isinf" = x""yes; then :
-+  cat >>confdefs.h <<_ACEOF
-+#define HAVE_ISINF 1
-+_ACEOF
-+
-+fi
-+done
-+
-+  else
-+
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _isinf declaration" >&5
-+$as_echo_n "checking for _isinf declaration... " >&6; }
-+  if test x${glibcxx_cv_func__isinf_use+set} != xset; then
-+    if test "${glibcxx_cv_func__isinf_use+set}" = set; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+
-+
-+      ac_ext=cpp
-+ac_cpp='$CXXCPP $CPPFLAGS'
-+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-+
-+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <math.h>
-+                    #ifdef HAVE_IEEEFP_H
-+                    #include <ieeefp.h>
-+                    #endif
-+
-+int
-+main ()
-+{
-+ _isinf(0);
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_cxx_try_compile "$LINENO"; then :
-+  glibcxx_cv_func__isinf_use=yes
-+else
-+  glibcxx_cv_func__isinf_use=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+      ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+
-+fi
-+
-+  fi
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func__isinf_use" >&5
-+$as_echo "$glibcxx_cv_func__isinf_use" >&6; }
-+
-+    if test x$glibcxx_cv_func__isinf_use = x"yes"; then
-+      for ac_func in _isinf
-+do :
-+  ac_fn_c_check_func "$LINENO" "_isinf" "ac_cv_func__isinf"
-+if test "x$ac_cv_func__isinf" = x""yes; then :
-+  cat >>confdefs.h <<_ACEOF
-+#define HAVE__ISINF 1
-+_ACEOF
-+
-+fi
-+done
-+
-+    fi
-+  fi
-+
-+
-+
-+
-+
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for isnan declaration" >&5
-+$as_echo_n "checking for isnan declaration... " >&6; }
-+  if test x${glibcxx_cv_func_isnan_use+set} != xset; then
-+    if test "${glibcxx_cv_func_isnan_use+set}" = set; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+
-+
-+      ac_ext=cpp
-+ac_cpp='$CXXCPP $CPPFLAGS'
-+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-+
-+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <math.h>
-+                    #ifdef HAVE_IEEEFP_H
-+                    #include <ieeefp.h>
-+                    #endif
-+
-+int
-+main ()
-+{
-+ isnan(0);
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_cxx_try_compile "$LINENO"; then :
-+  glibcxx_cv_func_isnan_use=yes
-+else
-+  glibcxx_cv_func_isnan_use=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+      ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+
-+fi
-+
-+  fi
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func_isnan_use" >&5
-+$as_echo "$glibcxx_cv_func_isnan_use" >&6; }
-+
-+  if test x$glibcxx_cv_func_isnan_use = x"yes"; then
-+    for ac_func in isnan
-+do :
-+  ac_fn_c_check_func "$LINENO" "isnan" "ac_cv_func_isnan"
-+if test "x$ac_cv_func_isnan" = x""yes; then :
-+  cat >>confdefs.h <<_ACEOF
-+#define HAVE_ISNAN 1
-+_ACEOF
-+
-+fi
-+done
-+
-+  else
-+
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _isnan declaration" >&5
-+$as_echo_n "checking for _isnan declaration... " >&6; }
-+  if test x${glibcxx_cv_func__isnan_use+set} != xset; then
-+    if test "${glibcxx_cv_func__isnan_use+set}" = set; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+
-+
-+      ac_ext=cpp
-+ac_cpp='$CXXCPP $CPPFLAGS'
-+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-+
-+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <math.h>
-+                    #ifdef HAVE_IEEEFP_H
-+                    #include <ieeefp.h>
-+                    #endif
-+
-+int
-+main ()
-+{
-+ _isnan(0);
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_cxx_try_compile "$LINENO"; then :
-+  glibcxx_cv_func__isnan_use=yes
-+else
-+  glibcxx_cv_func__isnan_use=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+      ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+
-+fi
-+
-+  fi
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func__isnan_use" >&5
-+$as_echo "$glibcxx_cv_func__isnan_use" >&6; }
-+
-+    if test x$glibcxx_cv_func__isnan_use = x"yes"; then
-+      for ac_func in _isnan
-+do :
-+  ac_fn_c_check_func "$LINENO" "_isnan" "ac_cv_func__isnan"
-+if test "x$ac_cv_func__isnan" = x""yes; then :
-+  cat >>confdefs.h <<_ACEOF
-+#define HAVE__ISNAN 1
-+_ACEOF
-+
-+fi
-+done
-+
-+    fi
-+  fi
-+
-+
-+
-+
-+
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for finite declaration" >&5
-+$as_echo_n "checking for finite declaration... " >&6; }
-+  if test x${glibcxx_cv_func_finite_use+set} != xset; then
-+    if test "${glibcxx_cv_func_finite_use+set}" = set; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+
-+
-+      ac_ext=cpp
-+ac_cpp='$CXXCPP $CPPFLAGS'
-+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-+
-+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <math.h>
-+                    #ifdef HAVE_IEEEFP_H
-+                    #include <ieeefp.h>
-+                    #endif
-+
-+int
-+main ()
-+{
-+ finite(0);
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_cxx_try_compile "$LINENO"; then :
-+  glibcxx_cv_func_finite_use=yes
-+else
-+  glibcxx_cv_func_finite_use=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+      ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+
-+fi
-+
-+  fi
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func_finite_use" >&5
-+$as_echo "$glibcxx_cv_func_finite_use" >&6; }
-+
-+  if test x$glibcxx_cv_func_finite_use = x"yes"; then
-+    for ac_func in finite
-+do :
-+  ac_fn_c_check_func "$LINENO" "finite" "ac_cv_func_finite"
-+if test "x$ac_cv_func_finite" = x""yes; then :
-+  cat >>confdefs.h <<_ACEOF
-+#define HAVE_FINITE 1
-+_ACEOF
-+
-+fi
-+done
-+
-+  else
-+
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _finite declaration" >&5
-+$as_echo_n "checking for _finite declaration... " >&6; }
-+  if test x${glibcxx_cv_func__finite_use+set} != xset; then
-+    if test "${glibcxx_cv_func__finite_use+set}" = set; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+
-+
-+      ac_ext=cpp
-+ac_cpp='$CXXCPP $CPPFLAGS'
-+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-+
-+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <math.h>
-+                    #ifdef HAVE_IEEEFP_H
-+                    #include <ieeefp.h>
-+                    #endif
-+
-+int
-+main ()
-+{
-+ _finite(0);
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_cxx_try_compile "$LINENO"; then :
-+  glibcxx_cv_func__finite_use=yes
-+else
-+  glibcxx_cv_func__finite_use=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+      ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+
-+fi
-+
-+  fi
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func__finite_use" >&5
-+$as_echo "$glibcxx_cv_func__finite_use" >&6; }
-+
-+    if test x$glibcxx_cv_func__finite_use = x"yes"; then
-+      for ac_func in _finite
-+do :
-+  ac_fn_c_check_func "$LINENO" "_finite" "ac_cv_func__finite"
-+if test "x$ac_cv_func__finite" = x""yes; then :
-+  cat >>confdefs.h <<_ACEOF
-+#define HAVE__FINITE 1
-+_ACEOF
-+
-+fi
-+done
-+
-+    fi
-+  fi
-+
-+
-+
-+
-+
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sincos declaration" >&5
-+$as_echo_n "checking for sincos declaration... " >&6; }
-+  if test x${glibcxx_cv_func_sincos_use+set} != xset; then
-+    if test "${glibcxx_cv_func_sincos_use+set}" = set; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+
-+
-+      ac_ext=cpp
-+ac_cpp='$CXXCPP $CPPFLAGS'
-+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-+
-+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <math.h>
-+int
-+main ()
-+{
-+ sincos(0, 0, 0);
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_cxx_try_compile "$LINENO"; then :
-+  glibcxx_cv_func_sincos_use=yes
-+else
-+  glibcxx_cv_func_sincos_use=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+      ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+
-+fi
-+
-+  fi
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func_sincos_use" >&5
-+$as_echo "$glibcxx_cv_func_sincos_use" >&6; }
-+
-+  if test x$glibcxx_cv_func_sincos_use = x"yes"; then
-+    for ac_func in sincos
-+do :
-+  ac_fn_c_check_func "$LINENO" "sincos" "ac_cv_func_sincos"
-+if test "x$ac_cv_func_sincos" = x""yes; then :
-+  cat >>confdefs.h <<_ACEOF
-+#define HAVE_SINCOS 1
-+_ACEOF
-+
-+fi
-+done
-+
-+  else
-+
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _sincos declaration" >&5
-+$as_echo_n "checking for _sincos declaration... " >&6; }
-+  if test x${glibcxx_cv_func__sincos_use+set} != xset; then
-+    if test "${glibcxx_cv_func__sincos_use+set}" = set; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+
-+
-+      ac_ext=cpp
-+ac_cpp='$CXXCPP $CPPFLAGS'
-+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-+
-+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <math.h>
-+int
-+main ()
-+{
-+ _sincos(0, 0, 0);
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_cxx_try_compile "$LINENO"; then :
-+  glibcxx_cv_func__sincos_use=yes
-+else
-+  glibcxx_cv_func__sincos_use=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+      ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+
-+fi
-+
-+  fi
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func__sincos_use" >&5
-+$as_echo "$glibcxx_cv_func__sincos_use" >&6; }
-+
-+    if test x$glibcxx_cv_func__sincos_use = x"yes"; then
-+      for ac_func in _sincos
-+do :
-+  ac_fn_c_check_func "$LINENO" "_sincos" "ac_cv_func__sincos"
-+if test "x$ac_cv_func__sincos" = x""yes; then :
-+  cat >>confdefs.h <<_ACEOF
-+#define HAVE__SINCOS 1
-+_ACEOF
-+
-+fi
-+done
-+
-+    fi
-+  fi
-+
-+
-+
-+
-+
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fpclass declaration" >&5
-+$as_echo_n "checking for fpclass declaration... " >&6; }
-+  if test x${glibcxx_cv_func_fpclass_use+set} != xset; then
-+    if test "${glibcxx_cv_func_fpclass_use+set}" = set; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+
-+
-+      ac_ext=cpp
-+ac_cpp='$CXXCPP $CPPFLAGS'
-+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-+
-+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <math.h>
-+                    #ifdef HAVE_IEEEFP_H
-+                    #include <ieeefp.h>
-+                    #endif
-+
-+int
-+main ()
-+{
-+ fpclass(0);
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_cxx_try_compile "$LINENO"; then :
-+  glibcxx_cv_func_fpclass_use=yes
-+else
-+  glibcxx_cv_func_fpclass_use=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+      ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+
-+fi
-+
-+  fi
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func_fpclass_use" >&5
-+$as_echo "$glibcxx_cv_func_fpclass_use" >&6; }
-+
-+  if test x$glibcxx_cv_func_fpclass_use = x"yes"; then
-+    for ac_func in fpclass
-+do :
-+  ac_fn_c_check_func "$LINENO" "fpclass" "ac_cv_func_fpclass"
-+if test "x$ac_cv_func_fpclass" = x""yes; then :
-+  cat >>confdefs.h <<_ACEOF
-+#define HAVE_FPCLASS 1
-+_ACEOF
-+
-+fi
-+done
-+
-+  else
-+
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _fpclass declaration" >&5
-+$as_echo_n "checking for _fpclass declaration... " >&6; }
-+  if test x${glibcxx_cv_func__fpclass_use+set} != xset; then
-+    if test "${glibcxx_cv_func__fpclass_use+set}" = set; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+
-+
-+      ac_ext=cpp
-+ac_cpp='$CXXCPP $CPPFLAGS'
-+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-+
-+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <math.h>
-+                    #ifdef HAVE_IEEEFP_H
-+                    #include <ieeefp.h>
-+                    #endif
-+
-+int
-+main ()
-+{
-+ _fpclass(0);
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_cxx_try_compile "$LINENO"; then :
-+  glibcxx_cv_func__fpclass_use=yes
-+else
-+  glibcxx_cv_func__fpclass_use=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+      ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+
-+fi
-+
-+  fi
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func__fpclass_use" >&5
-+$as_echo "$glibcxx_cv_func__fpclass_use" >&6; }
-+
-+    if test x$glibcxx_cv_func__fpclass_use = x"yes"; then
-+      for ac_func in _fpclass
-+do :
-+  ac_fn_c_check_func "$LINENO" "_fpclass" "ac_cv_func__fpclass"
-+if test "x$ac_cv_func__fpclass" = x""yes; then :
-+  cat >>confdefs.h <<_ACEOF
-+#define HAVE__FPCLASS 1
-+_ACEOF
-+
-+fi
-+done
-+
-+    fi
-+  fi
-+
-+
-+
-+
-+
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for qfpclass declaration" >&5
-+$as_echo_n "checking for qfpclass declaration... " >&6; }
-+  if test x${glibcxx_cv_func_qfpclass_use+set} != xset; then
-+    if test "${glibcxx_cv_func_qfpclass_use+set}" = set; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+
-+
-+      ac_ext=cpp
-+ac_cpp='$CXXCPP $CPPFLAGS'
-+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-+
-+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <math.h>
-+                    #ifdef HAVE_IEEEFP_H
-+                    #include <ieeefp.h>
-+                    #endif
-+
-+int
-+main ()
-+{
-+ qfpclass(0);
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_cxx_try_compile "$LINENO"; then :
-+  glibcxx_cv_func_qfpclass_use=yes
-+else
-+  glibcxx_cv_func_qfpclass_use=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+      ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+
-+fi
-+
-+  fi
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func_qfpclass_use" >&5
-+$as_echo "$glibcxx_cv_func_qfpclass_use" >&6; }
-+
-+  if test x$glibcxx_cv_func_qfpclass_use = x"yes"; then
-+    for ac_func in qfpclass
-+do :
-+  ac_fn_c_check_func "$LINENO" "qfpclass" "ac_cv_func_qfpclass"
-+if test "x$ac_cv_func_qfpclass" = x""yes; then :
-+  cat >>confdefs.h <<_ACEOF
-+#define HAVE_QFPCLASS 1
-+_ACEOF
-+
-+fi
-+done
-+
-+  else
-+
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _qfpclass declaration" >&5
-+$as_echo_n "checking for _qfpclass declaration... " >&6; }
-+  if test x${glibcxx_cv_func__qfpclass_use+set} != xset; then
-+    if test "${glibcxx_cv_func__qfpclass_use+set}" = set; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+
-+
-+      ac_ext=cpp
-+ac_cpp='$CXXCPP $CPPFLAGS'
-+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-+
-+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <math.h>
-+                    #ifdef HAVE_IEEEFP_H
-+                    #include <ieeefp.h>
-+                    #endif
-+
-+int
-+main ()
-+{
-+ _qfpclass(0);
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_cxx_try_compile "$LINENO"; then :
-+  glibcxx_cv_func__qfpclass_use=yes
-+else
-+  glibcxx_cv_func__qfpclass_use=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+      ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+
-+fi
-+
-+  fi
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func__qfpclass_use" >&5
-+$as_echo "$glibcxx_cv_func__qfpclass_use" >&6; }
-+
-+    if test x$glibcxx_cv_func__qfpclass_use = x"yes"; then
-+      for ac_func in _qfpclass
-+do :
-+  ac_fn_c_check_func "$LINENO" "_qfpclass" "ac_cv_func__qfpclass"
-+if test "x$ac_cv_func__qfpclass" = x""yes; then :
-+  cat >>confdefs.h <<_ACEOF
-+#define HAVE__QFPCLASS 1
-+_ACEOF
-+
-+fi
-+done
-+
-+    fi
-+  fi
-+
-+
-+
-+
-+
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for hypot declaration" >&5
-+$as_echo_n "checking for hypot declaration... " >&6; }
-+  if test x${glibcxx_cv_func_hypot_use+set} != xset; then
-+    if test "${glibcxx_cv_func_hypot_use+set}" = set; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+
-+
-+      ac_ext=cpp
-+ac_cpp='$CXXCPP $CPPFLAGS'
-+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-+
-+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <math.h>
-+int
-+main ()
-+{
-+ hypot(0, 0);
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_cxx_try_compile "$LINENO"; then :
-+  glibcxx_cv_func_hypot_use=yes
-+else
-+  glibcxx_cv_func_hypot_use=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+      ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+
-+fi
-+
-+  fi
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func_hypot_use" >&5
-+$as_echo "$glibcxx_cv_func_hypot_use" >&6; }
-+
-+  if test x$glibcxx_cv_func_hypot_use = x"yes"; then
-+    for ac_func in hypot
-+do :
-+  ac_fn_c_check_func "$LINENO" "hypot" "ac_cv_func_hypot"
-+if test "x$ac_cv_func_hypot" = x""yes; then :
-+  cat >>confdefs.h <<_ACEOF
-+#define HAVE_HYPOT 1
-+_ACEOF
-+
-+fi
-+done
-+
-+  else
-+
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _hypot declaration" >&5
-+$as_echo_n "checking for _hypot declaration... " >&6; }
-+  if test x${glibcxx_cv_func__hypot_use+set} != xset; then
-+    if test "${glibcxx_cv_func__hypot_use+set}" = set; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+
-+
-+      ac_ext=cpp
-+ac_cpp='$CXXCPP $CPPFLAGS'
-+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-+
-+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <math.h>
-+int
-+main ()
-+{
-+ _hypot(0, 0);
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_cxx_try_compile "$LINENO"; then :
-+  glibcxx_cv_func__hypot_use=yes
-+else
-+  glibcxx_cv_func__hypot_use=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+      ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+
-+fi
-+
-+  fi
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func__hypot_use" >&5
-+$as_echo "$glibcxx_cv_func__hypot_use" >&6; }
-+
-+    if test x$glibcxx_cv_func__hypot_use = x"yes"; then
-+      for ac_func in _hypot
-+do :
-+  ac_fn_c_check_func "$LINENO" "_hypot" "ac_cv_func__hypot"
-+if test "x$ac_cv_func__hypot" = x""yes; then :
-+  cat >>confdefs.h <<_ACEOF
-+#define HAVE__HYPOT 1
-+_ACEOF
-+
-+fi
-+done
-+
-+    fi
-+  fi
-+
-+
-+
-+
-+
-+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for float trig functions" >&5
-+$as_echo_n "checking for float trig functions... " >&6; }
-+  if test "${glibcxx_cv_func_float_trig_use+set}" = set; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+
-+
-+    ac_ext=cpp
-+ac_cpp='$CXXCPP $CPPFLAGS'
-+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-+
-+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <math.h>
-+int
-+main ()
-+{
-+acosf (0); asinf (0); atanf (0); cosf (0); sinf (0); tanf (0); coshf (0); sinhf (0); tanhf (0);
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_cxx_try_compile "$LINENO"; then :
-+  glibcxx_cv_func_float_trig_use=yes
-+else
-+  glibcxx_cv_func_float_trig_use=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+    ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+fi
-+
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func_float_trig_use" >&5
-+$as_echo "$glibcxx_cv_func_float_trig_use" >&6; }
-+  if test x$glibcxx_cv_func_float_trig_use = x"yes"; then
-+    for ac_func in acosf asinf atanf cosf sinf tanf coshf sinhf tanhf
-+do :
-+  as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
-+eval as_val=\$$as_ac_var
-+   if test "x$as_val" = x""yes; then :
-+  cat >>confdefs.h <<_ACEOF
-+#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
-+_ACEOF
-+
-+fi
-+done
-+
-+  else
-+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _float trig functions" >&5
-+$as_echo_n "checking for _float trig functions... " >&6; }
-+    if test "${glibcxx_cv_func__float_trig_use+set}" = set; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+
-+
-+      ac_ext=cpp
-+ac_cpp='$CXXCPP $CPPFLAGS'
-+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-+
-+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <math.h>
-+int
-+main ()
-+{
-+_acosf (0); _asinf (0); _atanf (0); _cosf (0); _sinf (0); _tanf (0); _coshf (0); _sinhf (0); _tanhf (0);
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_cxx_try_compile "$LINENO"; then :
-+  glibcxx_cv_func__float_trig_use=yes
-+else
-+  glibcxx_cv_func__float_trig_use=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+      ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+fi
-+
-+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func__float_trig_use" >&5
-+$as_echo "$glibcxx_cv_func__float_trig_use" >&6; }
-+    if test x$glibcxx_cv_func__float_trig_use = x"yes"; then
-+      for ac_func in _acosf _asinf _atanf _cosf _sinf _tanf _coshf _sinhf _tanhf
-+do :
-+  as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
-+eval as_val=\$$as_ac_var
-+   if test "x$as_val" = x""yes; then :
-+  cat >>confdefs.h <<_ACEOF
-+#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
-+_ACEOF
-+
-+fi
-+done
-+
-+    fi
-+  fi
-+
-+
-+
-+
-+
-+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for float round functions" >&5
-+$as_echo_n "checking for float round functions... " >&6; }
-+  if test "${glibcxx_cv_func_float_round_use+set}" = set; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+
-+
-+    ac_ext=cpp
-+ac_cpp='$CXXCPP $CPPFLAGS'
-+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-+
-+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <math.h>
-+int
-+main ()
-+{
-+ceilf (0); floorf (0);
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_cxx_try_compile "$LINENO"; then :
-+  glibcxx_cv_func_float_round_use=yes
-+else
-+  glibcxx_cv_func_float_round_use=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+    ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+fi
-+
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func_float_round_use" >&5
-+$as_echo "$glibcxx_cv_func_float_round_use" >&6; }
-+  if test x$glibcxx_cv_func_float_round_use = x"yes"; then
-+    for ac_func in ceilf floorf
-+do :
-+  as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
-+eval as_val=\$$as_ac_var
-+   if test "x$as_val" = x""yes; then :
-+  cat >>confdefs.h <<_ACEOF
-+#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
-+_ACEOF
-+
-+fi
-+done
-+
-+  else
-+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _float round functions" >&5
-+$as_echo_n "checking for _float round functions... " >&6; }
-+    if test "${glibcxx_cv_func__float_round_use+set}" = set; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+
-+
-+      ac_ext=cpp
-+ac_cpp='$CXXCPP $CPPFLAGS'
-+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-+
-+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <math.h>
-+int
-+main ()
-+{
-+_ceilf (0); _floorf (0);
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_cxx_try_compile "$LINENO"; then :
-+  glibcxx_cv_func__float_round_use=yes
-+else
-+  glibcxx_cv_func__float_round_use=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+      ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+fi
-+
-+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func__float_round_use" >&5
-+$as_echo "$glibcxx_cv_func__float_round_use" >&6; }
-+    if test x$glibcxx_cv_func__float_round_use = x"yes"; then
-+      for ac_func in _ceilf _floorf
-+do :
-+  as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
-+eval as_val=\$$as_ac_var
-+   if test "x$as_val" = x""yes; then :
-+  cat >>confdefs.h <<_ACEOF
-+#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
-+_ACEOF
-+
-+fi
-+done
-+
-+    fi
-+  fi
-+
-+
-+
-+
-+
-+
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for expf declaration" >&5
-+$as_echo_n "checking for expf declaration... " >&6; }
-+  if test x${glibcxx_cv_func_expf_use+set} != xset; then
-+    if test "${glibcxx_cv_func_expf_use+set}" = set; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+
-+
-+      ac_ext=cpp
-+ac_cpp='$CXXCPP $CPPFLAGS'
-+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-+
-+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <math.h>
-+                    #ifdef HAVE_IEEEFP_H
-+                    #include <ieeefp.h>
-+                    #endif
-+
-+int
-+main ()
-+{
-+ expf(0);
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_cxx_try_compile "$LINENO"; then :
-+  glibcxx_cv_func_expf_use=yes
-+else
-+  glibcxx_cv_func_expf_use=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+      ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+
-+fi
-+
-+  fi
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func_expf_use" >&5
-+$as_echo "$glibcxx_cv_func_expf_use" >&6; }
-+
-+  if test x$glibcxx_cv_func_expf_use = x"yes"; then
-+    for ac_func in expf
-+do :
-+  ac_fn_c_check_func "$LINENO" "expf" "ac_cv_func_expf"
-+if test "x$ac_cv_func_expf" = x""yes; then :
-+  cat >>confdefs.h <<_ACEOF
-+#define HAVE_EXPF 1
-+_ACEOF
-+
-+fi
-+done
-+
-+  else
-+
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _expf declaration" >&5
-+$as_echo_n "checking for _expf declaration... " >&6; }
-+  if test x${glibcxx_cv_func__expf_use+set} != xset; then
-+    if test "${glibcxx_cv_func__expf_use+set}" = set; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+
-+
-+      ac_ext=cpp
-+ac_cpp='$CXXCPP $CPPFLAGS'
-+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-+
-+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <math.h>
-+                    #ifdef HAVE_IEEEFP_H
-+                    #include <ieeefp.h>
-+                    #endif
-+
-+int
-+main ()
-+{
-+ _expf(0);
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_cxx_try_compile "$LINENO"; then :
-+  glibcxx_cv_func__expf_use=yes
-+else
-+  glibcxx_cv_func__expf_use=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+      ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+
-+fi
-+
-+  fi
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func__expf_use" >&5
-+$as_echo "$glibcxx_cv_func__expf_use" >&6; }
-+
-+    if test x$glibcxx_cv_func__expf_use = x"yes"; then
-+      for ac_func in _expf
-+do :
-+  ac_fn_c_check_func "$LINENO" "_expf" "ac_cv_func__expf"
-+if test "x$ac_cv_func__expf" = x""yes; then :
-+  cat >>confdefs.h <<_ACEOF
-+#define HAVE__EXPF 1
-+_ACEOF
-+
-+fi
-+done
-+
-+    fi
-+  fi
-+
-+
-+
-+
-+
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for isnanf declaration" >&5
-+$as_echo_n "checking for isnanf declaration... " >&6; }
-+  if test x${glibcxx_cv_func_isnanf_use+set} != xset; then
-+    if test "${glibcxx_cv_func_isnanf_use+set}" = set; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+
-+
-+      ac_ext=cpp
-+ac_cpp='$CXXCPP $CPPFLAGS'
-+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-+
-+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <math.h>
-+                    #ifdef HAVE_IEEEFP_H
-+                    #include <ieeefp.h>
-+                    #endif
-+
-+int
-+main ()
-+{
-+ isnanf(0);
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_cxx_try_compile "$LINENO"; then :
-+  glibcxx_cv_func_isnanf_use=yes
-+else
-+  glibcxx_cv_func_isnanf_use=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+      ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+
-+fi
-+
-+  fi
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func_isnanf_use" >&5
-+$as_echo "$glibcxx_cv_func_isnanf_use" >&6; }
-+
-+  if test x$glibcxx_cv_func_isnanf_use = x"yes"; then
-+    for ac_func in isnanf
-+do :
-+  ac_fn_c_check_func "$LINENO" "isnanf" "ac_cv_func_isnanf"
-+if test "x$ac_cv_func_isnanf" = x""yes; then :
-+  cat >>confdefs.h <<_ACEOF
-+#define HAVE_ISNANF 1
-+_ACEOF
-+
-+fi
-+done
-+
-+  else
-+
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _isnanf declaration" >&5
-+$as_echo_n "checking for _isnanf declaration... " >&6; }
-+  if test x${glibcxx_cv_func__isnanf_use+set} != xset; then
-+    if test "${glibcxx_cv_func__isnanf_use+set}" = set; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+
-+
-+      ac_ext=cpp
-+ac_cpp='$CXXCPP $CPPFLAGS'
-+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-+
-+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <math.h>
-+                    #ifdef HAVE_IEEEFP_H
-+                    #include <ieeefp.h>
-+                    #endif
-+
-+int
-+main ()
-+{
-+ _isnanf(0);
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_cxx_try_compile "$LINENO"; then :
-+  glibcxx_cv_func__isnanf_use=yes
-+else
-+  glibcxx_cv_func__isnanf_use=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+      ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+
-+fi
-+
-+  fi
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func__isnanf_use" >&5
-+$as_echo "$glibcxx_cv_func__isnanf_use" >&6; }
-+
-+    if test x$glibcxx_cv_func__isnanf_use = x"yes"; then
-+      for ac_func in _isnanf
-+do :
-+  ac_fn_c_check_func "$LINENO" "_isnanf" "ac_cv_func__isnanf"
-+if test "x$ac_cv_func__isnanf" = x""yes; then :
-+  cat >>confdefs.h <<_ACEOF
-+#define HAVE__ISNANF 1
-+_ACEOF
-+
-+fi
-+done
-+
-+    fi
-+  fi
-+
-+
-+
-+
-+
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for isinff declaration" >&5
-+$as_echo_n "checking for isinff declaration... " >&6; }
-+  if test x${glibcxx_cv_func_isinff_use+set} != xset; then
-+    if test "${glibcxx_cv_func_isinff_use+set}" = set; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+
-+
-+      ac_ext=cpp
-+ac_cpp='$CXXCPP $CPPFLAGS'
-+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-+
-+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <math.h>
-+                    #ifdef HAVE_IEEEFP_H
-+                    #include <ieeefp.h>
-+                    #endif
-+
-+int
-+main ()
-+{
-+ isinff(0);
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_cxx_try_compile "$LINENO"; then :
-+  glibcxx_cv_func_isinff_use=yes
-+else
-+  glibcxx_cv_func_isinff_use=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+      ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+
-+fi
-+
-+  fi
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func_isinff_use" >&5
-+$as_echo "$glibcxx_cv_func_isinff_use" >&6; }
-+
-+  if test x$glibcxx_cv_func_isinff_use = x"yes"; then
-+    for ac_func in isinff
-+do :
-+  ac_fn_c_check_func "$LINENO" "isinff" "ac_cv_func_isinff"
-+if test "x$ac_cv_func_isinff" = x""yes; then :
-+  cat >>confdefs.h <<_ACEOF
-+#define HAVE_ISINFF 1
-+_ACEOF
-+
-+fi
-+done
-+
-+  else
-+
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _isinff declaration" >&5
-+$as_echo_n "checking for _isinff declaration... " >&6; }
-+  if test x${glibcxx_cv_func__isinff_use+set} != xset; then
-+    if test "${glibcxx_cv_func__isinff_use+set}" = set; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+
-+
-+      ac_ext=cpp
-+ac_cpp='$CXXCPP $CPPFLAGS'
-+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-+
-+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <math.h>
-+                    #ifdef HAVE_IEEEFP_H
-+                    #include <ieeefp.h>
-+                    #endif
-+
-+int
-+main ()
-+{
-+ _isinff(0);
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_cxx_try_compile "$LINENO"; then :
-+  glibcxx_cv_func__isinff_use=yes
-+else
-+  glibcxx_cv_func__isinff_use=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+      ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+
-+fi
-+
-+  fi
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func__isinff_use" >&5
-+$as_echo "$glibcxx_cv_func__isinff_use" >&6; }
-+
-+    if test x$glibcxx_cv_func__isinff_use = x"yes"; then
-+      for ac_func in _isinff
-+do :
-+  ac_fn_c_check_func "$LINENO" "_isinff" "ac_cv_func__isinff"
-+if test "x$ac_cv_func__isinff" = x""yes; then :
-+  cat >>confdefs.h <<_ACEOF
-+#define HAVE__ISINFF 1
-+_ACEOF
-+
-+fi
-+done
-+
-+    fi
-+  fi
-+
-+
-+
-+
-+
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for atan2f declaration" >&5
-+$as_echo_n "checking for atan2f declaration... " >&6; }
-+  if test x${glibcxx_cv_func_atan2f_use+set} != xset; then
-+    if test "${glibcxx_cv_func_atan2f_use+set}" = set; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+
-+
-+      ac_ext=cpp
-+ac_cpp='$CXXCPP $CPPFLAGS'
-+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-+
-+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <math.h>
-+int
-+main ()
-+{
-+ atan2f(0, 0);
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_cxx_try_compile "$LINENO"; then :
-+  glibcxx_cv_func_atan2f_use=yes
-+else
-+  glibcxx_cv_func_atan2f_use=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+      ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+
-+fi
-+
-+  fi
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func_atan2f_use" >&5
-+$as_echo "$glibcxx_cv_func_atan2f_use" >&6; }
-+
-+  if test x$glibcxx_cv_func_atan2f_use = x"yes"; then
-+    for ac_func in atan2f
-+do :
-+  ac_fn_c_check_func "$LINENO" "atan2f" "ac_cv_func_atan2f"
-+if test "x$ac_cv_func_atan2f" = x""yes; then :
-+  cat >>confdefs.h <<_ACEOF
-+#define HAVE_ATAN2F 1
-+_ACEOF
-+
-+fi
-+done
-+
-+  else
-+
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _atan2f declaration" >&5
-+$as_echo_n "checking for _atan2f declaration... " >&6; }
-+  if test x${glibcxx_cv_func__atan2f_use+set} != xset; then
-+    if test "${glibcxx_cv_func__atan2f_use+set}" = set; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+
-+
-+      ac_ext=cpp
-+ac_cpp='$CXXCPP $CPPFLAGS'
-+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-+
-+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <math.h>
-+int
-+main ()
-+{
-+ _atan2f(0, 0);
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_cxx_try_compile "$LINENO"; then :
-+  glibcxx_cv_func__atan2f_use=yes
-+else
-+  glibcxx_cv_func__atan2f_use=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+      ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+
-+fi
-+
-+  fi
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func__atan2f_use" >&5
-+$as_echo "$glibcxx_cv_func__atan2f_use" >&6; }
-+
-+    if test x$glibcxx_cv_func__atan2f_use = x"yes"; then
-+      for ac_func in _atan2f
-+do :
-+  ac_fn_c_check_func "$LINENO" "_atan2f" "ac_cv_func__atan2f"
-+if test "x$ac_cv_func__atan2f" = x""yes; then :
-+  cat >>confdefs.h <<_ACEOF
-+#define HAVE__ATAN2F 1
-+_ACEOF
-+
-+fi
-+done
-+
-+    fi
-+  fi
-+
-+
-+
-+
-+
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fabsf declaration" >&5
-+$as_echo_n "checking for fabsf declaration... " >&6; }
-+  if test x${glibcxx_cv_func_fabsf_use+set} != xset; then
-+    if test "${glibcxx_cv_func_fabsf_use+set}" = set; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+
-+
-+      ac_ext=cpp
-+ac_cpp='$CXXCPP $CPPFLAGS'
-+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-+
-+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <math.h>
-+                    #ifdef HAVE_IEEEFP_H
-+                    #include <ieeefp.h>
-+                    #endif
-+
-+int
-+main ()
-+{
-+ fabsf(0);
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_cxx_try_compile "$LINENO"; then :
-+  glibcxx_cv_func_fabsf_use=yes
-+else
-+  glibcxx_cv_func_fabsf_use=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+      ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+
-+fi
-+
-+  fi
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func_fabsf_use" >&5
-+$as_echo "$glibcxx_cv_func_fabsf_use" >&6; }
-+
-+  if test x$glibcxx_cv_func_fabsf_use = x"yes"; then
-+    for ac_func in fabsf
-+do :
-+  ac_fn_c_check_func "$LINENO" "fabsf" "ac_cv_func_fabsf"
-+if test "x$ac_cv_func_fabsf" = x""yes; then :
-+  cat >>confdefs.h <<_ACEOF
-+#define HAVE_FABSF 1
-+_ACEOF
-+
-+fi
-+done
-+
-+  else
-+
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _fabsf declaration" >&5
-+$as_echo_n "checking for _fabsf declaration... " >&6; }
-+  if test x${glibcxx_cv_func__fabsf_use+set} != xset; then
-+    if test "${glibcxx_cv_func__fabsf_use+set}" = set; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+
-+
-+      ac_ext=cpp
-+ac_cpp='$CXXCPP $CPPFLAGS'
-+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-+
-+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <math.h>
-+                    #ifdef HAVE_IEEEFP_H
-+                    #include <ieeefp.h>
-+                    #endif
-+
-+int
-+main ()
-+{
-+ _fabsf(0);
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_cxx_try_compile "$LINENO"; then :
-+  glibcxx_cv_func__fabsf_use=yes
-+else
-+  glibcxx_cv_func__fabsf_use=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+      ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+
-+fi
-+
-+  fi
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func__fabsf_use" >&5
-+$as_echo "$glibcxx_cv_func__fabsf_use" >&6; }
-+
-+    if test x$glibcxx_cv_func__fabsf_use = x"yes"; then
-+      for ac_func in _fabsf
-+do :
-+  ac_fn_c_check_func "$LINENO" "_fabsf" "ac_cv_func__fabsf"
-+if test "x$ac_cv_func__fabsf" = x""yes; then :
-+  cat >>confdefs.h <<_ACEOF
-+#define HAVE__FABSF 1
-+_ACEOF
-+
-+fi
-+done
-+
-+    fi
-+  fi
-+
-+
-+
-+
-+
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fmodf declaration" >&5
-+$as_echo_n "checking for fmodf declaration... " >&6; }
-+  if test x${glibcxx_cv_func_fmodf_use+set} != xset; then
-+    if test "${glibcxx_cv_func_fmodf_use+set}" = set; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+
-+
-+      ac_ext=cpp
-+ac_cpp='$CXXCPP $CPPFLAGS'
-+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-+
-+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <math.h>
-+int
-+main ()
-+{
-+ fmodf(0, 0);
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_cxx_try_compile "$LINENO"; then :
-+  glibcxx_cv_func_fmodf_use=yes
-+else
-+  glibcxx_cv_func_fmodf_use=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+      ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+
-+fi
-+
-+  fi
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func_fmodf_use" >&5
-+$as_echo "$glibcxx_cv_func_fmodf_use" >&6; }
-+
-+  if test x$glibcxx_cv_func_fmodf_use = x"yes"; then
-+    for ac_func in fmodf
-+do :
-+  ac_fn_c_check_func "$LINENO" "fmodf" "ac_cv_func_fmodf"
-+if test "x$ac_cv_func_fmodf" = x""yes; then :
-+  cat >>confdefs.h <<_ACEOF
-+#define HAVE_FMODF 1
-+_ACEOF
-+
-+fi
-+done
-+
-+  else
-+
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _fmodf declaration" >&5
-+$as_echo_n "checking for _fmodf declaration... " >&6; }
-+  if test x${glibcxx_cv_func__fmodf_use+set} != xset; then
-+    if test "${glibcxx_cv_func__fmodf_use+set}" = set; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+
-+
-+      ac_ext=cpp
-+ac_cpp='$CXXCPP $CPPFLAGS'
-+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-+
-+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <math.h>
-+int
-+main ()
-+{
-+ _fmodf(0, 0);
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_cxx_try_compile "$LINENO"; then :
-+  glibcxx_cv_func__fmodf_use=yes
-+else
-+  glibcxx_cv_func__fmodf_use=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+      ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+
-+fi
-+
-+  fi
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func__fmodf_use" >&5
-+$as_echo "$glibcxx_cv_func__fmodf_use" >&6; }
-+
-+    if test x$glibcxx_cv_func__fmodf_use = x"yes"; then
-+      for ac_func in _fmodf
-+do :
-+  ac_fn_c_check_func "$LINENO" "_fmodf" "ac_cv_func__fmodf"
-+if test "x$ac_cv_func__fmodf" = x""yes; then :
-+  cat >>confdefs.h <<_ACEOF
-+#define HAVE__FMODF 1
-+_ACEOF
-+
-+fi
-+done
-+
-+    fi
-+  fi
-+
-+
-+
-+
-+
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for frexpf declaration" >&5
-+$as_echo_n "checking for frexpf declaration... " >&6; }
-+  if test x${glibcxx_cv_func_frexpf_use+set} != xset; then
-+    if test "${glibcxx_cv_func_frexpf_use+set}" = set; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+
-+
-+      ac_ext=cpp
-+ac_cpp='$CXXCPP $CPPFLAGS'
-+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-+
-+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <math.h>
-+int
-+main ()
-+{
-+ frexpf(0, 0);
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_cxx_try_compile "$LINENO"; then :
-+  glibcxx_cv_func_frexpf_use=yes
-+else
-+  glibcxx_cv_func_frexpf_use=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+      ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+
-+fi
-+
-+  fi
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func_frexpf_use" >&5
-+$as_echo "$glibcxx_cv_func_frexpf_use" >&6; }
-+
-+  if test x$glibcxx_cv_func_frexpf_use = x"yes"; then
-+    for ac_func in frexpf
-+do :
-+  ac_fn_c_check_func "$LINENO" "frexpf" "ac_cv_func_frexpf"
-+if test "x$ac_cv_func_frexpf" = x""yes; then :
-+  cat >>confdefs.h <<_ACEOF
-+#define HAVE_FREXPF 1
-+_ACEOF
-+
-+fi
-+done
-+
-+  else
-+
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _frexpf declaration" >&5
-+$as_echo_n "checking for _frexpf declaration... " >&6; }
-+  if test x${glibcxx_cv_func__frexpf_use+set} != xset; then
-+    if test "${glibcxx_cv_func__frexpf_use+set}" = set; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+
-+
-+      ac_ext=cpp
-+ac_cpp='$CXXCPP $CPPFLAGS'
-+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-+
-+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <math.h>
-+int
-+main ()
-+{
-+ _frexpf(0, 0);
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_cxx_try_compile "$LINENO"; then :
-+  glibcxx_cv_func__frexpf_use=yes
-+else
-+  glibcxx_cv_func__frexpf_use=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+      ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+
-+fi
-+
-+  fi
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func__frexpf_use" >&5
-+$as_echo "$glibcxx_cv_func__frexpf_use" >&6; }
-+
-+    if test x$glibcxx_cv_func__frexpf_use = x"yes"; then
-+      for ac_func in _frexpf
-+do :
-+  ac_fn_c_check_func "$LINENO" "_frexpf" "ac_cv_func__frexpf"
-+if test "x$ac_cv_func__frexpf" = x""yes; then :
-+  cat >>confdefs.h <<_ACEOF
-+#define HAVE__FREXPF 1
-+_ACEOF
-+
-+fi
-+done
-+
-+    fi
-+  fi
-+
-+
-+
-+
-+
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for hypotf declaration" >&5
-+$as_echo_n "checking for hypotf declaration... " >&6; }
-+  if test x${glibcxx_cv_func_hypotf_use+set} != xset; then
-+    if test "${glibcxx_cv_func_hypotf_use+set}" = set; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+
-+
-+      ac_ext=cpp
-+ac_cpp='$CXXCPP $CPPFLAGS'
-+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-+
-+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <math.h>
-+int
-+main ()
-+{
-+ hypotf(0, 0);
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_cxx_try_compile "$LINENO"; then :
-+  glibcxx_cv_func_hypotf_use=yes
-+else
-+  glibcxx_cv_func_hypotf_use=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+      ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+
-+fi
-+
-+  fi
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func_hypotf_use" >&5
-+$as_echo "$glibcxx_cv_func_hypotf_use" >&6; }
-+
-+  if test x$glibcxx_cv_func_hypotf_use = x"yes"; then
-+    for ac_func in hypotf
-+do :
-+  ac_fn_c_check_func "$LINENO" "hypotf" "ac_cv_func_hypotf"
-+if test "x$ac_cv_func_hypotf" = x""yes; then :
-+  cat >>confdefs.h <<_ACEOF
-+#define HAVE_HYPOTF 1
-+_ACEOF
-+
-+fi
-+done
-+
-+  else
-+
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _hypotf declaration" >&5
-+$as_echo_n "checking for _hypotf declaration... " >&6; }
-+  if test x${glibcxx_cv_func__hypotf_use+set} != xset; then
-+    if test "${glibcxx_cv_func__hypotf_use+set}" = set; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+
-+
-+      ac_ext=cpp
-+ac_cpp='$CXXCPP $CPPFLAGS'
-+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-+
-+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <math.h>
-+int
-+main ()
-+{
-+ _hypotf(0, 0);
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_cxx_try_compile "$LINENO"; then :
-+  glibcxx_cv_func__hypotf_use=yes
-+else
-+  glibcxx_cv_func__hypotf_use=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+      ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+
-+fi
-+
-+  fi
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func__hypotf_use" >&5
-+$as_echo "$glibcxx_cv_func__hypotf_use" >&6; }
-+
-+    if test x$glibcxx_cv_func__hypotf_use = x"yes"; then
-+      for ac_func in _hypotf
-+do :
-+  ac_fn_c_check_func "$LINENO" "_hypotf" "ac_cv_func__hypotf"
-+if test "x$ac_cv_func__hypotf" = x""yes; then :
-+  cat >>confdefs.h <<_ACEOF
-+#define HAVE__HYPOTF 1
-+_ACEOF
-+
-+fi
-+done
-+
-+    fi
-+  fi
-+
-+
-+
-+
-+
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ldexpf declaration" >&5
-+$as_echo_n "checking for ldexpf declaration... " >&6; }
-+  if test x${glibcxx_cv_func_ldexpf_use+set} != xset; then
-+    if test "${glibcxx_cv_func_ldexpf_use+set}" = set; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+
-+
-+      ac_ext=cpp
-+ac_cpp='$CXXCPP $CPPFLAGS'
-+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-+
-+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <math.h>
-+int
-+main ()
-+{
-+ ldexpf(0, 0);
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_cxx_try_compile "$LINENO"; then :
-+  glibcxx_cv_func_ldexpf_use=yes
-+else
-+  glibcxx_cv_func_ldexpf_use=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+      ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+
-+fi
-+
-+  fi
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func_ldexpf_use" >&5
-+$as_echo "$glibcxx_cv_func_ldexpf_use" >&6; }
-+
-+  if test x$glibcxx_cv_func_ldexpf_use = x"yes"; then
-+    for ac_func in ldexpf
-+do :
-+  ac_fn_c_check_func "$LINENO" "ldexpf" "ac_cv_func_ldexpf"
-+if test "x$ac_cv_func_ldexpf" = x""yes; then :
-+  cat >>confdefs.h <<_ACEOF
-+#define HAVE_LDEXPF 1
-+_ACEOF
-+
-+fi
-+done
-+
-+  else
-+
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _ldexpf declaration" >&5
-+$as_echo_n "checking for _ldexpf declaration... " >&6; }
-+  if test x${glibcxx_cv_func__ldexpf_use+set} != xset; then
-+    if test "${glibcxx_cv_func__ldexpf_use+set}" = set; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+
-+
-+      ac_ext=cpp
-+ac_cpp='$CXXCPP $CPPFLAGS'
-+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-+
-+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <math.h>
-+int
-+main ()
-+{
-+ _ldexpf(0, 0);
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_cxx_try_compile "$LINENO"; then :
-+  glibcxx_cv_func__ldexpf_use=yes
-+else
-+  glibcxx_cv_func__ldexpf_use=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+      ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+
-+fi
-+
-+  fi
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func__ldexpf_use" >&5
-+$as_echo "$glibcxx_cv_func__ldexpf_use" >&6; }
-+
-+    if test x$glibcxx_cv_func__ldexpf_use = x"yes"; then
-+      for ac_func in _ldexpf
-+do :
-+  ac_fn_c_check_func "$LINENO" "_ldexpf" "ac_cv_func__ldexpf"
-+if test "x$ac_cv_func__ldexpf" = x""yes; then :
-+  cat >>confdefs.h <<_ACEOF
-+#define HAVE__LDEXPF 1
-+_ACEOF
-+
-+fi
-+done
-+
-+    fi
-+  fi
-+
-+
-+
-+
-+
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for logf declaration" >&5
-+$as_echo_n "checking for logf declaration... " >&6; }
-+  if test x${glibcxx_cv_func_logf_use+set} != xset; then
-+    if test "${glibcxx_cv_func_logf_use+set}" = set; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+
-+
-+      ac_ext=cpp
-+ac_cpp='$CXXCPP $CPPFLAGS'
-+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-+
-+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <math.h>
-+                    #ifdef HAVE_IEEEFP_H
-+                    #include <ieeefp.h>
-+                    #endif
-+
-+int
-+main ()
-+{
-+ logf(0);
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_cxx_try_compile "$LINENO"; then :
-+  glibcxx_cv_func_logf_use=yes
-+else
-+  glibcxx_cv_func_logf_use=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+      ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+
-+fi
-+
-+  fi
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func_logf_use" >&5
-+$as_echo "$glibcxx_cv_func_logf_use" >&6; }
-+
-+  if test x$glibcxx_cv_func_logf_use = x"yes"; then
-+    for ac_func in logf
-+do :
-+  ac_fn_c_check_func "$LINENO" "logf" "ac_cv_func_logf"
-+if test "x$ac_cv_func_logf" = x""yes; then :
-+  cat >>confdefs.h <<_ACEOF
-+#define HAVE_LOGF 1
-+_ACEOF
-+
-+fi
-+done
-+
-+  else
-+
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _logf declaration" >&5
-+$as_echo_n "checking for _logf declaration... " >&6; }
-+  if test x${glibcxx_cv_func__logf_use+set} != xset; then
-+    if test "${glibcxx_cv_func__logf_use+set}" = set; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+
-+
-+      ac_ext=cpp
-+ac_cpp='$CXXCPP $CPPFLAGS'
-+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-+
-+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <math.h>
-+                    #ifdef HAVE_IEEEFP_H
-+                    #include <ieeefp.h>
-+                    #endif
-+
-+int
-+main ()
-+{
-+ _logf(0);
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_cxx_try_compile "$LINENO"; then :
-+  glibcxx_cv_func__logf_use=yes
-+else
-+  glibcxx_cv_func__logf_use=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+      ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+
-+fi
-+
-+  fi
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func__logf_use" >&5
-+$as_echo "$glibcxx_cv_func__logf_use" >&6; }
-+
-+    if test x$glibcxx_cv_func__logf_use = x"yes"; then
-+      for ac_func in _logf
-+do :
-+  ac_fn_c_check_func "$LINENO" "_logf" "ac_cv_func__logf"
-+if test "x$ac_cv_func__logf" = x""yes; then :
-+  cat >>confdefs.h <<_ACEOF
-+#define HAVE__LOGF 1
-+_ACEOF
-+
-+fi
-+done
-+
-+    fi
-+  fi
-+
-+
-+
-+
-+
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for log10f declaration" >&5
-+$as_echo_n "checking for log10f declaration... " >&6; }
-+  if test x${glibcxx_cv_func_log10f_use+set} != xset; then
-+    if test "${glibcxx_cv_func_log10f_use+set}" = set; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+
-+
-+      ac_ext=cpp
-+ac_cpp='$CXXCPP $CPPFLAGS'
-+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-+
-+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <math.h>
-+                    #ifdef HAVE_IEEEFP_H
-+                    #include <ieeefp.h>
-+                    #endif
-+
-+int
-+main ()
-+{
-+ log10f(0);
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_cxx_try_compile "$LINENO"; then :
-+  glibcxx_cv_func_log10f_use=yes
-+else
-+  glibcxx_cv_func_log10f_use=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+      ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+
-+fi
-+
-+  fi
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func_log10f_use" >&5
-+$as_echo "$glibcxx_cv_func_log10f_use" >&6; }
-+
-+  if test x$glibcxx_cv_func_log10f_use = x"yes"; then
-+    for ac_func in log10f
-+do :
-+  ac_fn_c_check_func "$LINENO" "log10f" "ac_cv_func_log10f"
-+if test "x$ac_cv_func_log10f" = x""yes; then :
-+  cat >>confdefs.h <<_ACEOF
-+#define HAVE_LOG10F 1
-+_ACEOF
-+
-+fi
-+done
-+
-+  else
-+
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _log10f declaration" >&5
-+$as_echo_n "checking for _log10f declaration... " >&6; }
-+  if test x${glibcxx_cv_func__log10f_use+set} != xset; then
-+    if test "${glibcxx_cv_func__log10f_use+set}" = set; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+
-+
-+      ac_ext=cpp
-+ac_cpp='$CXXCPP $CPPFLAGS'
-+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-+
-+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <math.h>
-+                    #ifdef HAVE_IEEEFP_H
-+                    #include <ieeefp.h>
-+                    #endif
-+
-+int
-+main ()
-+{
-+ _log10f(0);
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_cxx_try_compile "$LINENO"; then :
-+  glibcxx_cv_func__log10f_use=yes
-+else
-+  glibcxx_cv_func__log10f_use=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+      ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+
-+fi
-+
-+  fi
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func__log10f_use" >&5
-+$as_echo "$glibcxx_cv_func__log10f_use" >&6; }
-+
-+    if test x$glibcxx_cv_func__log10f_use = x"yes"; then
-+      for ac_func in _log10f
-+do :
-+  ac_fn_c_check_func "$LINENO" "_log10f" "ac_cv_func__log10f"
-+if test "x$ac_cv_func__log10f" = x""yes; then :
-+  cat >>confdefs.h <<_ACEOF
-+#define HAVE__LOG10F 1
-+_ACEOF
-+
-+fi
-+done
-+
-+    fi
-+  fi
-+
-+
-+
-+
-+
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for modff declaration" >&5
-+$as_echo_n "checking for modff declaration... " >&6; }
-+  if test x${glibcxx_cv_func_modff_use+set} != xset; then
-+    if test "${glibcxx_cv_func_modff_use+set}" = set; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+
-+
-+      ac_ext=cpp
-+ac_cpp='$CXXCPP $CPPFLAGS'
-+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-+
-+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <math.h>
-+int
-+main ()
-+{
-+ modff(0, 0);
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_cxx_try_compile "$LINENO"; then :
-+  glibcxx_cv_func_modff_use=yes
-+else
-+  glibcxx_cv_func_modff_use=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+      ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+
-+fi
-+
-+  fi
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func_modff_use" >&5
-+$as_echo "$glibcxx_cv_func_modff_use" >&6; }
-+
-+  if test x$glibcxx_cv_func_modff_use = x"yes"; then
-+    for ac_func in modff
-+do :
-+  ac_fn_c_check_func "$LINENO" "modff" "ac_cv_func_modff"
-+if test "x$ac_cv_func_modff" = x""yes; then :
-+  cat >>confdefs.h <<_ACEOF
-+#define HAVE_MODFF 1
-+_ACEOF
-+
-+fi
-+done
-+
-+  else
-+
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _modff declaration" >&5
-+$as_echo_n "checking for _modff declaration... " >&6; }
-+  if test x${glibcxx_cv_func__modff_use+set} != xset; then
-+    if test "${glibcxx_cv_func__modff_use+set}" = set; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+
-+
-+      ac_ext=cpp
-+ac_cpp='$CXXCPP $CPPFLAGS'
-+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-+
-+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <math.h>
-+int
-+main ()
-+{
-+ _modff(0, 0);
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_cxx_try_compile "$LINENO"; then :
-+  glibcxx_cv_func__modff_use=yes
-+else
-+  glibcxx_cv_func__modff_use=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+      ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+
-+fi
-+
-+  fi
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func__modff_use" >&5
-+$as_echo "$glibcxx_cv_func__modff_use" >&6; }
-+
-+    if test x$glibcxx_cv_func__modff_use = x"yes"; then
-+      for ac_func in _modff
-+do :
-+  ac_fn_c_check_func "$LINENO" "_modff" "ac_cv_func__modff"
-+if test "x$ac_cv_func__modff" = x""yes; then :
-+  cat >>confdefs.h <<_ACEOF
-+#define HAVE__MODFF 1
-+_ACEOF
-+
-+fi
-+done
-+
-+    fi
-+  fi
-+
-+
-+
-+
-+
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for modf declaration" >&5
-+$as_echo_n "checking for modf declaration... " >&6; }
-+  if test x${glibcxx_cv_func_modf_use+set} != xset; then
-+    if test "${glibcxx_cv_func_modf_use+set}" = set; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+
-+
-+      ac_ext=cpp
-+ac_cpp='$CXXCPP $CPPFLAGS'
-+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-+
-+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <math.h>
-+int
-+main ()
-+{
-+ modf(0, 0);
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_cxx_try_compile "$LINENO"; then :
-+  glibcxx_cv_func_modf_use=yes
-+else
-+  glibcxx_cv_func_modf_use=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+      ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+
-+fi
-+
-+  fi
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func_modf_use" >&5
-+$as_echo "$glibcxx_cv_func_modf_use" >&6; }
-+
-+  if test x$glibcxx_cv_func_modf_use = x"yes"; then
-+    for ac_func in modf
-+do :
-+  ac_fn_c_check_func "$LINENO" "modf" "ac_cv_func_modf"
-+if test "x$ac_cv_func_modf" = x""yes; then :
-+  cat >>confdefs.h <<_ACEOF
-+#define HAVE_MODF 1
-+_ACEOF
-+
-+fi
-+done
-+
-+  else
-+
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _modf declaration" >&5
-+$as_echo_n "checking for _modf declaration... " >&6; }
-+  if test x${glibcxx_cv_func__modf_use+set} != xset; then
-+    if test "${glibcxx_cv_func__modf_use+set}" = set; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+
-+
-+      ac_ext=cpp
-+ac_cpp='$CXXCPP $CPPFLAGS'
-+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-+
-+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <math.h>
-+int
-+main ()
-+{
-+ _modf(0, 0);
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_cxx_try_compile "$LINENO"; then :
-+  glibcxx_cv_func__modf_use=yes
-+else
-+  glibcxx_cv_func__modf_use=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+      ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+
-+fi
-+
-+  fi
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func__modf_use" >&5
-+$as_echo "$glibcxx_cv_func__modf_use" >&6; }
-+
-+    if test x$glibcxx_cv_func__modf_use = x"yes"; then
-+      for ac_func in _modf
-+do :
-+  ac_fn_c_check_func "$LINENO" "_modf" "ac_cv_func__modf"
-+if test "x$ac_cv_func__modf" = x""yes; then :
-+  cat >>confdefs.h <<_ACEOF
-+#define HAVE__MODF 1
-+_ACEOF
-+
-+fi
-+done
-+
-+    fi
-+  fi
-+
-+
-+
-+
-+
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for powf declaration" >&5
-+$as_echo_n "checking for powf declaration... " >&6; }
-+  if test x${glibcxx_cv_func_powf_use+set} != xset; then
-+    if test "${glibcxx_cv_func_powf_use+set}" = set; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+
-+
-+      ac_ext=cpp
-+ac_cpp='$CXXCPP $CPPFLAGS'
-+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-+
-+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <math.h>
-+int
-+main ()
-+{
-+ powf(0, 0);
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_cxx_try_compile "$LINENO"; then :
-+  glibcxx_cv_func_powf_use=yes
-+else
-+  glibcxx_cv_func_powf_use=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+      ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+
-+fi
-+
-+  fi
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func_powf_use" >&5
-+$as_echo "$glibcxx_cv_func_powf_use" >&6; }
-+
-+  if test x$glibcxx_cv_func_powf_use = x"yes"; then
-+    for ac_func in powf
-+do :
-+  ac_fn_c_check_func "$LINENO" "powf" "ac_cv_func_powf"
-+if test "x$ac_cv_func_powf" = x""yes; then :
-+  cat >>confdefs.h <<_ACEOF
-+#define HAVE_POWF 1
-+_ACEOF
-+
-+fi
-+done
-+
-+  else
-+
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _powf declaration" >&5
-+$as_echo_n "checking for _powf declaration... " >&6; }
-+  if test x${glibcxx_cv_func__powf_use+set} != xset; then
-+    if test "${glibcxx_cv_func__powf_use+set}" = set; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+
-+
-+      ac_ext=cpp
-+ac_cpp='$CXXCPP $CPPFLAGS'
-+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-+
-+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <math.h>
-+int
-+main ()
-+{
-+ _powf(0, 0);
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_cxx_try_compile "$LINENO"; then :
-+  glibcxx_cv_func__powf_use=yes
-+else
-+  glibcxx_cv_func__powf_use=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+      ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+
-+fi
-+
-+  fi
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func__powf_use" >&5
-+$as_echo "$glibcxx_cv_func__powf_use" >&6; }
-+
-+    if test x$glibcxx_cv_func__powf_use = x"yes"; then
-+      for ac_func in _powf
-+do :
-+  ac_fn_c_check_func "$LINENO" "_powf" "ac_cv_func__powf"
-+if test "x$ac_cv_func__powf" = x""yes; then :
-+  cat >>confdefs.h <<_ACEOF
-+#define HAVE__POWF 1
-+_ACEOF
-+
-+fi
-+done
-+
-+    fi
-+  fi
-+
-+
-+
-+
-+
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sqrtf declaration" >&5
-+$as_echo_n "checking for sqrtf declaration... " >&6; }
-+  if test x${glibcxx_cv_func_sqrtf_use+set} != xset; then
-+    if test "${glibcxx_cv_func_sqrtf_use+set}" = set; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+
-+
-+      ac_ext=cpp
-+ac_cpp='$CXXCPP $CPPFLAGS'
-+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-+
-+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <math.h>
-+                    #ifdef HAVE_IEEEFP_H
-+                    #include <ieeefp.h>
-+                    #endif
-+
-+int
-+main ()
-+{
-+ sqrtf(0);
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_cxx_try_compile "$LINENO"; then :
-+  glibcxx_cv_func_sqrtf_use=yes
-+else
-+  glibcxx_cv_func_sqrtf_use=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+      ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+
-+fi
-+
-+  fi
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func_sqrtf_use" >&5
-+$as_echo "$glibcxx_cv_func_sqrtf_use" >&6; }
-+
-+  if test x$glibcxx_cv_func_sqrtf_use = x"yes"; then
-+    for ac_func in sqrtf
-+do :
-+  ac_fn_c_check_func "$LINENO" "sqrtf" "ac_cv_func_sqrtf"
-+if test "x$ac_cv_func_sqrtf" = x""yes; then :
-+  cat >>confdefs.h <<_ACEOF
-+#define HAVE_SQRTF 1
-+_ACEOF
-+
-+fi
-+done
-+
-+  else
-+
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _sqrtf declaration" >&5
-+$as_echo_n "checking for _sqrtf declaration... " >&6; }
-+  if test x${glibcxx_cv_func__sqrtf_use+set} != xset; then
-+    if test "${glibcxx_cv_func__sqrtf_use+set}" = set; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+
-+
-+      ac_ext=cpp
-+ac_cpp='$CXXCPP $CPPFLAGS'
-+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-+
-+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <math.h>
-+                    #ifdef HAVE_IEEEFP_H
-+                    #include <ieeefp.h>
-+                    #endif
-+
-+int
-+main ()
-+{
-+ _sqrtf(0);
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_cxx_try_compile "$LINENO"; then :
-+  glibcxx_cv_func__sqrtf_use=yes
-+else
-+  glibcxx_cv_func__sqrtf_use=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+      ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+
-+fi
-+
-+  fi
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func__sqrtf_use" >&5
-+$as_echo "$glibcxx_cv_func__sqrtf_use" >&6; }
-+
-+    if test x$glibcxx_cv_func__sqrtf_use = x"yes"; then
-+      for ac_func in _sqrtf
-+do :
-+  ac_fn_c_check_func "$LINENO" "_sqrtf" "ac_cv_func__sqrtf"
-+if test "x$ac_cv_func__sqrtf" = x""yes; then :
-+  cat >>confdefs.h <<_ACEOF
-+#define HAVE__SQRTF 1
-+_ACEOF
-+
-+fi
-+done
-+
-+    fi
-+  fi
-+
-+
-+
-+
-+
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sincosf declaration" >&5
-+$as_echo_n "checking for sincosf declaration... " >&6; }
-+  if test x${glibcxx_cv_func_sincosf_use+set} != xset; then
-+    if test "${glibcxx_cv_func_sincosf_use+set}" = set; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+
-+
-+      ac_ext=cpp
-+ac_cpp='$CXXCPP $CPPFLAGS'
-+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-+
-+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <math.h>
-+int
-+main ()
-+{
-+ sincosf(0, 0, 0);
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_cxx_try_compile "$LINENO"; then :
-+  glibcxx_cv_func_sincosf_use=yes
-+else
-+  glibcxx_cv_func_sincosf_use=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+      ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+
-+fi
-+
-+  fi
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func_sincosf_use" >&5
-+$as_echo "$glibcxx_cv_func_sincosf_use" >&6; }
-+
-+  if test x$glibcxx_cv_func_sincosf_use = x"yes"; then
-+    for ac_func in sincosf
-+do :
-+  ac_fn_c_check_func "$LINENO" "sincosf" "ac_cv_func_sincosf"
-+if test "x$ac_cv_func_sincosf" = x""yes; then :
-+  cat >>confdefs.h <<_ACEOF
-+#define HAVE_SINCOSF 1
-+_ACEOF
-+
-+fi
-+done
-+
-+  else
-+
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _sincosf declaration" >&5
-+$as_echo_n "checking for _sincosf declaration... " >&6; }
-+  if test x${glibcxx_cv_func__sincosf_use+set} != xset; then
-+    if test "${glibcxx_cv_func__sincosf_use+set}" = set; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+
-+
-+      ac_ext=cpp
-+ac_cpp='$CXXCPP $CPPFLAGS'
-+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-+
-+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <math.h>
-+int
-+main ()
-+{
-+ _sincosf(0, 0, 0);
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_cxx_try_compile "$LINENO"; then :
-+  glibcxx_cv_func__sincosf_use=yes
-+else
-+  glibcxx_cv_func__sincosf_use=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+      ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+
-+fi
-+
-+  fi
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func__sincosf_use" >&5
-+$as_echo "$glibcxx_cv_func__sincosf_use" >&6; }
-+
-+    if test x$glibcxx_cv_func__sincosf_use = x"yes"; then
-+      for ac_func in _sincosf
-+do :
-+  ac_fn_c_check_func "$LINENO" "_sincosf" "ac_cv_func__sincosf"
-+if test "x$ac_cv_func__sincosf" = x""yes; then :
-+  cat >>confdefs.h <<_ACEOF
-+#define HAVE__SINCOSF 1
-+_ACEOF
-+
-+fi
-+done
-+
-+    fi
-+  fi
-+
-+
-+
-+
-+
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for finitef declaration" >&5
-+$as_echo_n "checking for finitef declaration... " >&6; }
-+  if test x${glibcxx_cv_func_finitef_use+set} != xset; then
-+    if test "${glibcxx_cv_func_finitef_use+set}" = set; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+
-+
-+      ac_ext=cpp
-+ac_cpp='$CXXCPP $CPPFLAGS'
-+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-+
-+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <math.h>
-+                    #ifdef HAVE_IEEEFP_H
-+                    #include <ieeefp.h>
-+                    #endif
-+
-+int
-+main ()
-+{
-+ finitef(0);
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_cxx_try_compile "$LINENO"; then :
-+  glibcxx_cv_func_finitef_use=yes
-+else
-+  glibcxx_cv_func_finitef_use=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+      ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+
-+fi
-+
-+  fi
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func_finitef_use" >&5
-+$as_echo "$glibcxx_cv_func_finitef_use" >&6; }
-+
-+  if test x$glibcxx_cv_func_finitef_use = x"yes"; then
-+    for ac_func in finitef
-+do :
-+  ac_fn_c_check_func "$LINENO" "finitef" "ac_cv_func_finitef"
-+if test "x$ac_cv_func_finitef" = x""yes; then :
-+  cat >>confdefs.h <<_ACEOF
-+#define HAVE_FINITEF 1
-+_ACEOF
-+
-+fi
-+done
-+
-+  else
-+
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _finitef declaration" >&5
-+$as_echo_n "checking for _finitef declaration... " >&6; }
-+  if test x${glibcxx_cv_func__finitef_use+set} != xset; then
-+    if test "${glibcxx_cv_func__finitef_use+set}" = set; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+
-+
-+      ac_ext=cpp
-+ac_cpp='$CXXCPP $CPPFLAGS'
-+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-+
-+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <math.h>
-+                    #ifdef HAVE_IEEEFP_H
-+                    #include <ieeefp.h>
-+                    #endif
-+
-+int
-+main ()
-+{
-+ _finitef(0);
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_cxx_try_compile "$LINENO"; then :
-+  glibcxx_cv_func__finitef_use=yes
-+else
-+  glibcxx_cv_func__finitef_use=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+      ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+
-+fi
-+
-+  fi
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func__finitef_use" >&5
-+$as_echo "$glibcxx_cv_func__finitef_use" >&6; }
-+
-+    if test x$glibcxx_cv_func__finitef_use = x"yes"; then
-+      for ac_func in _finitef
-+do :
-+  ac_fn_c_check_func "$LINENO" "_finitef" "ac_cv_func__finitef"
-+if test "x$ac_cv_func__finitef" = x""yes; then :
-+  cat >>confdefs.h <<_ACEOF
-+#define HAVE__FINITEF 1
-+_ACEOF
-+
-+fi
-+done
-+
-+    fi
-+  fi
-+
-+
-+
-+
-+
-+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for long double trig functions" >&5
-+$as_echo_n "checking for long double trig functions... " >&6; }
-+  if test "${glibcxx_cv_func_long_double_trig_use+set}" = set; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+
-+
-+    ac_ext=cpp
-+ac_cpp='$CXXCPP $CPPFLAGS'
-+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-+
-+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <math.h>
-+int
-+main ()
-+{
-+acosl (0); asinl (0); atanl (0); cosl (0); sinl (0); tanl (0); coshl (0); sinhl (0); tanhl (0);
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_cxx_try_compile "$LINENO"; then :
-+  glibcxx_cv_func_long_double_trig_use=yes
-+else
-+  glibcxx_cv_func_long_double_trig_use=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+    ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+fi
-+
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func_long_double_trig_use" >&5
-+$as_echo "$glibcxx_cv_func_long_double_trig_use" >&6; }
-+  if test x$glibcxx_cv_func_long_double_trig_use = x"yes"; then
-+    for ac_func in acosl asinl atanl cosl sinl tanl coshl sinhl tanhl
-+do :
-+  as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
-+eval as_val=\$$as_ac_var
-+   if test "x$as_val" = x""yes; then :
-+  cat >>confdefs.h <<_ACEOF
-+#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
-+_ACEOF
-+
-+fi
-+done
-+
-+  else
-+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _long double trig functions" >&5
-+$as_echo_n "checking for _long double trig functions... " >&6; }
-+    if test "${glibcxx_cv_func__long_double_trig_use+set}" = set; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+
-+
-+      ac_ext=cpp
-+ac_cpp='$CXXCPP $CPPFLAGS'
-+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-+
-+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <math.h>
-+int
-+main ()
-+{
-+_acosl (0); _asinl (0); _atanl (0); _cosl (0); _sinl (0); _tanl (0); _coshl (0); _sinhl (0); _tanhl (0);
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_cxx_try_compile "$LINENO"; then :
-+  glibcxx_cv_func__long_double_trig_use=yes
-+else
-+  glibcxx_cv_func__long_double_trig_use=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+      ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+fi
-+
-+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func__long_double_trig_use" >&5
-+$as_echo "$glibcxx_cv_func__long_double_trig_use" >&6; }
-+    if test x$glibcxx_cv_func__long_double_trig_use = x"yes"; then
-+      for ac_func in _acosl _asinl _atanl _cosl _sinl _tanl _coshl _sinhl _tanhl
-+do :
-+  as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
-+eval as_val=\$$as_ac_var
-+   if test "x$as_val" = x""yes; then :
-+  cat >>confdefs.h <<_ACEOF
-+#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
-+_ACEOF
-+
-+fi
-+done
-+
-+    fi
-+  fi
-+
-+
-+
-+
-+
-+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for long double round functions" >&5
-+$as_echo_n "checking for long double round functions... " >&6; }
-+  if test "${glibcxx_cv_func_long_double_round_use+set}" = set; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+
-+
-+    ac_ext=cpp
-+ac_cpp='$CXXCPP $CPPFLAGS'
-+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-+
-+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <math.h>
-+int
-+main ()
-+{
-+ceill (0); floorl (0);
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_cxx_try_compile "$LINENO"; then :
-+  glibcxx_cv_func_long_double_round_use=yes
-+else
-+  glibcxx_cv_func_long_double_round_use=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+    ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+fi
-+
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func_long_double_round_use" >&5
-+$as_echo "$glibcxx_cv_func_long_double_round_use" >&6; }
-+  if test x$glibcxx_cv_func_long_double_round_use = x"yes"; then
-+    for ac_func in ceill floorl
-+do :
-+  as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
-+eval as_val=\$$as_ac_var
-+   if test "x$as_val" = x""yes; then :
-+  cat >>confdefs.h <<_ACEOF
-+#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
-+_ACEOF
-+
-+fi
-+done
-+
-+  else
-+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _long double round functions" >&5
-+$as_echo_n "checking for _long double round functions... " >&6; }
-+    if test "${glibcxx_cv_func__long_double_round_use+set}" = set; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+
-+
-+      ac_ext=cpp
-+ac_cpp='$CXXCPP $CPPFLAGS'
-+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-+
-+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <math.h>
-+int
-+main ()
-+{
-+_ceill (0); _floorl (0);
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_cxx_try_compile "$LINENO"; then :
-+  glibcxx_cv_func__long_double_round_use=yes
-+else
-+  glibcxx_cv_func__long_double_round_use=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+      ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+fi
-+
-+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func__long_double_round_use" >&5
-+$as_echo "$glibcxx_cv_func__long_double_round_use" >&6; }
-+    if test x$glibcxx_cv_func__long_double_round_use = x"yes"; then
-+      for ac_func in _ceill _floorl
-+do :
-+  as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
-+eval as_val=\$$as_ac_var
-+   if test "x$as_val" = x""yes; then :
-+  cat >>confdefs.h <<_ACEOF
-+#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
-+_ACEOF
-+
-+fi
-+done
-+
-+    fi
-+  fi
-+
-+
-+
-+
-+
-+
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for isnanl declaration" >&5
-+$as_echo_n "checking for isnanl declaration... " >&6; }
-+  if test x${glibcxx_cv_func_isnanl_use+set} != xset; then
-+    if test "${glibcxx_cv_func_isnanl_use+set}" = set; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+
-+
-+      ac_ext=cpp
-+ac_cpp='$CXXCPP $CPPFLAGS'
-+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-+
-+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <math.h>
-+                    #ifdef HAVE_IEEEFP_H
-+                    #include <ieeefp.h>
-+                    #endif
-+
-+int
-+main ()
-+{
-+ isnanl(0);
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_cxx_try_compile "$LINENO"; then :
-+  glibcxx_cv_func_isnanl_use=yes
-+else
-+  glibcxx_cv_func_isnanl_use=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+      ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+
-+fi
-+
-+  fi
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func_isnanl_use" >&5
-+$as_echo "$glibcxx_cv_func_isnanl_use" >&6; }
-+
-+  if test x$glibcxx_cv_func_isnanl_use = x"yes"; then
-+    for ac_func in isnanl
-+do :
-+  ac_fn_c_check_func "$LINENO" "isnanl" "ac_cv_func_isnanl"
-+if test "x$ac_cv_func_isnanl" = x""yes; then :
-+  cat >>confdefs.h <<_ACEOF
-+#define HAVE_ISNANL 1
-+_ACEOF
-+
-+fi
-+done
-+
-+  else
-+
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _isnanl declaration" >&5
-+$as_echo_n "checking for _isnanl declaration... " >&6; }
-+  if test x${glibcxx_cv_func__isnanl_use+set} != xset; then
-+    if test "${glibcxx_cv_func__isnanl_use+set}" = set; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+
-+
-+      ac_ext=cpp
-+ac_cpp='$CXXCPP $CPPFLAGS'
-+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-+
-+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <math.h>
-+                    #ifdef HAVE_IEEEFP_H
-+                    #include <ieeefp.h>
-+                    #endif
-+
-+int
-+main ()
-+{
-+ _isnanl(0);
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_cxx_try_compile "$LINENO"; then :
-+  glibcxx_cv_func__isnanl_use=yes
-+else
-+  glibcxx_cv_func__isnanl_use=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+      ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+
-+fi
-+
-+  fi
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func__isnanl_use" >&5
-+$as_echo "$glibcxx_cv_func__isnanl_use" >&6; }
-+
-+    if test x$glibcxx_cv_func__isnanl_use = x"yes"; then
-+      for ac_func in _isnanl
-+do :
-+  ac_fn_c_check_func "$LINENO" "_isnanl" "ac_cv_func__isnanl"
-+if test "x$ac_cv_func__isnanl" = x""yes; then :
-+  cat >>confdefs.h <<_ACEOF
-+#define HAVE__ISNANL 1
-+_ACEOF
-+
-+fi
-+done
-+
-+    fi
-+  fi
-+
-+
-+
-+
-+
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for isinfl declaration" >&5
-+$as_echo_n "checking for isinfl declaration... " >&6; }
-+  if test x${glibcxx_cv_func_isinfl_use+set} != xset; then
-+    if test "${glibcxx_cv_func_isinfl_use+set}" = set; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+
-+
-+      ac_ext=cpp
-+ac_cpp='$CXXCPP $CPPFLAGS'
-+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-+
-+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <math.h>
-+                    #ifdef HAVE_IEEEFP_H
-+                    #include <ieeefp.h>
-+                    #endif
-+
-+int
-+main ()
-+{
-+ isinfl(0);
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_cxx_try_compile "$LINENO"; then :
-+  glibcxx_cv_func_isinfl_use=yes
-+else
-+  glibcxx_cv_func_isinfl_use=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+      ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+
-+fi
-+
-+  fi
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func_isinfl_use" >&5
-+$as_echo "$glibcxx_cv_func_isinfl_use" >&6; }
-+
-+  if test x$glibcxx_cv_func_isinfl_use = x"yes"; then
-+    for ac_func in isinfl
-+do :
-+  ac_fn_c_check_func "$LINENO" "isinfl" "ac_cv_func_isinfl"
-+if test "x$ac_cv_func_isinfl" = x""yes; then :
-+  cat >>confdefs.h <<_ACEOF
-+#define HAVE_ISINFL 1
-+_ACEOF
-+
-+fi
-+done
-+
-+  else
-+
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _isinfl declaration" >&5
-+$as_echo_n "checking for _isinfl declaration... " >&6; }
-+  if test x${glibcxx_cv_func__isinfl_use+set} != xset; then
-+    if test "${glibcxx_cv_func__isinfl_use+set}" = set; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+
-+
-+      ac_ext=cpp
-+ac_cpp='$CXXCPP $CPPFLAGS'
-+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-+
-+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <math.h>
-+                    #ifdef HAVE_IEEEFP_H
-+                    #include <ieeefp.h>
-+                    #endif
-+
-+int
-+main ()
-+{
-+ _isinfl(0);
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_cxx_try_compile "$LINENO"; then :
-+  glibcxx_cv_func__isinfl_use=yes
-+else
-+  glibcxx_cv_func__isinfl_use=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+      ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+
-+fi
-+
-+  fi
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func__isinfl_use" >&5
-+$as_echo "$glibcxx_cv_func__isinfl_use" >&6; }
-+
-+    if test x$glibcxx_cv_func__isinfl_use = x"yes"; then
-+      for ac_func in _isinfl
-+do :
-+  ac_fn_c_check_func "$LINENO" "_isinfl" "ac_cv_func__isinfl"
-+if test "x$ac_cv_func__isinfl" = x""yes; then :
-+  cat >>confdefs.h <<_ACEOF
-+#define HAVE__ISINFL 1
-+_ACEOF
-+
-+fi
-+done
-+
-+    fi
-+  fi
-+
-+
-+
-+
-+
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for atan2l declaration" >&5
-+$as_echo_n "checking for atan2l declaration... " >&6; }
-+  if test x${glibcxx_cv_func_atan2l_use+set} != xset; then
-+    if test "${glibcxx_cv_func_atan2l_use+set}" = set; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+
-+
-+      ac_ext=cpp
-+ac_cpp='$CXXCPP $CPPFLAGS'
-+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-+
-+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <math.h>
-+int
-+main ()
-+{
-+ atan2l(0, 0);
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_cxx_try_compile "$LINENO"; then :
-+  glibcxx_cv_func_atan2l_use=yes
-+else
-+  glibcxx_cv_func_atan2l_use=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+      ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+
-+fi
-+
-+  fi
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func_atan2l_use" >&5
-+$as_echo "$glibcxx_cv_func_atan2l_use" >&6; }
-+
-+  if test x$glibcxx_cv_func_atan2l_use = x"yes"; then
-+    for ac_func in atan2l
-+do :
-+  ac_fn_c_check_func "$LINENO" "atan2l" "ac_cv_func_atan2l"
-+if test "x$ac_cv_func_atan2l" = x""yes; then :
-+  cat >>confdefs.h <<_ACEOF
-+#define HAVE_ATAN2L 1
-+_ACEOF
-+
-+fi
-+done
-+
-+  else
-+
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _atan2l declaration" >&5
-+$as_echo_n "checking for _atan2l declaration... " >&6; }
-+  if test x${glibcxx_cv_func__atan2l_use+set} != xset; then
-+    if test "${glibcxx_cv_func__atan2l_use+set}" = set; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+
-+
-+      ac_ext=cpp
-+ac_cpp='$CXXCPP $CPPFLAGS'
-+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-+
-+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <math.h>
-+int
-+main ()
-+{
-+ _atan2l(0, 0);
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_cxx_try_compile "$LINENO"; then :
-+  glibcxx_cv_func__atan2l_use=yes
-+else
-+  glibcxx_cv_func__atan2l_use=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+      ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+
-+fi
-+
-+  fi
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func__atan2l_use" >&5
-+$as_echo "$glibcxx_cv_func__atan2l_use" >&6; }
-+
-+    if test x$glibcxx_cv_func__atan2l_use = x"yes"; then
-+      for ac_func in _atan2l
-+do :
-+  ac_fn_c_check_func "$LINENO" "_atan2l" "ac_cv_func__atan2l"
-+if test "x$ac_cv_func__atan2l" = x""yes; then :
-+  cat >>confdefs.h <<_ACEOF
-+#define HAVE__ATAN2L 1
-+_ACEOF
-+
-+fi
-+done
-+
-+    fi
-+  fi
-+
-+
-+
-+
-+
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for expl declaration" >&5
-+$as_echo_n "checking for expl declaration... " >&6; }
-+  if test x${glibcxx_cv_func_expl_use+set} != xset; then
-+    if test "${glibcxx_cv_func_expl_use+set}" = set; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+
-+
-+      ac_ext=cpp
-+ac_cpp='$CXXCPP $CPPFLAGS'
-+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-+
-+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <math.h>
-+                    #ifdef HAVE_IEEEFP_H
-+                    #include <ieeefp.h>
-+                    #endif
-+
-+int
-+main ()
-+{
-+ expl(0);
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_cxx_try_compile "$LINENO"; then :
-+  glibcxx_cv_func_expl_use=yes
-+else
-+  glibcxx_cv_func_expl_use=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+      ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+
-+fi
-+
-+  fi
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func_expl_use" >&5
-+$as_echo "$glibcxx_cv_func_expl_use" >&6; }
-+
-+  if test x$glibcxx_cv_func_expl_use = x"yes"; then
-+    for ac_func in expl
-+do :
-+  ac_fn_c_check_func "$LINENO" "expl" "ac_cv_func_expl"
-+if test "x$ac_cv_func_expl" = x""yes; then :
-+  cat >>confdefs.h <<_ACEOF
-+#define HAVE_EXPL 1
-+_ACEOF
-+
-+fi
-+done
-+
-+  else
-+
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _expl declaration" >&5
-+$as_echo_n "checking for _expl declaration... " >&6; }
-+  if test x${glibcxx_cv_func__expl_use+set} != xset; then
-+    if test "${glibcxx_cv_func__expl_use+set}" = set; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+
-+
-+      ac_ext=cpp
-+ac_cpp='$CXXCPP $CPPFLAGS'
-+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-+
-+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <math.h>
-+                    #ifdef HAVE_IEEEFP_H
-+                    #include <ieeefp.h>
-+                    #endif
-+
-+int
-+main ()
-+{
-+ _expl(0);
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_cxx_try_compile "$LINENO"; then :
-+  glibcxx_cv_func__expl_use=yes
-+else
-+  glibcxx_cv_func__expl_use=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+      ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+
-+fi
-+
-+  fi
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func__expl_use" >&5
-+$as_echo "$glibcxx_cv_func__expl_use" >&6; }
-+
-+    if test x$glibcxx_cv_func__expl_use = x"yes"; then
-+      for ac_func in _expl
-+do :
-+  ac_fn_c_check_func "$LINENO" "_expl" "ac_cv_func__expl"
-+if test "x$ac_cv_func__expl" = x""yes; then :
-+  cat >>confdefs.h <<_ACEOF
-+#define HAVE__EXPL 1
-+_ACEOF
-+
-+fi
-+done
-+
-+    fi
-+  fi
-+
-+
-+
-+
-+
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fabsl declaration" >&5
-+$as_echo_n "checking for fabsl declaration... " >&6; }
-+  if test x${glibcxx_cv_func_fabsl_use+set} != xset; then
-+    if test "${glibcxx_cv_func_fabsl_use+set}" = set; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+
-+
-+      ac_ext=cpp
-+ac_cpp='$CXXCPP $CPPFLAGS'
-+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-+
-+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <math.h>
-+                    #ifdef HAVE_IEEEFP_H
-+                    #include <ieeefp.h>
-+                    #endif
-+
-+int
-+main ()
-+{
-+ fabsl(0);
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_cxx_try_compile "$LINENO"; then :
-+  glibcxx_cv_func_fabsl_use=yes
-+else
-+  glibcxx_cv_func_fabsl_use=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+      ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+
-+fi
-+
-+  fi
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func_fabsl_use" >&5
-+$as_echo "$glibcxx_cv_func_fabsl_use" >&6; }
-+
-+  if test x$glibcxx_cv_func_fabsl_use = x"yes"; then
-+    for ac_func in fabsl
-+do :
-+  ac_fn_c_check_func "$LINENO" "fabsl" "ac_cv_func_fabsl"
-+if test "x$ac_cv_func_fabsl" = x""yes; then :
-+  cat >>confdefs.h <<_ACEOF
-+#define HAVE_FABSL 1
-+_ACEOF
-+
-+fi
-+done
-+
-+  else
-+
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _fabsl declaration" >&5
-+$as_echo_n "checking for _fabsl declaration... " >&6; }
-+  if test x${glibcxx_cv_func__fabsl_use+set} != xset; then
-+    if test "${glibcxx_cv_func__fabsl_use+set}" = set; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+
-+
-+      ac_ext=cpp
-+ac_cpp='$CXXCPP $CPPFLAGS'
-+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-+
-+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <math.h>
-+                    #ifdef HAVE_IEEEFP_H
-+                    #include <ieeefp.h>
-+                    #endif
-+
-+int
-+main ()
-+{
-+ _fabsl(0);
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_cxx_try_compile "$LINENO"; then :
-+  glibcxx_cv_func__fabsl_use=yes
-+else
-+  glibcxx_cv_func__fabsl_use=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+      ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+
-+fi
-+
-+  fi
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func__fabsl_use" >&5
-+$as_echo "$glibcxx_cv_func__fabsl_use" >&6; }
-+
-+    if test x$glibcxx_cv_func__fabsl_use = x"yes"; then
-+      for ac_func in _fabsl
-+do :
-+  ac_fn_c_check_func "$LINENO" "_fabsl" "ac_cv_func__fabsl"
-+if test "x$ac_cv_func__fabsl" = x""yes; then :
-+  cat >>confdefs.h <<_ACEOF
-+#define HAVE__FABSL 1
-+_ACEOF
-+
-+fi
-+done
-+
-+    fi
-+  fi
-+
-+
-+
-+
-+
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fmodl declaration" >&5
-+$as_echo_n "checking for fmodl declaration... " >&6; }
-+  if test x${glibcxx_cv_func_fmodl_use+set} != xset; then
-+    if test "${glibcxx_cv_func_fmodl_use+set}" = set; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+
-+
-+      ac_ext=cpp
-+ac_cpp='$CXXCPP $CPPFLAGS'
-+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-+
-+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <math.h>
-+int
-+main ()
-+{
-+ fmodl(0, 0);
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_cxx_try_compile "$LINENO"; then :
-+  glibcxx_cv_func_fmodl_use=yes
-+else
-+  glibcxx_cv_func_fmodl_use=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+      ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+
-+fi
-+
-+  fi
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func_fmodl_use" >&5
-+$as_echo "$glibcxx_cv_func_fmodl_use" >&6; }
-+
-+  if test x$glibcxx_cv_func_fmodl_use = x"yes"; then
-+    for ac_func in fmodl
-+do :
-+  ac_fn_c_check_func "$LINENO" "fmodl" "ac_cv_func_fmodl"
-+if test "x$ac_cv_func_fmodl" = x""yes; then :
-+  cat >>confdefs.h <<_ACEOF
-+#define HAVE_FMODL 1
-+_ACEOF
-+
-+fi
-+done
-+
-+  else
-+
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _fmodl declaration" >&5
-+$as_echo_n "checking for _fmodl declaration... " >&6; }
-+  if test x${glibcxx_cv_func__fmodl_use+set} != xset; then
-+    if test "${glibcxx_cv_func__fmodl_use+set}" = set; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+
-+
-+      ac_ext=cpp
-+ac_cpp='$CXXCPP $CPPFLAGS'
-+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-+
-+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <math.h>
-+int
-+main ()
-+{
-+ _fmodl(0, 0);
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_cxx_try_compile "$LINENO"; then :
-+  glibcxx_cv_func__fmodl_use=yes
-+else
-+  glibcxx_cv_func__fmodl_use=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+      ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+
-+fi
-+
-+  fi
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func__fmodl_use" >&5
-+$as_echo "$glibcxx_cv_func__fmodl_use" >&6; }
-+
-+    if test x$glibcxx_cv_func__fmodl_use = x"yes"; then
-+      for ac_func in _fmodl
-+do :
-+  ac_fn_c_check_func "$LINENO" "_fmodl" "ac_cv_func__fmodl"
-+if test "x$ac_cv_func__fmodl" = x""yes; then :
-+  cat >>confdefs.h <<_ACEOF
-+#define HAVE__FMODL 1
-+_ACEOF
-+
-+fi
-+done
-+
-+    fi
-+  fi
-+
-+
-+
-+
-+
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for frexpl declaration" >&5
-+$as_echo_n "checking for frexpl declaration... " >&6; }
-+  if test x${glibcxx_cv_func_frexpl_use+set} != xset; then
-+    if test "${glibcxx_cv_func_frexpl_use+set}" = set; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+
-+
-+      ac_ext=cpp
-+ac_cpp='$CXXCPP $CPPFLAGS'
-+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-+
-+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <math.h>
-+int
-+main ()
-+{
-+ frexpl(0, 0);
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_cxx_try_compile "$LINENO"; then :
-+  glibcxx_cv_func_frexpl_use=yes
-+else
-+  glibcxx_cv_func_frexpl_use=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+      ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+
-+fi
-+
-+  fi
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func_frexpl_use" >&5
-+$as_echo "$glibcxx_cv_func_frexpl_use" >&6; }
-+
-+  if test x$glibcxx_cv_func_frexpl_use = x"yes"; then
-+    for ac_func in frexpl
-+do :
-+  ac_fn_c_check_func "$LINENO" "frexpl" "ac_cv_func_frexpl"
-+if test "x$ac_cv_func_frexpl" = x""yes; then :
-+  cat >>confdefs.h <<_ACEOF
-+#define HAVE_FREXPL 1
-+_ACEOF
-+
-+fi
-+done
-+
-+  else
-+
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _frexpl declaration" >&5
-+$as_echo_n "checking for _frexpl declaration... " >&6; }
-+  if test x${glibcxx_cv_func__frexpl_use+set} != xset; then
-+    if test "${glibcxx_cv_func__frexpl_use+set}" = set; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+
-+
-+      ac_ext=cpp
-+ac_cpp='$CXXCPP $CPPFLAGS'
-+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-+
-+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <math.h>
-+int
-+main ()
-+{
-+ _frexpl(0, 0);
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_cxx_try_compile "$LINENO"; then :
-+  glibcxx_cv_func__frexpl_use=yes
-+else
-+  glibcxx_cv_func__frexpl_use=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+      ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+
-+fi
-+
-+  fi
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func__frexpl_use" >&5
-+$as_echo "$glibcxx_cv_func__frexpl_use" >&6; }
-+
-+    if test x$glibcxx_cv_func__frexpl_use = x"yes"; then
-+      for ac_func in _frexpl
-+do :
-+  ac_fn_c_check_func "$LINENO" "_frexpl" "ac_cv_func__frexpl"
-+if test "x$ac_cv_func__frexpl" = x""yes; then :
-+  cat >>confdefs.h <<_ACEOF
-+#define HAVE__FREXPL 1
-+_ACEOF
-+
-+fi
-+done
-+
-+    fi
-+  fi
-+
-+
-+
-+
-+
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for hypotl declaration" >&5
-+$as_echo_n "checking for hypotl declaration... " >&6; }
-+  if test x${glibcxx_cv_func_hypotl_use+set} != xset; then
-+    if test "${glibcxx_cv_func_hypotl_use+set}" = set; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+
-+
-+      ac_ext=cpp
-+ac_cpp='$CXXCPP $CPPFLAGS'
-+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-+
-+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <math.h>
-+int
-+main ()
-+{
-+ hypotl(0, 0);
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_cxx_try_compile "$LINENO"; then :
-+  glibcxx_cv_func_hypotl_use=yes
-+else
-+  glibcxx_cv_func_hypotl_use=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+      ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+
-+fi
-+
-+  fi
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func_hypotl_use" >&5
-+$as_echo "$glibcxx_cv_func_hypotl_use" >&6; }
-+
-+  if test x$glibcxx_cv_func_hypotl_use = x"yes"; then
-+    for ac_func in hypotl
-+do :
-+  ac_fn_c_check_func "$LINENO" "hypotl" "ac_cv_func_hypotl"
-+if test "x$ac_cv_func_hypotl" = x""yes; then :
-+  cat >>confdefs.h <<_ACEOF
-+#define HAVE_HYPOTL 1
-+_ACEOF
-+
-+fi
-+done
-+
-+  else
-+
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _hypotl declaration" >&5
-+$as_echo_n "checking for _hypotl declaration... " >&6; }
-+  if test x${glibcxx_cv_func__hypotl_use+set} != xset; then
-+    if test "${glibcxx_cv_func__hypotl_use+set}" = set; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+
-+
-+      ac_ext=cpp
-+ac_cpp='$CXXCPP $CPPFLAGS'
-+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-+
-+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <math.h>
-+int
-+main ()
-+{
-+ _hypotl(0, 0);
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_cxx_try_compile "$LINENO"; then :
-+  glibcxx_cv_func__hypotl_use=yes
-+else
-+  glibcxx_cv_func__hypotl_use=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+      ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+
-+fi
-+
-+  fi
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func__hypotl_use" >&5
-+$as_echo "$glibcxx_cv_func__hypotl_use" >&6; }
-+
-+    if test x$glibcxx_cv_func__hypotl_use = x"yes"; then
-+      for ac_func in _hypotl
-+do :
-+  ac_fn_c_check_func "$LINENO" "_hypotl" "ac_cv_func__hypotl"
-+if test "x$ac_cv_func__hypotl" = x""yes; then :
-+  cat >>confdefs.h <<_ACEOF
-+#define HAVE__HYPOTL 1
-+_ACEOF
-+
-+fi
-+done
-+
-+    fi
-+  fi
-+
-+
-+
-+
-+
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ldexpl declaration" >&5
-+$as_echo_n "checking for ldexpl declaration... " >&6; }
-+  if test x${glibcxx_cv_func_ldexpl_use+set} != xset; then
-+    if test "${glibcxx_cv_func_ldexpl_use+set}" = set; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+
-+
-+      ac_ext=cpp
-+ac_cpp='$CXXCPP $CPPFLAGS'
-+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-+
-+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <math.h>
-+int
-+main ()
-+{
-+ ldexpl(0, 0);
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_cxx_try_compile "$LINENO"; then :
-+  glibcxx_cv_func_ldexpl_use=yes
-+else
-+  glibcxx_cv_func_ldexpl_use=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+      ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+
-+fi
-+
-+  fi
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func_ldexpl_use" >&5
-+$as_echo "$glibcxx_cv_func_ldexpl_use" >&6; }
-+
-+  if test x$glibcxx_cv_func_ldexpl_use = x"yes"; then
-+    for ac_func in ldexpl
-+do :
-+  ac_fn_c_check_func "$LINENO" "ldexpl" "ac_cv_func_ldexpl"
-+if test "x$ac_cv_func_ldexpl" = x""yes; then :
-+  cat >>confdefs.h <<_ACEOF
-+#define HAVE_LDEXPL 1
-+_ACEOF
-+
-+fi
-+done
-+
-+  else
-+
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _ldexpl declaration" >&5
-+$as_echo_n "checking for _ldexpl declaration... " >&6; }
-+  if test x${glibcxx_cv_func__ldexpl_use+set} != xset; then
-+    if test "${glibcxx_cv_func__ldexpl_use+set}" = set; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+
-+
-+      ac_ext=cpp
-+ac_cpp='$CXXCPP $CPPFLAGS'
-+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-+
-+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <math.h>
-+int
-+main ()
-+{
-+ _ldexpl(0, 0);
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_cxx_try_compile "$LINENO"; then :
-+  glibcxx_cv_func__ldexpl_use=yes
-+else
-+  glibcxx_cv_func__ldexpl_use=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+      ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+
-+fi
-+
-+  fi
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func__ldexpl_use" >&5
-+$as_echo "$glibcxx_cv_func__ldexpl_use" >&6; }
-+
-+    if test x$glibcxx_cv_func__ldexpl_use = x"yes"; then
-+      for ac_func in _ldexpl
-+do :
-+  ac_fn_c_check_func "$LINENO" "_ldexpl" "ac_cv_func__ldexpl"
-+if test "x$ac_cv_func__ldexpl" = x""yes; then :
-+  cat >>confdefs.h <<_ACEOF
-+#define HAVE__LDEXPL 1
-+_ACEOF
-+
-+fi
-+done
-+
-+    fi
-+  fi
-+
-+
-+
-+
-+
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for logl declaration" >&5
-+$as_echo_n "checking for logl declaration... " >&6; }
-+  if test x${glibcxx_cv_func_logl_use+set} != xset; then
-+    if test "${glibcxx_cv_func_logl_use+set}" = set; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+
-+
-+      ac_ext=cpp
-+ac_cpp='$CXXCPP $CPPFLAGS'
-+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-+
-+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <math.h>
-+                    #ifdef HAVE_IEEEFP_H
-+                    #include <ieeefp.h>
-+                    #endif
-+
-+int
-+main ()
-+{
-+ logl(0);
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_cxx_try_compile "$LINENO"; then :
-+  glibcxx_cv_func_logl_use=yes
-+else
-+  glibcxx_cv_func_logl_use=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+      ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+
-+fi
-+
-+  fi
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func_logl_use" >&5
-+$as_echo "$glibcxx_cv_func_logl_use" >&6; }
-+
-+  if test x$glibcxx_cv_func_logl_use = x"yes"; then
-+    for ac_func in logl
-+do :
-+  ac_fn_c_check_func "$LINENO" "logl" "ac_cv_func_logl"
-+if test "x$ac_cv_func_logl" = x""yes; then :
-+  cat >>confdefs.h <<_ACEOF
-+#define HAVE_LOGL 1
-+_ACEOF
-+
-+fi
-+done
-+
-+  else
-+
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _logl declaration" >&5
-+$as_echo_n "checking for _logl declaration... " >&6; }
-+  if test x${glibcxx_cv_func__logl_use+set} != xset; then
-+    if test "${glibcxx_cv_func__logl_use+set}" = set; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+
-+
-+      ac_ext=cpp
-+ac_cpp='$CXXCPP $CPPFLAGS'
-+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-+
-+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <math.h>
-+                    #ifdef HAVE_IEEEFP_H
-+                    #include <ieeefp.h>
-+                    #endif
-+
-+int
-+main ()
-+{
-+ _logl(0);
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_cxx_try_compile "$LINENO"; then :
-+  glibcxx_cv_func__logl_use=yes
-+else
-+  glibcxx_cv_func__logl_use=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+      ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+
-+fi
-+
-+  fi
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func__logl_use" >&5
-+$as_echo "$glibcxx_cv_func__logl_use" >&6; }
-+
-+    if test x$glibcxx_cv_func__logl_use = x"yes"; then
-+      for ac_func in _logl
-+do :
-+  ac_fn_c_check_func "$LINENO" "_logl" "ac_cv_func__logl"
-+if test "x$ac_cv_func__logl" = x""yes; then :
-+  cat >>confdefs.h <<_ACEOF
-+#define HAVE__LOGL 1
-+_ACEOF
-+
-+fi
-+done
-+
-+    fi
-+  fi
-+
-+
-+
-+
-+
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for log10l declaration" >&5
-+$as_echo_n "checking for log10l declaration... " >&6; }
-+  if test x${glibcxx_cv_func_log10l_use+set} != xset; then
-+    if test "${glibcxx_cv_func_log10l_use+set}" = set; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+
-+
-+      ac_ext=cpp
-+ac_cpp='$CXXCPP $CPPFLAGS'
-+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-+
-+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <math.h>
-+                    #ifdef HAVE_IEEEFP_H
-+                    #include <ieeefp.h>
-+                    #endif
-+
-+int
-+main ()
-+{
-+ log10l(0);
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_cxx_try_compile "$LINENO"; then :
-+  glibcxx_cv_func_log10l_use=yes
-+else
-+  glibcxx_cv_func_log10l_use=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+      ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+
-+fi
-+
-+  fi
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func_log10l_use" >&5
-+$as_echo "$glibcxx_cv_func_log10l_use" >&6; }
-+
-+  if test x$glibcxx_cv_func_log10l_use = x"yes"; then
-+    for ac_func in log10l
-+do :
-+  ac_fn_c_check_func "$LINENO" "log10l" "ac_cv_func_log10l"
-+if test "x$ac_cv_func_log10l" = x""yes; then :
-+  cat >>confdefs.h <<_ACEOF
-+#define HAVE_LOG10L 1
-+_ACEOF
-+
-+fi
-+done
-+
-+  else
-+
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _log10l declaration" >&5
-+$as_echo_n "checking for _log10l declaration... " >&6; }
-+  if test x${glibcxx_cv_func__log10l_use+set} != xset; then
-+    if test "${glibcxx_cv_func__log10l_use+set}" = set; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+
-+
-+      ac_ext=cpp
-+ac_cpp='$CXXCPP $CPPFLAGS'
-+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-+
-+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <math.h>
-+                    #ifdef HAVE_IEEEFP_H
-+                    #include <ieeefp.h>
-+                    #endif
-+
-+int
-+main ()
-+{
-+ _log10l(0);
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_cxx_try_compile "$LINENO"; then :
-+  glibcxx_cv_func__log10l_use=yes
-+else
-+  glibcxx_cv_func__log10l_use=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+      ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+
-+fi
-+
-+  fi
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func__log10l_use" >&5
-+$as_echo "$glibcxx_cv_func__log10l_use" >&6; }
-+
-+    if test x$glibcxx_cv_func__log10l_use = x"yes"; then
-+      for ac_func in _log10l
-+do :
-+  ac_fn_c_check_func "$LINENO" "_log10l" "ac_cv_func__log10l"
-+if test "x$ac_cv_func__log10l" = x""yes; then :
-+  cat >>confdefs.h <<_ACEOF
-+#define HAVE__LOG10L 1
-+_ACEOF
-+
-+fi
-+done
-+
-+    fi
-+  fi
-+
-+
-+
-+
-+
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for modfl declaration" >&5
-+$as_echo_n "checking for modfl declaration... " >&6; }
-+  if test x${glibcxx_cv_func_modfl_use+set} != xset; then
-+    if test "${glibcxx_cv_func_modfl_use+set}" = set; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+
-+
-+      ac_ext=cpp
-+ac_cpp='$CXXCPP $CPPFLAGS'
-+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-+
-+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <math.h>
-+int
-+main ()
-+{
-+ modfl(0, 0);
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_cxx_try_compile "$LINENO"; then :
-+  glibcxx_cv_func_modfl_use=yes
-+else
-+  glibcxx_cv_func_modfl_use=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+      ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+
-+fi
-+
-+  fi
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func_modfl_use" >&5
-+$as_echo "$glibcxx_cv_func_modfl_use" >&6; }
-+
-+  if test x$glibcxx_cv_func_modfl_use = x"yes"; then
-+    for ac_func in modfl
-+do :
-+  ac_fn_c_check_func "$LINENO" "modfl" "ac_cv_func_modfl"
-+if test "x$ac_cv_func_modfl" = x""yes; then :
-+  cat >>confdefs.h <<_ACEOF
-+#define HAVE_MODFL 1
-+_ACEOF
-+
-+fi
-+done
-+
-+  else
-+
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _modfl declaration" >&5
-+$as_echo_n "checking for _modfl declaration... " >&6; }
-+  if test x${glibcxx_cv_func__modfl_use+set} != xset; then
-+    if test "${glibcxx_cv_func__modfl_use+set}" = set; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+
-+
-+      ac_ext=cpp
-+ac_cpp='$CXXCPP $CPPFLAGS'
-+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-+
-+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <math.h>
-+int
-+main ()
-+{
-+ _modfl(0, 0);
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_cxx_try_compile "$LINENO"; then :
-+  glibcxx_cv_func__modfl_use=yes
-+else
-+  glibcxx_cv_func__modfl_use=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+      ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+
-+fi
-+
-+  fi
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func__modfl_use" >&5
-+$as_echo "$glibcxx_cv_func__modfl_use" >&6; }
-+
-+    if test x$glibcxx_cv_func__modfl_use = x"yes"; then
-+      for ac_func in _modfl
-+do :
-+  ac_fn_c_check_func "$LINENO" "_modfl" "ac_cv_func__modfl"
-+if test "x$ac_cv_func__modfl" = x""yes; then :
-+  cat >>confdefs.h <<_ACEOF
-+#define HAVE__MODFL 1
-+_ACEOF
-+
-+fi
-+done
-+
-+    fi
-+  fi
-+
-+
-+
-+
-+
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for powl declaration" >&5
-+$as_echo_n "checking for powl declaration... " >&6; }
-+  if test x${glibcxx_cv_func_powl_use+set} != xset; then
-+    if test "${glibcxx_cv_func_powl_use+set}" = set; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+
-+
-+      ac_ext=cpp
-+ac_cpp='$CXXCPP $CPPFLAGS'
-+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-+
-+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <math.h>
-+int
-+main ()
-+{
-+ powl(0, 0);
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_cxx_try_compile "$LINENO"; then :
-+  glibcxx_cv_func_powl_use=yes
-+else
-+  glibcxx_cv_func_powl_use=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+      ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+
-+fi
-+
-+  fi
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func_powl_use" >&5
-+$as_echo "$glibcxx_cv_func_powl_use" >&6; }
-+
-+  if test x$glibcxx_cv_func_powl_use = x"yes"; then
-+    for ac_func in powl
-+do :
-+  ac_fn_c_check_func "$LINENO" "powl" "ac_cv_func_powl"
-+if test "x$ac_cv_func_powl" = x""yes; then :
-+  cat >>confdefs.h <<_ACEOF
-+#define HAVE_POWL 1
-+_ACEOF
-+
-+fi
-+done
-+
-+  else
-+
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _powl declaration" >&5
-+$as_echo_n "checking for _powl declaration... " >&6; }
-+  if test x${glibcxx_cv_func__powl_use+set} != xset; then
-+    if test "${glibcxx_cv_func__powl_use+set}" = set; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+
-+
-+      ac_ext=cpp
-+ac_cpp='$CXXCPP $CPPFLAGS'
-+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-+
-+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <math.h>
-+int
-+main ()
-+{
-+ _powl(0, 0);
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_cxx_try_compile "$LINENO"; then :
-+  glibcxx_cv_func__powl_use=yes
-+else
-+  glibcxx_cv_func__powl_use=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+      ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+
-+fi
-+
-+  fi
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func__powl_use" >&5
-+$as_echo "$glibcxx_cv_func__powl_use" >&6; }
-+
-+    if test x$glibcxx_cv_func__powl_use = x"yes"; then
-+      for ac_func in _powl
-+do :
-+  ac_fn_c_check_func "$LINENO" "_powl" "ac_cv_func__powl"
-+if test "x$ac_cv_func__powl" = x""yes; then :
-+  cat >>confdefs.h <<_ACEOF
-+#define HAVE__POWL 1
-+_ACEOF
-+
-+fi
-+done
-+
-+    fi
-+  fi
-+
-+
-+
-+
-+
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sqrtl declaration" >&5
-+$as_echo_n "checking for sqrtl declaration... " >&6; }
-+  if test x${glibcxx_cv_func_sqrtl_use+set} != xset; then
-+    if test "${glibcxx_cv_func_sqrtl_use+set}" = set; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+
-+
-+      ac_ext=cpp
-+ac_cpp='$CXXCPP $CPPFLAGS'
-+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-+
-+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <math.h>
-+                    #ifdef HAVE_IEEEFP_H
-+                    #include <ieeefp.h>
-+                    #endif
-+
-+int
-+main ()
-+{
-+ sqrtl(0);
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_cxx_try_compile "$LINENO"; then :
-+  glibcxx_cv_func_sqrtl_use=yes
-+else
-+  glibcxx_cv_func_sqrtl_use=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+      ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+
-+fi
-+
-+  fi
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func_sqrtl_use" >&5
-+$as_echo "$glibcxx_cv_func_sqrtl_use" >&6; }
-+
-+  if test x$glibcxx_cv_func_sqrtl_use = x"yes"; then
-+    for ac_func in sqrtl
-+do :
-+  ac_fn_c_check_func "$LINENO" "sqrtl" "ac_cv_func_sqrtl"
-+if test "x$ac_cv_func_sqrtl" = x""yes; then :
-+  cat >>confdefs.h <<_ACEOF
-+#define HAVE_SQRTL 1
-+_ACEOF
-+
-+fi
-+done
-+
-+  else
-+
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _sqrtl declaration" >&5
-+$as_echo_n "checking for _sqrtl declaration... " >&6; }
-+  if test x${glibcxx_cv_func__sqrtl_use+set} != xset; then
-+    if test "${glibcxx_cv_func__sqrtl_use+set}" = set; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+
-+
-+      ac_ext=cpp
-+ac_cpp='$CXXCPP $CPPFLAGS'
-+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-+
-+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <math.h>
-+                    #ifdef HAVE_IEEEFP_H
-+                    #include <ieeefp.h>
-+                    #endif
-+
-+int
-+main ()
-+{
-+ _sqrtl(0);
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_cxx_try_compile "$LINENO"; then :
-+  glibcxx_cv_func__sqrtl_use=yes
-+else
-+  glibcxx_cv_func__sqrtl_use=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+      ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+
-+fi
-+
-+  fi
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func__sqrtl_use" >&5
-+$as_echo "$glibcxx_cv_func__sqrtl_use" >&6; }
-+
-+    if test x$glibcxx_cv_func__sqrtl_use = x"yes"; then
-+      for ac_func in _sqrtl
-+do :
-+  ac_fn_c_check_func "$LINENO" "_sqrtl" "ac_cv_func__sqrtl"
-+if test "x$ac_cv_func__sqrtl" = x""yes; then :
-+  cat >>confdefs.h <<_ACEOF
-+#define HAVE__SQRTL 1
-+_ACEOF
-+
-+fi
-+done
-+
-+    fi
-+  fi
-+
-+
-+
-+
-+
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sincosl declaration" >&5
-+$as_echo_n "checking for sincosl declaration... " >&6; }
-+  if test x${glibcxx_cv_func_sincosl_use+set} != xset; then
-+    if test "${glibcxx_cv_func_sincosl_use+set}" = set; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+
-+
-+      ac_ext=cpp
-+ac_cpp='$CXXCPP $CPPFLAGS'
-+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-+
-+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <math.h>
-+int
-+main ()
-+{
-+ sincosl(0, 0, 0);
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_cxx_try_compile "$LINENO"; then :
-+  glibcxx_cv_func_sincosl_use=yes
-+else
-+  glibcxx_cv_func_sincosl_use=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+      ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+
-+fi
-+
-+  fi
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func_sincosl_use" >&5
-+$as_echo "$glibcxx_cv_func_sincosl_use" >&6; }
-+
-+  if test x$glibcxx_cv_func_sincosl_use = x"yes"; then
-+    for ac_func in sincosl
-+do :
-+  ac_fn_c_check_func "$LINENO" "sincosl" "ac_cv_func_sincosl"
-+if test "x$ac_cv_func_sincosl" = x""yes; then :
-+  cat >>confdefs.h <<_ACEOF
-+#define HAVE_SINCOSL 1
-+_ACEOF
-+
-+fi
-+done
-+
-+  else
-+
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _sincosl declaration" >&5
-+$as_echo_n "checking for _sincosl declaration... " >&6; }
-+  if test x${glibcxx_cv_func__sincosl_use+set} != xset; then
-+    if test "${glibcxx_cv_func__sincosl_use+set}" = set; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+
-+
-+      ac_ext=cpp
-+ac_cpp='$CXXCPP $CPPFLAGS'
-+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-+
-+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <math.h>
-+int
-+main ()
-+{
-+ _sincosl(0, 0, 0);
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_cxx_try_compile "$LINENO"; then :
-+  glibcxx_cv_func__sincosl_use=yes
-+else
-+  glibcxx_cv_func__sincosl_use=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+      ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+
-+fi
-+
-+  fi
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func__sincosl_use" >&5
-+$as_echo "$glibcxx_cv_func__sincosl_use" >&6; }
-+
-+    if test x$glibcxx_cv_func__sincosl_use = x"yes"; then
-+      for ac_func in _sincosl
-+do :
-+  ac_fn_c_check_func "$LINENO" "_sincosl" "ac_cv_func__sincosl"
-+if test "x$ac_cv_func__sincosl" = x""yes; then :
-+  cat >>confdefs.h <<_ACEOF
-+#define HAVE__SINCOSL 1
-+_ACEOF
-+
-+fi
-+done
-+
-+    fi
-+  fi
-+
-+
-+
-+
-+
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for finitel declaration" >&5
-+$as_echo_n "checking for finitel declaration... " >&6; }
-+  if test x${glibcxx_cv_func_finitel_use+set} != xset; then
-+    if test "${glibcxx_cv_func_finitel_use+set}" = set; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+
-+
-+      ac_ext=cpp
-+ac_cpp='$CXXCPP $CPPFLAGS'
-+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-+
-+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <math.h>
-+                    #ifdef HAVE_IEEEFP_H
-+                    #include <ieeefp.h>
-+                    #endif
-+
-+int
-+main ()
-+{
-+ finitel(0);
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_cxx_try_compile "$LINENO"; then :
-+  glibcxx_cv_func_finitel_use=yes
-+else
-+  glibcxx_cv_func_finitel_use=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+      ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+
-+fi
-+
-+  fi
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func_finitel_use" >&5
-+$as_echo "$glibcxx_cv_func_finitel_use" >&6; }
-+
-+  if test x$glibcxx_cv_func_finitel_use = x"yes"; then
-+    for ac_func in finitel
-+do :
-+  ac_fn_c_check_func "$LINENO" "finitel" "ac_cv_func_finitel"
-+if test "x$ac_cv_func_finitel" = x""yes; then :
-+  cat >>confdefs.h <<_ACEOF
-+#define HAVE_FINITEL 1
-+_ACEOF
-+
-+fi
-+done
-+
-+  else
-+
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _finitel declaration" >&5
-+$as_echo_n "checking for _finitel declaration... " >&6; }
-+  if test x${glibcxx_cv_func__finitel_use+set} != xset; then
-+    if test "${glibcxx_cv_func__finitel_use+set}" = set; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+
-+
-+      ac_ext=cpp
-+ac_cpp='$CXXCPP $CPPFLAGS'
-+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-+
-+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <math.h>
-+                    #ifdef HAVE_IEEEFP_H
-+                    #include <ieeefp.h>
-+                    #endif
-+
-+int
-+main ()
-+{
-+ _finitel(0);
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_cxx_try_compile "$LINENO"; then :
-+  glibcxx_cv_func__finitel_use=yes
-+else
-+  glibcxx_cv_func__finitel_use=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+      ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+
-+fi
-+
-+  fi
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func__finitel_use" >&5
-+$as_echo "$glibcxx_cv_func__finitel_use" >&6; }
-+
-+    if test x$glibcxx_cv_func__finitel_use = x"yes"; then
-+      for ac_func in _finitel
-+do :
-+  ac_fn_c_check_func "$LINENO" "_finitel" "ac_cv_func__finitel"
-+if test "x$ac_cv_func__finitel" = x""yes; then :
-+  cat >>confdefs.h <<_ACEOF
-+#define HAVE__FINITEL 1
-+_ACEOF
-+
-+fi
-+done
-+
-+    fi
-+  fi
-+
-+
-+
-+
-+  LIBS="$ac_save_LIBS"
-+  CXXFLAGS="$ac_save_CXXFLAGS"
-+
-+
-+  ac_test_CXXFLAGS="${CXXFLAGS+set}"
-+  ac_save_CXXFLAGS="$CXXFLAGS"
-+  CXXFLAGS='-fno-builtin -D_GNU_SOURCE'
-+
-+
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for at_quick_exit declaration" >&5
-+$as_echo_n "checking for at_quick_exit declaration... " >&6; }
-+  if test x${glibcxx_cv_func_at_quick_exit_use+set} != xset; then
-+    if test "${glibcxx_cv_func_at_quick_exit_use+set}" = set; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+
-+
-+      ac_ext=cpp
-+ac_cpp='$CXXCPP $CPPFLAGS'
-+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-+
-+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <stdlib.h>
-+int
-+main ()
-+{
-+ at_quick_exit(0);
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_cxx_try_compile "$LINENO"; then :
-+  glibcxx_cv_func_at_quick_exit_use=yes
-+else
-+  glibcxx_cv_func_at_quick_exit_use=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+      ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+
-+fi
-+
-+  fi
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func_at_quick_exit_use" >&5
-+$as_echo "$glibcxx_cv_func_at_quick_exit_use" >&6; }
-+  if test x$glibcxx_cv_func_at_quick_exit_use = x"yes"; then
-+    for ac_func in at_quick_exit
-+do :
-+  ac_fn_c_check_func "$LINENO" "at_quick_exit" "ac_cv_func_at_quick_exit"
-+if test "x$ac_cv_func_at_quick_exit" = x""yes; then :
-+  cat >>confdefs.h <<_ACEOF
-+#define HAVE_AT_QUICK_EXIT 1
-+_ACEOF
-+
-+fi
-+done
-+
-+  fi
-+
-+
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for quick_exit declaration" >&5
-+$as_echo_n "checking for quick_exit declaration... " >&6; }
-+  if test x${glibcxx_cv_func_quick_exit_use+set} != xset; then
-+    if test "${glibcxx_cv_func_quick_exit_use+set}" = set; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+
-+
-+      ac_ext=cpp
-+ac_cpp='$CXXCPP $CPPFLAGS'
-+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-+
-+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <stdlib.h>
-+int
-+main ()
-+{
-+ quick_exit(0);
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_cxx_try_compile "$LINENO"; then :
-+  glibcxx_cv_func_quick_exit_use=yes
-+else
-+  glibcxx_cv_func_quick_exit_use=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+      ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+
-+fi
-+
-+  fi
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func_quick_exit_use" >&5
-+$as_echo "$glibcxx_cv_func_quick_exit_use" >&6; }
-+  if test x$glibcxx_cv_func_quick_exit_use = x"yes"; then
-+    for ac_func in quick_exit
-+do :
-+  ac_fn_c_check_func "$LINENO" "quick_exit" "ac_cv_func_quick_exit"
-+if test "x$ac_cv_func_quick_exit" = x""yes; then :
-+  cat >>confdefs.h <<_ACEOF
-+#define HAVE_QUICK_EXIT 1
-+_ACEOF
-+
-+fi
-+done
-+
-+  fi
-+
-+
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for strtold declaration" >&5
-+$as_echo_n "checking for strtold declaration... " >&6; }
-+  if test x${glibcxx_cv_func_strtold_use+set} != xset; then
-+    if test "${glibcxx_cv_func_strtold_use+set}" = set; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+
-+
-+      ac_ext=cpp
-+ac_cpp='$CXXCPP $CPPFLAGS'
-+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-+
-+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <stdlib.h>
-+int
-+main ()
-+{
-+ strtold(0, 0);
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_cxx_try_compile "$LINENO"; then :
-+  glibcxx_cv_func_strtold_use=yes
-+else
-+  glibcxx_cv_func_strtold_use=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+      ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+
-+fi
-+
-+  fi
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func_strtold_use" >&5
-+$as_echo "$glibcxx_cv_func_strtold_use" >&6; }
-+  if test x$glibcxx_cv_func_strtold_use = x"yes"; then
-+    for ac_func in strtold
-+do :
-+  ac_fn_c_check_func "$LINENO" "strtold" "ac_cv_func_strtold"
-+if test "x$ac_cv_func_strtold" = x""yes; then :
-+  cat >>confdefs.h <<_ACEOF
-+#define HAVE_STRTOLD 1
-+_ACEOF
-+
-+fi
-+done
-+
-+  fi
-+
-+
-+
-+
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for strtof declaration" >&5
-+$as_echo_n "checking for strtof declaration... " >&6; }
-+  if test x${glibcxx_cv_func_strtof_use+set} != xset; then
-+    if test "${glibcxx_cv_func_strtof_use+set}" = set; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+
-+
-+      ac_ext=cpp
-+ac_cpp='$CXXCPP $CPPFLAGS'
-+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-+
-+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <stdlib.h>
-+int
-+main ()
-+{
-+ strtof(0, 0);
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_cxx_try_compile "$LINENO"; then :
-+  glibcxx_cv_func_strtof_use=yes
-+else
-+  glibcxx_cv_func_strtof_use=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+      ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+
-+fi
-+
-+  fi
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func_strtof_use" >&5
-+$as_echo "$glibcxx_cv_func_strtof_use" >&6; }
-+  if test x$glibcxx_cv_func_strtof_use = x"yes"; then
-+    for ac_func in strtof
-+do :
-+  ac_fn_c_check_func "$LINENO" "strtof" "ac_cv_func_strtof"
-+if test "x$ac_cv_func_strtof" = x""yes; then :
-+  cat >>confdefs.h <<_ACEOF
-+#define HAVE_STRTOF 1
-+_ACEOF
-+
-+fi
-+done
-+
-+  fi
-+
-+
-+
-+
-+  CXXFLAGS="$ac_save_CXXFLAGS"
-+
-+    ;;
-   *-mingw32*)
-   # If we're not using GNU ld, then there's no point in even trying these
-diff --git a/libstdc++-v3/crossconfig.m4 b/libstdc++-v3/crossconfig.m4
-index 943ea676ea27..3e4e92454568 100644
---- a/libstdc++-v3/crossconfig.m4
-+++ b/libstdc++-v3/crossconfig.m4
-@@ -150,6 +150,12 @@ case "${host}" in
-     GCC_CHECK_TLS
-     AM_ICONV
-     ;;
-+  *-barrelfish*)
-+    GLIBCXX_CHECK_COMPILER_FEATURES
-+    GLIBCXX_CHECK_LINKER_FEATURES
-+    GLIBCXX_CHECK_MATH_SUPPORT
-+    GLIBCXX_CHECK_STDLIB_SUPPORT
-+    ;;
-   *-mingw32*)
-     GLIBCXX_CHECK_LINKER_FEATURES
-     GLIBCXX_CHECK_MATH_SUPPORT
-diff --git a/libstdc++-v3/include/c_global/csignal b/libstdc++-v3/include/c_global/csignal
-index 16446f502829..aa0f0067b044 100644
---- a/libstdc++-v3/include/c_global/csignal
-+++ b/libstdc++-v3/include/c_global/csignal
-@@ -49,9 +49,9 @@
- namespace std
- {
--  using ::sig_atomic_t;
-+  //using ::sig_atomic_t;
-   using ::signal;
--  using ::raise;
-+  //using ::raise;
- } // namespace std
- #endif
diff --git a/tools/k1om/mpss-gcc/binutils-2.22+mpss3.2-barrelfish.patch b/tools/k1om/mpss-gcc/binutils-2.22+mpss3.2-barrelfish.patch
deleted file mode 100644 (file)
index 20cd88d..0000000
+++ /dev/null
@@ -1,905 +0,0 @@
-diff --git a/bfd/config.bfd b/bfd/config.bfd
-index 5324d39a21cb..3f0119ab2649 100644
---- a/bfd/config.bfd
-+++ b/bfd/config.bfd
-@@ -583,6 +583,10 @@
-     targ_selvecs="i386linux_vec i386pei_vec"
-     targ64_selvecs="bfd_elf64_x86_64_vec bfd_elf32_x86_64_vec bfd_elf64_l1om_vec bfd_elf64_k1om_vec"
-     ;;
-+  i[3-7]86-*-barrelfish*)
-+    targ_defvec=bfd_elf32_i386_vec
-+    targ_selvecs=bfd_elf32_i386_vec
-+    ;;
-   i[3-7]86-*-nacl*)
-     targ_defvec=bfd_elf32_i386_nacl_vec
-     targ_selvecs="bfd_elf32_i386_vec"
-@@ -660,6 +664,15 @@
-     targ_selvecs="bfd_elf64_x86_64_vec bfd_elf32_i386_vec bfd_elf32_x86_64_vec i386linux_vec i386pei_vec x86_64pei_vec bfd_elf64_l1om_vec"
-     want64=true
-     ;;
-+    x86_64-*-barrelfish*)
-+    targ_defvec=bfd_elf64_x86_64_vec
-+    targ_selvecs=bfd_elf64_x86_64_vec
-+    want64=true
-+    ;;
-+    k1om-*-barrelfish*)
-+    targ_defvec=bfd_elf64_k1om_vec
-+    targ_selvecs="bfd_elf64_x86_64_vec bfd_elf64_k1om_vec bfd_elf64_l1om_vec"
-#+    targ_selvecs="bfd_elf64_k1om_vec bfd_elf64_l1om_vec"
-+    want64=true ;;
-   k1om-*-mingw* | k1om-*-pe | k1om-*-pep)
-     targ_defvec=bfd_elf64_k1om_vec
-     targ_selvecs="x86_64pe_vec x86_64pei_vec bfd_elf64_x86_64_vec bfd_elf64_l1om_vec i386pe_vec i386pei_vec bfd_elf32_i386_vec"
-diff --git a/config.sub b/config.sub
-index 61cb4bc22db8..bc3ec8c48906 100755
---- a/config.sub
-+++ b/config.sub
-@@ -1335,7 +1335,7 @@
-             | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
-             | -sym* | -kopensolaris* \
-             | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
--            | -aos* | -aros* \
-+            | -aos* | -aros* | -barrelfish*\
-             | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
-             | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
-             | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
-diff --git a/configure b/configure
-index ee45e1b00f90..5bb841e5899d 100755
---- a/configure
-+++ b/configure
-@@ -2867,7 +2867,7 @@
-     is_elf=no
-     case "${target}" in
-       *-*-elf* | *-*-sysv4* | *-*-unixware* | *-*-eabi* | hppa*64*-*-hpux* \
--      | *-*-linux* | frv-*-uclinux* | *-*-irix5* | *-*-irix6* \
-+      | *-*-linux* | frv-*-uclinux* | *-*-irix5* | *-*-irix6* | *-*-barrelfish \
-       | *-*-netbsd* | *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* \
-       | *-*-solaris2* | *-*-nto*)
-         case "${target}" in
-
-diff --git a/gas/configure.tgt b/gas/configure.tgt
-index 77c1d9b59246..5b32ae8f8a0c 100644
---- a/gas/configure.tgt
-+++ b/gas/configure.tgt
-@@ -197,6 +197,7 @@
-   i386-*-openbsd[0-2].* | \
-   i386-*-openbsd3.[0-2])              fmt=aout em=nbsd ;;
-   i386-*-openbsd*)                    fmt=elf em=nbsd ;;
-+  i386-*-barrelfish*)                 fmt=elf ;;
-   i386-*-linux*aout*)                 fmt=aout em=linux ;;
-   i386-*-linux*oldld)                 fmt=aout em=linux ;;
-   i386-*-linux*coff*)                 fmt=coff em=linux ;; 
-diff --git a/ld/Makefile.am b/ld/Makefile.am
-index b2b2a6ebe362..c01570b158ba 100644
---- a/ld/Makefile.am
-+++ b/ld/Makefile.am
-@@ -259,6 +259,7 @@
-       eelf32xstormy16.c \
-       eelf32xtensa.c \
-       eelf_i386.c \
-+        ebarrelfish_i386.c
-       eelf_i386_be.c \
-       eelf_i386_chaos.c \
-       eelf_i386_fbsd.c \
-@@ -484,6 +485,7 @@
-       eelf64ppc_fbsd.c \
-       eelf64tilegx.c \
-       eelf64tilegx_be.c \
-+        ebarrelfish_k1om.c \
-       eelf_l1om.c \
-       eelf_l1om_fbsd.c \
-       eelf_k1om.c \
-@@ -1189,6 +1191,15 @@
- eelf_i386.c: $(srcdir)/emulparams/elf_i386.sh \
-   $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
-       ${GENSCRIPTS} elf_i386 "$(tdir_elf_i386)"
-+ebarrelfish_i386.c: $(srcdir)/emulparams/barrelfish_i386.sh \
-+  $(ELF_DEPS) $(srcdir)/scripttempl/elf-barrelfish.sc ${GEN_DEPENDS}
-+      ${GENSCRIPTS} barrelfish_i386 "$(tdir_barrelfish_i386)"
-+ebarrelfish_x86_64.c: $(srcdir)/emulparams/barrelfish_x86_64.sh \
-+  $(ELF_DEPS) $(srcdir)/scripttempl/elf-barrelfish.sc ${GEN_DEPENDS}
-+      ${GENSCRIPTS} barrelfish_x86_64 "$(tdir_barrelfish_x86_64)"
-+ebarrelfish_k1om.c: $(srcdir)/emulparams/barrelfish_k1om.sh \
-+  $(ELF_DEPS) $(srcdir)/scripttempl/elf-barrelfish.sc ${GEN_DEPENDS}
-+      ${GENSCRIPTS} barrelfish_k1om "$(tdir_barrelfish_k1om)"
- eelf_i386_be.c: $(srcdir)/emulparams/elf_i386_be.sh \
-   $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
-       ${GENSCRIPTS} elf_i386_be "$(tdir_elf_i386_be)"
-diff --git a/ld/Makefile.in b/ld/Makefile.in
-index b95a3d103de4..d41557b3334c 100644
---- a/ld/Makefile.in
-+++ b/ld/Makefile.in
-@@ -565,6 +565,7 @@
-       eelf32xstormy16.c \
-       eelf32xtensa.c \
-       eelf_i386.c \
-+        ebarrelfish_i386.c \
-       eelf_i386_be.c \
-       eelf_i386_chaos.c \
-       eelf_i386_fbsd.c \
-@@ -793,6 +794,8 @@
-       eelf_l1om_fbsd.c \
-       eelf_k1om.c \
-       eelf_k1om_fbsd.c \
-+      ebarrelfish_k1om.c \
-+      ebarrelfish_x86_64.c \
-       eelf_x86_64.c \
-       eelf_x86_64_fbsd.c \
-       eelf_x86_64_sol2.c \
-@@ -3473,6 +3476,15 @@
-   $(srcdir)/emulparams/elf_k1om.sh \
-   $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
-       ${GENSCRIPTS} elf_k1om_fbsd "$(tdir_elf_k1om_fbsd)"
-+ebarrelfish_i386.c: $(srcdir)/emulparams/barrelfish_i386.sh \
-+  $(ELF_DEPS) $(srcdir)/scripttempl/elf-barrelfish.sc ${GEN_DEPENDS}
-+      ${GENSCRIPTS} barrelfish_i386 "$(tdir_barrelfish_i386)"
-+ebarrelfish_x86_64.c: $(srcdir)/emulparams/barrelfish_x86_64.sh \
-+  $(ELF_DEPS) $(srcdir)/scripttempl/elf-barrelfish.sc ${GEN_DEPENDS}
-+      ${GENSCRIPTS} barrelfish_x86_64 "$(tdir_barrelfish_x86_64)"
-+ebarrelfish_k1om.c: $(srcdir)/emulparams/barrelfish_k1om.sh \
-+  $(ELF_DEPS) $(srcdir)/scripttempl/elf-barrelfish.sc ${GEN_DEPENDS}
-+      ${GENSCRIPTS} barrelfish_k1om "$(tdir_barrelfish_k1om)"
- eelf_x86_64.c: $(srcdir)/emulparams/elf_x86_64.sh \
-   $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
-       ${GENSCRIPTS} elf_x86_64 "$(tdir_elf_x86_64)"
-diff --git a/ld/configure.tgt b/ld/configure.tgt
-index c50730b9c514..27702cbedc3a 100644
---- a/ld/configure.tgt
-+++ b/ld/configure.tgt
-@@ -186,6 +186,7 @@
-                       targ_extra_emuls=elf_i386
-                       tdir_elf_i386=`echo ${targ_alias} | sed -e 's/aout//'` ;;
- i[3-7]86-*-linux*oldld)       targ_emul=i386linux; targ_extra_emuls=elf_i386 ;;
-+i[3-7]86-*-barrelfish*)       targ_emul=barrelfish_i386 ;;
- i[3-7]86-*-linux-*)   targ_emul=elf_i386
-                       targ_extra_emuls=i386linux
-                       targ64_extra_emuls="elf_x86_64 elf32_x86_64 elf_l1om elf_k1om"
-@@ -212,6 +213,10 @@
-                       targ_extra_libpath="elf_i386 elf32_x86_64 elf_x86_64"
-                       tdir_i386linux=`echo ${targ_alias}aout | sed -e 's/x86_64/i386/'`
-                       tdir_elf_i386=`echo ${targ_alias} | sed -e 's/x86_64/i386/'` ;;
-+k1om-*-barrelfish*)   targ_emul=elf_k1om
-+                      targ_extra_emuls="barrelfish_k1om barrelfish_x86_64 elf_x86_64"
-#+                     targ_extra_emuls="barrelfish_k1om"
-+                      targ_extra_libpath="barrelfish_k1om elf_k1om barrelfish_x86_64 elf_x86_64" ;;
-#+                     targ_extra_libpath="elf_k1om" ;;
-+x86_64-*-barrelfish*) targ_emul=barrelfish_x86_64 ;;
- x86_64-*-linux-*)     targ_emul=elf_x86_64
-                       targ_extra_emuls="elf32_x86_64 elf_i386 i386linux elf_l1om elf_k1om"
-                       targ_extra_libpath="elf_i386 elf32_x86_64 elf_l1om elf_k1om"
-diff --git a/ld/emulparams/barrelfish_i386.sh b/ld/emulparams/barrelfish_i386.sh
-new file mode 100644
-index 000000000000..032dd5ae18a3
---- /dev/null
-+++ b/ld/emulparams/barrelfish_i386.sh
-@@ -0,0 +1,14 @@
-+. ${srcdir}/emulparams/plt_unwind.sh
-+SCRIPT_NAME=elf-barrelfish
-+OUTPUT_FORMAT="elf32-i386"
-+NO_RELA_RELOCS=yes
-+TEXT_START_ADDR=0x400000
-+MAXPAGESIZE=0x1000
-+COMMONPAGESIZE="CONSTANT (COMMONPAGESIZE)"
-+ARCH=i386
-+MACHINE=
-+TEMPLATE_NAME=elf32
-+GENERATE_SHLIB_SCRIPT=no
-+GENERATE_PIE_SCRIPT=yes
-+NO_SMALL_DATA=yes
-+SEPARATE_GOTPLT="SIZEOF (.got.plt) >= 12 ? 12 : 0"
-diff --git a/ld/emulparams/barrelfish_x86_64.sh b/ld/emulparams/barrelfish_x86_64.sh
-new file mode 100644
-index 000000000000..bf4dafdd6b2b
---- /dev/null
-+++ b/ld/emulparams/barrelfish_x86_64.sh
-@@ -0,0 +1,16 @@
-+. ${srcdir}/emulparams/plt_unwind.sh
-+SCRIPT_NAME=elf-barrelfish
-+ELFSIZE=64
-+OUTPUT_FORMAT="elf64-x86-64"
-+NO_RELA_RELOCS=yes
-+TEXT_START_ADDR=0x400000
-+MAXPAGESIZE=0x1000
-+COMMONPAGESIZE="CONSTANT (COMMONPAGESIZE)"
-+ARCH="i386:x86-64"
-+MACHINE=
-+TEMPLATE_NAME=elf32
-+GENERATE_SHLIB_SCRIPT=no
-+GENERATE_PIE_SCRIPT=yes
-+NO_SMALL_DATA=yes
-+LARGE_SECTIONS=yes
-+SEPARATE_GOTPLT="SIZEOF (.got.plt) >= 24 ? 24 : 0"
-diff --git a/ld/emulparams/barrelfish_k1om.sh b/ld/emulparams/barrelfish_k1om.sh
-new file mode 100644
-index 000000000000..bf4dafdd6b2b
---- /dev/null
-+++ b/ld/emulparams/barrelfish_k1om.sh
-@@ -0,0 +1,18 @@
-+. ${srcdir}/emulparams/plt_unwind.sh
-+SCRIPT_NAME=elf-barrelfish
-+ELFSIZE=64
-+OUTPUT_FORMAT="elf64-k1om"
-+NO_RELA_RELOCS=yes
-+TEXT_START_ADDR=0x400000
-+MAXPAGESIZE=0x1000
-+COMMONPAGESIZE="CONSTANT (COMMONPAGESIZE)"
-+ARCH="k1om"
-+MACHINE=
-+COMPILE_IN=yes
-+TEMPLATE_NAME=elf32
-+GENERATE_SHLIB_SCRIPT=yes
-+GENERATE_PIE_SCRIPT=yes
-+NO_SMALL_DATA=yes
-+LARGE_SECTIONS=yes
-+SEPARATE_GOTPLT=24 #"SIZEOF (.got.plt) >= 24 ? 24 : 0"
-+LIBPATH_SUFFIX=64 ;;
-diff --git a/ld/scripttempl/elf-barrelfish.sc b/ld/scripttempl/elf-barrelfish.sc
-new file mode 100644
-index 000000000000..51a655eed65c
---- /dev/null
-+++ b/ld/scripttempl/elf-barrelfish.sc
-@@ -0,0 +1,664 @@
-+#
-+# Unusual variables checked by this code:
-+#     NOP - four byte opcode for no-op (defaults to none)
-+#     NO_SMALL_DATA - no .sbss/.sbss2/.sdata/.sdata2 sections if not
-+#             empty.
-+#     SMALL_DATA_CTOR - .ctors contains small data.
-+#     SMALL_DATA_DTOR - .dtors contains small data.
-+#     DATA_ADDR - if end-of-text-plus-one-page isn't right for data start
-+#     INITIAL_READONLY_SECTIONS - at start of text segment
-+#     OTHER_READONLY_SECTIONS - other than .text .init .rodata ...
-+#             (e.g., .PARISC.milli)
-+#     OTHER_TEXT_SECTIONS - these get put in .text when relocating
-+#     OTHER_READWRITE_SECTIONS - other than .data .bss .ctors .sdata ...
-+#             (e.g., .PARISC.global)
-+#     OTHER_RELRO_SECTIONS - other than .data.rel.ro ...
-+#             (e.g. PPC32 .fixup, .got[12])
-+#     OTHER_BSS_SECTIONS - other than .bss .sbss ...
-+#     ATTRS_SECTIONS - at the end
-+#     OTHER_SECTIONS - at the end
-+#     EXECUTABLE_SYMBOLS - symbols that must be defined for an
-+#             executable (e.g., _DYNAMIC_LINK)
-+#       TEXT_START_ADDR - the first byte of the text segment, after any
-+#               headers.
-+#       TEXT_BASE_ADDRESS - the first byte of the text segment.
-+#     TEXT_START_SYMBOLS - symbols that appear at the start of the
-+#             .text section.
-+#     DATA_START_SYMBOLS - symbols that appear at the start of the
-+#             .data section.
-+#     DATA_END_SYMBOLS - symbols that appear at the end of the
-+#             writeable data sections.
-+#     OTHER_GOT_SYMBOLS - symbols defined just before .got.
-+#     OTHER_GOT_SECTIONS - sections just after .got.
-+#     OTHER_SDATA_SECTIONS - sections just after .sdata.
-+#     OTHER_BSS_SYMBOLS - symbols that appear at the start of the
-+#             .bss section besides __bss_start.
-+#     DATA_PLT - .plt should be in data segment, not text segment.
-+#     PLT_BEFORE_GOT - .plt just before .got when .plt is in data segement.
-+#     BSS_PLT - .plt should be in bss segment
-+#     NO_REL_RELOCS - Don't include .rel.* sections in script
-+#     NO_RELA_RELOCS - Don't include .rela.* sections in script
-+#     NON_ALLOC_DYN - Place dynamic sections after data segment.
-+#     TEXT_DYNAMIC - .dynamic in text segment, not data segment.
-+#     EMBEDDED - whether this is for an embedded system.
-+#     SHLIB_TEXT_START_ADDR - if set, add to SIZEOF_HEADERS to set
-+#             start address of shared library.
-+#     INPUT_FILES - INPUT command of files to always include
-+#     WRITABLE_RODATA - if set, the .rodata section should be writable
-+#     INIT_START, INIT_END -  statements just before and just after
-+#     combination of .init sections.
-+#     FINI_START, FINI_END - statements just before and just after
-+#     combination of .fini sections.
-+#     STACK_ADDR - start of a .stack section.
-+#     OTHER_SYMBOLS - symbols to place right at the end of the script.
-+#     ETEXT_NAME - name of a symbol for the end of the text section,
-+#             normally etext.
-+#     SEPARATE_CODE - if set, .text and similar sections containing
-+#             actual machine instructions must be in wholly disjoint
-+#             pages from any other data, including headers
-+#     SEPARATE_GOTPLT - if set, .got.plt should be separate output section,
-+#             so that .got can be in the RELRO area.  It should be set to
-+#             the number of bytes in the beginning of .got.plt which can be
-+#             in the RELRO area as well.
-+#     USER_LABEL_PREFIX - prefix to add to user-visible symbols.
-+#     RODATA_NAME, SDATA_NAME, SBSS_NAME, BSS_NAME - base parts of names
-+#             for standard sections, without initial "." or suffixes.
-+#
-+# When adding sections, do note that the names of some sections are used
-+# when specifying the start address of the next.
-+#
-+
-+#  Many sections come in three flavours.  There is the 'real' section,
-+#  like ".data".  Then there are the per-procedure or per-variable
-+#  sections, generated by -ffunction-sections and -fdata-sections in GCC,
-+#  and useful for --gc-sections, which for a variable "foo" might be
-+#  ".data.foo".  Then there are the linkonce sections, for which the linker
-+#  eliminates duplicates, which are named like ".gnu.linkonce.d.foo".
-+#  The exact correspondences are:
-+#
-+#  Section    Linkonce section
-+#  .text      .gnu.linkonce.t.foo
-+#  .rodata    .gnu.linkonce.r.foo
-+#  .data      .gnu.linkonce.d.foo
-+#  .bss               .gnu.linkonce.b.foo
-+#  .sdata     .gnu.linkonce.s.foo
-+#  .sbss      .gnu.linkonce.sb.foo
-+#  .sdata2    .gnu.linkonce.s2.foo
-+#  .sbss2     .gnu.linkonce.sb2.foo
-+#  .debug_info        .gnu.linkonce.wi.foo
-+#  .tdata     .gnu.linkonce.td.foo
-+#  .tbss      .gnu.linkonce.tb.foo
-+#  .lrodata   .gnu.linkonce.lr.foo
-+#  .ldata     .gnu.linkonce.l.foo
-+#  .lbss      .gnu.linkonce.lb.foo
-+#
-+#  Each of these can also have corresponding .rel.* and .rela.* sections.
-+
-+if test -n "$NOP"; then
-+  FILL="=$NOP"
-+else
-+  FILL=
-+fi
-+
-+test -z "$RODATA_NAME" && RODATA_NAME=rodata
-+test -z "$SDATA_NAME" && SDATA_NAME=sdata
-+test -z "$SBSS_NAME" && SBSS_NAME=sbss
-+test -z "$BSS_NAME" && BSS_NAME=bss
-+test -z "$ENTRY" && ENTRY=${USER_LABEL_PREFIX}_start
-+test -z "${BIG_OUTPUT_FORMAT}" && BIG_OUTPUT_FORMAT=${OUTPUT_FORMAT}
-+test -z "${LITTLE_OUTPUT_FORMAT}" && LITTLE_OUTPUT_FORMAT=${OUTPUT_FORMAT}
-+if [ -z "$MACHINE" ]; then OUTPUT_ARCH=${ARCH}; else OUTPUT_ARCH=${ARCH}:${MACHINE}; fi
-+test -z "${ELFSIZE}" && ELFSIZE=32
-+test -z "${ALIGNMENT}" && ALIGNMENT="${ELFSIZE} / 8"
-+test "$LD_FLAG" = "N" && DATA_ADDR=.
-+test -z "${ETEXT_NAME}" && ETEXT_NAME=${USER_LABEL_PREFIX}etext
-+test -n "$CREATE_SHLIB$CREATE_PIE" && test -n "$SHLIB_DATA_ADDR" && COMMONPAGESIZE=""
-+test -z "$CREATE_SHLIB$CREATE_PIE" && test -n "$DATA_ADDR" && COMMONPAGESIZE=""
-+test -n "$RELRO_NOW" && unset SEPARATE_GOTPLT
-+test -z "$ATTRS_SECTIONS" && ATTRS_SECTIONS=".gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }"
-+DATA_SEGMENT_ALIGN="ALIGN(${SEGMENT_SIZE}) + (. & (${MAXPAGESIZE} - 1))"
-+DATA_SEGMENT_RELRO_END=""
-+DATA_SEGMENT_END=""
-+if test -n "${COMMONPAGESIZE}"; then
-+  DATA_SEGMENT_ALIGN="ALIGN (${SEGMENT_SIZE}) - ((${MAXPAGESIZE} - .) & (${MAXPAGESIZE} - 1)); . = DATA_SEGMENT_ALIGN (${MAXPAGESIZE}, ${COMMONPAGESIZE})"
-+  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) }"
-+fi
-+if test -z "$PLT"; then
-+  IPLT=".iplt         ${RELOCATING-0} : { *(.iplt) }"
-+  PLT=".plt          ${RELOCATING-0} : { *(.plt)${IREL_IN_PLT+ *(.iplt)} }
-+  ${IREL_IN_PLT-$IPLT}"
-+fi
-+test -n "${DATA_PLT-${BSS_PLT-text}}" && TEXT_PLT=yes
-+if test -z "$GOT"; then
-+  if test -z "$SEPARATE_GOTPLT"; then
-+    GOT=".got          ${RELOCATING-0} : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) }"
-+  else
-+    GOT=".got          ${RELOCATING-0} : { *(.got) *(.igot) }"
-+    GOTPLT=".got.plt      ${RELOCATING-0} : { *(.got.plt)  *(.igot.plt) }"
-+  fi
-+fi
-+REL_IFUNC=".rel.ifunc    ${RELOCATING-0} : { *(.rel.ifunc) }"
-+RELA_IFUNC=".rela.ifunc   ${RELOCATING-0} : { *(.rela.ifunc) }"
-+REL_IPLT=".rel.iplt     ${RELOCATING-0} :
-+    {
-+      ${RELOCATING+${CREATE_SHLIB-PROVIDE_HIDDEN (${USER_LABEL_PREFIX}__rel_iplt_start = .);}}
-+      *(.rel.iplt)
-+      ${RELOCATING+${CREATE_SHLIB-PROVIDE_HIDDEN (${USER_LABEL_PREFIX}__rel_iplt_end = .);}}
-+    }"
-+RELA_IPLT=".rela.iplt    ${RELOCATING-0} :
-+    {
-+      ${RELOCATING+${CREATE_SHLIB-PROVIDE_HIDDEN (${USER_LABEL_PREFIX}__rela_iplt_start = .);}}
-+      *(.rela.iplt)
-+      ${RELOCATING+${CREATE_SHLIB-PROVIDE_HIDDEN (${USER_LABEL_PREFIX}__rela_iplt_end = .);}}
-+    }"
-+DYNAMIC=".dynamic      ${RELOCATING-0} : { *(.dynamic) }"
-+RODATA=".${RODATA_NAME}       ${RELOCATING-0} : { *(.${RODATA_NAME}${RELOCATING+ .${RODATA_NAME}.* .gnu.linkonce.r.*}) }"
-+DATARELRO=".data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) }"
-+DISCARDED="/DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }"
-+if test -z "${NO_SMALL_DATA}"; then
-+  SBSS=".${SBSS_NAME}         ${RELOCATING-0} :
-+  {
-+    ${RELOCATING+${SBSS_START_SYMBOLS}}
-+    ${CREATE_SHLIB+*(.${SBSS_NAME}2 .${SBSS_NAME}2.* .gnu.linkonce.sb2.*)}
-+    *(.dyn${SBSS_NAME})
-+    *(.${SBSS_NAME}${RELOCATING+ .${SBSS_NAME}.* .gnu.linkonce.sb.*})
-+    *(.scommon)
-+    ${RELOCATING+${SBSS_END_SYMBOLS}}
-+  }"
-+  SBSS2=".${SBSS_NAME}2        ${RELOCATING-0} : { *(.${SBSS_NAME}2${RELOCATING+ .${SBSS_NAME}2.* .gnu.linkonce.sb2.*}) }"
-+  SDATA="/* We want the small data sections together, so single-instruction offsets
-+     can access them all, and initialized data all before uninitialized, so
-+     we can shorten the on-disk segment size.  */
-+  .${SDATA_NAME}        ${RELOCATING-0} :
-+  {
-+    ${RELOCATING+${SDATA_START_SYMBOLS}}
-+    ${CREATE_SHLIB+*(.${SDATA_NAME}2 .${SDATA_NAME}2.* .gnu.linkonce.s2.*)}
-+    *(.${SDATA_NAME}${RELOCATING+ .${SDATA_NAME}.* .gnu.linkonce.s.*})
-+  }"
-+  SDATA2=".${SDATA_NAME}2       ${RELOCATING-0} :
-+  {
-+    ${RELOCATING+${SDATA2_START_SYMBOLS}}
-+    *(.${SDATA_NAME}2${RELOCATING+ .${SDATA_NAME}2.* .gnu.linkonce.s2.*})
-+  }"
-+  REL_SDATA=".rel.${SDATA_NAME}    ${RELOCATING-0} : { *(.rel.${SDATA_NAME}${RELOCATING+ .rel.${SDATA_NAME}.* .rel.gnu.linkonce.s.*}) }
-+  .rela.${SDATA_NAME}   ${RELOCATING-0} : { *(.rela.${SDATA_NAME}${RELOCATING+ .rela.${SDATA_NAME}.* .rela.gnu.linkonce.s.*}) }"
-+  REL_SBSS=".rel.${SBSS_NAME}     ${RELOCATING-0} : { *(.rel.${SBSS_NAME}${RELOCATING+ .rel.${SBSS_NAME}.* .rel.gnu.linkonce.sb.*}) }
-+  .rela.${SBSS_NAME}    ${RELOCATING-0} : { *(.rela.${SBSS_NAME}${RELOCATING+ .rela.${SBSS_NAME}.* .rela.gnu.linkonce.sb.*}) }"
-+  REL_SDATA2=".rel.${SDATA_NAME}2   ${RELOCATING-0} : { *(.rel.${SDATA_NAME}2${RELOCATING+ .rel.${SDATA_NAME}2.* .rel.gnu.linkonce.s2.*}) }
-+  .rela.${SDATA_NAME}2  ${RELOCATING-0} : { *(.rela.${SDATA_NAME}2${RELOCATING+ .rela.${SDATA_NAME}2.* .rela.gnu.linkonce.s2.*}) }"
-+  REL_SBSS2=".rel.${SBSS_NAME}2    ${RELOCATING-0} : { *(.rel.${SBSS_NAME}2${RELOCATING+ .rel.${SBSS_NAME}2.* .rel.gnu.linkonce.sb2.*}) }
-+  .rela.${SBSS_NAME}2   ${RELOCATING-0} : { *(.rela.${SBSS_NAME}2${RELOCATING+ .rela.${SBSS_NAME}2.* .rela.gnu.linkonce.sb2.*}) }"
-+else
-+  NO_SMALL_DATA=" "
-+fi
-+if test -z "${DATA_GOT}"; then
-+  if test -n "${NO_SMALL_DATA}"; then
-+    DATA_GOT=" "
-+  fi
-+fi
-+if test -z "${SDATA_GOT}"; then
-+  if test -z "${NO_SMALL_DATA}"; then
-+    SDATA_GOT=" "
-+  fi
-+fi
-+test -n "$SEPARATE_GOTPLT" && SEPARATE_GOTPLT=" "
-+test "${LARGE_SECTIONS}" = "yes" && REL_LARGE="
-+  .rel.ldata    ${RELOCATING-0} : { *(.rel.ldata${RELOCATING+ .rel.ldata.* .rel.gnu.linkonce.l.*}) }
-+  .rela.ldata   ${RELOCATING-0} : { *(.rela.ldata${RELOCATING+ .rela.ldata.* .rela.gnu.linkonce.l.*}) }
-+  .rel.lbss     ${RELOCATING-0} : { *(.rel.lbss${RELOCATING+ .rel.lbss.* .rel.gnu.linkonce.lb.*}) }
-+  .rela.lbss    ${RELOCATING-0} : { *(.rela.lbss${RELOCATING+ .rela.lbss.* .rela.gnu.linkonce.lb.*}) }
-+  .rel.lrodata  ${RELOCATING-0} : { *(.rel.lrodata${RELOCATING+ .rel.lrodata.* .rel.gnu.linkonce.lr.*}) }
-+  .rela.lrodata ${RELOCATING-0} : { *(.rela.lrodata${RELOCATING+ .rela.lrodata.* .rela.gnu.linkonce.lr.*}) }"
-+test "${LARGE_SECTIONS}" = "yes" && OTHER_BSS_SECTIONS="
-+  ${OTHER_BSS_SECTIONS}
-+  .lbss ${RELOCATING-0} :
-+  {
-+    *(.dynlbss)
-+    *(.lbss${RELOCATING+ .lbss.* .gnu.linkonce.lb.*})
-+    *(LARGE_COMMON)
-+  }"
-+test "${LARGE_SECTIONS}" = "yes" && LARGE_SECTIONS="
-+  .lrodata ${RELOCATING-0} ${RELOCATING+ALIGN(${MAXPAGESIZE}) + (. & (${MAXPAGESIZE} - 1))} :
-+  {
-+    *(.lrodata${RELOCATING+ .lrodata.* .gnu.linkonce.lr.*})
-+  }
-+  .ldata ${RELOCATING-0} ${RELOCATING+ALIGN(${MAXPAGESIZE}) + (. & (${MAXPAGESIZE} - 1))} :
-+  {
-+    *(.ldata${RELOCATING+ .ldata.* .gnu.linkonce.l.*})
-+    ${RELOCATING+. = ALIGN(. != 0 ? ${ALIGNMENT} : 1);}
-+  }"
-+if test "${ENABLE_INITFINI_ARRAY}" = "yes"; then
-+  SORT_INIT_ARRAY="KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*)))"
-+  SORT_FINI_ARRAY="KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*)))"
-+  CTORS_IN_INIT_ARRAY="KEEP (*(EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o $OTHER_EXCLUDE_FILES) .ctors))"
-+  DTORS_IN_FINI_ARRAY="KEEP (*(EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o $OTHER_EXCLUDE_FILES) .dtors))"
-+else
-+  SORT_INIT_ARRAY="KEEP (*(SORT(.init_array.*)))"
-+  SORT_FINI_ARRAY="KEEP (*(SORT(.fini_array.*)))"
-+  CTORS_IN_INIT_ARRAY=
-+  DTORS_IN_FINI_ARRAY=
-+fi
-+INIT_ARRAY=".init_array   ${RELOCATING-0} :
-+  {
-+    ${RELOCATING+${CREATE_SHLIB-PROVIDE_HIDDEN (${USER_LABEL_PREFIX}__init_array_start = .);}}
-+    ${SORT_INIT_ARRAY}
-+    KEEP (*(.init_array))
-+    ${CTORS_IN_INIT_ARRAY}
-+    ${RELOCATING+${CREATE_SHLIB-PROVIDE_HIDDEN (${USER_LABEL_PREFIX}__init_array_end = .);}}
-+  }"
-+FINI_ARRAY=".fini_array   ${RELOCATING-0} :
-+  {
-+    ${RELOCATING+${CREATE_SHLIB-PROVIDE_HIDDEN (${USER_LABEL_PREFIX}__fini_array_start = .);}}
-+    ${SORT_FINI_ARRAY}
-+    KEEP (*(.fini_array))
-+    ${DTORS_IN_FINI_ARRAY}
-+    ${RELOCATING+${CREATE_SHLIB-PROVIDE_HIDDEN (${USER_LABEL_PREFIX}__fini_array_end = .);}}
-+  }"
-+CTOR=".ctors        ${CONSTRUCTING-0} :
-+  {
-+    ${CONSTRUCTING+${CTOR_START}}
-+    /* gcc uses crtbegin.o to find the start of
-+       the constructors, so we make sure it is
-+       first.  Because this is a wildcard, it
-+       doesn't matter if the user does not
-+       actually link against crtbegin.o; the
-+       linker won't look for a file to match a
-+       wildcard.  The wildcard also means that it
-+       doesn't matter which directory crtbegin.o
-+       is in.  */
-+
-+    KEEP (*crtbegin.o(.ctors))
-+    KEEP (*crtbegin?.o(.ctors))
-+
-+    /* We don't want to include the .ctor section from
-+       the crtend.o file until after the sorted ctors.
-+       The .ctor section from the crtend file contains the
-+       end of ctors marker and it must be last */
-+
-+    KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o $OTHER_EXCLUDE_FILES) .ctors))
-+    KEEP (*(SORT(.ctors.*)))
-+    KEEP (*(.ctors))
-+    ${CONSTRUCTING+${CTOR_END}}
-+  }"
-+DTOR=".dtors        ${CONSTRUCTING-0} :
-+  {
-+    ${CONSTRUCTING+${DTOR_START}}
-+    KEEP (*crtbegin.o(.dtors))
-+    KEEP (*crtbegin?.o(.dtors))
-+    KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o $OTHER_EXCLUDE_FILES) .dtors))
-+    KEEP (*(SORT(.dtors.*)))
-+    KEEP (*(.dtors))
-+    ${CONSTRUCTING+${DTOR_END}}
-+  }"
-+STACK="  .stack        ${RELOCATING-0}${RELOCATING+${STACK_ADDR}} :
-+  {
-+    ${RELOCATING+${USER_LABEL_PREFIX}_stack = .;}
-+    *(.stack)
-+  }"
-+
-+TEXT_START_ADDR="SEGMENT_START(\"text-segment\", ${TEXT_START_ADDR})"
-+SHLIB_TEXT_START_ADDR="SEGMENT_START(\"text-segment\", ${SHLIB_TEXT_START_ADDR:-0})"
-+
-+if [ -z "$SEPARATE_CODE" ]; then
-+  SIZEOF_HEADERS_CODE=" + SIZEOF_HEADERS"
-+else
-+  SIZEOF_HEADERS_CODE=
-+fi
-+
-+# if this is for an embedded system, don't add SIZEOF_HEADERS.
-+if [ -z "$EMBEDDED" ]; then
-+   test -z "${TEXT_BASE_ADDRESS}" && TEXT_BASE_ADDRESS="${TEXT_START_ADDR}${SIZEOF_HEADERS_CODE}"
-+else
-+   test -z "${TEXT_BASE_ADDRESS}" && TEXT_BASE_ADDRESS="${TEXT_START_ADDR}"
-+fi
-+
-+cat <<EOF
-+OUTPUT_FORMAT("${OUTPUT_FORMAT}", "${BIG_OUTPUT_FORMAT}",
-+            "${LITTLE_OUTPUT_FORMAT}")
-+OUTPUT_ARCH(${OUTPUT_ARCH})
-+${RELOCATING+ENTRY(${ENTRY})}
-+
-+${RELOCATING+${LIB_SEARCH_DIRS}}
-+${RELOCATING+${EXECUTABLE_SYMBOLS}}
-+${RELOCATING+${INPUT_FILES}}
-+${RELOCATING- /* For some reason, the Solaris linker makes bad executables
-+  if gld -r is used and the intermediate file has sections starting
-+  at non-zero addresses.  Could be a Solaris ld bug, could be a GNU ld
-+  bug.  But for now assigning the zero vmas works.  */}
-+
-+SECTIONS
-+{
-+  /* Read-only sections, merged into text segment: */
-+  ${CREATE_SHLIB-${CREATE_PIE-${RELOCATING+PROVIDE (__executable_start = ${TEXT_START_ADDR}); . = ${TEXT_BASE_ADDRESS};}}}
-+  ${CREATE_SHLIB+${RELOCATING+. = ${SHLIB_TEXT_START_ADDR}${SIZEOF_HEADERS_CODE};}}
-+  ${CREATE_PIE+${RELOCATING+. = ${SHLIB_TEXT_START_ADDR}${SIZEOF_HEADERS_CODE};}}
-+EOF
-+
-+emit_early_ro()
-+{
-+  cat <<EOF
-+  ${INITIAL_READONLY_SECTIONS}
-+  .note.gnu.build-id : { *(.note.gnu.build-id) }
-+EOF
-+}
-+
-+test -n "${SEPARATE_CODE}" || emit_early_ro
-+
-+test -n "${RELOCATING+0}" || unset NON_ALLOC_DYN
-+test -z "${NON_ALLOC_DYN}" || TEXT_DYNAMIC=
-+cat > ldscripts/dyntmp.$$ <<EOF
-+  ${TEXT_DYNAMIC+${DYNAMIC}}
-+  .hash         ${RELOCATING-0} : { *(.hash) }
-+  .gnu.hash     ${RELOCATING-0} : { *(.gnu.hash) }
-+  .dynsym       ${RELOCATING-0} : { *(.dynsym) }
-+  .dynstr       ${RELOCATING-0} : { *(.dynstr) }
-+  .gnu.version  ${RELOCATING-0} : { *(.gnu.version) }
-+  .gnu.version_d ${RELOCATING-0}: { *(.gnu.version_d) }
-+  .gnu.version_r ${RELOCATING-0}: { *(.gnu.version_r) }
-+EOF
-+
-+if [ "x$COMBRELOC" = x ]; then
-+  COMBRELOCCAT="cat >> ldscripts/dyntmp.$$"
-+else
-+  COMBRELOCCAT="cat > $COMBRELOC"
-+fi
-+eval $COMBRELOCCAT <<EOF
-+  ${INITIAL_RELOC_SECTIONS}
-+  .rel.init     ${RELOCATING-0} : { *(.rel.init) }
-+  .rela.init    ${RELOCATING-0} : { *(.rela.init) }
-+  .rel.text     ${RELOCATING-0} : { *(.rel.text${RELOCATING+ .rel.text.* .rel.gnu.linkonce.t.*}) }
-+  .rela.text    ${RELOCATING-0} : { *(.rela.text${RELOCATING+ .rela.text.* .rela.gnu.linkonce.t.*}) }
-+  .rel.fini     ${RELOCATING-0} : { *(.rel.fini) }
-+  .rela.fini    ${RELOCATING-0} : { *(.rela.fini) }
-+  .rel.${RODATA_NAME}   ${RELOCATING-0} : { *(.rel.${RODATA_NAME}${RELOCATING+ .rel.${RODATA_NAME}.* .rel.gnu.linkonce.r.*}) }
-+  .rela.${RODATA_NAME}  ${RELOCATING-0} : { *(.rela.${RODATA_NAME}${RELOCATING+ .rela.${RODATA_NAME}.* .rela.gnu.linkonce.r.*}) }
-+  ${OTHER_READONLY_RELOC_SECTIONS}
-+  .rel.data.rel.ro ${RELOCATING-0} : { *(.rel.data.rel.ro${RELOCATING+ .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*}) }
-+  .rela.data.rel.ro ${RELOCATING-0} : { *(.rela.data.rel.ro${RELOCATING+ .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*}) }
-+  .rel.data     ${RELOCATING-0} : { *(.rel.data${RELOCATING+ .rel.data.* .rel.gnu.linkonce.d.*}) }
-+  .rela.data    ${RELOCATING-0} : { *(.rela.data${RELOCATING+ .rela.data.* .rela.gnu.linkonce.d.*}) }
-+  ${OTHER_READWRITE_RELOC_SECTIONS}
-+  .rel.tdata  ${RELOCATING-0} : { *(.rel.tdata${RELOCATING+ .rel.tdata.* .rel.gnu.linkonce.td.*}) }
-+  .rela.tdata ${RELOCATING-0} : { *(.rela.tdata${RELOCATING+ .rela.tdata.* .rela.gnu.linkonce.td.*}) }
-+  .rel.tbss   ${RELOCATING-0} : { *(.rel.tbss${RELOCATING+ .rel.tbss.* .rel.gnu.linkonce.tb.*}) }
-+  .rela.tbss  ${RELOCATING-0} : { *(.rela.tbss${RELOCATING+ .rela.tbss.* .rela.gnu.linkonce.tb.*}) }
-+  .rel.ctors    ${RELOCATING-0} : { *(.rel.ctors) }
-+  .rela.ctors   ${RELOCATING-0} : { *(.rela.ctors) }
-+  .rel.dtors    ${RELOCATING-0} : { *(.rel.dtors) }
-+  .rela.dtors   ${RELOCATING-0} : { *(.rela.dtors) }
-+  .rel.got      ${RELOCATING-0} : { *(.rel.got) }
-+  .rela.got     ${RELOCATING-0} : { *(.rela.got) }
-+  ${OTHER_GOT_RELOC_SECTIONS}
-+  ${REL_SDATA}
-+  ${REL_SBSS}
-+  ${REL_SDATA2}
-+  ${REL_SBSS2}
-+  .rel.${BSS_NAME}      ${RELOCATING-0} : { *(.rel.${BSS_NAME}${RELOCATING+ .rel.${BSS_NAME}.* .rel.gnu.linkonce.b.*}) }
-+  .rela.${BSS_NAME}     ${RELOCATING-0} : { *(.rela.${BSS_NAME}${RELOCATING+ .rela.${BSS_NAME}.* .rela.gnu.linkonce.b.*}) }
-+  ${REL_LARGE}
-+  ${IREL_IN_PLT+$REL_IFUNC}
-+  ${IREL_IN_PLT+$RELA_IFUNC}
-+  ${IREL_IN_PLT-$REL_IPLT}
-+  ${IREL_IN_PLT-$RELA_IPLT}
-+EOF
-+
-+if [ -n "$COMBRELOC" ]; then
-+cat >> ldscripts/dyntmp.$$ <<EOF
-+  .rel.dyn      ${RELOCATING-0} :
-+    {
-+EOF
-+sed -e '/^[   ]*[{}][         ]*$/d;/:[       ]*$/d;/\.rela\./d;s/^.*: { *\(.*\)}$/      \1/' $COMBRELOC >> ldscripts/dyntmp.$$
-+cat >> ldscripts/dyntmp.$$ <<EOF
-+    }
-+  .rela.dyn     ${RELOCATING-0} :
-+    {
-+EOF
-+sed -e '/^[   ]*[{}][         ]*$/d;/:[       ]*$/d;/\.rel\./d;s/^.*: { *\(.*\)}/      \1/' $COMBRELOC >> ldscripts/dyntmp.$$
-+cat >> ldscripts/dyntmp.$$ <<EOF
-+    }
-+EOF
-+fi
-+
-+cat >> ldscripts/dyntmp.$$ <<EOF
-+  .rel.plt      ${RELOCATING-0} :
-+    {
-+      *(.rel.plt)
-+      ${IREL_IN_PLT+${RELOCATING+${CREATE_SHLIB-PROVIDE_HIDDEN (${USER_LABEL_PREFIX}__rel_iplt_start = .);}}}
-+      ${IREL_IN_PLT+${RELOCATING+*(.rel.iplt)}}
-+      ${IREL_IN_PLT+${RELOCATING+${CREATE_SHLIB-PROVIDE_HIDDEN (${USER_LABEL_PREFIX}__rel_iplt_end = .);}}}
-+    }
-+  .rela.plt     ${RELOCATING-0} :
-+    {
-+      *(.rela.plt)
-+      ${IREL_IN_PLT+${RELOCATING+${CREATE_SHLIB-PROVIDE_HIDDEN (${USER_LABEL_PREFIX}__rela_iplt_start = .);}}}
-+      ${IREL_IN_PLT+${RELOCATING+*(.rela.iplt)}}
-+      ${IREL_IN_PLT+${RELOCATING+${CREATE_SHLIB-PROVIDE_HIDDEN (${USER_LABEL_PREFIX}__rela_iplt_end = .);}}}
-+    }
-+  ${OTHER_PLT_RELOC_SECTIONS}
-+EOF
-+
-+emit_dyn()
-+{
-+  if test -z "${NO_REL_RELOCS}${NO_RELA_RELOCS}"; then
-+    cat ldscripts/dyntmp.$$
-+  else
-+    if test -z "${NO_REL_RELOCS}"; then
-+      sed -e '/^[     ]*\.rela\.[^}]*$/,/}/d' -e '/^[         ]*\.rela\./d' ldscripts/dyntmp.$$
-+    fi
-+    if test -z "${NO_RELA_RELOCS}"; then
-+      sed -e '/^[     ]*\.rel\.[^}]*$/,/}/d' -e '/^[  ]*\.rel\./d' ldscripts/dyntmp.$$
-+    fi
-+  fi
-+  rm -f ldscripts/dyntmp.$$
-+}
-+
-+test -n "${NON_ALLOC_DYN}${SEPARATE_CODE}" || emit_dyn
-+
-+cat <<EOF
-+  .init         ${RELOCATING-0} :
-+  {
-+    ${RELOCATING+${INIT_START}}
-+    KEEP (*(SORT_NONE(.init)))
-+    ${RELOCATING+${INIT_END}}
-+  } ${FILL}
-+
-+  ${TEXT_PLT+${PLT}}
-+  ${TINY_READONLY_SECTION}
-+  .text         ${RELOCATING-0} :
-+  {
-+    ${RELOCATING+${TEXT_START_SYMBOLS}}
-+    ${RELOCATING+*(.text.unlikely .text.*_unlikely)}
-+    ${RELOCATING+*(.text.exit .text.exit.*)}
-+    ${RELOCATING+*(.text.startup .text.startup.*)}
-+    ${RELOCATING+*(.text.hot .text.hot.*)}
-+    *(.text .stub${RELOCATING+ .text.* .gnu.linkonce.t.*})
-+    /* .gnu.warning sections are handled specially by elf32.em.  */
-+    *(.gnu.warning)
-+    ${RELOCATING+${OTHER_TEXT_SECTIONS}}
-+  } ${FILL}
-+  .fini         ${RELOCATING-0} :
-+  {
-+    ${RELOCATING+${FINI_START}}
-+    KEEP (*(SORT_NONE(.fini)))
-+    ${RELOCATING+${FINI_END}}
-+  } ${FILL}
-+  ${RELOCATING+PROVIDE (__${ETEXT_NAME} = .);}
-+  ${RELOCATING+PROVIDE (_${ETEXT_NAME} = .);}
-+  ${RELOCATING+PROVIDE (${ETEXT_NAME} = .);}
-+EOF
-+
-+if test -n "${SEPARATE_CODE}"; then
-+  cat <<EOF
-+  /* Adjust the address for the rodata segment.  We want to adjust up to
-+     the same address within the page on the next page up.  */
-+  ${CREATE_SHLIB-${CREATE_PIE-${RELOCATING+. = ${RODATA_ADDR-ALIGN(${SEGMENT_SIZE}) + (. & (${MAXPAGESIZE} - 1))};}}}
-+  ${CREATE_SHLIB+${RELOCATING+. = ${SHLIB_RODATA_ADDR-ALIGN(${SEGMENT_SIZE}) + (. & (${MAXPAGESIZE} - 1))};}}
-+  ${CREATE_PIE+${RELOCATING+. = ${SHLIB_RODATA_ADDR-ALIGN(${SEGMENT_SIZE}) + (. & (${MAXPAGESIZE} - 1))};}}
-+EOF
-+  emit_early_ro
-+  emit_dyn
-+fi
-+
-+cat <<EOF
-+  ${WRITABLE_RODATA-${RODATA}}
-+  .${RODATA_NAME}1      ${RELOCATING-0} : { *(.${RODATA_NAME}1) }
-+  ${CREATE_SHLIB-${SDATA2}}
-+  ${CREATE_SHLIB-${SBSS2}}
-+  ${OTHER_READONLY_SECTIONS}
-+  .eh_frame_hdr : { *(.eh_frame_hdr) }
-+  .eh_frame     ${RELOCATING-0} : ONLY_IF_RO { KEEP (*(.eh_frame)) }
-+  .gcc_except_table ${RELOCATING-0} : ONLY_IF_RO { *(.gcc_except_table
-+  .gcc_except_table.*) }
-+  /* These sections are generated by the Sun/Oracle C++ compiler.  */
-+  .exception_ranges ${RELOCATING-0} : ONLY_IF_RO { *(.exception_ranges
-+  .exception_ranges*) }
-+
-+  /* Adjust the address for the data segment.  We want to adjust up to
-+     the same address within the page on the next page up.  */
-+  ${CREATE_SHLIB-${CREATE_PIE-${RELOCATING+. = ${DATA_ADDR-${DATA_SEGMENT_ALIGN}};}}}
-+  ${CREATE_SHLIB+${RELOCATING+. = ${SHLIB_DATA_ADDR-${DATA_SEGMENT_ALIGN}};}}
-+  ${CREATE_PIE+${RELOCATING+. = ${SHLIB_DATA_ADDR-${DATA_SEGMENT_ALIGN}};}}
-+
-+  /* Exception handling  */
-+  .eh_frame     ${RELOCATING-0} : ONLY_IF_RW { KEEP (*(.eh_frame)) }
-+  .gcc_except_table ${RELOCATING-0} : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) }
-+  .exception_ranges ${RELOCATING-0} : ONLY_IF_RW { *(.exception_ranges .exception_ranges*) }
-+
-+  /* Thread Local Storage sections  */
-+  .tdata      ${RELOCATING-0} : { *(.tdata${RELOCATING+ .tdata.* .gnu.linkonce.td.*}) }
-+  .tbss               ${RELOCATING-0} : { *(.tbss${RELOCATING+ .tbss.* .gnu.linkonce.tb.*})${RELOCATING+ *(.tcommon)} }
-+
-+  .preinit_array   ${RELOCATING-0} :
-+  {
-+    ${RELOCATING+${CREATE_SHLIB-PROVIDE_HIDDEN (${USER_LABEL_PREFIX}__preinit_array_start = .);}}
-+    KEEP (*(.preinit_array))
-+    ${RELOCATING+${CREATE_SHLIB-PROVIDE_HIDDEN (${USER_LABEL_PREFIX}__preinit_array_end = .);}}
-+  }
-+  ${RELOCATING+${INIT_ARRAY}}
-+  ${RELOCATING+${FINI_ARRAY}}
-+  ${SMALL_DATA_CTOR-${RELOCATING+${CTOR}}}
-+  ${SMALL_DATA_DTOR-${RELOCATING+${DTOR}}}
-+  .jcr          ${RELOCATING-0} : { KEEP (*(.jcr)) }
-+
-+  ${RELOCATING+${DATARELRO}}
-+  ${OTHER_RELRO_SECTIONS}
-+  ${TEXT_DYNAMIC-${DYNAMIC}}
-+  ${DATA_GOT+${RELRO_NOW+${GOT}}}
-+  ${DATA_GOT+${RELRO_NOW+${GOTPLT}}}
-+  ${DATA_GOT+${RELRO_NOW-${SEPARATE_GOTPLT+${GOT}}}}
-+  ${RELOCATING+${DATA_SEGMENT_RELRO_END}}
-+  ${DATA_GOT+${RELRO_NOW-${SEPARATE_GOTPLT-${GOT}}}}
-+  ${DATA_GOT+${RELRO_NOW-${GOTPLT}}}
-+
-+  ${DATA_PLT+${PLT_BEFORE_GOT-${PLT}}}
-+
-+  .data         ${RELOCATING-0} :
-+  {
-+    ${RELOCATING+${DATA_START_SYMBOLS}}
-+    *(.data${RELOCATING+ .data.* .gnu.linkonce.d.*})
-+    ${CONSTRUCTING+SORT(CONSTRUCTORS)}
-+  }
-+  .data1        ${RELOCATING-0} : { *(.data1) }
-+  ${WRITABLE_RODATA+${RODATA}}
-+  ${OTHER_READWRITE_SECTIONS}
-+  ${SMALL_DATA_CTOR+${RELOCATING+${CTOR}}}
-+  ${SMALL_DATA_DTOR+${RELOCATING+${DTOR}}}
-+  ${DATA_PLT+${PLT_BEFORE_GOT+${PLT}}}
-+  ${SDATA_GOT+${RELOCATING+${OTHER_GOT_SYMBOLS+. = .; ${OTHER_GOT_SYMBOLS}}}}
-+  ${SDATA_GOT+${GOT}}
-+  ${SDATA_GOT+${OTHER_GOT_SECTIONS}}
-+  ${SDATA}
-+  ${OTHER_SDATA_SECTIONS}
-+  ${RELOCATING+${DATA_END_SYMBOLS-${USER_LABEL_PREFIX}_edata = .; PROVIDE (${USER_LABEL_PREFIX}edata = .);}}
-+  ${RELOCATING+. = .;}
-+  ${RELOCATING+${USER_LABEL_PREFIX}__bss_start = .;}
-+  ${RELOCATING+${OTHER_BSS_SYMBOLS}}
-+  ${SBSS}
-+  ${BSS_PLT+${PLT}}
-+  .${BSS_NAME}          ${RELOCATING-0} :
-+  {
-+   *(.dyn${BSS_NAME})
-+   *(.${BSS_NAME}${RELOCATING+ .${BSS_NAME}.* .gnu.linkonce.b.*})
-+   *(COMMON)
-+   /* Align here to ensure that the .bss section occupies space up to
-+      _end.  Align after .bss to ensure correct alignment even if the
-+      .bss section disappears because there are no input sections.
-+      FIXME: Why do we need it? When there is no .bss section, we don't
-+      pad the .data section.  */
-+   ${RELOCATING+. = ALIGN(. != 0 ? ${ALIGNMENT} : 1);}
-+  }
-+  ${OTHER_BSS_SECTIONS}
-+  ${RELOCATING+${OTHER_BSS_END_SYMBOLS}}
-+  ${RELOCATING+. = ALIGN(${ALIGNMENT});}
-+  ${LARGE_SECTIONS}
-+  ${RELOCATING+. = ALIGN(${ALIGNMENT});}
-+  ${RELOCATING+${OTHER_END_SYMBOLS}}
-+  ${RELOCATING+${END_SYMBOLS-${USER_LABEL_PREFIX}_end = .; PROVIDE (${USER_LABEL_PREFIX}end = .);}}
-+  ${RELOCATING+${DATA_SEGMENT_END}}
-+EOF
-+
-+test -z "${NON_ALLOC_DYN}" || emit_dyn
-+
-+cat <<EOF
-+  /* Stabs debugging sections.  */
-+  .stab          0 : { *(.stab) }
-+  .stabstr       0 : { *(.stabstr) }
-+  .stab.excl     0 : { *(.stab.excl) }
-+  .stab.exclstr  0 : { *(.stab.exclstr) }
-+  .stab.index    0 : { *(.stab.index) }
-+  .stab.indexstr 0 : { *(.stab.indexstr) }
-+
-+  .comment       0 : { *(.comment) }
-+
-+  /* DWARF debug sections.
-+     Symbols in the DWARF debugging sections are relative to the beginning
-+     of the section so we begin them at 0.  */
-+
-+  /* DWARF 1 */
-+  .debug          0 : { *(.debug) }
-+  .line           0 : { *(.line) }
-+
-+  /* GNU DWARF 1 extensions */
-+  .debug_srcinfo  0 : { *(.debug_srcinfo) }
-+  .debug_sfnames  0 : { *(.debug_sfnames) }
-+
-+  /* DWARF 1.1 and DWARF 2 */
-+  .debug_aranges  0 : { *(.debug_aranges) }
-+  .debug_pubnames 0 : { *(.debug_pubnames) }
-+
-+  /* DWARF 2 */
-+  .debug_info     0 : { *(.debug_info${RELOCATING+ .gnu.linkonce.wi.*}) }
-+  .debug_abbrev   0 : { *(.debug_abbrev) }
-+  .debug_line     0 : { *(.debug_line) }
-+  .debug_frame    0 : { *(.debug_frame) }
-+  .debug_str      0 : { *(.debug_str) }
-+  .debug_loc      0 : { *(.debug_loc) }
-+  .debug_macinfo  0 : { *(.debug_macinfo) }
-+
-+  /* SGI/MIPS DWARF 2 extensions */
-+  .debug_weaknames 0 : { *(.debug_weaknames) }
-+  .debug_funcnames 0 : { *(.debug_funcnames) }
-+  .debug_typenames 0 : { *(.debug_typenames) }
-+  .debug_varnames  0 : { *(.debug_varnames) }
-+
-+  /* DWARF 3 */
-+  .debug_pubtypes 0 : { *(.debug_pubtypes) }
-+  .debug_ranges   0 : { *(.debug_ranges) }
-+
-+  /* DWARF Extension.  */
-+  .debug_macro    0 : { *(.debug_macro) } 
-+  
-+  ${TINY_DATA_SECTION}
-+  ${TINY_BSS_SECTION}
-+
-+  ${STACK_ADDR+${STACK}}
-+  ${ATTRS_SECTIONS}
-+  ${OTHER_SECTIONS}
-+  ${RELOCATING+${OTHER_SYMBOLS}}
-+  ${RELOCATING+${DISCARDED}}
-+}
-+EOF
diff --git a/tools/k1om/mpss-gcc/build-gcc.sh b/tools/k1om/mpss-gcc/build-gcc.sh
deleted file mode 100755 (executable)
index 8d2af70..0000000
+++ /dev/null
@@ -1,97 +0,0 @@
-#!/usr/bin/env bash
-
-# C/C++ toolchain build script for Barrelfish.
-# http://redmine.aluzina.org/projects/barrelfish/wiki/Toolchain_from_sources
-# http://wiki.barrelfish.org/CrossCompiler
-#
-# In order to build a toolchain you will need to install the following packages:
-#   $ sudo apt-get install gcc g++ make patch bison flex texinfo
-#
-# These are also required but will be downloaded automatically during the build:
-#   libgmp-dev, libmpc-dev, libmpfr-dev
-#
-# Optional (for Graphite optimizations): libcloog-ppl-dev.
-
-set -e  # Die if any command fails.
-set -x  # Trace each command before execution.
-
-#-------------------------------------------------------------------------------
-
-# Modify these versions to match the corresponding patch.
-BINUTILS=binutils-2.22+mpss3.2
-GCC=gcc-4.7.0+mpss3.2
-
-# Path of your Barrelfish source and build tree.
-BARRELFISH_SOURCE=/home/acreto/barrelfish.xeon-phi
-BARRELFISH_BUILD=${BARRELFISH_SOURCE}/build
-
-# Where the toolchain will be built and installed.
-# Note: the toolchain is specific to the Barrelfish tree mentioned above.
-TOOLCHAIN_PREFIX=${BARRELFISH_SOURCE}/toolchain
-
-# Cross compiler target.
-#TARGET=x86_64-pc-barrelfish
-TARGET=k1om-pc-barrelfish
-#TARGET=i586-pc-barrelfish
-#TARGET=i586-scc-barrelfish
-
-# Directory this shell script is stored in.
-# http://stackoverflow.com/questions/59895/can-a-bash-script-tell-what-directory-its-stored-in
-SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
-
-# Paths to patches.
-BINUTILS_PATCH="${SCRIPT_DIR}/${BINUTILS}-barrelfish.patch"
-GCC_PATCH="${SCRIPT_DIR}/${GCC}-barrelfish.patch"
-
-# Build parallelism
-MAKE_JOBS=
-if [[ -z "${MAKE_JOBS}" ]]; then
-  # Guess a sensible value - default: #cores + 2.
-  MAKE_JOBS=$(($(grep "^core id" /proc/cpuinfo | sort -u | wc -l) + 2))
-fi
-
-#-------------------------------------------------------------------------------
-
-TOOLCHAIN_BUILD="$(mktemp -d --tmpdir barrelfish-toolchain-build.XXXXXXXXXX)"
-
-# Build the toolchain.
-export PATH=${PATH}:${TOOLCHAIN_PREFIX}/bin
-
-pushd "${TOOLCHAIN_BUILD}"
-
-# 2. GCC - GNU Compiler Collection
-cp "${SCRIPT_DIR}/${GCC}.tar.bz2" "${TOOLCHAIN_BUILD}/${GCC}.tar.bz2"
-tar xjvf "${TOOLCHAIN_BUILD}/${GCC}.tar.bz2"
-pushd ${GCC}/
-source ./contrib/download_prerequisites
-# http://stackoverflow.com/questions/407523/escape-a-string-for-sed-search-pattern
-BF_SOURCE_ESCAPED=$(echo "${BARRELFISH_SOURCE}" | sed -e 's/[\/&]/\\&/g')
-BF_BUILD_ESCAPED=$(echo "${BARRELFISH_BUILD}" | sed -e 's/[\/&]/\\&/g')
-sed -r -e "s/\{\{BF_SRC\}\}/${BF_SOURCE_ESCAPED}/g" \
-       -e "s/\{\{BF_BUILD\}\}/${BF_BUILD_ESCAPED}/g" \
-       "${GCC_PATCH}" | patch -p1
-popd  # ${GCC}/
-
-mkdir -p ${GCC}-build/
-pushd ${GCC}-build/
-CC=gcc-4.7 ../${GCC}/configure \
-    --prefix="${TOOLCHAIN_PREFIX}" \
-    --target="${TARGET}" \
-    --enable-languages=c \
-    --enable-initfini-array \
-    --disable-nls \
-    --disable-multilib \
-    --disable-libssp \
-    --with-newlib \
-   # --with-cpu-64=k1om \
-   # --with-arch-64=k1om \
-   # --with-tune-64=k1om \
-    MAKEINFO=missing
-make MAKEINFO=true -j$MAKE_JOBS
-make MAKEINFO=true install-strip
-popd  # ${GCC}-build/
-
-popd  # ${TOOLCHAIN_BUILD}
-
-rm -rf "${TOOLCHAIN_BUILD}"
-rm -rf "${TOOLCHAIN_BUILD}"
diff --git a/tools/k1om/mpss-gcc/build-toolchain.sh b/tools/k1om/mpss-gcc/build-toolchain.sh
deleted file mode 100755 (executable)
index 034c2bd..0000000
+++ /dev/null
@@ -1,222 +0,0 @@
-#!/usr/bin/env bash
-
-# C/C++ toolchain build script for Barrelfish.
-# http://redmine.aluzina.org/projects/barrelfish/wiki/Toolchain_from_sources
-# http://wiki.barrelfish.org/CrossCompiler
-#
-# In order to build a toolchain you will need to install the following packages:
-#   $ sudo apt-get install gcc g++ make patch bison flex texinfo
-#
-# These are also required but will be downloaded automatically during the build:
-#   libgmp-dev, libmpc-dev, libmpfr-dev
-#
-# Optional (for Graphite optimizations): libcloog-ppl-dev.
-
-set -e  # Die if any command fails.
-set -x  # Trace each command before execution.
-
-#-------------------------------------------------------------------------------
-
-# Modify these versions to match the corresponding patch.
-BINUTILS=binutils-2.22+mpss3.2
-GCC=gcc-4.7.0+mpss3.2
-GLIBC=glibc-2.14+mpss3.2
-
-export CC=gcc-4.7
-export AR=gcc-ar-4.7
-
-# Path of your Barrelfish source and build tree.
-BARRELFISH_SOURCE=/home/acreto/barrelfish.xeon-phi
-BARRELFISH_BUILD=${BARRELFISH_SOURCE}/build
-
-# Where the toolchain will be built and installed.
-# Note: the toolchain is specific to the Barrelfish tree mentioned above.
-TOOLCHAIN_PREFIX=${BARRELFISH_SOURCE}/toolchain
-
-# Cross compiler target.
-#TARGET=x86_64-pc-barrelfish
-export TARGET=k1om-pc-barrelfish
-export TARGET=k1om-mpss-linux
-#TARGET=i586-pc-barrelfish
-#TARGET=i586-scc-barrelfish
-
-CROSS_BUILD=x86_64-linux-gnu
-CROSS_HOST=x86_64-linux-gnu
-
-# Directory this shell script is stored in.
-# http://stackoverflow.com/questions/59895/can-a-bash-script-tell-what-directory-its-stored-in
-SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
-
-# Paths to patches.
-BINUTILS_PATCH="${SCRIPT_DIR}/${BINUTILS}-barrelfish.patch"
-GCC_PATCH="${SCRIPT_DIR}/${GCC}-barrelfish.patch"
-GLIBC_PATCH="${SCRIPT_DIR}/${GLIBC}-cpuheader.patch"
-
-# Build parallelism
-MAKE_JOBS=
-if [[ -z "${MAKE_JOBS}" ]]; then
-  # Guess a sensible value - default: #cores + 2.
-  MAKE_JOBS=$(($(grep "^core id" /proc/cpuinfo | sort -u | wc -l) + 2))
-fi
-
-#-------------------------------------------------------------------------------
-
-# Sanity checks.
-exit_with_error() { echo "error: $1" && exit 1; }
-[[ ! -d "${BARRELFISH_SOURCE}" ]] && \
-    exit_with_error "Barrelfish source not found (${BARRELFISH_SOURCE})."
-[[ ! -d "${BARRELFISH_BUILD}" ]] && \
-    exit_with_error "Barrelfish tree not found (${BARRELFISH_BUILD})."
-[[   -d "${TOOLCHAIN_PREFIX}" ]] && \
-    exit_with_error "toolchain already built in ${TOOLCHAIN_PREFIX}."
-[[ ! -f "${BINUTILS_PATCH}" ]] && \
-    exit_with_error "binutils patch not found (${BINUTILS_PATCH})."
-[[ ! -f "${GCC_PATCH}" ]] && \
-    exit_with_error "GCC patch not found (${GCC_PATCH})."
-
-TOOLCHAIN_BUILD="$(mktemp -d --tmpdir barrelfish-toolchain-build.XXXXXXXXXX)"
-
-
-
-# Build the toolchain.
-export PATH=${PATH}:${TOOLCHAIN_PREFIX}/bin
-export PREFIX=${TOOLCHAIN_PREFIX}
-export TARGET_PREFIX=$PREFIX/$TARGET
-
-
-pushd "${TOOLCHAIN_BUILD}"
-
-# 1. binutils - GNU Binary Utilities
-cp "${SCRIPT_DIR}/${BINUTILS}.tar.bz2" "${TOOLCHAIN_BUILD}/${BINUTILS}.tar.bz2"
-tar xjvf "${TOOLCHAIN_BUILD}/${BINUTILS}.tar.bz2"
-pushd ${BINUTILS}/
-patch -p1 < "${BINUTILS_PATCH}"
-popd  # ${BINUTILS}/
-
-mkdir -p ${BINUTILS}-build/
-pushd ${BINUTILS}-build/
-../${BINUTILS}/configure \
-    --prefix="${TOOLCHAIN_PREFIX}" \
-    --target="${TARGET}" \
-    --build="${CROSS_BUILD}" \
-    --host="${CROSS_HOST}" \
-    --enable-threads \
-    --enable-lto \
-    --with-cpu-64=k1om \
-    --with-arch-64=k1om \
-    --with-tune-64=k1om \
-    --with-cpu=k1om \
-    --with-arch=k1om \
-    --with-tune=k1om \
-    --enable-plugins \
-    --disable-nls \
-    --disable-doc \
-    MAKEINFO=missing
-make MAKEINFO=true ARCH=k1om -j${MAKE_JOBS}
-make MAKEINFO=true install-strip 
-popd  # ${BINUTILS}-build/
-
-# 2. GCC - GNU Compiler Collection
-cp "${SCRIPT_DIR}/${GCC}.tar.bz2" "${TOOLCHAIN_BUILD}/${GCC}.tar.bz2"
-tar xjvf "${TOOLCHAIN_BUILD}/${GCC}.tar.bz2"
-pushd ${GCC}/
-source ./contrib/download_prerequisites
-# http://stackoverflow.com/questions/407523/escape-a-string-for-sed-search-pattern
-BF_SOURCE_ESCAPED=$(echo "${BARRELFISH_SOURCE}" | sed -e 's/[\/&]/\\&/g')
-BF_BUILD_ESCAPED=$(echo "${BARRELFISH_BUILD}" | sed -e 's/[\/&]/\\&/g')
-sed -r -e "s/\{\{BF_SRC\}\}/${BF_SOURCE_ESCAPED}/g" \
-       -e "s/\{\{BF_BUILD\}\}/${BF_BUILD_ESCAPED}/g" \
-       "${GCC_PATCH}" | patch -p1
-popd  # ${GCC}/
-
-# ${CROSS_BUILD}
-
-mkdir -p ${GCC}-build/
-pushd ${GCC}-build/
-../${GCC}/configure \
-    --prefix="${TOOLCHAIN_PREFIX}" \
-    --target="${TARGET}" \
-    --build="${CROSS_BUILD}" \
-    --host="${CROSS_HOST}" \
-    --enable-languages=c \
-    --enable-initfini-array \
-    --disable-nls \
-    --disable-multilib \
-    --disable-libssp \
-    --with-newlib \
-    --with-gnu-as \
-    --with-gnu-ld \
-    --with-cpu=k1om \
-    --with-arch=k1om \
-    --with-tune=k1om \
-    --without-headers \
-    --with-newlib -v \
-    MAKEINFO=missing
-
-#    --disable-multilib \
-
-make MAKEINFO=true ARCH=k1om all-gcc -j$MAKE_JOBS
-make MAKEINFO=true ARCH=k1om install-gcc -j$MAKE_JOBS
-
-popd
-
-export C_INCLUDE_PATH=${TOOLCHAIN_PREFIX}/lib/gcc/k1om-mpss-linux/4.7.0/include
-
-cp "${SCRIPT_DIR}/${GLIBC}.tar.bz2" "${TOOLCHAIN_BUILD}/${GLIBC}.tar.bz2"
-tar xvjf "${TOOLCHAIN_BUILD}/${GLIBC}.tar.bz2"
-
-pushd ${GLIBC}
-patch -p1 < "${GLIBC_PATCH}"
-popd
-
-mkdir -p ${GLIBC}-build/
-pushd ${GLIBC}-build/
-
-
-CC=${TARGET}-gcc ../${GLIBC}/configure \
-    --prefix="${TOOLCHAIN_PREFIX}" \
-    --target="${TARGET}" \
-    --build="${CROSS_BUILD}" \
-    --host="${CROSS_HOST}" \
-    --with-headers=${TARGET_PREFIX}/include \
-    --disable-profile \
-    libc_cv_forced_unwind=yes                     \
-    libc_cv_ctors_header=yes                      \
-    libc_cv_c_cleanup=yes
-
-make all
-make install_root=${TARGET_PREFIX} prefix="" install
-
-popd
-
-pushd ${GCC}-build/
-
-rm -rf ./*
-
-../${GCC}/configure  \
-    --prefix="${TOOLCHAIN_PREFIX}" \
-    --target="${TARGET}" \
-    --build="${CROSS_BUILD}" \
-    --host="${CROSS_HOST}" \
-    --enable-languages=c \
-    --enable-initfini-array \
-    --disable-nls \
-    --disable-shared \
-    --disable-multilib \
-    --disable-libssp \
-    --with-gnu-as \
-    --with-gnu-ld \
-    --with-cpu=k1om \
-    --with-arch=k1om \
-    --with-tune=k1om \
-    MAKEINFO=missing
-   
-
-make MAKEINFO=true all -j$MAKE_JOBS
-make MAKEINFO=true install-strip -j$MAKE_JOBS
-popd  # ${GCC}-build/
-
-popd  # ${TOOLCHAIN_BUILD}
-
-rm -rf "${TOOLCHAIN_BUILD}"
-rm -rf "${TOOLCHAIN_BUILD}"
diff --git a/tools/k1om/mpss-gcc/gcc-4.7.0+mpss3.2-barrelfish.patch b/tools/k1om/mpss-gcc/gcc-4.7.0+mpss3.2-barrelfish.patch
deleted file mode 100644 (file)
index d826139..0000000
+++ /dev/null
@@ -1,6665 +0,0 @@
-diff --git a/config.sub b/config.sub
-index 78176a4..e16a497 100755
---- a/config.sub       
-+++ b/config.sub
-@@ -1329,6 +1329,7 @@
-             | -sym* | -kopensolaris* \
-             | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
-             | -aos* | -aros* \
-+              | -barrelfish* \
-             | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
-             | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
-             | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
-diff --git a/gcc/gengtype.c b/gcc/gengtype.c
-index abf17f8..550d3bb 100644
---- a/gcc/gengtype.c
-+++ b/gcc/gengtype.c
-@@ -3613,13 +3613,13 @@ write_field_root (outf_p f, pair_p v, type_p type, const char *name,
-                  int has_length, struct fileloc *line, const char *if_marked,
-                  bool emit_pch, type_p field_type, const char *field_name)
- {
-+  struct pair newv;
-   /* If the field reference is relative to V, rather than to some
-      subcomponent of V, we can mark any subarrays with a single stride.
-      We're effectively treating the field as a global variable in its
-      own right.  */
-   if (v && type == v->type)
-     {
--      struct pair newv;
-       newv = *v;
-       newv.type = field_type;
-diff --git a/gcc/config.gcc b/gcc/config.gcc
-index 7282a68..3933f4d 100644
---- a/gcc/config.gcc
-+++ b/gcc/config.gcc
-@@ -601,6 +601,12 @@
-       ;;
-   esac
-   ;;
-+ *-*-barrelfish*)
-+   gas=yes
-+   gnu_ld=yes
-+   default_use_cxa_atexit=yes
-+   use_gcc_stdint=wrap
-+  ;;
- *-*-netbsd*)
-   tmake_file="t-slibgcc-elf-ver t-libc-ok t-netbsd t-libgcc-pic"
-   gas=yes
-@@ -1172,10 +1172,28 @@
-       tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h"
-       tmake_file="${tmake_file} i386/t-i386elf t-svr4"
-       ;;
-+i[34567]86-pc-barrelfish*)
-+      tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h i386/barrelfish-x86_32.h"
-+      tmake_file="${tmake_file} i386/t-i386elf i386/t-crtstuff"
-+      use_fixproto=yes
-+      ;;
-+i[34567]86-scc-barrelfish*)
-+      tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h i386/barrelfish-scc.h"
-+      tmake_file="${tmake_file} i386/t-i386elf i386/t-crtstuff"
-+      use_fixproto=yes
-+      ;;
- x86_64-*-elf* | [lk]1om-*-elf*)
-       tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h i386/x86-64.h"
-       tmake_file="${tmake_file} i386/t-i386elf t-svr4"
-       ;;
-+k1om-*-barrelfish*)
-+      tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h i386/x86-64.h i386/barrelfish-k1om.h"
-+      tmake_file="${tmake_file} i386/t-i386elf i386/t-crtstuff i386/t-mic-crtfm" 
-+      ;;
-+x86_64-*-barrelfish*)
-+      tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h i386/x86-64.h i386/barrelfish-x86_64.h"
-+      tmake_file="${tmake_file} i386/t-i386elf i386/t-crtstuff"
-+      ;;
- i[34567]86-*-freebsd*)
-       tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${fbsd_tm_file} i386/freebsd.h"
-       tmake_file="${tmake_file} i386/t-crtstuff"
-@@ -2688,7 +2688,7 @@
- esac
- case ${target} in
--i[34567]86-*-linux* | x86_64-*-linux* | [lk]1om-*-linux*)
-+i[34567]86-*-linux* | x86_64-*-linux* | [lk]1om-*-linux* | k1om-*-barrelfish* )
-       tmake_file="${tmake_file} i386/t-pmm_malloc i386/t-i386"
-       ;;
- i[34567]86-*-* | x86_64-*-* | [lk]1om-*-*)
-@@ -2864,6 +2882,10 @@
-     arch=l1om
-     cpu=l1om
-     ;;
-+  k1om-*-barrelfish*)
-+    arch=k1om
-+    cpu=k1om
-+    ;;
-   k1om-*-linux* | x86_64-k1om-linux*)
-     arch=k1om
-     cpu=k1om
-@@ -3578,6 +3600,9 @@
-         i[34567]86-*-gnu*)
-               tmake_file="${tmake_file} i386/t-fprules-softfp soft-fp/t-softfp i386/t-linux"
-               ;;
-+      k1om-*-barrelfish*)
-+              tmake_file="${tmake_file} i386/t-fprules-softfp soft-fp/t-softfp"
-+              ;;
-       i[34567]86-*-solaris2*)
-               tmake_file="${tmake_file} i386/t-fprules-softfp soft-fp/t-softfp"
-               ;;
-diff --git a/gcc/configure b/gcc/configure
---- a/gcc/configure    
-+++ b/gcc/configure
-@@ -6897,6 +6897,6 @@
-   case $target in
-     powerpc*-*-linux* | i?86*-*-linux* | x86_64*-*-linux* | [lk]1om*-*-linux* | s390*-*-linux* | \
--    i?86*-*-mingw* | x86_64*-*-mingw* | \
-+    i?86*-*-mingw* | x86_64*-*-mingw* | k1om-*-barrelfish* | \
-     i?86*-*-cygwin*)
-       enable_decimal_float=yes
-       ;;
-@@ -13278,6 +13278,6 @@
- x86_64-*kfreebsd*-gnu|[lk]1om-*kfreebsd*-gnu| \
- x86_64-*linux*|[lk]1om-*linux*|ppc*-*linux*|powerpc*-*linux*| \
--s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
-+s390*-*linux*|s390*-*tpf*|sparc*-*linux*|k1om-*-barrelfish*)
-   # Find out which ABI we are using.
-   echo 'int i;' > conftest.$ac_ext
-   if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
-@@ -13325,6 +13325,9 @@
-         k1om-*linux*)
-           LD="${LD-ld} -m elf_k1om"
-           ;;
-+        k1om-*barrelfish*)
-+          LD="${LD-ld} -m elf_k1om"
-+          ;;
-         ppc*-*linux*|powerpc*-*linux*)
-           LD="${LD-ld} -m elf64ppc"
-           ;;
-diff --git a/boehm-gc/configure b/boehm-gc/configure
---- a/boehm-gc/configure
-+++ b/boehm-gc/configure
-@@ -6771,7 +6771,7 @@
-   ;;
- x86_64-*kfreebsd*-gnu|[lk]1om-*kfreebsd*-gnu| \
--x86_64-*linux*|[lk]1om-*linux*|ppc*-*linux*|powerpc*-*linux*| \
-+x86_64-*linux*|[lk]1om-*linux*|ppc*-*linux*|powerpc*-*linux*|k1om-*-barrelfish \
- s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
-   # Find out which ABI we are using.
-   echo 'int i;' > conftest.$ac_ext
-@@ -6820,6 +6820,9 @@
-         k1om-*linux*)
-           LD="${LD-ld} -m elf_k1om"
-           ;;
-+          k1om-*barrelfish*)
-+          LD="${LD-ld} -m elf_k1om"
-+          ;;
-         ppc*-*linux*|powerpc*-*linux*)
-           LD="${LD-ld} -m elf64ppc"
-           ;;
-@@ -14729,7 +14732,7 @@
-     THREADS=posix
-     THREADLIBS=-lpthread
-     case "$host" in
--     x86-*-linux* | ia64-*-linux* | i586-*-linux* | i686-*-linux* | x86_64-*-linux* | [lk]1om-*-linux* | alpha-*-linux*)
-+     x86-*-linux* | ia64-*-linux* | i586-*-linux* | i686-*-linux* | x86_64-*-linux* | [lk]1om-*-linux* | alpha-*-linux* | [lk]1om-*-barrelfish*)
- $as_echo "#define GC_LINUX_THREADS 1" >>confdefs.h
-@@ -15283,7 +15286,7 @@
- $as_echo "#define MAKE_BACK_GRAPH 1" >>confdefs.h
-       ;;
--      x86-*-linux* | i586-*-linux* | i686-*-linux* | x86_64-*-linux* | [lk]1om-*-linux* )
-+      x86-*-linux* | i586-*-linux* | i686-*-linux* | x86_64-*-linux* | [lk]1om-*-linux* | k1om-*-barrelfish* )
-       $as_echo "#define MAKE_BACK_GRAPH 1" >>confdefs.h
-       { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \"Client must not use -fomit-frame-pointer.\"" >&5
-diff --git a/libgcc/configure b/libgcc/configure
---- a/libgcc/configure 
-+++ b/libgcc/configure
-@@ -3683,7 +3683,7 @@
-   case $host in
-     powerpc*-*-linux* | i?86*-*-linux* | x86_64*-*-linux* | [lk]1om*-*-linux* | s390*-*-linux* | \
--    i?86*-*-mingw* | x86_64*-*-mingw* | \
-+    i?86*-*-mingw* | x86_64*-*-mingw* | k1om-*-barrelfish* | \
-     i?86*-*-cygwin*)
-       enable_decimal_float=yes
-       ;;
-diff --git a/libmudflap/configure b/libmudflap/configure
---- a/libmudflap/configure
-+++ b/libmudflap/configure
-@@ -6354,7 +6354,7 @@
-   ;;
- x86_64-*kfreebsd*-gnu|[lk]1om-*kfreebsd*-gnu| \
--x86_64-*linux*|[lk]1om-*linux*|ppc*-*linux*|powerpc*-*linux*| \
-+x86_64-*linux*|[lk]1om-*linux*|ppc*-*linux*|powerpc*-*linux*| k1om-*-barrelfish | \
- s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
-   # Find out which ABI we are using.
-   echo 'int i;' > conftest.$ac_ext
-@@ -6403,6 +6403,9 @@
-         k1om-*linux*)
-           LD="${LD-ld} -m elf_k1om"
-           ;;
-+        k1om-*barrelfish*)
-+          LD="${LD-ld} -m elf_k1om"
-+          ;;
-         ppc*-*linux*|powerpc*-*linux*)
-           LD="${LD-ld} -m elf64ppc"
-           ;;
-diff --git a/libffi/configure b/libffi/configure
---- a/libffi/configure
-+++ b/libffi/configure
-@@ -6267,7 +6267,7 @@
-   ;;
- x86_64-*kfreebsd*-gnu|[lk]1om-*kfreebsd*-gnu| \
--x86_64-*linux*|[lk]1om-*linux*|ppc*-*linux*|powerpc*-*linux*| \
-+x86_64-*linux*|[lk]1om-*linux*|ppc*-*linux*|powerpc*-*linux*| k1om-*-barrelfish* |\
- s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
-   # Find out which ABI we are using.
-   echo 'int i;' > conftest.$ac_ext
-@@ -6316,6 +6316,9 @@
-         k1om-*linux*)
-           LD="${LD-ld} -m elf_k1om"
-           ;;
-+        k1om-*barrelfish*)
-+          LD="${LD-ld} -m elf_k1om"
-+          ;;
-         ppc*-*linux*|powerpc*-*linux*)
-           LD="${LD-ld} -m elf64ppc"
-           ;;
-diff --git a/libquadmath/configure b/libquadmath/configure
---- a/libquadmath/configure    
-+++ b/libquadmath/configure    
-@@ -6249,7 +6249,7 @@
-   ;;
- x86_64-*kfreebsd*-gnu|[lk]1om-*kfreebsd*-gnu| \
--x86_64-*linux*|[lk]1om-*linux*|ppc*-*linux*|powerpc*-*linux*| \
-+x86_64-*linux*|[lk]1om-*linux*|ppc*-*linux*|powerpc*-*linux*|k1om-*-barrelfish*| \
- s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
-   # Find out which ABI we are using.
-   echo 'int i;' > conftest.$ac_ext
-@@ -6298,6 +6298,9 @@
-         k1om-*linux*)
-           LD="${LD-ld} -m elf_k1om"
-           ;;
-+        k1om-*barrelfish*)
-+          LD="${LD-ld} -m elf_k1om"
-+          ;;
-         ppc*-*linux*|powerpc*-*linux*)
-           LD="${LD-ld} -m elf64ppc"
-           ;;
-
-diff --git a/libtool.m4 b/libtool.m4
---- a/libtool.m4
-+++ b/libtool.m4
-@@ -1221,7 +1221,7 @@
-   ;;
- x86_64-*kfreebsd*-gnu|[[lk]]1om-*kfreebsd*-gnu| \
--x86_64-*linux*|[[lk]]1om-*linux*|ppc*-*linux*|powerpc*-*linux*| \
-+x86_64-*linux*|[[lk]]1om-*linux*|ppc*-*linux*|powerpc*-*linux*|k1om-*-barrelfish*| \
- s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
-   # Find out which ABI we are using.
-   echo 'int i;' > conftest.$ac_ext
-@@ -1266,6 +1266,9 @@
-         k1om-*linux*)
-           LD="${LD-ld} -m elf_k1om"
-           ;;
-+        k1om-*barrelfish*)
-+          LD="${LD-ld} -m elf_k1om"
-+          ;;
-         ppc*-*linux*|powerpc*-*linux*)
-           LD="${LD-ld} -m elf64ppc"
-           ;;
-diff --git a/libdecnumber/configure b/libdecnumber/configure
---- a/libdecnumber/configure   
-+++ b/libdecnumber/configure   
-@@ -4603,7 +4603,7 @@
-   case $target in
-     powerpc*-*-linux* | i?86*-*-linux* | x86_64*-*-linux* | [lk]1om*-*-linux* | s390*-*-linux* | \
--    i?86*-*-mingw* | x86_64*-*-mingw* | \
-+    i?86*-*-mingw* | x86_64*-*-mingw* | k1om-*-barrelfish*|\
-     i?86*-*-cygwin*)
-       enable_decimal_float=yes
-       ;;
-diff --git a/config/dfp.m4 b/config/dfp.m4
---- a/config/dfp.m4
-+++ b/config/dfp.m4
-@@ -21,7 +21,7 @@
- [
-   case $1 in
-     powerpc*-*-linux* | i?86*-*-linux* | x86_64*-*-linux* | [[lk]]1om*-*-linux* | s390*-*-linux* | \
--    i?86*-*-mingw* | x86_64*-*-mingw* | \
-+    i?86*-*-mingw* | x86_64*-*-mingw* | k1om-*-barrelfish* |\
-     i?86*-*-cygwin*)
-       enable_decimal_float=yes
-       ;;
-diff --git a/zlib/configure b/zlib/configure
---- a/zlib/configure
-+++ b/zlib/configure
-@@ -5854,7 +5854,7 @@
-   ;;
- x86_64-*kfreebsd*-gnu|[lk]1om-*kfreebsd*-gnu| \
--x86_64-*linux*|[lk]1om-*linux*|ppc*-*linux*|powerpc*-*linux*| \
-+x86_64-*linux*|[lk]1om-*linux*|ppc*-*linux*|powerpc*-*linux*|k1om-*-barrelfish*| \
- s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
-   # Find out which ABI we are using.
-   echo 'int i;' > conftest.$ac_ext
-@@ -5900,6 +5900,9 @@
-         l1om-*linux*)
-           LD="${LD-ld} -m elf_l1om"
-           ;;
-+          k1om-*barrelfish*)
-+          LD="${LD-ld} -m elf_k1om"
-+          ;;
-         k1om-*linux*)
-           LD="${LD-ld} -m elf_k1om"
-           ;;
-diff --git a/libgomp/configure b/libgomp/configure
---- a/libgomp/configure
-+++ b/libgomp/configure
-@@ -6583,7 +6583,7 @@
-   ;;
- x86_64-*kfreebsd*-gnu|[lk]1om-*kfreebsd*-gnu| \
--x86_64-*linux*|[lk]1om-*linux*|ppc*-*linux*|powerpc*-*linux*| \
-+x86_64-*linux*|[lk]1om-*linux*|ppc*-*linux*|powerpc*-*linux*|k1om-*-barrelfish*| \
- s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
-   # Find out which ABI we are using.
-   echo 'int i;' > conftest.$ac_ext
-@@ -6632,6 +6632,9 @@
-         k1om-*linux*)
-           LD="${LD-ld} -m elf_k1om"
-           ;;
-+          k1om-*barrelfish*)
-+          LD="${LD-ld} -m elf_k1om"
-+          ;;
-         ppc*-*linux*|powerpc*-*linux*)
-           LD="${LD-ld} -m elf64ppc"
-           ;;
-
-diff --git a/gcc/config/i386/barrelfish-scc.h b/gcc/config/i386/barrelfish-scc.h
-new file mode 100644
-index 0000000..930451c
---- /dev/null
-+++ b/gcc/config/i386/barrelfish-scc.h
-@@ -0,0 +1,72 @@
-+#define BF_SRC   "{{BF_SRC}}"
-+#define BF_BUILD "{{BF_BUILD}}"
-+
-+#undef TARGET_OS_CPP_BUILTINS
-+#define TARGET_OS_CPP_BUILTINS()                        \
-+  do {                                                  \
-+    builtin_define ("BARRELFISH");                      \
-+    builtin_define_std ("barrelfish");                  \
-+    builtin_define_std ("unix");                        \
-+    builtin_define_std ("scc");                         \
-+    builtin_define ("CONFIG_LAZY_THC");                 \
-+    builtin_define ("CONFIG_NEWLIB");                   \
-+    builtin_define ("CONFIG_INTERCONNECT_DRIVER_LMP");  \
-+    builtin_define ("CONFIG_INTERCONNECT_DRIVER_UMP");  \
-+    builtin_define ("CONFIG_FLOUNDER_BACKEND_LMP");     \
-+    builtin_define ("CONFIG_FLOUNDER_BACKEND_UMP_IPI"); \
-+    builtin_define ("BF_BUILD_DIR=\"" BF_BUILD "\"");   \
-+    builtin_define ("BF_SRC_DIR=\"" BF_SRC "\"");       \
-+    builtin_assert ("system=barrelfish");               \
-+    builtin_assert ("system=unix");                     \
-+  } while(0);
-+
-+#undef  CC1_SPEC
-+#define CC1_SPEC "%(cc1_cpu) -mno-red-zone"
-+
-+/* Default #includes are defined in 'hake/ArchDefaults.hs' (see 'cStdIncs'). */
-+#undef  CPP_SPEC
-+#define CPP_SPEC                                       \
-+  "-isystem" BF_SRC "/include "                        \
-+  "-isystem" BF_SRC "/include/arch/scc "               \
-+  "-isystem" BF_SRC "/include/arch/x86_32 "            \
-+  "-isystem" BF_SRC "/lib/newlib/newlib/libc/include " \
-+  "-isystem" BF_SRC "/include/c "                      \
-+  "-isystem" BF_SRC "/include/target/x86_32 "          \
-+  "-isystem" BF_SRC "/include/ipv4 "                   \
-+  "-isystem" BF_BUILD "/scc/include "                  \
-+  "-isystem" BF_BUILD "/scc/include/dev"
-+
-+/* Default libraries are specified in 'hake/ArchDefaults.hs' (see 'stdLibs').
-+   Follows the order given by 'libDeps' in '{BF_SRC}/hake/RuleDefs.hs'. */
-+#undef LIB_SPEC
-+#define LIB_SPEC                  \
-+  "-L" BF_BUILD "/scc/lib "       \
-+  "-lbarrelfish "                 \
-+  "-loctopus_parser "             \
-+  BF_BUILD "/scc/errors/errno.o " \
-+  "-lnewlib "                     \
-+  "-lposixcompat "                \
-+  "-lvfs "                        \
-+  "-lahci "                       \
-+  "-lnfs "                        \
-+  "-llwip "                       \
-+  "-lbarrelfish "                 \
-+  "-lnewlib"
-+
-+#undef  STARTFILE_SPEC
-+#define STARTFILE_SPEC             \
-+  BF_BUILD "/scc/lib/crt0.o%s "    \
-+  BF_BUILD "/scc/lib/crtbegin.o%s"
-+
-+#undef  ENDFILE_SPEC
-+#define ENDFILE_SPEC                                                \
-+  "%{Ofast|ffast-math|funsafe-math-optimizations:crtfastmath.o%s} " \
-+  "%{mpc32:crtprec32.o%s} "                                         \
-+  "%{mpc64:crtprec64.o%s} "                                         \
-+  "%{mpc80:crtprec80.o%s} "                                         \
-+  BF_BUILD "/scc/lib/crtend.o%s "                                   \
-+  "-lcollections"
-+
-+/* System header files are C++ ready so don't wrap in extern "C". */
-+#undef  NO_IMPLICIT_EXTERN_C
-+#define NO_IMPLICIT_EXTERN_C  1
-diff --git a/gcc/config/i386/barrelfish-x86_32.h b/gcc/config/i386/barrelfish-x86_32.h
-new file mode 100644
-index 0000000..84d0bf5
---- /dev/null
-+++ b/gcc/config/i386/barrelfish-x86_32.h
-@@ -0,0 +1,70 @@
-+#define BF_SRC   "{{BF_SRC}}"
-+#define BF_BUILD "{{BF_BUILD}}"
-+
-+#undef TARGET_OS_CPP_BUILTINS
-+#define TARGET_OS_CPP_BUILTINS()                       \
-+  do {                                                 \
-+    builtin_define ("BARRELFISH");                     \
-+    builtin_define_std ("barrelfish");                 \
-+    builtin_define_std ("unix");                       \
-+    builtin_define ("CONFIG_LAZY_THC");                \
-+    builtin_define ("CONFIG_NEWLIB");                  \
-+    builtin_define ("CONFIG_INTERCONNECT_DRIVER_LMP"); \
-+    builtin_define ("CONFIG_INTERCONNECT_DRIVER_UMP"); \
-+    builtin_define ("CONFIG_FLOUNDER_BACKEND_LMP");    \
-+    builtin_define ("CONFIG_FLOUNDER_BACKEND_UMP");    \
-+    builtin_define ("BF_BUILD_DIR=\"" BF_BUILD "\"");  \
-+    builtin_define ("BF_SRC_DIR=\"" BF_SRC "\"");      \
-+    builtin_assert ("system=barrelfish");              \
-+    builtin_assert ("system=unix");                    \
-+  } while(0);
-+
-+#undef  CC1_SPEC
-+#define CC1_SPEC "%(cc1_cpu) -mno-red-zone"
-+
-+/* Default #includes are defined in 'hake/ArchDefaults.hs' (see 'cStdIncs'). */
-+#undef  CPP_SPEC
-+#define CPP_SPEC                                       \
-+  "-isystem" BF_SRC "/include "                        \
-+  "-isystem" BF_SRC "/include/arch/x86_32 "            \
-+  "-isystem" BF_SRC "/lib/newlib/newlib/libc/include " \
-+  "-isystem" BF_SRC "/include/c "                      \
-+  "-isystem" BF_SRC "/include/target/x86_32 "          \
-+  "-isystem" BF_SRC "/include/ipv4 "                   \
-+  "-isystem" BF_BUILD "/x86_32/include "               \
-+  "-isystem" BF_BUILD "/x86_32/include/dev"
-+
-+/* Default libraries are specified in 'hake/ArchDefaults.hs' (see 'stdLibs').
-+   Follows the order given by 'libDeps' in '{BF_SRC}/hake/RuleDefs.hs'. */
-+#undef LIB_SPEC
-+#define LIB_SPEC                     \
-+  "-L" BF_BUILD "/x86_32/lib "       \
-+  "-lbarrelfish "                    \
-+  "-loctopus_parser "                \
-+  BF_BUILD "/x86_32/errors/errno.o " \
-+  "-lnewlib "                        \
-+  "-lposixcompat "                   \
-+  "-lvfs "                           \
-+  "-lahci "                          \
-+  "-lnfs "                           \
-+  "-llwip "                          \
-+  "-lbarrelfish "                    \
-+  "-lnewlib"
-+
-+#undef  STARTFILE_SPEC
-+#define STARTFILE_SPEC                \
-+  BF_BUILD "/x86_32/lib/crt0.o%s "    \
-+  BF_BUILD "/x86_32/lib/crtbegin.o%s"
-+
-+#undef  ENDFILE_SPEC
-+#define ENDFILE_SPEC                                                \
-+  "%{Ofast|ffast-math|funsafe-math-optimizations:crtfastmath.o%s} " \
-+  "%{mpc32:crtprec32.o%s} "                                         \
-+  "%{mpc64:crtprec64.o%s} "                                         \
-+  "%{mpc80:crtprec80.o%s} "                                         \
-+  BF_BUILD "/x86_32/lib/crtend.o%s "                                \
-+  "-lcollections"
-+
-+/* System header files are C++ ready so don't wrap in extern "C". */
-+#undef  NO_IMPLICIT_EXTERN_C
-+#define NO_IMPLICIT_EXTERN_C  1
-diff --git a/gcc/config/i386/barrelfish-x86_64.h b/gcc/config/i386/barrelfish-x86_64.h
-new file mode 100644
-index 0000000..8608b62
---- /dev/null
-+++ b/gcc/config/i386/barrelfish-x86_64.h
-@@ -0,0 +1,70 @@
-+#define BF_SRC   "{{BF_SRC}}"
-+#define BF_BUILD "{{BF_BUILD}}"
-+
-+#undef TARGET_OS_CPP_BUILTINS
-+#define TARGET_OS_CPP_BUILTINS()                       \
-+  do {                                                 \
-+    builtin_define ("BARRELFISH");                     \
-+    builtin_define_std ("barrelfish");                 \
-+    builtin_define_std ("unix");                       \
-+    builtin_define ("CONFIG_LAZY_THC");                \
-+    builtin_define ("CONFIG_NEWLIB");                  \
-+    builtin_define ("CONFIG_INTERCONNECT_DRIVER_LMP"); \
-+    builtin_define ("CONFIG_INTERCONNECT_DRIVER_UMP"); \
-+    builtin_define ("CONFIG_FLOUNDER_BACKEND_LMP");    \
-+    builtin_define ("CONFIG_FLOUNDER_BACKEND_UMP");    \
-+    builtin_define ("BF_BUILD_DIR=\"" BF_BUILD "\"");  \
-+    builtin_define ("BF_SRC_DIR=\"" BF_SRC "\"");      \
-+    builtin_assert ("system=barrelfish");              \
-+    builtin_assert ("system=unix");                    \
-+  } while(0);
-+
-+#undef  CC1_SPEC
-+#define CC1_SPEC "%(cc1_cpu) -mno-red-zone"
-+
-+/* Default #includes are defined in 'hake/ArchDefaults.hs' (see 'cStdIncs'). */
-+#undef  CPP_SPEC
-+#define CPP_SPEC                                       \
-+  "-isystem" BF_SRC "/include "                        \
-+  "-isystem" BF_SRC "/include/arch/x86_64 "            \
-+  "-isystem" BF_SRC "/lib/newlib/newlib/libc/include " \
-+  "-isystem" BF_SRC "/include/c "                      \
-+  "-isystem" BF_SRC "/include/target/x86_64 "          \
-+  "-isystem" BF_SRC "/include/ipv4 "                   \
-+  "-isystem" BF_BUILD "/x86_64/include "               \
-+  "-isystem" BF_BUILD "/x86_64/include/dev"
-+
-+/* Default libraries are specified in 'hake/ArchDefaults.hs' (see 'stdLibs').
-+   Follows the order given by 'libDeps' in '{BF_SRC}/hake/RuleDefs.hs'. */
-+#undef LIB_SPEC
-+#define LIB_SPEC                     \
-+  "-L" BF_BUILD "/x86_64/lib "       \
-+  "-lbarrelfish "                    \
-+  "-loctopus_parser "                \
-+  BF_BUILD "/x86_64/errors/errno.o " \
-+  "-lnewlib "                        \
-+  "-lposixcompat "                   \
-+  "-lvfs "                           \
-+  "-lahci "                          \
-+  "-lnfs "                           \
-+  "-llwip "                          \
-+  "-lbarrelfish "                    \
-+  "-lnewlib"
-+
-+#undef  STARTFILE_SPEC
-+#define STARTFILE_SPEC                \
-+  BF_BUILD "/x86_64/lib/crt0.o%s "    \
-+  BF_BUILD "/x86_64/lib/crtbegin.o%s"
-+
-+#undef  ENDFILE_SPEC
-+#define ENDFILE_SPEC                                                \
-+  "%{Ofast|ffast-math|funsafe-math-optimizations:crtfastmath.o%s} " \
-+  "%{mpc32:crtprec32.o%s} "                                         \
-+  "%{mpc64:crtprec64.o%s} "                                         \
-+  "%{mpc80:crtprec80.o%s} "                                         \
-+  BF_BUILD "/x86_64/lib/crtend.o%s "                                \
-+  "-lcollections"
-+
-+/* System header files are C++ ready so don't wrap in extern "C". */
-+#undef  NO_IMPLICIT_EXTERN_C
-+#define NO_IMPLICIT_EXTERN_C  1
-diff --git a/gcc/config/i386/barrelfish-k1om.h b/gcc/config/i386/barrelfish-k1om.h
-new file mode 100644
-index 0000000..8608b62
---- /dev/null
-+++ b/gcc/config/i386/barrelfish-k1om.h
-@@ -0,0 +1,70 @@
-+#define BF_SRC   "{{BF_SRC}}"
-+#define BF_BUILD "{{BF_BUILD}}"
-+
-+#undef TARGET_OS_CPP_BUILTINS
-+#define TARGET_OS_CPP_BUILTINS()                       \
-+  do {                                                 \
-+    builtin_define ("BARRELFISH");                     \
-+    builtin_define_std ("barrelfish");                 \
-+    builtin_define_std ("unix");                       \
-+    builtin_define ("CONFIG_LAZY_THC");                \
-+    builtin_define ("CONFIG_NEWLIB");                  \
-+    builtin_define ("CONFIG_INTERCONNECT_DRIVER_LMP"); \
-+    builtin_define ("CONFIG_INTERCONNECT_DRIVER_UMP"); \
-+    builtin_define ("CONFIG_FLOUNDER_BACKEND_LMP");    \
-+    builtin_define ("CONFIG_FLOUNDER_BACKEND_UMP");    \
-+    builtin_define ("BF_BUILD_DIR=\"" BF_BUILD "\"");  \
-+    builtin_define ("BF_SRC_DIR=\"" BF_SRC "\"");      \
-+    builtin_assert ("system=barrelfish");              \
-+    builtin_assert ("system=unix");                    \
-+  } while(0);
-+
-+#undef  CC1_SPEC
-+#define CC1_SPEC "%(cc1_cpu) -mno-red-zone"
-+
-+/* Default #includes are defined in 'hake/ArchDefaults.hs' (see 'cStdIncs'). */
-+#undef  CPP_SPEC
-+#define CPP_SPEC                                       \
-+  "-isystem" BF_SRC "/include "                        \
-+  "-isystem" BF_SRC "/include/arch/k1om "            \
-+  "-isystem" BF_SRC "/lib/newlib/newlib/libc/include " \
-+  "-isystem" BF_SRC "/include/c "                      \
-+  "-isystem" BF_SRC "/include/target/k1om "          \
-+  "-isystem" BF_SRC "/include/ipv4 "                   \
-+  "-isystem" BF_BUILD "/k1om/include "               \
-+  "-isystem" BF_BUILD "/k1om/include/dev"
-+
-+/* Default libraries are specified in 'hake/ArchDefaults.hs' (see 'stdLibs').
-+   Follows the order given by 'libDeps' in '{BF_SRC}/hake/RuleDefs.hs'. */
-+#undef LIB_SPEC
-+#define LIB_SPEC                     \
-+  "-L" BF_BUILD "/k1om/lib "       \
-+  "-lbarrelfish "                    \
-+  "-loctopus_parser "                \
-+  BF_BUILD "/k1om/errors/errno.o " \
-+  "-lnewlib "                        \
-+  "-lposixcompat "                   \
-+  "-lvfs "                           \
-+  "-lahci "                          \
-+  "-lnfs "                           \
-+  "-llwip "                          \
-+  "-lbarrelfish "                    \
-+  "-lnewlib"
-+
-+#undef  STARTFILE_SPEC
-+#define STARTFILE_SPEC                \
-+  BF_BUILD "/k1om/lib/crt0.o%s "    \
-+  BF_BUILD "/k1om/lib/crtbegin.o%s"
-+
-+#undef  ENDFILE_SPEC
-+#define ENDFILE_SPEC                                                \
-+  "%{Ofast|ffast-math|funsafe-math-optimizations:crtfastmath.o%s} " \
-+  "%{mpc32:crtprec32.o%s} "                                         \
-+  "%{mpc64:crtprec64.o%s} "                                         \
-+  "%{mpc80:crtprec80.o%s} "                                         \
-+  BF_BUILD "/k1om/lib/crtend.o%s "                                \
-+  "-lcollections"
-+
-+/* System header files are C++ ready so don't wrap in extern "C". */
-+#undef  NO_IMPLICIT_EXTERN_C
-+#define NO_IMPLICIT_EXTERN_C  1
-diff --git a/gcc/ginclude/stddef.h b/gcc/ginclude/stddef.h
-index 8a03948..fe302bc 100644
---- a/gcc/ginclude/stddef.h
-+++ b/gcc/ginclude/stddef.h
-@@ -200,7 +200,7 @@
- #define ___int_size_t_h
- #define _GCC_SIZE_T
- #define _SIZET_
--#if defined (__FreeBSD__) && (__FreeBSD__ >= 5)
-+#if defined (__FreeBSD__) && (__FreeBSD__ >= 5) || defined(__barrelfish__)
- /* __size_t is a typedef on FreeBSD 5!, must not trash it. */
- #else
- #define __size_t
-diff --git a/gcc/testsuite/g++.dg/dg.exp b/gcc/testsuite/g++.dg/dg.exp
-index 0730c76..ea56210 100644
---- a/gcc/testsuite/g++.dg/dg.exp
-+++ b/gcc/testsuite/g++.dg/dg.exp
-@@ -31,6 +31,7 @@ dg-init
- # Gather a list of all tests, with the exception of those in directories
- # that are handled specially.
- set tests [lsort [find $srcdir/$subdir *.C]]
-+set tests [prune $tests $srcdir/$subdir/eh/*]
- set tests [prune $tests $srcdir/$subdir/bprob/*]
- set tests [prune $tests $srcdir/$subdir/charset/*]
- set tests [prune $tests $srcdir/$subdir/compat/*]
-diff --git a/libgcc/config.host b/libgcc/config.host
-index 66b4724..86bb37d 100644
---- a/libgcc/config.host
-+++ b/libgcc/config.host
-@@ -291,6 +291,10 @@
-       extra_parts="$extra_parts crtprec32.o crtprec64.o crtprec80.o crtfastmath.o"
-       tmake_file="${tmake_file} i386/t-crtpc i386/t-crtfm"
-       ;;
-+i[34567]86-*-barrelfish*)
-+      extra_parts="$extra_parts crtprec32.o crtprec64.o crtprec80.o crtfastmath.o"
-+      tmake_file="${tmake_file} i386/t-crtpc i386/t-crtfm i386/t-crtstuff t-dfprules"
-+      ;;
- x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu | \
-   [lk]1om-*-linux* | [lk]1om-*-kfreebsd*-gnu | [lk]1om-*-knetbsd*-gnu)
-       extra_parts="$extra_parts crtprec32.o crtprec64.o crtprec80.o crtfastmath.o"
-@@ -304,6 +308,14 @@
-         ;;
-       esac;
-       ;;
-+k1om-*-barrelfish*)
-+      extra_parts="$extra_parts crtprec32.o crtprec64.o crtprec80.o crtfastmath.o"
-+      tmake_file="${tmake_file} i386/t-crtpc i386/t-crtfm i386/t-crtstuff t-dfprules i386/t-mic-crtfm"
-+      ;;
-+x86_64-*-barrelfish*)
-+      extra_parts="$extra_parts crtprec32.o crtprec64.o crtprec80.o crtfastmath.o"
-+      tmake_file="${tmake_file} i386/t-crtpc i386/t-crtfm i386/t-crtstuff t-dfprules"
-+      ;;
- i[34567]86-pc-msdosdjgpp*)
-       ;;
- i[34567]86-*-lynxos*)
-@@ -585,7 +585,7 @@
- esac
- case ${host} in
--i[34567]86-*-linux* | x86_64-*-linux* | [lk]1om-*-linux* | \
-+i[34567]86-*-linux* | x86_64-*-linux* | [lk]1om-*-linux* | k1om-*-barrelfish* | \
-   i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu | \
-   i[34567]86-*-gnu*)
-       tmake_file="${tmake_file} t-tls"
-@@ -599,7 +599,7 @@
- i[34567]86-*-darwin* | x86_64-*-darwin* | [lk]1om-*-darwin* | \
-   i[34567]86-*-kfreebsd*-gnu | x86_64-*-kfreebsd*-gnu | [lk]1om-*-kfreebsd*-gnu | \
-   i[34567]86-*-linux* | x86_64-*-linux* | [lk]1om-*-linux* | \
--  i[34567]86-*-gnu* | \
-+  i[34567]86-*-gnu* | k1om-*-barrelfish* | \
-   i[34567]86-*-solaris2* | \
-   i[34567]86-*-cygwin* | i[34567]86-*-mingw* | x86_64-*-mingw* | \
-   i[34567]86-*-freebsd* | x86_64-*-freebsd* | [lk]1om-*-freebsd*)
-@@ -610,7 +610,7 @@
- esac
- case ${host} in
--i[34567]86-*-linux* | x86_64-*-linux* | [lk]1om-*-linux*)
-+i[34567]86-*-linux* | x86_64-*-linux* | [lk]1om-*-linux* | k1om-*-barrelfish*)
-       # Provide backward binary compatibility for 64bit Linux/x86.
-       if test "${host_address}" = 64; then
-               tmake_file="${tmake_file} i386/${host_address}/t-softfp-compat"
-diff --git a/libiberty/clock.c b/libiberty/clock.c
-index 07d902e..4d5817a 100644
---- a/libiberty/clock.c
-+++ b/libiberty/clock.c
-@@ -66,7 +66,7 @@ number of seconds used.
- /* FIXME: should be able to declare as clock_t. */
--long
-+clock_t
- clock (void)
- {
- #ifdef HAVE_GETRUSAGE
-diff --git a/libiberty/gettimeofday.c b/libiberty/gettimeofday.c
-index fca1679..88f2f5a 100644
---- a/libiberty/gettimeofday.c
-+++ b/libiberty/gettimeofday.c
-@@ -19,7 +19,7 @@ that @var{tz} be NULL.  Returns 0 on success, -1 on failure.
- */ 
- int
--gettimeofday (struct timeval *tp, void *tz)
-+gettimeofday (struct timeval *tp, struct timezone *tz)
- {
-   if (tz)
-     abort ();
-diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure
-index b642495..45e3ed3 100755
---- a/libstdc++-v3/configure
-+++ b/libstdc++-v3/configure
-@@ -50889,6 +51789,5867 @@ _ACEOF
-   fi
-     ;;
-+  *-barrelfish*)
-+
-+  # All these tests are for C++; save the language and the compiler flags.
-+  # The CXXFLAGS thing is suspicious, but based on similar bits previously
-+  # found in GLIBCXX_CONFIGURE.
-+
-+  ac_ext=cpp
-+ac_cpp='$CXXCPP $CPPFLAGS'
-+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-+
-+  ac_test_CXXFLAGS="${CXXFLAGS+set}"
-+  ac_save_CXXFLAGS="$CXXFLAGS"
-+
-+  # Check for maintainer-mode bits.
-+  if test x"$USE_MAINTAINER_MODE" = xno; then
-+    WERROR=''
-+  else
-+    WERROR='-Werror'
-+  fi
-+
-+  # Check for -ffunction-sections -fdata-sections
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for g++ that supports -ffunction-sections -fdata-sections" >&5
-+$as_echo_n "checking for g++ that supports -ffunction-sections -fdata-sections... " >&6; }
-+  CXXFLAGS='-g -Werror -ffunction-sections -fdata-sections'
-+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+int foo; void bar() { };
-+int
-+main ()
-+{
-+
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_cxx_try_compile "$LINENO"; then :
-+  ac_fdsections=yes
-+else
-+  ac_fdsections=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+  if test "$ac_test_CXXFLAGS" = set; then
-+    CXXFLAGS="$ac_save_CXXFLAGS"
-+  else
-+    # this is the suspicious part
-+    CXXFLAGS=''
-+  fi
-+  if test x"$ac_fdsections" = x"yes"; then
-+    SECTION_FLAGS='-ffunction-sections -fdata-sections'
-+  fi
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_fdsections" >&5
-+$as_echo "$ac_fdsections" >&6; }
-+
-+  ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+
-+
-+
-+
-+  # If we're not using GNU ld, then there's no point in even trying these
-+  # tests.  Check for that first.  We should have already tested for gld
-+  # by now (in libtool), but require it now just to be safe...
-+  test -z "$SECTION_LDFLAGS" && SECTION_LDFLAGS=''
-+  test -z "$OPT_LDFLAGS" && OPT_LDFLAGS=''
-+
-+
-+
-+  # The name set by libtool depends on the version of libtool.  Shame on us
-+  # for depending on an impl detail, but c'est la vie.  Older versions used
-+  # ac_cv_prog_gnu_ld, but now it's lt_cv_prog_gnu_ld, and is copied back on
-+  # top of with_gnu_ld (which is also set by --with-gnu-ld, so that actually
-+  # makes sense).  We'll test with_gnu_ld everywhere else, so if that isn't
-+  # set (hence we're using an older libtool), then set it.
-+  if test x${with_gnu_ld+set} != xset; then
-+    if test x${ac_cv_prog_gnu_ld+set} != xset; then
-+      # We got through "ac_require(ac_prog_ld)" and still not set?  Huh?
-+      with_gnu_ld=no
-+    else
-+      with_gnu_ld=$ac_cv_prog_gnu_ld
-+    fi
-+  fi
-+
-+  # Start by getting the version number.  I think the libtool test already
-+  # does some of this, but throws away the result.
-+  glibcxx_ld_is_gold=no
-+  if test x"$with_gnu_ld" = x"yes"; then
-+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld version" >&5
-+$as_echo_n "checking for ld version... " >&6; }
-+
-+    if $LD --version 2>/dev/null | grep 'GNU gold' >/dev/null 2>&1; then
-+      glibcxx_ld_is_gold=yes
-+    fi
-+    ldver=`$LD --version 2>/dev/null |
-+         sed -e 's/GNU gold /GNU ld /;s/GNU ld version /GNU ld /;s/GNU ld ([^)]*) /GNU ld /;s/GNU ld \([0-9.][0-9.]*\).*/\1/; q'`
-+
-+    glibcxx_gnu_ld_version=`echo $ldver | \
-+         $AWK -F. '{ if (NF<3) $3=0; print ($1*100+$2)*100+$3 }'`
-+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_gnu_ld_version" >&5
-+$as_echo "$glibcxx_gnu_ld_version" >&6; }
-+  fi
-+
-+  # Set --gc-sections.
-+  glibcxx_have_gc_sections=no
-+  if test "$glibcxx_ld_is_gold" = "yes"; then
-+    if $LD --help 2>/dev/null | grep gc-sections >/dev/null 2>&1; then
-+      glibcxx_have_gc_sections=yes
-+    fi
-+  else
-+    glibcxx_gcsections_min_ld=21602
-+    if test x"$with_gnu_ld" = x"yes" &&
-+      test $glibcxx_gnu_ld_version -gt $glibcxx_gcsections_min_ld ; then
-+      glibcxx_have_gc_sections=yes
-+    fi
-+  fi
-+  if test "$glibcxx_have_gc_sections" = "yes"; then
-+    # Sufficiently young GNU ld it is!  Joy and bunny rabbits!
-+    # NB: This flag only works reliably after 2.16.1. Configure tests
-+    # for this are difficult, so hard wire a value that should work.
-+
-+    ac_test_CFLAGS="${CFLAGS+set}"
-+    ac_save_CFLAGS="$CFLAGS"
-+    CFLAGS='-Wl,--gc-sections'
-+
-+    # Check for -Wl,--gc-sections
-+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld that supports -Wl,--gc-sections" >&5
-+$as_echo_n "checking for ld that supports -Wl,--gc-sections... " >&6; }
-+    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 one(void) { return 1; }
-+     int two(void) { return 2; }
-+
-+int
-+main ()
-+{
-+ two();
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_c_try_link "$LINENO"; then :
-+  ac_gcsections=yes
-+else
-+  ac_gcsections=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext \
-+    conftest$ac_exeext conftest.$ac_ext
-+    if test "$ac_gcsections" = "yes"; then
-+      rm -f conftest.c
-+      touch conftest.c
-+      if $CC -c conftest.c; then
-+      if $LD --gc-sections -o conftest conftest.o 2>&1 | \
-+         grep "Warning: gc-sections option ignored" > /dev/null; then
-+        ac_gcsections=no
-+      fi
-+      fi
-+      rm -f conftest.c conftest.o conftest
-+    fi
-+    if test "$ac_gcsections" = "yes"; then
-+      SECTION_LDFLAGS="-Wl,--gc-sections $SECTION_LDFLAGS"
-+    fi
-+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_gcsections" >&5
-+$as_echo "$ac_gcsections" >&6; }
-+
-+    if test "$ac_test_CFLAGS" = set; then
-+      CFLAGS="$ac_save_CFLAGS"
-+    else
-+      # this is the suspicious part
-+      CFLAGS=''
-+    fi
-+  fi
-+
-+  # Set -z,relro.
-+  # Note this is only for shared objects.
-+  ac_ld_relro=no
-+  if test x"$with_gnu_ld" = x"yes"; then
-+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld that supports -Wl,-z,relro" >&5
-+$as_echo_n "checking for ld that supports -Wl,-z,relro... " >&6; }
-+    cxx_z_relo=`$LD -v --help 2>/dev/null | grep "z relro"`
-+    if test -n "$cxx_z_relo"; then
-+      OPT_LDFLAGS="-Wl,-z,relro"
-+      ac_ld_relro=yes
-+    fi
-+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ld_relro" >&5
-+$as_echo "$ac_ld_relro" >&6; }
-+  fi
-+
-+  # Set linker optimization flags.
-+  if test x"$with_gnu_ld" = x"yes"; then
-+    OPT_LDFLAGS="-Wl,-O1 $OPT_LDFLAGS"
-+  fi
-+
-+
-+
-+
-+
-+  ac_test_CXXFLAGS="${CXXFLAGS+set}"
-+  ac_save_CXXFLAGS="$CXXFLAGS"
-+  CXXFLAGS='-fno-builtin -D_GNU_SOURCE'
-+
-+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sin in -lm" >&5
-+$as_echo_n "checking for sin in -lm... " >&6; }
-+if test "${ac_cv_lib_m_sin+set}" = set; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  ac_check_lib_save_LIBS=$LIBS
-+LIBS="-lm  $LIBS"
-+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.  */
-+
-+/* Override any GCC internal prototype to avoid an error.
-+   Use char because int might match the return type of a GCC
-+   builtin and then its argument prototype would still apply.  */
-+#ifdef __cplusplus
-+extern "C"
-+#endif
-+char sin ();
-+int
-+main ()
-+{
-+return sin ();
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_c_try_link "$LINENO"; then :
-+  ac_cv_lib_m_sin=yes
-+else
-+  ac_cv_lib_m_sin=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext \
-+    conftest$ac_exeext conftest.$ac_ext
-+LIBS=$ac_check_lib_save_LIBS
-+fi
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_m_sin" >&5
-+$as_echo "$ac_cv_lib_m_sin" >&6; }
-+if test "x$ac_cv_lib_m_sin" = x""yes; then :
-+  libm="-lm"
-+fi
-+
-+  ac_save_LIBS="$LIBS"
-+  LIBS="$LIBS $libm"
-+
-+
-+
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for isinf declaration" >&5
-+$as_echo_n "checking for isinf declaration... " >&6; }
-+  if test x${glibcxx_cv_func_isinf_use+set} != xset; then
-+    if test "${glibcxx_cv_func_isinf_use+set}" = set; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+
-+
-+      ac_ext=cpp
-+ac_cpp='$CXXCPP $CPPFLAGS'
-+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-+
-+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <math.h>
-+                    #ifdef HAVE_IEEEFP_H
-+                    #include <ieeefp.h>
-+                    #endif
-+
-+int
-+main ()
-+{
-+ isinf(0);
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_cxx_try_compile "$LINENO"; then :
-+  glibcxx_cv_func_isinf_use=yes
-+else
-+  glibcxx_cv_func_isinf_use=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+      ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+
-+fi
-+
-+  fi
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func_isinf_use" >&5
-+$as_echo "$glibcxx_cv_func_isinf_use" >&6; }
-+
-+  if test x$glibcxx_cv_func_isinf_use = x"yes"; then
-+    for ac_func in isinf
-+do :
-+  ac_fn_c_check_func "$LINENO" "isinf" "ac_cv_func_isinf"
-+if test "x$ac_cv_func_isinf" = x""yes; then :
-+  cat >>confdefs.h <<_ACEOF
-+#define HAVE_ISINF 1
-+_ACEOF
-+
-+fi
-+done
-+
-+  else
-+
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _isinf declaration" >&5
-+$as_echo_n "checking for _isinf declaration... " >&6; }
-+  if test x${glibcxx_cv_func__isinf_use+set} != xset; then
-+    if test "${glibcxx_cv_func__isinf_use+set}" = set; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+
-+
-+      ac_ext=cpp
-+ac_cpp='$CXXCPP $CPPFLAGS'
-+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-+
-+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <math.h>
-+                    #ifdef HAVE_IEEEFP_H
-+                    #include <ieeefp.h>
-+                    #endif
-+
-+int
-+main ()
-+{
-+ _isinf(0);
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_cxx_try_compile "$LINENO"; then :
-+  glibcxx_cv_func__isinf_use=yes
-+else
-+  glibcxx_cv_func__isinf_use=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+      ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+
-+fi
-+
-+  fi
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func__isinf_use" >&5
-+$as_echo "$glibcxx_cv_func__isinf_use" >&6; }
-+
-+    if test x$glibcxx_cv_func__isinf_use = x"yes"; then
-+      for ac_func in _isinf
-+do :
-+  ac_fn_c_check_func "$LINENO" "_isinf" "ac_cv_func__isinf"
-+if test "x$ac_cv_func__isinf" = x""yes; then :
-+  cat >>confdefs.h <<_ACEOF
-+#define HAVE__ISINF 1
-+_ACEOF
-+
-+fi
-+done
-+
-+    fi
-+  fi
-+
-+
-+
-+
-+
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for isnan declaration" >&5
-+$as_echo_n "checking for isnan declaration... " >&6; }
-+  if test x${glibcxx_cv_func_isnan_use+set} != xset; then
-+    if test "${glibcxx_cv_func_isnan_use+set}" = set; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+
-+
-+      ac_ext=cpp
-+ac_cpp='$CXXCPP $CPPFLAGS'
-+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-+
-+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <math.h>
-+                    #ifdef HAVE_IEEEFP_H
-+                    #include <ieeefp.h>
-+                    #endif
-+
-+int
-+main ()
-+{
-+ isnan(0);
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_cxx_try_compile "$LINENO"; then :
-+  glibcxx_cv_func_isnan_use=yes
-+else
-+  glibcxx_cv_func_isnan_use=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+      ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+
-+fi
-+
-+  fi
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func_isnan_use" >&5
-+$as_echo "$glibcxx_cv_func_isnan_use" >&6; }
-+
-+  if test x$glibcxx_cv_func_isnan_use = x"yes"; then
-+    for ac_func in isnan
-+do :
-+  ac_fn_c_check_func "$LINENO" "isnan" "ac_cv_func_isnan"
-+if test "x$ac_cv_func_isnan" = x""yes; then :
-+  cat >>confdefs.h <<_ACEOF
-+#define HAVE_ISNAN 1
-+_ACEOF
-+
-+fi
-+done
-+
-+  else
-+
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _isnan declaration" >&5
-+$as_echo_n "checking for _isnan declaration... " >&6; }
-+  if test x${glibcxx_cv_func__isnan_use+set} != xset; then
-+    if test "${glibcxx_cv_func__isnan_use+set}" = set; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+
-+
-+      ac_ext=cpp
-+ac_cpp='$CXXCPP $CPPFLAGS'
-+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-+
-+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <math.h>
-+                    #ifdef HAVE_IEEEFP_H
-+                    #include <ieeefp.h>
-+                    #endif
-+
-+int
-+main ()
-+{
-+ _isnan(0);
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_cxx_try_compile "$LINENO"; then :
-+  glibcxx_cv_func__isnan_use=yes
-+else
-+  glibcxx_cv_func__isnan_use=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+      ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+
-+fi
-+
-+  fi
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func__isnan_use" >&5
-+$as_echo "$glibcxx_cv_func__isnan_use" >&6; }
-+
-+    if test x$glibcxx_cv_func__isnan_use = x"yes"; then