]> rtime.felk.cvut.cz Git - l4.git/commitdiff
update
authorl4check <l4check@d050ee49-bd90-4346-b210-929a50b99cfc>
Wed, 13 Oct 2010 06:30:54 +0000 (06:30 +0000)
committerl4check <l4check@d050ee49-bd90-4346-b210-929a50b99cfc>
Wed, 13 Oct 2010 06:30:54 +0000 (06:30 +0000)
git-svn-id: http://svn.tudos.org/repos/oc/tudos/trunk@24 d050ee49-bd90-4346-b210-929a50b99cfc

41 files changed:
kernel/fiasco/src/Modules.arm
kernel/fiasco/src/jdb/ia32/jdb-ia32-amd64.cpp
kernel/fiasco/src/jdb/ia32/jdb_bt-ia32-ux.cpp
kernel/fiasco/src/jdb/jdb-thread.cpp
kernel/fiasco/src/jdb/jdb_tcb.cpp
kernel/fiasco/src/jdb/ux/jdb-ux.cpp
kernel/fiasco/src/jdb/ux/jdb_bp-ux.cpp
kernel/fiasco/src/kern/arm/context-arm.cpp
kernel/fiasco/src/kern/arm/ivt.S
kernel/fiasco/src/kern/arm/mem_op.cpp [new file with mode: 0644]
kernel/fiasco/src/kern/arm/thread-arm.cpp
kernel/fiasco/src/kern/config.cpp
kernel/fiasco/src/kern/ia32/apic-ia32-mp.cpp
kernel/fiasco/src/kern/ia32/vm.cpp
kernel/fiasco/src/kern/ia32/vm_svm.cpp
kernel/fiasco/src/kern/ia32/vm_vmx.cpp
kernel/fiasco/src/kern/kernel_thread-std.cpp
kernel/fiasco/src/kern/sched_context-fixed_prio.cpp
kernel/fiasco/src/kern/sched_context-fp_wfq.cpp
kernel/fiasco/src/kern/space.cpp
l4/pkg/ankh/server/src/device.cc
l4/pkg/dde/linux26/include/Makefile
l4/pkg/examples/libs/libgomp/Makefile
l4/pkg/examples/sys/vcpu/Makefile
l4/pkg/l4sys/include/ARCH-amd64/L4API-l4f/__semaphore_impl.h
l4/pkg/l4sys/include/ARCH-arm/L4API-l4f/syscall_defs.h
l4/pkg/l4sys/include/ARCH-arm/__semaphore_impl.h
l4/pkg/l4sys/include/ARCH-arm/cache.h
l4/pkg/l4sys/include/ARCH-arm/mem_op.h [new file with mode: 0644]
l4/pkg/l4sys/include/ARCH-x86/L4API-l4f/__semaphore_impl.h
l4/pkg/l4sys/include/thread
l4/pkg/l4sys/include/thread.h
l4/pkg/libstdc++-headers/include-4.3.3/bits/c++config.h
l4/pkg/libstdc++-headers/include-4.5/bits/c++config.h
l4/pkg/libvcpu/include/ARCH-ppc32/vcpu_arch.h
l4/pkg/uclibc/lib/libpthread/include/pthread-l4.h
l4/pkg/uclibc/lib/libpthread/src/internals.h
l4/pkg/uclibc/lib/libpthread/src/l4.cc
l4/pkg/uclibc/lib/libpthread/src/manager.cc
l4/pkg/uclibc/lib/uclibc/Makefile
l4/pkg/uclibc/lib/uclibc/contrib_files_all.lst

index 7c26473759cd426444c6a6b24c08a43aac77fd1c..be54dee0ecc9e27de4c1ec8b703267cdfc07e4f8 100644 (file)
@@ -153,7 +153,7 @@ VPATH               += jdb/arm jdb
 PRIVATE_INCDIR         += kern/$(CONFIG_XARCH) kern
 
 INTERFACES_KERNEL :=   kmem boot_info pages __main globals config \
-                       main cache kobject_mapdb dbg_page_info \
+                       main mem_op kobject_mapdb dbg_page_info \
                        bitmap kernel_uart pagetable mem_layout \
                        mapped_alloc kmem_alloc kip_init kmem_space \
                        queue_item queue cpu_mask rcupdate irq_pin \
index 7b1be9c6bd12d32fe28eb2e9583e8a11f194cf47..9e95d75a4ca206685a4abfa5352a9a3fddd8c7fe 100644 (file)
@@ -495,9 +495,8 @@ Jdb::is_adapter_memory(Address virt, Space *task)
   if (!task)
     // phys requested
     phys = virt;
-  else if (task == Config::kernel_taskno
-           || (!Kmem::is_io_bitmap_page_fault(virt)
-               && Kmem::is_kmem_page_fault(virt, 0)))
+  else if (   !Kmem::is_io_bitmap_page_fault(virt)
+           &&  Kmem::is_kmem_page_fault(virt, 0))
     // kernel address
     phys = Kmem::virt_to_phys((const void*)virt);
   else
index 09573ef74730ad7d58e227a12c0e98d4cbf5b7c8..53c970a132d99be1e7b01f0fc316b4d04b084bd4 100644 (file)
@@ -40,8 +40,8 @@ Kobject *Jdb_bt::ko_tid;
 // determine the user level ebp and eip considering the current thread state
 static void
 Jdb_bt::get_user_eip_ebp(Address &eip, Address &ebp)
-{ 
-  if (task == Config::kernel_taskno)
+{
+  if (!task)
     {
       // kernel thread doesn't execute user code -- at least we hope so :-)
       ebp = eip = 0;
@@ -54,7 +54,7 @@ Jdb_bt::get_user_eip_ebp(Address &eip, Address &ebp)
   Jdb::Guessed_thread_state state = Jdb::guess_thread_state(t);
 
   eip = ktop[-5];
-  
+
   if (state == Jdb::s_ipc)
     {
       // If thread is in IPC, EBP lays on the stack (see C-bindings). EBP
index cc42f24fb29b5d8cdae8329bd9db826a14b000c5..ae64f397d8accaabe63ee637096ad68a93f6f0ac 100644 (file)
@@ -16,7 +16,6 @@ public:
 IMPLEMENTATION:
 
 #include "jdb_prompt_ext.h"
-//#include "jdb_kobject_names.h"
 #include "jdb.h"
 #include "thread.h"
 
@@ -44,21 +43,6 @@ Jdb_tid_ext::update()
 
 //static Jdb_tid_ext jdb_tid_ext INIT_PRIORITY(JDB_MODULE_INIT_PRIO);
 
-//-
-
-
-#include "kernel_task.h"
-#if 0
-PUBLIC static
-Space*
-Jdb::lookup_space(Task_num task)
-{
-  return task == Config::kernel_taskno
-                       ? Kernel_task::kernel_task()
-                       : Space_index(task).lookup();
-}
-#endif
-
 //---------------------------------------------------------------------------
 IMPLEMENTATION [arm || ux || ppc32]:
 
index b4d21dd8b6e1af79c65c42af3345e715233d4823..45293ddaffbcbd26bb576fac7695137ab670a934 100644 (file)
@@ -23,6 +23,7 @@ IMPLEMENTATION:
 #include "jdb_thread.h"
 #include "jdb_util.h"
 #include "kernel_console.h"
+#include "kernel_task.h"
 #include "keycodes.h"
 #include "l4_types.h"
 #include "push_console.h"
index 00a4286954b5a7cc3bd3fbc8c26bca1c6e589243..8f58568cc01b4fa14c9aee176871db26f9138f45 100644 (file)
@@ -45,6 +45,7 @@ IMPLEMENTATION [ux]:
 #include "jdb_dbinfo.h"
 #include "jdb_screen.h"
 #include "kernel_console.h"
+#include "kernel_task.h"
 #include "kernel_thread.h"
 #include "keycodes.h"
 #include "kmem.h"
index 5e14e02496a3e47ccfacd21af0f0b56282f2ecab..44ad51bb3468a3185bc5389c50727b79de0f3cd3 100644 (file)
@@ -87,9 +87,9 @@ int
 Jdb_bp::set_debug_address_register(int num, Mword addr, Mword len,
                                   Breakpoint::Mode mode, Task *task)
 {
-  if (task == Config::kernel_taskno)
+  if (!task)
     {
-      putstr(" => task 0 (kernel) not allowed for breakpoints");
+      putstr(" => kernel task not allowed for breakpoints");
       return 0;
     }
   if (num >= 0 && num <= 3)
index 0a30e544b6801a298132034e4b25e4ebce8c0428..259a897484e6fdf50713d3befa09e271ab6750c8 100644 (file)
@@ -3,11 +3,11 @@ INTERFACE [arm]:
 EXTENSION class Context
 {
 public:
-  void set_cache_op_in_progress(bool val);
-  bool is_cache_op_in_progress() const { return _cache_op_in_progess; }
+  void set_mem_op_in_progress(bool val);
+  bool is_mem_op_in_progress() const { return _mem_op_in_progess; }
 
 private:
-  bool _cache_op_in_progess;
+  bool _mem_op_in_progess;
 };
 
 // ------------------------------------------------------------------------
@@ -117,8 +117,8 @@ void Context::switchin_context(Context *from)
 
 IMPLEMENT inline
 void
-Context::set_cache_op_in_progress(bool val)
+Context::set_mem_op_in_progress(bool val)
 {
-  _cache_op_in_progess = val;
+  _mem_op_in_progess = val;
   Mem::barrier();
 }
index 9dad741dd85e15747c72a20141e5fbbf1eca30ad..c9cd8fc9f4389b510bb46bcb9be6d7d4e7d76dee 100644 (file)
@@ -600,7 +600,7 @@ sys_call_table:
        .word sys_kdb_ke
 /*SYSCALL(ipc)*/
        .word ipc_short_cut_wrapper
-       .word sys_arm_cache_op
+       .word sys_arm_mem_op
 SYSCALL(invoke_debug)
        .word sys_kdb_ke
        .word sys_kdb_ke
diff --git a/kernel/fiasco/src/kern/arm/mem_op.cpp b/kernel/fiasco/src/kern/arm/mem_op.cpp
new file mode 100644 (file)
index 0000000..eac3650
--- /dev/null
@@ -0,0 +1,170 @@
+INTERFACE [arm]:
+
+#include "types.h"
+
+class Mem_op
+{
+public:
+  enum Op_cache
+  {
+    Op_cache_clean_data        = 0x00,
+    Op_cache_flush_data        = 0x01,
+    Op_cache_inv_data          = 0x02,
+    Op_cache_coherent          = 0x03,
+    Op_cache_dma_coherent      = 0x04,
+    Op_cache_dma_coherent_full = 0x05,
+  };
+
+  enum Op_mem
+  {
+    Op_mem_read_data     = 0x10,
+    Op_mem_write_data    = 0x11,
+  };
+};
+
+// ------------------------------------------------------------------------
+IMPLEMENTATION [arm]:
+
+#include "context.h"
+#include "entry_frame.h"
+#include "globals.h"
+#include "mem.h"
+#include "mem_space.h"
+#include "mem_unit.h"
+#include "outer_cache.h"
+#include "space.h"
+
+PUBLIC static void
+Mem_op::arm_mem_cache_maint(int op, void const *start, void const *end)
+{
+  Context *c = current();
+
+  c->set_mem_op_in_progress(true);
+
+  switch (op)
+    {
+    case Op_cache_clean_data:
+      Mem_unit::clean_dcache(start, end);
+      break;
+
+    case Op_cache_flush_data:
+      Mem_unit::flush_dcache(start, end);
+      break;
+
+    case Op_cache_inv_data:
+      Mem_unit::inv_dcache(start, end);
+      break;
+
+    case Op_cache_coherent:
+      Mem_unit::clean_dcache(start, end);
+      Mem::dsb();
+      Mem_unit::btc_inv();
+      break;
+
+    case Op_cache_dma_coherent:
+        {
+          Mem_space::Vaddr v = Virt_addr(Address(start));
+          Mem_space::Vaddr e = Virt_addr(Address(end));
+
+          Mem_unit::flush_dcache(v, e);
+          while (v < e)
+            {
+              Mem_space::Size phys_size;
+              Mem_space::Phys_addr phys_addr;
+              unsigned attrs;
+
+              if (   c->mem_space()->v_lookup(v, &phys_addr,
+                                              &phys_size, &attrs)
+                  && (attrs & Mem_space::Page_user_accessible))
+                {
+                  Outer_cache::flush(Virt_addr(phys_addr).value(),
+                                     Virt_addr(phys_addr).value()
+                                     + Virt_size(phys_size).value() - 1,
+                                     false);
+                }
+              v += phys_size;
+            }
+          Outer_cache::sync();
+
+        }
+      break;
+
+    // We might not want to implement this one but single address outer
+    // cache flushing can be really slow
+    case Op_cache_dma_coherent_full:
+      Mem_unit::flush_dcache();
+      Outer_cache::flush();
+      break;
+
+    default:
+      break;
+    };
+
+  c->set_mem_op_in_progress(false);
+}
+
+PUBLIC static void
+Mem_op::arm_mem_access(Mword *r)
+{
+  Address  a = r[1];
+  unsigned w = r[2];
+
+  if (w > 2)
+    return;
+
+  if (!current()->space()->is_user_memory(a, 1 << w))
+    return;
+
+  current()->set_mem_op_in_progress(true);
+
+  switch (r[0])
+    {
+    case Op_mem_read_data:
+      switch (w)
+       {
+       case 0:
+         r[3] = *(unsigned char *)a;
+         break;
+       case 1:
+         r[3] = *(unsigned short *)a;
+         break;
+       case 2:
+         r[3] = *(unsigned int *)a;
+         break;
+       default:
+         break;
+       };
+      break;
+
+    case Op_mem_write_data:
+      switch (w)
+       {
+       case 0:
+         *(unsigned char *)a = r[3];
+         break;
+       case 1:
+         *(unsigned short *)a = r[3];
+         break;
+       case 2:
+         *(unsigned int *)a = r[3];
+         break;
+       default:
+         break;
+       };
+      break;
+
+    default:
+      break;
+    };
+
+  current()->set_mem_op_in_progress(false);
+}
+
+extern "C" void sys_arm_mem_op()
+{
+  Entry_frame *e = current()->regs();
+  if (EXPECT_FALSE(e->r[0] & 0x10))
+    Mem_op::arm_mem_access(e->r);
+  else
+    Mem_op::arm_mem_cache_maint(e->r[0], (void *)e->r[1], (void *)e->r[2]);
+}
index 653702dcadd5e65a66b2b18281a9636b820ba97a..f392bc2d0d18453bbd9dc9493e8d932febb53d33 100644 (file)
@@ -15,9 +15,9 @@ IMPLEMENTATION [arm]:
 #include <cassert>
 #include <cstdio>
 
-#include "cache.h"
 #include "globals.h"
 #include "kmem_space.h"
+#include "mem_op.h"
 #include "static_assert.h"
 #include "thread_state.h"
 #include "types.h"
@@ -199,7 +199,7 @@ extern "C" {
 
     // cache operations we carry out for user space might cause PFs, we just
     // ignore those
-    if (EXPECT_FALSE(t->is_cache_op_in_progress()))
+    if (EXPECT_FALSE(t->is_mem_op_in_progress()))
       {
         ret_frame->pc += 4;
         return 1;
@@ -225,8 +225,8 @@ extern "C" {
             && ts->r[7] == 0xf0002)
          {
             if (ts->r[2] == 0)
-              Cache_op::arm_cache_maint(Cache_op::Op_coherent,
-                                        (void *)ts->r[0], (void *)ts->r[1]);
+              Mem_op::arm_mem_cache_maint(Mem_op::Op_cache_coherent,
+                                          (void *)ts->r[0], (void *)ts->r[1]);
             return;
          }
       }
index 2631a3731691026eaa6c7e901fa8ade93b7f4558..f1e2d8ef67d2b03b25aa00a6fdd364e7e6bd70f0 100644 (file)
@@ -76,24 +76,14 @@ public:
   static const int profiling_rate = 100;
   static const int profile_irq = 0;
 
-  // kernel (idle) task definitions
+  // kernel (idle) thread prio
   static const unsigned kernel_prio = 0;
-  static const unsigned kernel_mcp = 255;
 
-  // sigma0 task definitions
-  static const unsigned sigma0_prio = 0x10;
-  static const unsigned sigma0_mcp = 0;
-
-  // root (boot) task definitions
-  static const unsigned boot_prio = 0x10;
-  static const unsigned boot_mcp = 255;
+  // default prio
+  static const unsigned default_prio = 1;
 
   static const int warn_level = CONFIG_WARN_LEVEL;
 
-  static const unsigned kernel_taskno = 0;
-  static const unsigned sigma0_taskno = 2;
-  static const unsigned boot_taskno = 4;
-
   enum {
     Kip_syscalls = 1,
 #ifdef CONFIG_ASSEMBLER_IPC_SHORTCUT
index 4a4a4c19c35c1229b7b7d5e06133b573356eaea3..67519263726c1c8d368e405dc9685e979679f68f 100644 (file)
@@ -51,6 +51,23 @@ Apic::disable_external_ints()
   reg_write(APIC_lvt1, 0x0001003f);
 }
 
+PUBLIC static inline
+bool
+Apic::mp_ipi_idle()
+{
+  return ((reg_read(APIC_ICR) & 0x00001000) == 0);
+}
+
+PRIVATE static inline
+bool
+Apic::mp_ipi_idle_timeout(Cpu const *c, Unsigned32 wait)
+{
+  Unsigned64 wait_till = c->time_us() + wait;
+  while (!mp_ipi_idle() && c->time_us() < wait_till)
+    Proc::pause();
+  return mp_ipi_idle();
+}
+
 PUBLIC static inline NEEDS [<cassert>]
 void
 Apic::mp_send_ipi(Unsigned32 dest, Unsigned32 vect,
@@ -83,13 +100,6 @@ Apic::mp_send_ipi(Unsigned32 dest, Unsigned32 vect,
   reg_write(APIC_ICR, tmp_val);
 }
 
-PUBLIC static inline
-bool
-Apic::mp_ipi_idle()
-{
-  return (reg_read(APIC_ICR) & 0x00001000) == 0;
-}
-
 PUBLIC static inline
 void
 Apic::mp_ipi_ack()
@@ -122,8 +132,6 @@ PUBLIC static
 void
 Apic::mp_startup(Cpu const *current_cpu, Unsigned32 dest, Address tramp_page)
 {
-  Unsigned64 wait_till;
-
   assert((tramp_page & 0xfff00fff) == 0);
 
   // XXX: should check for the apic version what to do exactly
@@ -133,23 +141,20 @@ Apic::mp_startup(Cpu const *current_cpu, Unsigned32 dest, Address tramp_page)
   mp_send_ipi(dest, 0, APIC_IPI_INIT);
 
   // delay for 10ms (=10,000us)
-  wait_till = current_cpu->time_us() + 10000;
-  while (current_cpu->time_us() < wait_till)
-    Proc::pause();
+  if (!mp_ipi_idle_timeout(current_cpu, 10000))
+    return;
 
   // Send STARTUP IPI
   mp_send_ipi(dest, tramp_page >> 12, APIC_IPI_STRTUP);
 
   // delay for 200us
-  wait_till = current_cpu->time_us() + 200;
-  while (current_cpu->time_us() < wait_till)
-    Proc::pause();
+  if (!mp_ipi_idle_timeout(current_cpu, 200))
+    return;
 
   // Send STARTUP IPI
   mp_send_ipi(dest, tramp_page >> 12, APIC_IPI_STRTUP);
 
   // delay for 200us
-  wait_till = current_cpu->time_us() + 200;
-  while (current_cpu->time_us() < wait_till)
-    Proc::pause();
+  if (!mp_ipi_idle_timeout(current_cpu, 200))
+    return;
 }
index 93592e708fcb5f8d728395e46135c66d9764bc6c..df03955e6e0b636fefd8b7d14c4e1b8e4ee3229a 100644 (file)
@@ -58,6 +58,34 @@ Vm::allocator()
   return slabs;
 }
 
+PUBLIC static
+int
+Vm::getpage(Utcb *utcb, L4_msg_tag tag, void **addr)
+{
+  L4_snd_item_iter item(utcb, tag.words());
+
+  if (EXPECT_FALSE(!tag.items() || !item.next()))
+    return -L4_err::EInval;
+
+  L4_fpage page(item.get()->d);
+
+  if (EXPECT_FALSE(   !page.is_mempage()
+                   || page.order() < 12))
+    return -L4_err::EInval;
+
+  unsigned int page_attribs;
+  Mem_space::Phys_addr phys;
+  Mem_space::Size size;
+
+  if (EXPECT_FALSE(!current()->space()->mem_space()
+                        ->v_lookup(Virt_addr(page.mem_address()),
+                                   &phys, &size, &page_attribs)))
+    return -L4_err::EInval;
+
+  *addr = (void *)Virt_addr(page.mem_address()).value();
+
+  return 0;
+}
 
 PUBLIC
 template< typename Vm_impl >
index 5c5ef0d51170163174e1ffb7cf77b39d5de251cd..b3ef55767834978174ca6f467ff273a41dfcefc8 100644 (file)
@@ -402,25 +402,14 @@ Vm_svm::sys_vm_run(Syscall_frame *f, Utcb *utcb)
       return commit_result(-L4_err::EInval);
     }
 
-  L4_snd_item_iter vmcb_item(utcb, tag.words());
+  Vmcb *vmcb_s;
 
-  if (EXPECT_FALSE(!tag.items() || !vmcb_item.next()))
-    return commit_result(-L4_err::EInval);
-
-  L4_fpage vmcb_fpage(vmcb_item.get()->d);
-
-  if (EXPECT_FALSE(!vmcb_fpage.is_mempage()))
+  if (int r = Vm::getpage(utcb, tag, (void **)&vmcb_s))
     {
-      WARN("svm: Fpage invalid\n");
-      return commit_error(utcb, L4_error::Overflow);
+      WARN("svm: Invalid VMCB\n");
+      return commit_result(r);
     }
 
-  if (EXPECT_FALSE(vmcb_fpage.order() < 12))
-    return commit_result(-L4_err::EInval);
-
-  Vmcb *vmcb_s = (Vmcb *)(Virt_addr(vmcb_fpage.mem_address()).value());
-  Vmcb *kernel_vmcb_s = s.kernel_vmcb();
-
   if (EXPECT_FALSE(vmcb_s->np_enabled() && !s.has_npt()))
     {
       WARN("svm: No NPT available\n");
@@ -432,27 +421,6 @@ Vm_svm::sys_vm_run(Syscall_frame *f, Utcb *utcb)
   if (EXPECT_FALSE(is_64bit() && !vm_cr3))
     return commit_result(-L4_err::ENomem);
 
-  Mem_space::Phys_addr phys_vmcb;
-  Mem_space::Size size;
-  bool resident;
-  unsigned int page_attribs;
-
-  Mem_space *const curr_mem_space = current()->space()->mem_space();
-  resident = curr_mem_space->v_lookup(Virt_addr(vmcb_s), &phys_vmcb, &size, &page_attribs);
-
-  if (!resident)
-    {
-      WARN("svm: VMCB invalid\n");
-      return commit_result(-L4_err::EInval);
-    }
-#if 0
-  // currently only support for nested pagetables
-  // if shadow page tables are to be allowed then cr0
-  // needs further scrutiny and cr3 must not be accessible
-  if((vmcb_s->control_area.np_enable & 1) != 1) 
-    return commit_result(-L4_err::EInval);
-#endif
-
   // neither EFER.LME nor EFER.LMA must be set
   if (EXPECT_FALSE(!is_64bit()
                   && (vmcb_s->state_save_area.efer & (EFER_LME | EFER_LMA))))
@@ -507,6 +475,8 @@ Vm_svm::sys_vm_run(Syscall_frame *f, Utcb *utcb)
   orig_cr3  = vmcb_s->state_save_area.cr3;
   orig_ncr3 = vmcb_s->control_area.n_cr3;
 
+  Vmcb *kernel_vmcb_s = s.kernel_vmcb();
+
   copy_control_area(kernel_vmcb_s, vmcb_s);
   copy_state_save_area(kernel_vmcb_s, vmcb_s);
 
index 89dc1842ae3585683870a19e86a294b609ec216f..2b5277761cc91acec60d8cde243cc33f8b4fe65f 100644 (file)
@@ -473,37 +473,12 @@ Vm_vmx::sys_vm_run(Syscall_frame *f, Utcb *utcb)
       return commit_result(-L4_err::EInval);
     }
 
-  L4_snd_item_iter vmcs_item(utcb, tag.words());
+  void *vmcs_s;
 
-  if (EXPECT_FALSE(!tag.items() || !vmcs_item.next()))
-    return commit_result(-L4_err::EInval);
-
-  L4_fpage vmcs_fpage(vmcs_item.get()->d);
-
-  if (EXPECT_FALSE(!vmcs_fpage.is_mempage()))
+  if (int r = Vm::getpage(utcb, tag, &vmcs_s))
     {
-      WARN("VMX: Fpage invalid\n");
-      return commit_error(utcb, L4_error::Overflow);
-    }
-
-  if (EXPECT_FALSE(vmcs_fpage.order() < 12))
-    return commit_result(-L4_err::EInval);
-
-
-  void *vmcs_s = (void *)(Virt_addr(vmcs_fpage.mem_address()).value());
-
-  Mem_space::Phys_addr phys_vmcs;
-  Mem_space::Size size;
-  bool resident;
-  unsigned int page_attribs;
-
-  Mem_space *const curr_mem_space = current()->space()->mem_space();
-  resident = curr_mem_space->v_lookup(Virt_addr(vmcs_s), &phys_vmcs, &size, &page_attribs);
-
-  if (EXPECT_FALSE(!resident))
-    {
-      WARN("VMX: VMCS invalid\n");
-      return commit_result(-L4_err::EInval);
+      WARN("VMX: Invalid VMCS\n");
+      return commit_result(r);
     }
 
   // XXX:
index bd165c24977452db6865a0da6c5a000911715e0f..4a1992dc7f8527d7f9b067fed21a46cf0cadc389 100644 (file)
@@ -96,7 +96,6 @@ Kernel_thread::init_workload()
   sigma0_space = sigma0_task->mem_space();
 
   Thread *sigma0_thread = new (Ram_quota::root) Thread();
-  // Config::sigma0_prio
 
   assert_kdb(sigma0_thread);
   check (map(sigma0_thread, sigma0_task->obj_space(), sigma0_task, C_thread, 0));
@@ -121,7 +120,6 @@ Kernel_thread::init_workload()
   check (boot_task->initialize());
 
   Thread *boot_thread = new (Ram_quota::root) Thread();
-  // Config::boot_prio
 
   assert_kdb (boot_thread);
 
@@ -138,7 +136,6 @@ Kernel_thread::init_workload()
   check (s0_b_gate);
   check (map(s0_b_gate, boot_task->obj_space(), boot_task, C_pager, 0));
 
-  //Cpu::cpus.cpu(0).tz_switch_to_ns();
   set_cpu_of(sigma0_thread, 0);
   set_cpu_of(boot_thread, 0);
   sigma0_thread->state_del_dirty(Thread_suspended);
index 318aebff1fd6923e6b4af602f07fc3b57f50a138..e70e211b771ea2c2354e8a5494239a51619a96cf 100644 (file)
@@ -61,13 +61,12 @@ IMPLEMENTATION [sched_fixed_prio]:
 PUBLIC
 Sched_context::Sched_context()
 : _ready_next(0),
-  _prio(Config::boot_prio),
+  _prio(Config::default_prio),
   _quantum(Config::default_time_slice),
   _left(Config::default_time_slice)
 {}
 
 
-
 /**
  * Return priority of Sched_context
  */
index 454660202da2a5f190470e30bcf1c226db5e23c5..66cc4e6981b794689b88b85e333a04633636cf23 100644 (file)
@@ -110,7 +110,7 @@ PUBLIC
 Sched_context::Sched_context()
 {
   _t = Fixed_prio;
-  _sc.fp._p = Config::boot_prio;
+  _sc.fp._p = Config::default_prio;
   _sc.fp._q = Config::default_time_slice;
   _sc.fp._left = Config::default_time_slice;
   _sc.fp._ready_next = 0;
index 0b48a37ecfeb664df3bead1eeb5e28a7719085c1..3a288584d5afa772f27f7e8631bdf79a1dc4df69 100644 (file)
@@ -231,7 +231,7 @@ Space::~Space()
   * exists, or if another thread creates an address space for the same
   * task number concurrently).  In this case, the newly-created
   * address space should be deleted again.
-  * 
+  *
   * @param number Task number of the new address space
   */
 PUBLIC template< typename SPACE_FACTORY >
@@ -300,7 +300,7 @@ Space::switchin_context(Space *from)
 
 // Mem_space utilities
 
-/// Return memory space.
+// Return memory space.
 PUBLIC inline
 Mem_space const *
 Space::mem_space () const
@@ -313,6 +313,14 @@ Space::mem_space ()
   return _mem_space.get();
 }
 
+PUBLIC static inline
+bool
+Space::is_user_memory(Address address, Mword len)
+{
+  return    address < Mem_layout::User_max
+         && address + len <= Mem_layout::User_max;
+}
+
 PUBLIC inline
 bool
 Space::lookup_space (Mem_space** out_space)
@@ -351,14 +359,11 @@ Spin_lock_coloc<Space::State> *
 Space::state_lock()
 { return &_state; }
 
-
-//////////////////////////////////////////////////////////////////////
-
+// ------------------------------------------------------------------------
 IMPLEMENTATION [!io && !ux]:
 
-/// Is this task a privileged one?
-PUBLIC static inline 
+// Is this task a privileged one?
+PUBLIC static inline
 bool
 Space::has_io_privileges()
 { return true; }
-
index e2288ad700be97a346de9fd15b2167f1240451da..79e86cff2244db0c473bbeea627e7171418abb38 100644 (file)
@@ -2,6 +2,7 @@
 #include <l4/cxx/l4iostream>
 #include "device"
 #include <cstring>
+#include <cstdio>
 #include <iostream>
 #include <boost/format.hpp>
 
index d6ac1f6414ef4d2f28098319b54bc34ec1b2b0a3..de78173fc09c516eba55a269b70b819f74a8686a 100644 (file)
@@ -23,7 +23,6 @@ MAKELINK = if [ ! $1 -ef $2 ] ; then ln -sf $3 $2 ; fi
 ARCH = $(BUILD_ARCH)
 
 all::
-       echo foo $(ARCH)
        $(VERBOSE)$(call MAKELINK, \
                $(INSTALLDIR_LOCAL)/$(ARCH)/$(INSTALL_INC_PREFIX)/asm-$(SUFFIX_$(ARCH)),\
                $(INSTALLDIR_LOCAL)/$(ARCH)/$(INSTALL_INC_PREFIX)/asm, asm-$(SUFFIX_$(ARCH)))
index cda80dee820d2d7a561acefabc232181a92f1c3e..a3ced0d28e56bcf59268b1b67dce5b19e689e6d0 100644 (file)
@@ -8,7 +8,6 @@ ifneq ($(SYSTEM),)
   # check whether used gcc has the omp.h file available
   OMP_H_PATH := $(shell $(CC) -print-file-name=include/omp.h)
 
-  $(info here1 $(OMP_H_PATH))
   ifeq ($(strip $(OMP_H_PATH)),include/omp.h)
     $(info \e[32m $(CC) does not have omp.h header file available, skipping.\e[0m)
   else
index 32c4e74ba72687db0727e51dfcd47ff70520d314..82c6dfbcec8c25752add8e4e8d3c8b15b4bd3dac 100644 (file)
@@ -4,5 +4,6 @@ L4DIR           ?= $(PKGDIR)/../..
 TARGET         = ex_vcpu
 SRC_CC         = vcpu.cc
 REQUIRES_LIBS   = libvcpu
+DEPENDS_PKGS    = libvcpu
 
 include $(L4DIR)/mk/prog.mk
index 36413f8a055c313de3b617811ed94639c4fd4717..ddfcece6f8e2addaccc3c5fabffdb6860b38f8cd 100644 (file)
@@ -29,30 +29,33 @@ L4_INLINE l4_msgtag_t
 l4_usem_down_to(l4_cap_idx_t ksem, l4_u_semaphore_t *sem, l4_timeout_s timeout) L4_NOTHROW
 {
   l4_msgtag_t res;
-  unsigned long dummy;
 
   l4_utcb_mr()->mr[0] = (l4_addr_t)sem;
 
-  __asm__ __volatile__(
-       "1: xor %%rax, %%rax    \n\t"
-       "   decq 0(%%rdi)       \n\t"
-       "   jge  2f             \n\t"
-       "   mov $1, %%rax       \n\t"
-       L4_ENTER_KERNEL
-       "   cmp $0x10000, %%rax \n\t"
-       "   je 1b               \n\t"
-       "2:                     \n\t"
+  do
+    {
+      unsigned long dummy1, dummy2, dummy3;
+      __asm__ __volatile__(
+       "   xor %%rax, %%rax    \n\t"
+       "   decq 0(%%rdi)       \n\t"
+       "   jge  1f             \n\t"
+       "   mov $1, %%rax       \n\t"
+       L4_ENTER_KERNEL
+       "1:                     \n\t"
        :
-       "=D" (dummy),
-       "=c" (timeout),
-       "=a" (res.raw)
+       "=D" (dummy1),
+       "=c" (dummy2),
+       "=d" (dummy3),
+       "=a" (res.raw)
        :
-        "D" (sem),
-       "d" (ksem),
-       "c" (timeout)
+       "D" (sem),
+       "d" (ksem),
+       "c" (timeout)
        :
-       "rsi", "memory"
-       );
+       "rsi", "memory"
+      );
+    }
+  while (l4_msgtag_label(res) == L4_USEM_RETRY);
 
   return res;
 }
index 360d861471f92395399dd5b76b4a00a2e25befe5..0a3082f6579ffa24c5459c7c3cfcae415fd250a5 100644 (file)
@@ -26,7 +26,7 @@
 #  define L4_SYSCALL_MAGIC_OFFSET      8
 #endif
 #define L4_SYSCALL_INVOKE              (-0x00000004-L4_SYSCALL_MAGIC_OFFSET)
-#define L4_SYSCALL_CACHE_OP             (-0x00000008-L4_SYSCALL_MAGIC_OFFSET)
+#define L4_SYSCALL_MEM_OP               (-0x00000008-L4_SYSCALL_MAGIC_OFFSET)
 #define L4_SYSCALL_DEBUGGER            (-0x0000000C-L4_SYSCALL_MAGIC_OFFSET)
 
 #endif /* __L4SYS__ARCH_ARM__L4API_L4F__SYSCALL_DEFS_H__ */
index fa0b6219a42ebd633049175f65477387c7022bc7..bcabf742d9230bc5c033d06edfa97a8b6d264c45 100644 (file)
@@ -1,6 +1,6 @@
 /**
  * \file
- * \brief  User-lock implementation for x86
+ * \brief  User-lock implementation for ARM
  */
 /*
  * (c) 2008-2009 Adam Lackorzynski <adam@os.inf.tu-dresden.de>,
@@ -35,38 +35,41 @@ l4_usem_down_to(l4_cap_idx_t lock, l4_u_semaphore_t *sem, l4_timeout_s timeout)
   do
     {
       if (__builtin_expect(l4_atomic_add((long*)&(sem->counter), -1) >= 0, 1))
-       return l4_msgtag(0,0,0,0);
+       return l4_msgtag(0, 0, 0, 0);
 
       l4_utcb_mr()->mr[0] = (l4_addr_t)sem;
 
       register unsigned long _lock    __asm__ ("r2") = lock | L4_SYSF_CALL;
       register unsigned long _timeout __asm__ ("r3") = timeout.t;
       register unsigned long _flags   __asm__ ("r4") = 0;
-      register unsigned long _tag     __asm__ ("r0") = 1;
+      register l4_msgtag_t   _tag     __asm__ ("r0") =
+        l4_msgtag(0 /*L4_SEMAPHORE_DOWN*/, 1, 0, 0);
 
       __asm__ __volatile__
-       ("@ l4_u_lock (semaphore block) \n\t"
+       ("@ l4_usem_down_to (semaphore block) \n\t"
         PIC_SAVE_ASM
         "mov     lr, pc       \n\t"
         "mov     pc, %[sys]   \n\t"
         PIC_RESTORE_ASM
         :
-        "=r"(_lock),
-        "=r"(_timeout),
-        "=r"(_flags),
-        "=r"(_tag)
+        "=r" (_lock),
+        "=r" (_timeout),
+        "=r" (_flags),
+        "=r" (_tag.raw)
         :
-        "0"(_lock),
-        "1"(_timeout),
-        "2"(_flags),
-        "3"(_tag),
+        "0" (_lock),
+        "1" (_timeout),
+        "2" (_flags),
+        "3" (_tag.raw),
         [sys] "i" (L4_SYSCALL_INVOKE)
         :
-        "cc", "memory", "lr");
+        "cc", "memory", "lr"
+        );
 
-      if (_tag != 0x10000)
+      if (l4_msgtag_label(_tag) != L4_USEM_RETRY)
        {
-         l4_msgtag_t t; t.raw = _tag;
+         l4_msgtag_t t;
+          t.raw = _tag.raw;
          return t;
        }
     }
@@ -86,10 +89,11 @@ l4_usem_up(l4_cap_idx_t lock, l4_u_semaphore_t *sem) L4_NOTHROW
   register unsigned long _lock    __asm__ ("r2") = lock | L4_SYSF_CALL;
   register unsigned long _timeout __asm__ ("r3") = 0;
   register unsigned long _flags   __asm__ ("r4") = 0;
-  register unsigned long _tag     __asm__ ("r0") = 0x10001;
+  register unsigned long _tag     __asm__ ("r0") =
+    l4_msgtag(1 /* L4_SEMAPHORE_UP_WITHOUT_YIELD */, 1, 0, 0).raw;
 
   __asm__ __volatile__
-    ("@ l4_u_lock (semaphore block) \n\t"
+    ("@ l4_usem_up (semaphore block) \n\t"
      PIC_SAVE_ASM
      "mov     lr, pc       \n\t"
      "mov     pc, %[sys]   \n\t"
index e0a64cbbebd51f85075514183ad6998e63b0b206..3b6275be1863ea7f778c23c7921eb926f339114e 100644 (file)
 
 #include_next <l4/sys/cache.h>
 
+/**
+ * \internal
+ */
 L4_INLINE void
-l4_cache_op_arm_call(unsigned long start,
-                     unsigned long end,
-                     unsigned long op);
+l4_cache_op_arm_call(unsigned long op,
+                     unsigned long start,
+                     unsigned long end);
 
 L4_INLINE void
 l4_cache_op_arm_call(unsigned long op,
@@ -55,7 +58,7 @@ l4_cache_op_arm_call(unsigned long op,
        "=r" (_start),
        "=r" (_end)
        :
-       [sc] "i" (L4_SYSCALL_CACHE_OP),
+       [sc] "i" (L4_SYSCALL_MEM_OP),
        "0" (_op),
        "1" (_start),
        "2" (_end)
@@ -64,55 +67,55 @@ l4_cache_op_arm_call(unsigned long op,
        );
 }
 
-enum
+enum L4_mem_cache_ops
 {
-  L4_CACHE_OP_CLEAN_DATA        = 0,
-  L4_CACHE_OP_FLUSH_DATA        = 1,
-  L4_CACHE_OP_INV_DATA          = 2,
-  L4_CACHE_OP_COHERENT          = 3,
-  L4_CACHE_OP_DMA_COHERENT      = 4,
-  L4_CACHE_OP_DMA_COHERENT_FULL = 5,
+  L4_MEM_CACHE_OP_CLEAN_DATA        = 0,
+  L4_MEM_CACHE_OP_FLUSH_DATA        = 1,
+  L4_MEM_CACHE_OP_INV_DATA          = 2,
+  L4_MEM_CACHE_OP_COHERENT          = 3,
+  L4_MEM_CACHE_OP_DMA_COHERENT      = 4,
+  L4_MEM_CACHE_OP_DMA_COHERENT_FULL = 5,
 };
 
 L4_INLINE void
 l4_cache_clean_data(unsigned long start,
                     unsigned long end) L4_NOTHROW
 {
-  l4_cache_op_arm_call(L4_CACHE_OP_CLEAN_DATA, start, end);
+  l4_cache_op_arm_call(L4_MEM_CACHE_OP_CLEAN_DATA, start, end);
 }
 
 L4_INLINE void
 l4_cache_flush_data(unsigned long start,
                     unsigned long end) L4_NOTHROW
 {
-  l4_cache_op_arm_call(L4_CACHE_OP_FLUSH_DATA, start, end);
+  l4_cache_op_arm_call(L4_MEM_CACHE_OP_FLUSH_DATA, start, end);
 }
 
 L4_INLINE void
 l4_cache_inv_data(unsigned long start,
                   unsigned long end) L4_NOTHROW
 {
-  l4_cache_op_arm_call(L4_CACHE_OP_INV_DATA, start, end);
+  l4_cache_op_arm_call(L4_MEM_CACHE_OP_INV_DATA, start, end);
 }
 
 L4_INLINE void
 l4_cache_coherent(unsigned long start,
                   unsigned long end) L4_NOTHROW
 {
-  l4_cache_op_arm_call(L4_CACHE_OP_COHERENT, start, end);
+  l4_cache_op_arm_call(L4_MEM_CACHE_OP_COHERENT, start, end);
 }
 
 L4_INLINE void
 l4_cache_dma_coherent(unsigned long start,
                       unsigned long end) L4_NOTHROW
 {
-  l4_cache_op_arm_call(L4_CACHE_OP_DMA_COHERENT, start, end);
+  l4_cache_op_arm_call(L4_MEM_CACHE_OP_DMA_COHERENT, start, end);
 }
 
 L4_INLINE void
 l4_cache_dma_coherent_full(void) L4_NOTHROW
 {
-  l4_cache_op_arm_call(L4_CACHE_OP_DMA_COHERENT_FULL, 0, 0);
+  l4_cache_op_arm_call(L4_MEM_CACHE_OP_DMA_COHERENT_FULL, 0, 0);
 }
 
 #endif /* ! __L4SYS__INCLUDE__ARCH_ARM__CACHE_H__ */
diff --git a/l4/pkg/l4sys/include/ARCH-arm/mem_op.h b/l4/pkg/l4sys/include/ARCH-arm/mem_op.h
new file mode 100644 (file)
index 0000000..87dbedd
--- /dev/null
@@ -0,0 +1,123 @@
+/**
+ * \file
+ * \brief  Memory access functions (ARM specific)
+ *
+ * \date   2010-10
+ * \author Adam Lackorzynski <adam@os.inf.tu-dresden.de>
+ *
+ */
+/*
+ * (c) 2010 Author(s)
+ *     economic rights: Technische Universität Dresden (Germany)
+ *
+ * This file is part of TUD:OS and distributed under the terms of the
+ * GNU General Public License 2.
+ * Please see the COPYING-GPL-2 file for details.
+ *
+ * As a special exception, you may use this file as part of a free software
+ * library without restriction.  Specifically, if other files instantiate
+ * templates or use macros or inline functions from this file, or you compile
+ * this file and link it with other files to produce an executable, this
+ * file does not by itself cause the resulting executable to be covered by
+ * the GNU General Public License.  This exception does not however
+ * invalidate any other reasons why the executable file might be covered by
+ * the GNU General Public License.
+ */
+#ifndef __L4SYS__INCLUDE__ARCH_ARM__MEM_OP_H__
+#define __L4SYS__INCLUDE__ARCH_ARM__MEM_OP_H__
+
+#include <l4/sys/compiler.h>
+#include <l4/sys/syscall_defs.h>
+
+/**
+ * \brief Read memory from kernel privilege level.
+ * \param virtaddress  Virtual address in the calling task.
+ * \param width        Width of access in bytes in log2
+ *                       (i.e. allowed values: 0, 1, 2)
+ * \return Read value.
+ *
+ * Upon an given invalid address or invalid width value the function does
+ * nothing.
+ */
+L4_INLINE unsigned long
+l4_mem_read(unsigned long virtaddress, unsigned width);
+
+/**
+ * \brief Write memory from kernel privilege level.
+ * \param virtaddress  Virtual address in the calling task.
+ * \param width        Width of access in bytes in log2
+ *                       (i.e. allowed values: 0, 1, 2)
+ * \param value        Value to write.
+ *
+ * Upon an given invalid address or invalid width value the function does
+ * nothing.
+ */
+L4_INLINE void
+l4_mem_write(unsigned long virtaddress, unsigned width,
+             unsigned long value);
+
+enum L4_mem_ops
+{
+  L4_MEM_OP_MEM_READ  = 0x10,
+  L4_MEM_OP_MEM_WRITE = 0x11,
+};
+
+/**
+ * \internal
+ */
+L4_INLINE unsigned long
+l4_mem_arm_op_call(unsigned long op,
+                   unsigned long va,
+                   unsigned long width,
+                   unsigned long value);
+
+/** Implementations */
+
+L4_INLINE unsigned long
+l4_mem_arm_op_call(unsigned long op,
+                   unsigned long va,
+                   unsigned long width,
+                   unsigned long value)
+{
+  register unsigned long _op    asm ("r0") = op;
+  register unsigned long _va    asm ("r1") = va;
+  register unsigned long _width asm ("r2") = width;
+  register unsigned long _value asm ("r3") = value;
+
+  __asm__ __volatile__
+    ("@ l4_cache_op_arm_call(start) \n\t"
+     "mov     lr, pc               \n\t"
+     "mov     pc, %[sc]                    \n\t"
+     "@ l4_cache_op_arm_call(end)   \n\t"
+       :
+       "=r" (_op),
+       "=r" (_va),
+       "=r" (_width),
+        "=r" (_value)
+       :
+       [sc] "i" (L4_SYSCALL_MEM_OP),
+       "0" (_op),
+       "1" (_va),
+       "2" (_width),
+        "3" (_value)
+       :
+       "cc", "memory", "lr"
+       );
+
+  return _value;
+}
+
+L4_INLINE unsigned long
+l4_mem_read(unsigned long virtaddress, unsigned width)
+{
+  return l4_mem_arm_op_call(L4_MEM_OP_MEM_READ, virtaddress, width, 0);
+}
+
+L4_INLINE void
+l4_mem_write(unsigned long virtaddress, unsigned width,
+             unsigned long value)
+{
+  l4_mem_arm_op_call(L4_MEM_OP_MEM_WRITE, virtaddress, width, value);
+}
+
+#endif /* ! __L4SYS__INCLUDE__ARCH_ARM__MEM_OP_H__ */
index ecec5e8617d6352a45b7c03d32deb77d27986d6b..4827c875f38ac4626fea3a84f4fe67dafecbe36c 100644 (file)
@@ -29,30 +29,33 @@ L4_INLINE l4_msgtag_t
 l4_usem_down_to(l4_cap_idx_t ksem, l4_u_semaphore_t *sem, l4_timeout_s timeout) L4_NOTHROW
 {
   l4_msgtag_t res;
-  unsigned long dummy;
 
   l4_utcb_mr()->mr[0] = (l4_addr_t)sem;
 
-  __asm__ __volatile__(
-       "1: xorl %%eax, %%eax   \n\t"
-       "   decl 0(%%edi)       \n\t"
-       "   jge  2f             \n\t"
-       "   mov $1, %%eax       \n\t"
-       L4_ENTER_KERNEL
-       "   cmp $0x10000, %%eax \n\t"
-       "   je 1b               \n\t"
-       "2:                     \n\t"
+  do
+    {
+      unsigned long dummy1, dummy2, dummy3;
+      __asm__ __volatile__(
+       "   xorl %%eax, %%eax   \n\t"
+       "   decl 0(%%edi)       \n\t"
+       "   jge  1f             \n\t"
+       "   mov $1, %%eax       \n\t"
+       L4_ENTER_KERNEL
+       "1:                     \n\t"
        :
-       "=D" (dummy),
-       "=c" (timeout),
-       "=a" (res.raw)
+       "=D" (dummy1),
+       "=c" (dummy2),
+       "=d" (dummy3),
+       "=a" (res.raw)
        :
-        "D" (sem),
-       "d" (ksem),
-       "c" (timeout)
+       "D" (sem),
+       "d" (ksem),
+       "c" (timeout)
        :
-       "esi", "memory" L4S_PIC_CLOBBER
-       );
+       "esi", "memory" L4S_PIC_CLOBBER
+      );
+    }
+  while (l4_msgtag_label(res) == L4_USEM_RETRY);
 
   return res;
 }
@@ -63,7 +66,7 @@ l4_usem_up(l4_cap_idx_t ksem, l4_u_semaphore_t *sem) L4_NOTHROW
   l4_msgtag_t tag;
   l4_utcb_mr()->mr[0] = (l4_addr_t)sem;
   __asm__ __volatile__(
-        "xorl %%eax, %%eax      \n\t"
+       "xorl %%eax, %%eax      \n\t"
        "incl 0(%%edi)          \n\t"
        "testb $1, 4(%%edi)     \n\t"
        "jz   2f                \n\t"
index 0a98d8b22a7e8523e5be894e7aaa5b2251be014b..de64727ffa4073db164af984befd8f049f1673c4 100644 (file)
@@ -160,6 +160,10 @@ public:
      void ux_host_syscall(int on) throw()
      { l4_thread_control_ux_host_syscall_u(_u, on); }
 
+     /**
+      * \brief Control vCPU mode of the thread.
+      * \param  on vCPU mode on or off.
+      */
      void vcpu_enable(int on) throw()
      { l4_thread_control_vcpu_enable_u(_u, on); }
    };
index c6b213aa82b7b8260ec4106e3f8a7e1c670b2eed..139cd72a74c4e768610e34a3855e67996a492c47 100644 (file)
@@ -474,7 +474,7 @@ l4_thread_register_del_irq_u(l4_cap_idx_t thread, l4_cap_idx_t irq,
  * \ingroup l4_thread_api
  *
  * Add modification rules with l4_thread_modify_sender_add() and commit with
- * l4_thread_modify_sender_commit(). To not touch the UTCB between
+ * l4_thread_modify_sender_commit(). Do not touch the UTCB between
  * l4_thread_modify_sender_start() and l4_thread_modify_sender_commit().
  *
  * \see l4_thread_modify_sender_add
@@ -491,7 +491,7 @@ L4_INLINE l4_msgtag_t
 l4_thread_modify_sender_start_u(l4_utcb_t *u) L4_NOTHROW;
 
 /**
- * \brief Add a modifition pattern to a sender modifiction sequence.
+ * \brief Add a modification pattern to a sender modification sequence.
  * \ingroup l4_thread_api
  *
  * \param tag        Tag received from l4_thread_modify_sender_start() or
@@ -533,7 +533,7 @@ l4_thread_modify_sender_add_u(l4_umword_t match_mask,
                               l4_msgtag_t *tag, l4_utcb_t *u) L4_NOTHROW;
 
 /**
- * \brief Apply (commit) a sender modifiction sequence.
+ * \brief Apply (commit) a sender modification sequence.
  * \ingroup l4_thread_api
  *
  * \see l4_thread_modify_sender_start
index eeb8891fc280d3dee67365729bb575ccda692f91..220842bd23a2d9da74b243686ca7038ee5ad98c4 100644 (file)
@@ -272,7 +272,6 @@ _GLIBCXX_END_NAMESPACE
 #undef min
 #undef max
 
-// End of prewritten config; the discovered settings follow.
 
 
 #define _GLIBCXX_HOSTED 1
@@ -289,3 +288,1106 @@ _GLIBCXX_END_NAMESPACE
 #ifdef __USING_SJLJ_EXCEPTIONS__
 # define _GLIBCXX_SJLJ_EXCEPTIONS 1
 #endif
+
+// End of prewritten config; the discovered settings follow.
+/* Define to 1 if you have the `acosf' function. */
+#define _GLIBCXX_HAVE_ACOSF 1
+
+/* Define to 1 if you have the `acosl' function. */
+#define _GLIBCXX_HAVE_ACOSL 1
+
+/* Define to 1 if you have the `asinf' function. */
+#define _GLIBCXX_HAVE_ASINF 1
+
+/* Define to 1 if you have the `asinl' function. */
+#define _GLIBCXX_HAVE_ASINL 1
+
+/* Define to 1 if you have the `atan2f' function. */
+#define _GLIBCXX_HAVE_ATAN2F 1
+
+/* Define to 1 if you have the `atan2l' function. */
+#define _GLIBCXX_HAVE_ATAN2L 1
+
+/* Define to 1 if you have the `atanf' function. */
+#define _GLIBCXX_HAVE_ATANF 1
+
+/* Define to 1 if you have the `atanl' function. */
+#define _GLIBCXX_HAVE_ATANL 1
+
+/* Define to 1 if the target assembler supports thread-local storage. */
+/* #undef _GLIBCXX_HAVE_CC_TLS */
+
+/* Define to 1 if you have the `ceilf' function. */
+#define _GLIBCXX_HAVE_CEILF 1
+
+/* Define to 1 if you have the `ceill' function. */
+#define _GLIBCXX_HAVE_CEILL 1
+
+/* Define to 1 if you have the <complex.h> header file. */
+#define _GLIBCXX_HAVE_COMPLEX_H 1
+
+/* Define to 1 if you have the `copysign' function. */
+#define _GLIBCXX_HAVE_COPYSIGN 1
+
+/* Define to 1 if you have the `copysignf' function. */
+#define _GLIBCXX_HAVE_COPYSIGNF 1
+
+/* Define to 1 if you have the `copysignl' function. */
+#define _GLIBCXX_HAVE_COPYSIGNL 1
+
+/* Define to 1 if you have the `cosf' function. */
+#define _GLIBCXX_HAVE_COSF 1
+
+/* Define to 1 if you have the `coshf' function. */
+#define _GLIBCXX_HAVE_COSHF 1
+
+/* Define to 1 if you have the `coshl' function. */
+#define _GLIBCXX_HAVE_COSHL 1
+
+/* Define to 1 if you have the `cosl' function. */
+#define _GLIBCXX_HAVE_COSL 1
+
+/* Define to 1 if you have the <dlfcn.h> header file. */
+#define _GLIBCXX_HAVE_DLFCN_H 1
+
+/* Define to 1 if you have the <endian.h> header file. */
+#define _GLIBCXX_HAVE_ENDIAN_H 1
+
+/* Define to 1 if you have the `expf' function. */
+#define _GLIBCXX_HAVE_EXPF 1
+
+/* Define to 1 if you have the `expl' function. */
+#define _GLIBCXX_HAVE_EXPL 1
+
+/* Define to 1 if you have the `fabsf' function. */
+#define _GLIBCXX_HAVE_FABSF 1
+
+/* Define to 1 if you have the `fabsl' function. */
+#define _GLIBCXX_HAVE_FABSL 1
+
+/* Define to 1 if you have the <fenv.h> header file. */
+#define _GLIBCXX_HAVE_FENV_H 1
+
+/* Define to 1 if you have the `finite' function. */
+#define _GLIBCXX_HAVE_FINITE 1
+
+/* Define to 1 if you have the `finitef' function. */
+#define _GLIBCXX_HAVE_FINITEF 1
+
+/* Define to 1 if you have the `finitel' function. */
+#define _GLIBCXX_HAVE_FINITEL 1
+
+/* Define to 1 if you have the <float.h> header file. */
+#define _GLIBCXX_HAVE_FLOAT_H 1
+
+/* Define to 1 if you have the `floorf' function. */
+#define _GLIBCXX_HAVE_FLOORF 1
+
+/* Define to 1 if you have the `floorl' function. */
+#define _GLIBCXX_HAVE_FLOORL 1
+
+/* Define to 1 if you have the `fmodf' function. */
+#define _GLIBCXX_HAVE_FMODF 1
+
+/* Define to 1 if you have the `fmodl' function. */
+#define _GLIBCXX_HAVE_FMODL 1
+
+/* Define to 1 if you have the `fpclass' function. */
+/* #undef _GLIBCXX_HAVE_FPCLASS */
+
+/* Define to 1 if you have the <fp.h> header file. */
+/* #undef _GLIBCXX_HAVE_FP_H */
+
+/* Define to 1 if you have the `frexpf' function. */
+#define _GLIBCXX_HAVE_FREXPF 1
+
+/* Define to 1 if you have the `frexpl' function. */
+#define _GLIBCXX_HAVE_FREXPL 1
+
+/* Define to 1 if you have the <gconf.h> header file. */
+/* #undef _GLIBCXX_HAVE_GCONF_H */
+
+/* Define to 1 if you have the <gconv.h> header file. */
+//#define _GLIBCXX_HAVE_GCONV_H 1
+
+/* Define if _Unwind_GetIPInfo is available. */
+#define _GLIBCXX_HAVE_GETIPINFO 1
+
+/* Define to 1 if you have the `getpagesize' function. */
+#define _GLIBCXX_HAVE_GETPAGESIZE 1
+
+/* Define if gthr-default.h exists (meaning that threading support is
+   enabled). */
+//#define _GLIBCXX_HAVE_GTHR_DEFAULT 1
+
+/* Define to 1 if you have the `hypot' function. */
+#define _GLIBCXX_HAVE_HYPOT 1
+
+/* Define to 1 if you have the `hypotf' function. */
+#define _GLIBCXX_HAVE_HYPOTF 1
+
+/* Define to 1 if you have the `hypotl' function. */
+#define _GLIBCXX_HAVE_HYPOTL 1
+
+/* Define if you have the iconv() function. */
+//#define _GLIBCXX_HAVE_ICONV 1
+
+/* Define to 1 if you have the <ieeefp.h> header file. */
+/* #undef _GLIBCXX_HAVE_IEEEFP_H */
+
+/* Define if int64_t is available in <stdint.h>. */
+#define _GLIBCXX_HAVE_INT64_T 1
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#define _GLIBCXX_HAVE_INTTYPES_H 1
+
+/* Define to 1 if you have the `isinf' function. */
+#define _GLIBCXX_HAVE_ISINF 1
+
+/* Define to 1 if you have the `isinff' function. */
+#define _GLIBCXX_HAVE_ISINFF 1
+
+/* Define to 1 if you have the `isinfl' function. */
+#define _GLIBCXX_HAVE_ISINFL 1
+
+/* Define to 1 if you have the `isnan' function. */
+#define _GLIBCXX_HAVE_ISNAN 1
+
+/* Define to 1 if you have the `isnanf' function. */
+#define _GLIBCXX_HAVE_ISNANF 1
+
+/* Define to 1 if you have the `isnanl' function. */
+#define _GLIBCXX_HAVE_ISNANL 1
+
+/* Defined if iswblank exists. */
+#define _GLIBCXX_HAVE_ISWBLANK 1
+
+/* Define if LC_MESSAGES is available in <locale.h>. */
+#define _GLIBCXX_HAVE_LC_MESSAGES 1
+
+/* Define to 1 if you have the `ldexpf' function. */
+#define _GLIBCXX_HAVE_LDEXPF 1
+
+/* Define to 1 if you have the `ldexpl' function. */
+#define _GLIBCXX_HAVE_LDEXPL 1
+
+/* Define to 1 if you have the <libintl.h> header file. */
+//#define _GLIBCXX_HAVE_LIBINTL_H 1
+
+/* Define to 1 if you have the `m' library (-lm). */
+#define _GLIBCXX_HAVE_LIBM 1
+
+/* Only used in build directory testsuite_hooks.h. */
+//#define _GLIBCXX_HAVE_LIMIT_AS 1
+
+/* Only used in build directory testsuite_hooks.h. */
+//#define _GLIBCXX_HAVE_LIMIT_DATA 1
+
+/* Only used in build directory testsuite_hooks.h. */
+//#define _GLIBCXX_HAVE_LIMIT_FSIZE 1
+
+/* Only used in build directory testsuite_hooks.h. */
+//#define _GLIBCXX_HAVE_LIMIT_RSS 1
+
+/* Only used in build directory testsuite_hooks.h. */
+//#define _GLIBCXX_HAVE_LIMIT_VMEM 0
+
+/* Define if futex syscall is available. */
+//#define _GLIBCXX_HAVE_LINUX_FUTEX 1
+
+/* Define to 1 if you have the <locale.h> header file. */
+#define _GLIBCXX_HAVE_LOCALE_H 1
+
+/* Define to 1 if you have the `log10f' function. */
+#define _GLIBCXX_HAVE_LOG10F 1
+
+/* Define to 1 if you have the `log10l' function. */
+#define _GLIBCXX_HAVE_LOG10L 1
+
+/* Define to 1 if you have the `logf' function. */
+#define _GLIBCXX_HAVE_LOGF 1
+
+/* Define to 1 if you have the `logl' function. */
+#define _GLIBCXX_HAVE_LOGL 1
+
+/* Define to 1 if you have the <machine/endian.h> header file. */
+/* #undef _GLIBCXX_HAVE_MACHINE_ENDIAN_H */
+
+/* Define to 1 if you have the <machine/param.h> header file. */
+/* #undef _GLIBCXX_HAVE_MACHINE_PARAM_H */
+
+/* Define if mbstate_t exists in wchar.h. */
+#define _GLIBCXX_HAVE_MBSTATE_T 1
+
+/* Define to 1 if you have the <memory.h> header file. */
+#define _GLIBCXX_HAVE_MEMORY_H 1
+
+/* Define to 1 if you have a working `mmap' system call. */
+#define _GLIBCXX_HAVE_MMAP 1
+
+/* Define to 1 if you have the `modf' function. */
+#define _GLIBCXX_HAVE_MODF 1
+
+/* Define to 1 if you have the `modff' function. */
+#define _GLIBCXX_HAVE_MODFF 1
+
+/* Define to 1 if you have the `modfl' function. */
+#define _GLIBCXX_HAVE_MODFL 1
+
+/* Define to 1 if you have the <nan.h> header file. */
+/* #undef _GLIBCXX_HAVE_NAN_H */
+
+/* Define if poll is available in <poll.h>. */
+//#define _GLIBCXX_HAVE_POLL 1
+
+/* Define to 1 if you have the `powf' function. */
+#define _GLIBCXX_HAVE_POWF 1
+
+/* Define to 1 if you have the `powl' function. */
+#define _GLIBCXX_HAVE_POWL 1
+
+/* Define to 1 if you have the `qfpclass' function. */
+/* #undef _GLIBCXX_HAVE_QFPCLASS */
+
+/* Define to 1 if you have the `setenv' function. */
+#define _GLIBCXX_HAVE_SETENV 1
+
+/* Define if sigsetjmp is available. */
+#define _GLIBCXX_HAVE_SIGSETJMP 1
+
+/* Define to 1 if you have the `sincos' function. */
+#define _GLIBCXX_HAVE_SINCOS 1
+
+/* Define to 1 if you have the `sincosf' function. */
+#define _GLIBCXX_HAVE_SINCOSF 1
+
+/* Define to 1 if you have the `sincosl' function. */
+#define _GLIBCXX_HAVE_SINCOSL 1
+
+/* Define to 1 if you have the `sinf' function. */
+#define _GLIBCXX_HAVE_SINF 1
+
+/* Define to 1 if you have the `sinhf' function. */
+#define _GLIBCXX_HAVE_SINHF 1
+
+/* Define to 1 if you have the `sinhl' function. */
+#define _GLIBCXX_HAVE_SINHL 1
+
+/* Define to 1 if you have the `sinl' function. */
+#define _GLIBCXX_HAVE_SINL 1
+
+/* Define to 1 if you have the `sqrtf' function. */
+#define _GLIBCXX_HAVE_SQRTF 1
+
+/* Define to 1 if you have the `sqrtl' function. */
+#define _GLIBCXX_HAVE_SQRTL 1
+
+/* Define to 1 if you have the <stdbool.h> header file. */
+#define _GLIBCXX_HAVE_STDBOOL_H 1
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#define _GLIBCXX_HAVE_STDINT_H 1
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#define _GLIBCXX_HAVE_STDLIB_H 1
+
+/* Define if strerror_l is available in <string.h>. */
+#define _GLIBCXX_HAVE_STRERROR_L 1
+
+/* Define if strerror_r is available in <string.h>. */
+#define _GLIBCXX_HAVE_STRERROR_R 1
+
+/* Define to 1 if you have the <strings.h> header file. */
+#define _GLIBCXX_HAVE_STRINGS_H 1
+
+/* Define to 1 if you have the <string.h> header file. */
+#define _GLIBCXX_HAVE_STRING_H 1
+
+/* Define to 1 if you have the `strtof' function. */
+#define _GLIBCXX_HAVE_STRTOF 1
+
+/* Define to 1 if you have the `strtold' function. */
+#define _GLIBCXX_HAVE_STRTOLD 1
+
+/* Define if strxfrm_l is available in <string.h>. */
+#define _GLIBCXX_HAVE_STRXFRM_L 1
+
+/* Define to 1 if you have the <sys/filio.h> header file. */
+/* #undef _GLIBCXX_HAVE_SYS_FILIO_H */
+
+/* Define to 1 if you have the <sys/ioctl.h> header file. */
+//#define _GLIBCXX_HAVE_SYS_IOCTL_H 1
+
+/* Define to 1 if you have the <sys/ipc.h> header file. */
+//#define _GLIBCXX_HAVE_SYS_IPC_H 1
+
+/* Define to 1 if you have the <sys/isa_defs.h> header file. */
+/* #undef _GLIBCXX_HAVE_SYS_ISA_DEFS_H */
+
+/* Define to 1 if you have the <sys/machine.h> header file. */
+/* #undef _GLIBCXX_HAVE_SYS_MACHINE_H */
+
+/* Define to 1 if you have the <sys/param.h> header file. */
+/* #undef _GLIBCXX_HAVE_SYS_PARAM_H */
+
+/* Define to 1 if you have the <sys/resource.h> header file. */
+//#define _GLIBCXX_HAVE_SYS_RESOURCE_H 1
+
+/* Define to 1 if you have the <sys/sem.h> header file. */
+//#define _GLIBCXX_HAVE_SYS_SEM_H 1
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#define _GLIBCXX_HAVE_SYS_STAT_H 1
+
+/* Define to 1 if you have the <sys/time.h> header file. */
+#define _GLIBCXX_HAVE_SYS_TIME_H 1
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#define _GLIBCXX_HAVE_SYS_TYPES_H 1
+
+/* Define to 1 if you have the <sys/uio.h> header file. */
+//#define _GLIBCXX_HAVE_SYS_UIO_H 1
+
+/* Define if S_IFREG is available in <sys/stat.h>. */
+/* #undef _GLIBCXX_HAVE_S_IFREG */
+
+/* Define if S_IFREG is available in <sys/stat.h>. */
+#define _GLIBCXX_HAVE_S_ISREG 1
+
+/* Define to 1 if you have the `tanf' function. */
+#define _GLIBCXX_HAVE_TANF 1
+
+/* Define to 1 if you have the `tanhf' function. */
+#define _GLIBCXX_HAVE_TANHF 1
+
+/* Define to 1 if you have the `tanhl' function. */
+#define _GLIBCXX_HAVE_TANHL 1
+
+/* Define to 1 if you have the `tanl' function. */
+#define _GLIBCXX_HAVE_TANL 1
+
+/* Define to 1 if you have the <tgmath.h> header file. */
+#define _GLIBCXX_HAVE_TGMATH_H 1
+
+/* Define to 1 if the target supports thread-local storage. */
+//#define _GLIBCXX_HAVE_TLS 1
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#define _GLIBCXX_HAVE_UNISTD_H 1
+
+/* Defined if vfwscanf exists. */
+#define _GLIBCXX_HAVE_VFWSCANF 1
+
+/* Defined if vswscanf exists. */
+#define _GLIBCXX_HAVE_VSWSCANF 1
+
+/* Defined if vwscanf exists. */
+#define _GLIBCXX_HAVE_VWSCANF 1
+
+/* Define to 1 if you have the <wchar.h> header file. */
+#define _GLIBCXX_HAVE_WCHAR_H 1
+
+/* Defined if wcstof exists. */
+//#define _GLIBCXX_HAVE_WCSTOF 1
+
+/* Define to 1 if you have the <wctype.h> header file. */
+//#define _GLIBCXX_HAVE_WCTYPE_H 1
+
+/* Define if writev is available in <sys/uio.h>. */
+//#define _GLIBCXX_HAVE_WRITEV 1
+
+/* Define to 1 if you have the `_acosf' function. */
+/* #undef _GLIBCXX_HAVE__ACOSF */
+
+/* Define to 1 if you have the `_acosl' function. */
+/* #undef _GLIBCXX_HAVE__ACOSL */
+
+/* Define to 1 if you have the `_asinf' function. */
+/* #undef _GLIBCXX_HAVE__ASINF */
+
+/* Define to 1 if you have the `_asinl' function. */
+/* #undef _GLIBCXX_HAVE__ASINL */
+
+/* Define to 1 if you have the `_atan2f' function. */
+/* #undef _GLIBCXX_HAVE__ATAN2F */
+
+/* Define to 1 if you have the `_atan2l' function. */
+/* #undef _GLIBCXX_HAVE__ATAN2L */
+
+/* Define to 1 if you have the `_atanf' function. */
+/* #undef _GLIBCXX_HAVE__ATANF */
+
+/* Define to 1 if you have the `_atanl' function. */
+/* #undef _GLIBCXX_HAVE__ATANL */
+
+/* Define to 1 if you have the `_ceilf' function. */
+/* #undef _GLIBCXX_HAVE__CEILF */
+
+/* Define to 1 if you have the `_ceill' function. */
+/* #undef _GLIBCXX_HAVE__CEILL */
+
+/* Define to 1 if you have the `_copysign' function. */
+/* #undef _GLIBCXX_HAVE__COPYSIGN */
+
+/* Define to 1 if you have the `_copysignl' function. */
+/* #undef _GLIBCXX_HAVE__COPYSIGNL */
+
+/* Define to 1 if you have the `_cosf' function. */
+/* #undef _GLIBCXX_HAVE__COSF */
+
+/* Define to 1 if you have the `_coshf' function. */
+/* #undef _GLIBCXX_HAVE__COSHF */
+
+/* Define to 1 if you have the `_coshl' function. */
+/* #undef _GLIBCXX_HAVE__COSHL */
+
+/* Define to 1 if you have the `_cosl' function. */
+/* #undef _GLIBCXX_HAVE__COSL */
+
+/* Define to 1 if you have the `_expf' function. */
+/* #undef _GLIBCXX_HAVE__EXPF */
+
+/* Define to 1 if you have the `_expl' function. */
+/* #undef _GLIBCXX_HAVE__EXPL */
+
+/* Define to 1 if you have the `_fabsf' function. */
+/* #undef _GLIBCXX_HAVE__FABSF */
+
+/* Define to 1 if you have the `_fabsl' function. */
+/* #undef _GLIBCXX_HAVE__FABSL */
+
+/* Define to 1 if you have the `_finite' function. */
+/* #undef _GLIBCXX_HAVE__FINITE */
+
+/* Define to 1 if you have the `_finitef' function. */
+/* #undef _GLIBCXX_HAVE__FINITEF */
+
+/* Define to 1 if you have the `_finitel' function. */
+/* #undef _GLIBCXX_HAVE__FINITEL */
+
+/* Define to 1 if you have the `_floorf' function. */
+/* #undef _GLIBCXX_HAVE__FLOORF */
+
+/* Define to 1 if you have the `_floorl' function. */
+/* #undef _GLIBCXX_HAVE__FLOORL */
+
+/* Define to 1 if you have the `_fmodf' function. */
+/* #undef _GLIBCXX_HAVE__FMODF */
+
+/* Define to 1 if you have the `_fmodl' function. */
+/* #undef _GLIBCXX_HAVE__FMODL */
+
+/* Define to 1 if you have the `_fpclass' function. */
+/* #undef _GLIBCXX_HAVE__FPCLASS */
+
+/* Define to 1 if you have the `_frexpf' function. */
+/* #undef _GLIBCXX_HAVE__FREXPF */
+
+/* Define to 1 if you have the `_frexpl' function. */
+/* #undef _GLIBCXX_HAVE__FREXPL */
+
+/* Define to 1 if you have the `_hypot' function. */
+/* #undef _GLIBCXX_HAVE__HYPOT */
+
+/* Define to 1 if you have the `_hypotf' function. */
+/* #undef _GLIBCXX_HAVE__HYPOTF */
+
+/* Define to 1 if you have the `_hypotl' function. */
+/* #undef _GLIBCXX_HAVE__HYPOTL */
+
+/* Define to 1 if you have the `_isinf' function. */
+/* #undef _GLIBCXX_HAVE__ISINF */
+
+/* Define to 1 if you have the `_isinff' function. */
+/* #undef _GLIBCXX_HAVE__ISINFF */
+
+/* Define to 1 if you have the `_isinfl' function. */
+/* #undef _GLIBCXX_HAVE__ISINFL */
+
+/* Define to 1 if you have the `_isnan' function. */
+/* #undef _GLIBCXX_HAVE__ISNAN */
+
+/* Define to 1 if you have the `_isnanf' function. */
+/* #undef _GLIBCXX_HAVE__ISNANF */
+
+/* Define to 1 if you have the `_isnanl' function. */
+/* #undef _GLIBCXX_HAVE__ISNANL */
+
+/* Define to 1 if you have the `_ldexpf' function. */
+/* #undef _GLIBCXX_HAVE__LDEXPF */
+
+/* Define to 1 if you have the `_ldexpl' function. */
+/* #undef _GLIBCXX_HAVE__LDEXPL */
+
+/* Define to 1 if you have the `_log10f' function. */
+/* #undef _GLIBCXX_HAVE__LOG10F */
+
+/* Define to 1 if you have the `_log10l' function. */
+/* #undef _GLIBCXX_HAVE__LOG10L */
+
+/* Define to 1 if you have the `_logf' function. */
+/* #undef _GLIBCXX_HAVE__LOGF */
+
+/* Define to 1 if you have the `_logl' function. */
+/* #undef _GLIBCXX_HAVE__LOGL */
+
+/* Define to 1 if you have the `_modf' function. */
+/* #undef _GLIBCXX_HAVE__MODF */
+
+/* Define to 1 if you have the `_modff' function. */
+/* #undef _GLIBCXX_HAVE__MODFF */
+
+/* Define to 1 if you have the `_modfl' function. */
+/* #undef _GLIBCXX_HAVE__MODFL */
+
+/* Define to 1 if you have the `_powf' function. */
+/* #undef _GLIBCXX_HAVE__POWF */
+
+/* Define to 1 if you have the `_powl' function. */
+/* #undef _GLIBCXX_HAVE__POWL */
+
+/* Define to 1 if you have the `_qfpclass' function. */
+/* #undef _GLIBCXX_HAVE__QFPCLASS */
+
+/* Define to 1 if you have the `_sincos' function. */
+/* #undef _GLIBCXX_HAVE__SINCOS */
+
+/* Define to 1 if you have the `_sincosf' function. */
+/* #undef _GLIBCXX_HAVE__SINCOSF */
+
+/* Define to 1 if you have the `_sincosl' function. */
+/* #undef _GLIBCXX_HAVE__SINCOSL */
+
+/* Define to 1 if you have the `_sinf' function. */
+/* #undef _GLIBCXX_HAVE__SINF */
+
+/* Define to 1 if you have the `_sinhf' function. */
+/* #undef _GLIBCXX_HAVE__SINHF */
+
+/* Define to 1 if you have the `_sinhl' function. */
+/* #undef _GLIBCXX_HAVE__SINHL */
+
+/* Define to 1 if you have the `_sinl' function. */
+/* #undef _GLIBCXX_HAVE__SINL */
+
+/* Define to 1 if you have the `_sqrtf' function. */
+/* #undef _GLIBCXX_HAVE__SQRTF */
+
+/* Define to 1 if you have the `_sqrtl' function. */
+/* #undef _GLIBCXX_HAVE__SQRTL */
+
+/* Define to 1 if you have the `_tanf' function. */
+/* #undef _GLIBCXX_HAVE__TANF */
+
+/* Define to 1 if you have the `_tanhf' function. */
+/* #undef _GLIBCXX_HAVE__TANHF */
+
+/* Define to 1 if you have the `_tanhl' function. */
+/* #undef _GLIBCXX_HAVE__TANHL */
+
+/* Define to 1 if you have the `_tanl' function. */
+/* #undef _GLIBCXX_HAVE__TANL */
+
+/* Define if the compiler/host combination has __builtin_abs. */
+#define _GLIBCXX_HAVE___BUILTIN_ABS 1
+
+/* Define if the compiler/host combination has __builtin_cos. */
+#define _GLIBCXX_HAVE___BUILTIN_COS 1
+
+/* Define if the compiler/host combination has __builtin_cosf. */
+#define _GLIBCXX_HAVE___BUILTIN_COSF 1
+
+/* Define if the compiler/host combination has __builtin_cosl. */
+#define _GLIBCXX_HAVE___BUILTIN_COSL 1
+
+/* Define if the compiler/host combination has __builtin_fabs. */
+#define _GLIBCXX_HAVE___BUILTIN_FABS 1
+
+/* Define if the compiler/host combination has __builtin_fabsf. */
+#define _GLIBCXX_HAVE___BUILTIN_FABSF 1
+
+/* Define if the compiler/host combination has __builtin_fabsl. */
+#define _GLIBCXX_HAVE___BUILTIN_FABSL 1
+
+/* Define if the compiler/host combination has __builtin_labs. */
+#define _GLIBCXX_HAVE___BUILTIN_LABS 1
+
+/* Define if the compiler/host combination has __builtin_sin. */
+#define _GLIBCXX_HAVE___BUILTIN_SIN 1
+
+/* Define if the compiler/host combination has __builtin_sinf. */
+#define _GLIBCXX_HAVE___BUILTIN_SINF 1
+
+/* Define if the compiler/host combination has __builtin_sinl. */
+#define _GLIBCXX_HAVE___BUILTIN_SINL 1
+
+/* Define if the compiler/host combination has __builtin_sqrt. */
+#define _GLIBCXX_HAVE___BUILTIN_SQRT 1
+
+/* Define if the compiler/host combination has __builtin_sqrtf. */
+#define _GLIBCXX_HAVE___BUILTIN_SQRTF 1
+
+/* Define if the compiler/host combination has __builtin_sqrtl. */
+#define _GLIBCXX_HAVE___BUILTIN_SQRTL 1
+
+/* Define to 1 if you have the `__signbit' function. */
+#define _GLIBCXX_HAVE___SIGNBIT 1
+
+/* Define to 1 if you have the `__signbitf' function. */
+#define _GLIBCXX_HAVE___SIGNBITF 1
+
+/* Define to 1 if you have the `__signbitl' function. */
+#define _GLIBCXX_HAVE___SIGNBITL 1
+
+/* Define as const if the declaration of iconv() needs const. */
+#define _GLIBCXX_ICONV_CONST 
+
+/* Define to the sub-directory in which libtool stores uninstalled libraries.
+   */
+#define LT_OBJDIR ".libs/"
+
+/* Name of package */
+/* #undef _GLIBCXX_PACKAGE */
+
+/* Define to the address where bug reports for this package should be sent. */
+#define _GLIBCXX_PACKAGE_BUGREPORT ""
+
+/* Define to the full name of this package. */
+#define _GLIBCXX_PACKAGE_NAME "package-unused"
+
+/* Define to the full name and version of this package. */
+#define _GLIBCXX_PACKAGE_STRING "package-unused version-unused"
+
+/* Define to the one symbol short name of this package. */
+#define _GLIBCXX_PACKAGE_TARNAME "libstdc++"
+
+/* Define to the version of this package. */
+#define _GLIBCXX_PACKAGE__GLIBCXX_VERSION "version-unused"
+
+/* Define to 1 if you have the ANSI C header files. */
+#define STDC_HEADERS 1
+
+/* Version number of package */
+/* #undef _GLIBCXX_VERSION */
+
+/* Define if builtin atomic operations are supported on this host. */
+//#define _GLIBCXX_ATOMIC_BUILTINS 1
+
+/* Define to use concept checking code from the boost libraries. */
+/* #undef _GLIBCXX_CONCEPT_CHECKS */
+
+/* Define if a fully dynamic basic_string is wanted. */
+/* #undef _GLIBCXX_FULLY_DYNAMIC_STRING */
+
+/* Define to 1 if a full hosted library is built, or 0 if freestanding. */
+#define _GLIBCXX_HOSTED 1
+
+/* Define if compatibility should be provided for -mlong-double-64. */
+
+/* Define if ptrdiff_t is int. */
+#define _GLIBCXX_PTRDIFF_T_IS_INT 1
+
+/* Define if using setrlimit to set resource limits during "make check" */
+//#define _GLIBCXX_RES_LIMITS 1
+
+/* Define if size_t is unsigned int. */
+#define _GLIBCXX_SIZE_T_IS_UINT 1
+
+/* Define if the compiler is configured for setjmp/longjmp exceptions. */
+/* #undef _GLIBCXX_SJLJ_EXCEPTIONS */
+
+/* Define to use symbol versioning in the shared library. */
+#define _GLIBCXX_SYMVER 1
+
+/* Define to use darwin versioning in the shared library. */
+/* #undef _GLIBCXX_SYMVER_DARWIN */
+
+/* Define to use GNU versioning in the shared library. */
+#define _GLIBCXX_SYMVER_GNU 1
+
+/* Define to use GNU namespace versioning in the shared library. */
+/* #undef _GLIBCXX_SYMVER_GNU_NAMESPACE */
+
+/* Define if C99 functions or macros from <wchar.h>, <math.h>, <complex.h>,
+   <stdio.h>, and <stdlib.h> can be used or exposed. */
+#define _GLIBCXX_USE_C99 1
+
+/* Define if C99 functions in <complex.h> should be used in <complex>. Using
+   compiler builtins for these functions requires corresponding C99 library
+   functions to be present. */
+#define _GLIBCXX_USE_C99_COMPLEX 1
+
+/* Define if C99 functions in <complex.h> should be used in <tr1/complex>.
+   Using compiler builtins for these functions requires corresponding C99
+   library functions to be present. */
+#define _GLIBCXX_USE_C99_COMPLEX_TR1 1
+
+/* Define if C99 functions in <ctype.h> should be imported in <tr1/cctype> in
+   namespace std::tr1. */
+#define _GLIBCXX_USE_C99_CTYPE_TR1 1
+
+/* Define if C99 functions in <fenv.h> should be imported in <tr1/cfenv> in
+   namespace std::tr1. */
+#define _GLIBCXX_USE_C99_FENV_TR1 1
+
+/* Define if C99 functions in <inttypes.h> should be imported in
+   <tr1/cinttypes> in namespace std::tr1. */
+#define _GLIBCXX_USE_C99_INTTYPES_TR1 1
+
+/* Define if C99 functions or macros in <math.h> should be imported in <cmath>
+   in namespace std. */
+#define _GLIBCXX_USE_C99_MATH 1
+
+/* Define if C99 functions or macros in <math.h> should be imported in
+   <tr1/cmath> in namespace std::tr1. */
+#define _GLIBCXX_USE_C99_MATH_TR1 1
+
+/* Define if C99 types in <stdint.h> should be imported in <tr1/cstdint> in
+   namespace std::tr1. */
+#define _GLIBCXX_USE_C99_STDINT_TR1 1
+
+/* Define if LFS support is available. */
+#define _GLIBCXX_USE_LFS 1
+
+/* Define if code specialized for long long should be used. */
+#define _GLIBCXX_USE_LONG_LONG 1
+
+/* Define if NLS translations are to be used. */
+//#define _GLIBCXX_USE_NLS 1
+
+/* Define if dev/random and dev/urandom are available for the random_device of
+   TR1 (Chapter 5.1). */
+#define _GLIBCXX_USE_RANDOM_TR1 1
+
+/* Define if code specialized for wchar_t should be used. */
+//#define _GLIBCXX_USE_WCHAR_T 1
+
+#if defined (_GLIBCXX_HAVE__ACOSF) && ! defined (_GLIBCXX_HAVE_ACOSF)
+# define _GLIBCXX_HAVE_ACOSF 1
+# define acosf _acosf
+#endif
+
+#if defined (_GLIBCXX_HAVE__ACOSL) && ! defined (_GLIBCXX_HAVE_ACOSL)
+# define _GLIBCXX_HAVE_ACOSL 1
+# define acosl _acosl
+#endif
+
+#if defined (_GLIBCXX_HAVE__ASINF) && ! defined (_GLIBCXX_HAVE_ASINF)
+# define _GLIBCXX_HAVE_ASINF 1
+# define asinf _asinf
+#endif
+
+#if defined (_GLIBCXX_HAVE__ASINL) && ! defined (_GLIBCXX_HAVE_ASINL)
+# define _GLIBCXX_HAVE_ASINL 1
+# define asinl _asinl
+#endif
+
+#if defined (_GLIBCXX_HAVE__ATAN2F) && ! defined (_GLIBCXX_HAVE_ATAN2F)
+# define _GLIBCXX_HAVE_ATAN2F 1
+# define atan2f _atan2f
+#endif
+
+#if defined (_GLIBCXX_HAVE__ATAN2L) && ! defined (_GLIBCXX_HAVE_ATAN2L)
+# define _GLIBCXX_HAVE_ATAN2L 1
+# define atan2l _atan2l
+#endif
+
+#if defined (_GLIBCXX_HAVE__ATANF) && ! defined (_GLIBCXX_HAVE_ATANF)
+# define _GLIBCXX_HAVE_ATANF 1
+# define atanf _atanf
+#endif
+
+#if defined (_GLIBCXX_HAVE__ATANL) && ! defined (_GLIBCXX_HAVE_ATANL)
+# define _GLIBCXX_HAVE_ATANL 1
+# define atanl _atanl
+#endif
+
+#if defined (_GLIBCXX_HAVE__CEILF) && ! defined (_GLIBCXX_HAVE_CEILF)
+# define _GLIBCXX_HAVE_CEILF 1
+# define ceilf _ceilf
+#endif
+
+#if defined (_GLIBCXX_HAVE__CEILL) && ! defined (_GLIBCXX_HAVE_CEILL)
+# define _GLIBCXX_HAVE_CEILL 1
+# define ceill _ceill
+#endif
+
+#if defined (_GLIBCXX_HAVE__COPYSIGN) && ! defined (_GLIBCXX_HAVE_COPYSIGN)
+# define _GLIBCXX_HAVE_COPYSIGN 1
+# define copysign _copysign
+#endif
+
+#if defined (_GLIBCXX_HAVE__COPYSIGNL) && ! defined (_GLIBCXX_HAVE_COPYSIGNL)
+# define _GLIBCXX_HAVE_COPYSIGNL 1
+# define copysignl _copysignl
+#endif
+
+#if defined (_GLIBCXX_HAVE__COSF) && ! defined (_GLIBCXX_HAVE_COSF)
+# define _GLIBCXX_HAVE_COSF 1
+# define cosf _cosf
+#endif
+
+#if defined (_GLIBCXX_HAVE__COSHF) && ! defined (_GLIBCXX_HAVE_COSHF)
+# define _GLIBCXX_HAVE_COSHF 1
+# define coshf _coshf
+#endif
+
+#if defined (_GLIBCXX_HAVE__COSHL) && ! defined (_GLIBCXX_HAVE_COSHL)
+# define _GLIBCXX_HAVE_COSHL 1
+# define coshl _coshl
+#endif
+
+#if defined (_GLIBCXX_HAVE__COSL) && ! defined (_GLIBCXX_HAVE_COSL)
+# define _GLIBCXX_HAVE_COSL 1
+# define cosl _cosl
+#endif
+
+#if defined (_GLIBCXX_HAVE__EXPF) && ! defined (_GLIBCXX_HAVE_EXPF)
+# define _GLIBCXX_HAVE_EXPF 1
+# define expf _expf
+#endif
+
+#if defined (_GLIBCXX_HAVE__EXPL) && ! defined (_GLIBCXX_HAVE_EXPL)
+# define _GLIBCXX_HAVE_EXPL 1
+# define expl _expl
+#endif
+
+#if defined (_GLIBCXX_HAVE__FABSF) && ! defined (_GLIBCXX_HAVE_FABSF)
+# define _GLIBCXX_HAVE_FABSF 1
+# define fabsf _fabsf
+#endif
+
+#if defined (_GLIBCXX_HAVE__FABSL) && ! defined (_GLIBCXX_HAVE_FABSL)
+# define _GLIBCXX_HAVE_FABSL 1
+# define fabsl _fabsl
+#endif
+
+#if defined (_GLIBCXX_HAVE__FINITE) && ! defined (_GLIBCXX_HAVE_FINITE)
+# define _GLIBCXX_HAVE_FINITE 1
+# define finite _finite
+#endif
+
+#if defined (_GLIBCXX_HAVE__FINITEF) && ! defined (_GLIBCXX_HAVE_FINITEF)
+# define _GLIBCXX_HAVE_FINITEF 1
+# define finitef _finitef
+#endif
+
+#if defined (_GLIBCXX_HAVE__FINITEL) && ! defined (_GLIBCXX_HAVE_FINITEL)
+# define _GLIBCXX_HAVE_FINITEL 1
+# define finitel _finitel
+#endif
+
+#if defined (_GLIBCXX_HAVE__FLOORF) && ! defined (_GLIBCXX_HAVE_FLOORF)
+# define _GLIBCXX_HAVE_FLOORF 1
+# define floorf _floorf
+#endif
+
+#if defined (_GLIBCXX_HAVE__FLOORL) && ! defined (_GLIBCXX_HAVE_FLOORL)
+# define _GLIBCXX_HAVE_FLOORL 1
+# define floorl _floorl
+#endif
+
+#if defined (_GLIBCXX_HAVE__FMODF) && ! defined (_GLIBCXX_HAVE_FMODF)
+# define _GLIBCXX_HAVE_FMODF 1
+# define fmodf _fmodf
+#endif
+
+#if defined (_GLIBCXX_HAVE__FMODL) && ! defined (_GLIBCXX_HAVE_FMODL)
+# define _GLIBCXX_HAVE_FMODL 1
+# define fmodl _fmodl
+#endif
+
+#if defined (_GLIBCXX_HAVE__FPCLASS) && ! defined (_GLIBCXX_HAVE_FPCLASS)
+# define _GLIBCXX_HAVE_FPCLASS 1
+# define fpclass _fpclass
+#endif
+
+#if defined (_GLIBCXX_HAVE__FREXPF) && ! defined (_GLIBCXX_HAVE_FREXPF)
+# define _GLIBCXX_HAVE_FREXPF 1
+# define frexpf _frexpf
+#endif
+
+#if defined (_GLIBCXX_HAVE__FREXPL) && ! defined (_GLIBCXX_HAVE_FREXPL)
+# define _GLIBCXX_HAVE_FREXPL 1
+# define frexpl _frexpl
+#endif
+
+#if defined (_GLIBCXX_HAVE__HYPOT) && ! defined (_GLIBCXX_HAVE_HYPOT)
+# define _GLIBCXX_HAVE_HYPOT 1
+# define hypot _hypot
+#endif
+
+#if defined (_GLIBCXX_HAVE__HYPOTF) && ! defined (_GLIBCXX_HAVE_HYPOTF)
+# define _GLIBCXX_HAVE_HYPOTF 1
+# define hypotf _hypotf
+#endif
+
+#if defined (_GLIBCXX_HAVE__HYPOTL) && ! defined (_GLIBCXX_HAVE_HYPOTL)
+# define _GLIBCXX_HAVE_HYPOTL 1
+# define hypotl _hypotl
+#endif
+
+#if defined (_GLIBCXX_HAVE__ISINF) && ! defined (_GLIBCXX_HAVE_ISINF)
+# define _GLIBCXX_HAVE_ISINF 1
+# define isinf _isinf
+#endif
+
+#if defined (_GLIBCXX_HAVE__ISINFF) && ! defined (_GLIBCXX_HAVE_ISINFF)
+# define _GLIBCXX_HAVE_ISINFF 1
+# define isinff _isinff
+#endif
+
+#if defined (_GLIBCXX_HAVE__ISINFL) && ! defined (_GLIBCXX_HAVE_ISINFL)
+# define _GLIBCXX_HAVE_ISINFL 1
+# define isinfl _isinfl
+#endif
+
+#if defined (_GLIBCXX_HAVE__ISNAN) && ! defined (_GLIBCXX_HAVE_ISNAN)
+# define _GLIBCXX_HAVE_ISNAN 1
+# define isnan _isnan
+#endif
+
+#if defined (_GLIBCXX_HAVE__ISNANF) && ! defined (_GLIBCXX_HAVE_ISNANF)
+# define _GLIBCXX_HAVE_ISNANF 1
+# define isnanf _isnanf
+#endif
+
+#if defined (_GLIBCXX_HAVE__ISNANL) && ! defined (_GLIBCXX_HAVE_ISNANL)
+# define _GLIBCXX_HAVE_ISNANL 1
+# define isnanl _isnanl
+#endif
+
+#if defined (_GLIBCXX_HAVE__LDEXPF) && ! defined (_GLIBCXX_HAVE_LDEXPF)
+# define _GLIBCXX_HAVE_LDEXPF 1
+# define ldexpf _ldexpf
+#endif
+
+#if defined (_GLIBCXX_HAVE__LDEXPL) && ! defined (_GLIBCXX_HAVE_LDEXPL)
+# define _GLIBCXX_HAVE_LDEXPL 1
+# define ldexpl _ldexpl
+#endif
+
+#if defined (_GLIBCXX_HAVE__LOG10F) && ! defined (_GLIBCXX_HAVE_LOG10F)
+# define _GLIBCXX_HAVE_LOG10F 1
+# define log10f _log10f
+#endif
+
+#if defined (_GLIBCXX_HAVE__LOG10L) && ! defined (_GLIBCXX_HAVE_LOG10L)
+# define _GLIBCXX_HAVE_LOG10L 1
+# define log10l _log10l
+#endif
+
+#if defined (_GLIBCXX_HAVE__LOGF) && ! defined (_GLIBCXX_HAVE_LOGF)
+# define _GLIBCXX_HAVE_LOGF 1
+# define logf _logf
+#endif
+
+#if defined (_GLIBCXX_HAVE__LOGL) && ! defined (_GLIBCXX_HAVE_LOGL)
+# define _GLIBCXX_HAVE_LOGL 1
+# define logl _logl
+#endif
+
+#if defined (_GLIBCXX_HAVE__MODF) && ! defined (_GLIBCXX_HAVE_MODF)
+# define _GLIBCXX_HAVE_MODF 1
+# define modf _modf
+#endif
+
+#if defined (_GLIBCXX_HAVE__MODFF) && ! defined (_GLIBCXX_HAVE_MODFF)
+# define _GLIBCXX_HAVE_MODFF 1
+# define modff _modff
+#endif
+
+#if defined (_GLIBCXX_HAVE__MODFL) && ! defined (_GLIBCXX_HAVE_MODFL)
+# define _GLIBCXX_HAVE_MODFL 1
+# define modfl _modfl
+#endif
+
+#if defined (_GLIBCXX_HAVE__POWF) && ! defined (_GLIBCXX_HAVE_POWF)
+# define _GLIBCXX_HAVE_POWF 1
+# define powf _powf
+#endif
+
+#if defined (_GLIBCXX_HAVE__POWL) && ! defined (_GLIBCXX_HAVE_POWL)
+# define _GLIBCXX_HAVE_POWL 1
+# define powl _powl
+#endif
+
+#if defined (_GLIBCXX_HAVE__QFPCLASS) && ! defined (_GLIBCXX_HAVE_QFPCLASS)
+# define _GLIBCXX_HAVE_QFPCLASS 1
+# define qfpclass _qfpclass
+#endif
+
+#if defined (_GLIBCXX_HAVE__SINCOS) && ! defined (_GLIBCXX_HAVE_SINCOS)
+# define _GLIBCXX_HAVE_SINCOS 1
+# define sincos _sincos
+#endif
+
+#if defined (_GLIBCXX_HAVE__SINCOSF) && ! defined (_GLIBCXX_HAVE_SINCOSF)
+# define _GLIBCXX_HAVE_SINCOSF 1
+# define sincosf _sincosf
+#endif
+
+#if defined (_GLIBCXX_HAVE__SINCOSL) && ! defined (_GLIBCXX_HAVE_SINCOSL)
+# define _GLIBCXX_HAVE_SINCOSL 1
+# define sincosl _sincosl
+#endif
+
+#if defined (_GLIBCXX_HAVE__SINF) && ! defined (_GLIBCXX_HAVE_SINF)
+# define _GLIBCXX_HAVE_SINF 1
+# define sinf _sinf
+#endif
+
+#if defined (_GLIBCXX_HAVE__SINHF) && ! defined (_GLIBCXX_HAVE_SINHF)
+# define _GLIBCXX_HAVE_SINHF 1
+# define sinhf _sinhf
+#endif
+
+#if defined (_GLIBCXX_HAVE__SINHL) && ! defined (_GLIBCXX_HAVE_SINHL)
+# define _GLIBCXX_HAVE_SINHL 1
+# define sinhl _sinhl
+#endif
+
+#if defined (_GLIBCXX_HAVE__SINL) && ! defined (_GLIBCXX_HAVE_SINL)
+# define _GLIBCXX_HAVE_SINL 1
+# define sinl _sinl
+#endif
+
+#if defined (_GLIBCXX_HAVE__SQRTF) && ! defined (_GLIBCXX_HAVE_SQRTF)
+# define _GLIBCXX_HAVE_SQRTF 1
+# define sqrtf _sqrtf
+#endif
+
+#if defined (_GLIBCXX_HAVE__SQRTL) && ! defined (_GLIBCXX_HAVE_SQRTL)
+# define _GLIBCXX_HAVE_SQRTL 1
+# define sqrtl _sqrtl
+#endif
+
+#if defined (_GLIBCXX_HAVE__STRTOF) && ! defined (_GLIBCXX_HAVE_STRTOF)
+# define _GLIBCXX_HAVE_STRTOF 1
+# define strtof _strtof
+#endif
+
+#if defined (_GLIBCXX_HAVE__STRTOLD) && ! defined (_GLIBCXX_HAVE_STRTOLD)
+# define _GLIBCXX_HAVE_STRTOLD 1
+# define strtold _strtold
+#endif
+
+#if defined (_GLIBCXX_HAVE__TANF) && ! defined (_GLIBCXX_HAVE_TANF)
+# define _GLIBCXX_HAVE_TANF 1
+# define tanf _tanf
+#endif
+
+#if defined (_GLIBCXX_HAVE__TANHF) && ! defined (_GLIBCXX_HAVE_TANHF)
+# define _GLIBCXX_HAVE_TANHF 1
+# define tanhf _tanhf
+#endif
+
+#if defined (_GLIBCXX_HAVE__TANHL) && ! defined (_GLIBCXX_HAVE_TANHL)
+# define _GLIBCXX_HAVE_TANHL 1
+# define tanhl _tanhl
+#endif
+
+#if defined (_GLIBCXX_HAVE__TANL) && ! defined (_GLIBCXX_HAVE_TANL)
+# define _GLIBCXX_HAVE_TANL 1
+# define tanl _tanl
+#endif
index 068fcfb9789df8646c97972955461f0720165bd6..999f8426ed3a10795f6abe21e6385df3ff6e284d 100644 (file)
@@ -37,7 +37,7 @@
 // Macros for visibility.
 // _GLIBCXX_HAVE_ATTRIBUTE_VISIBILITY
 // _GLIBCXX_VISIBILITY_ATTR
-#define _GLIBCXX_HAVE_ATTRIBUTE_VISIBILITY default
+# define _GLIBCXX_HAVE_ATTRIBUTE_VISIBILITY default
 
 #if _GLIBCXX_HAVE_ATTRIBUTE_VISIBILITY
 # define _GLIBCXX_VISIBILITY_ATTR(V) __attribute__ ((__visibility__ (#V)))
@@ -92,7 +92,7 @@
 # define _GLIBCXX_NAMESPACE_ASSOCIATION_PROFILE 1
 #endif
 
-#define _GLIBCXX_NAMESPACE_ASSOCIATION_VERSION 0
+# define _GLIBCXX_NAMESPACE_ASSOCIATION_VERSION 0
 
 // Defined if any namespace association modes are active.
 #if _GLIBCXX_NAMESPACE_ASSOCIATION_DEBUG \
@@ -376,20 +376,693 @@ _GLIBCXX_END_NAMESPACE
 # endif
 #endif
 
+#ifdef __PIC__
+#define __GXX_WEAK__ 1
+#define _GLIBCXX_GTHREAD_USE_WEAK 1
+#endif 
+
+#ifdef L4_THREAD_SAFE
+# define _GLIBCXX__PTHREADS 1
+#else
+# define _GLIBCXX__PTHREADS 0
+#endif
+#define _GLIBCXX__PTHREADS95 0
+#define _GLIBCXX__DCE_THREADS 0
+#define _GLIBCXX__SOLARIS_THREADS 0
+
+
+
 // End of prewritten config; the discovered settings follow.
 
 /* config.h.in.  Generated from configure.ac by autoheader.  */
 
+/* Define to 1 if you have the `acosf' function. */
+#define _GLIBCXX_HAVE_ACOSF 1
+
+/* Define to 1 if you have the `acosl' function. */
+#define _GLIBCXX_HAVE_ACOSL 1
+
+/* Define to 1 if you have the `asinf' function. */
+#define _GLIBCXX_HAVE_ASINF 1
+
+/* Define to 1 if you have the `asinl' function. */
+#define _GLIBCXX_HAVE_ASINL 1
+
+/* Define to 1 if the target assembler supports .symver directive. */
+#define _GLIBCXX_HAVE_AS_SYMVER_DIRECTIVE 1
+
+/* Define to 1 if you have the `atan2f' function. */
+#define _GLIBCXX_HAVE_ATAN2F 1
+
+/* Define to 1 if you have the `atan2l' function. */
+#define _GLIBCXX_HAVE_ATAN2L 1
+
+/* Define to 1 if you have the `atanf' function. */
+#define _GLIBCXX_HAVE_ATANF 1
+
+/* Define to 1 if you have the `atanl' function. */
+#define _GLIBCXX_HAVE_ATANL 1
+
+/* Define to 1 if the target assembler supports thread-local storage. */
+/* #undef _GLIBCXX_HAVE_CC_TLS */
+
+/* Define to 1 if you have the `ceilf' function. */
+#define _GLIBCXX_HAVE_CEILF 1
+
+/* Define to 1 if you have the `ceill' function. */
+#define _GLIBCXX_HAVE_CEILL 1
+
+/* Define to 1 if you have the <complex.h> header file. */
+#define _GLIBCXX_HAVE_COMPLEX_H 1
+
+/* Define to 1 if you have the `cosf' function. */
+#define _GLIBCXX_HAVE_COSF 1
+
+/* Define to 1 if you have the `coshf' function. */
+#define _GLIBCXX_HAVE_COSHF 1
+
+/* Define to 1 if you have the `coshl' function. */
+#define _GLIBCXX_HAVE_COSHL 1
+
+/* Define to 1 if you have the `cosl' function. */
+#define _GLIBCXX_HAVE_COSL 1
+
+/* Define to 1 if you have the <dlfcn.h> header file. */
+#define _GLIBCXX_HAVE_DLFCN_H 1
+
+/* Define if EBADMSG exists. */
+#define _GLIBCXX_HAVE_EBADMSG 1
+
+/* Define if ECANCELED exists. */
+#define _GLIBCXX_HAVE_ECANCELED 1
+
+/* Define if EIDRM exists. */
+#define _GLIBCXX_HAVE_EIDRM 1
+
+/* Define to 1 if you have the <endian.h> header file. */
+#define _GLIBCXX_HAVE_ENDIAN_H 1
+
+/* Define if ENODATA exists. */
+#define _GLIBCXX_HAVE_ENODATA 1
+
+/* Define if ENOLINK exists. */
+#define _GLIBCXX_HAVE_ENOLINK 1
+
+/* Define if ENOSR exists. */
+#define _GLIBCXX_HAVE_ENOSR 1
+
+/* Define if ENOSTR exists. */
+#define _GLIBCXX_HAVE_ENOSTR 1
+
+/* Define if ENOTRECOVERABLE exists. */
+#define _GLIBCXX_HAVE_ENOTRECOVERABLE 1
+
+/* Define if ENOTSUP exists. */
+#define _GLIBCXX_HAVE_ENOTSUP 1
+
+/* Define if EOVERFLOW exists. */
+#define _GLIBCXX_HAVE_EOVERFLOW 1
+
+/* Define if EOWNERDEAD exists. */
+#define _GLIBCXX_HAVE_EOWNERDEAD 1
+
+/* Define if EPROTO exists. */
+#define _GLIBCXX_HAVE_EPROTO 1
+
+/* Define if ETIME exists. */
+#define _GLIBCXX_HAVE_ETIME 1
+
+/* Define if ETXTBSY exists. */
+#define _GLIBCXX_HAVE_ETXTBSY 1
+
+/* Define to 1 if you have the <execinfo.h> header file. */
+#define _GLIBCXX_HAVE_EXECINFO_H 1
+
+/* Define to 1 if you have the `expf' function. */
+#define _GLIBCXX_HAVE_EXPF 1
+
+/* Define to 1 if you have the `expl' function. */
+#define _GLIBCXX_HAVE_EXPL 1
+
+/* Define to 1 if you have the `fabsf' function. */
+#define _GLIBCXX_HAVE_FABSF 1
+
+/* Define to 1 if you have the `fabsl' function. */
+#define _GLIBCXX_HAVE_FABSL 1
+
+/* Define to 1 if you have the <fenv.h> header file. */
+#define _GLIBCXX_HAVE_FENV_H 1
+
+/* Define to 1 if you have the `finite' function. */
+#define _GLIBCXX_HAVE_FINITE 1
+
+/* Define to 1 if you have the `finitef' function. */
+#define _GLIBCXX_HAVE_FINITEF 1
+
+/* Define to 1 if you have the `finitel' function. */
+#define _GLIBCXX_HAVE_FINITEL 1
+
+/* Define to 1 if you have the <float.h> header file. */
+#define _GLIBCXX_HAVE_FLOAT_H 1
+
+/* Define to 1 if you have the `floorf' function. */
+#define _GLIBCXX_HAVE_FLOORF 1
+
+/* Define to 1 if you have the `floorl' function. */
+#define _GLIBCXX_HAVE_FLOORL 1
+
+/* Define to 1 if you have the `fmodf' function. */
+#define _GLIBCXX_HAVE_FMODF 1
+
+/* Define to 1 if you have the `fmodl' function. */
+#define _GLIBCXX_HAVE_FMODL 1
+
+/* Define to 1 if you have the `fpclass' function. */
+/* #undef _GLIBCXX_HAVE_FPCLASS */
+
+/* Define to 1 if you have the <fp.h> header file. */
+/* #undef _GLIBCXX_HAVE_FP_H */
+
+/* Define to 1 if you have the `frexpf' function. */
+#define _GLIBCXX_HAVE_FREXPF 1
+
+/* Define to 1 if you have the `frexpl' function. */
+#define _GLIBCXX_HAVE_FREXPL 1
+
+/* Define if _Unwind_GetIPInfo is available. */
+#define _GLIBCXX_HAVE_GETIPINFO 1
+
+/* Define if gthr-default.h exists (meaning that threading support is
+   enabled). */
+//#define _GLIBCXX_HAVE_GTHR_DEFAULT 1
+
+/* Define to 1 if you have the `hypot' function. */
+#define _GLIBCXX_HAVE_HYPOT 1
+
+/* Define to 1 if you have the `hypotf' function. */
+#define _GLIBCXX_HAVE_HYPOTF 1
+
+/* Define to 1 if you have the `hypotl' function. */
+#define _GLIBCXX_HAVE_HYPOTL 1
+
+/* Define if you have the iconv() function. */
+//#define _GLIBCXX_HAVE_ICONV 1
+
+/* Define to 1 if you have the <ieeefp.h> header file. */
+/* #undef _GLIBCXX_HAVE_IEEEFP_H */
+
+/* Define if int64_t is available in <stdint.h>. */
+#define _GLIBCXX_HAVE_INT64_T 1
+
+/* Define if int64_t is a long. */
+/* #undef _GLIBCXX_HAVE_INT64_T_LONG */
+
+/* Define if int64_t is a long long. */
+#define _GLIBCXX_HAVE_INT64_T_LONG_LONG 1
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#define _GLIBCXX_HAVE_INTTYPES_H 1
+
+/* Define to 1 if you have the `isinf' function. */
+#define _GLIBCXX_HAVE_ISINF 1
+
+/* Define to 1 if you have the `isinff' function. */
+#define _GLIBCXX_HAVE_ISINFF 1
+
+/* Define to 1 if you have the `isinfl' function. */
+#define _GLIBCXX_HAVE_ISINFL 1
+
+/* Define to 1 if you have the `isnan' function. */
+#define _GLIBCXX_HAVE_ISNAN 1
+
+/* Define to 1 if you have the `isnanf' function. */
+#define _GLIBCXX_HAVE_ISNANF 1
+
+/* Define to 1 if you have the `isnanl' function. */
+#define _GLIBCXX_HAVE_ISNANL 1
+
+/* Defined if iswblank exists. */
+#define _GLIBCXX_HAVE_ISWBLANK 1
+
+/* Define if LC_MESSAGES is available in <locale.h>. */
+#define _GLIBCXX_HAVE_LC_MESSAGES 1
+
+/* Define to 1 if you have the `ldexpf' function. */
+#define _GLIBCXX_HAVE_LDEXPF 1
+
+/* Define to 1 if you have the `ldexpl' function. */
+#define _GLIBCXX_HAVE_LDEXPL 1
+
+/* Define to 1 if you have the <libintl.h> header file. */
+#define _GLIBCXX_HAVE_LIBINTL_H 1
+
+/* Only used in build directory testsuite_hooks.h. */
+#define _GLIBCXX_HAVE_LIMIT_AS 1
+
+/* Only used in build directory testsuite_hooks.h. */
+#define _GLIBCXX_HAVE_LIMIT_DATA 1
+
+/* Only used in build directory testsuite_hooks.h. */
+#define _GLIBCXX_HAVE_LIMIT_FSIZE 1
+
+/* Only used in build directory testsuite_hooks.h. */
+#define _GLIBCXX_HAVE_LIMIT_RSS 1
+
+/* Only used in build directory testsuite_hooks.h. */
+#define _GLIBCXX_HAVE_LIMIT_VMEM 0
+
+/* Define if futex syscall is available. */
+//#define _GLIBCXX_HAVE_LINUX_FUTEX 1
+
+/* Define to 1 if you have the <locale.h> header file. */
+#define _GLIBCXX_HAVE_LOCALE_H 1
+
+/* Define to 1 if you have the `log10f' function. */
+#define _GLIBCXX_HAVE_LOG10F 1
+
+/* Define to 1 if you have the `log10l' function. */
+#define _GLIBCXX_HAVE_LOG10L 1
+
+/* Define to 1 if you have the `logf' function. */
+#define _GLIBCXX_HAVE_LOGF 1
+
+/* Define to 1 if you have the `logl' function. */
+#define _GLIBCXX_HAVE_LOGL 1
+
+/* Define to 1 if you have the <machine/endian.h> header file. */
+/* #undef _GLIBCXX_HAVE_MACHINE_ENDIAN_H */
+
+/* Define to 1 if you have the <machine/param.h> header file. */
+/* #undef _GLIBCXX_HAVE_MACHINE_PARAM_H */
+
+/* Define if mbstate_t exists in wchar.h. */
+#define _GLIBCXX_HAVE_MBSTATE_T 1
+
+/* Define to 1 if you have the <memory.h> header file. */
+//#define _GLIBCXX_HAVE_MEMORY_H 1
+
+/* Define to 1 if you have the `modf' function. */
+#define _GLIBCXX_HAVE_MODF 1
+
+/* Define to 1 if you have the `modff' function. */
+#define _GLIBCXX_HAVE_MODFF 1
+
+/* Define to 1 if you have the `modfl' function. */
+#define _GLIBCXX_HAVE_MODFL 1
+
+/* Define to 1 if you have the <nan.h> header file. */
+/* #undef _GLIBCXX_HAVE_NAN_H */
+
+/* Define if poll is available in <poll.h>. */
+//#define _GLIBCXX_HAVE_POLL 1
+
+/* Define to 1 if you have the `powf' function. */
+#define _GLIBCXX_HAVE_POWF 1
+
+/* Define to 1 if you have the `powl' function. */
+#define _GLIBCXX_HAVE_POWL 1
+
+/* Define to 1 if you have the `qfpclass' function. */
+/* #undef _GLIBCXX_HAVE_QFPCLASS */
+
+/* Define to 1 if you have the `setenv' function. */
+#define _GLIBCXX_HAVE_SETENV 1
+
+/* Define to 1 if you have the `sincos' function. */
+#define _GLIBCXX_HAVE_SINCOS 1
+
+/* Define to 1 if you have the `sincosf' function. */
+#define _GLIBCXX_HAVE_SINCOSF 1
+
+/* Define to 1 if you have the `sincosl' function. */
+#define _GLIBCXX_HAVE_SINCOSL 1
+
+/* Define to 1 if you have the `sinf' function. */
+#define _GLIBCXX_HAVE_SINF 1
+
+/* Define to 1 if you have the `sinhf' function. */
+#define _GLIBCXX_HAVE_SINHF 1
+
+/* Define to 1 if you have the `sinhl' function. */
+#define _GLIBCXX_HAVE_SINHL 1
+
+/* Define to 1 if you have the `sinl' function. */
+#define _GLIBCXX_HAVE_SINL 1
+
+/* Define to 1 if you have the `sqrtf' function. */
+#define _GLIBCXX_HAVE_SQRTF 1
+
+/* Define to 1 if you have the `sqrtl' function. */
+#define _GLIBCXX_HAVE_SQRTL 1
+
+/* Define to 1 if you have the <stdbool.h> header file. */
+#define _GLIBCXX_HAVE_STDBOOL_H 1
+
 /* Define to 1 if you have the <stdint.h> header file. */
 #define _GLIBCXX_HAVE_STDINT_H 1
 
 /* Define to 1 if you have the <stdlib.h> header file. */
 #define _GLIBCXX_HAVE_STDLIB_H 1
 
+/* Define if strerror_l is available in <string.h>. */
+#define _GLIBCXX_HAVE_STRERROR_L 1
+
+/* Define if strerror_r is available in <string.h>. */
+#define _GLIBCXX_HAVE_STRERROR_R 1
+
+/* Define to 1 if you have the <strings.h> header file. */
+#define _GLIBCXX_HAVE_STRINGS_H 1
+
+/* Define to 1 if you have the <string.h> header file. */
+#define _GLIBCXX_HAVE_STRING_H 1
+
+/* Define to 1 if you have the `strtof' function. */
+#define _GLIBCXX_HAVE_STRTOF 1
+
+/* Define to 1 if you have the `strtold' function. */
+#define _GLIBCXX_HAVE_STRTOLD 1
+
+/* Define if strxfrm_l is available in <string.h>. */
+#define _GLIBCXX_HAVE_STRXFRM_L 1
+
+/* Define to 1 if you have the <sys/filio.h> header file. */
+/* #undef _GLIBCXX_HAVE_SYS_FILIO_H */
+
+/* Define to 1 if you have the <sys/ioctl.h> header file. */
+#define _GLIBCXX_HAVE_SYS_IOCTL_H 1
+
+/* Define to 1 if you have the <sys/ipc.h> header file. */
+#define _GLIBCXX_HAVE_SYS_IPC_H 1
+
+/* Define to 1 if you have the <sys/isa_defs.h> header file. */
+/* #undef _GLIBCXX_HAVE_SYS_ISA_DEFS_H */
+
+/* Define to 1 if you have the <sys/machine.h> header file. */
+/* #undef _GLIBCXX_HAVE_SYS_MACHINE_H */
+
+/* Define to 1 if you have the <sys/param.h> header file. */
+#define _GLIBCXX_HAVE_SYS_PARAM_H 1
+
+/* Define to 1 if you have the <sys/resource.h> header file. */
+#define _GLIBCXX_HAVE_SYS_RESOURCE_H 1
+
+/* Define to 1 if you have the <sys/sem.h> header file. */
+#define _GLIBCXX_HAVE_SYS_SEM_H 1
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#define _GLIBCXX_HAVE_SYS_STAT_H 1
+
+/* Define to 1 if you have the <sys/time.h> header file. */
+#define _GLIBCXX_HAVE_SYS_TIME_H 1
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#define _GLIBCXX_HAVE_SYS_TYPES_H 1
+
+/* Define to 1 if you have the <sys/uio.h> header file. */
+#define _GLIBCXX_HAVE_SYS_UIO_H 1
+
+/* Define if S_IFREG is available in <sys/stat.h>. */
+/* #undef _GLIBCXX_HAVE_S_IFREG */
+
+/* Define if S_IFREG is available in <sys/stat.h>. */
+#define _GLIBCXX_HAVE_S_ISREG 1
+
+/* Define to 1 if you have the `tanf' function. */
+#define _GLIBCXX_HAVE_TANF 1
+
+/* Define to 1 if you have the `tanhf' function. */
+#define _GLIBCXX_HAVE_TANHF 1
+
+/* Define to 1 if you have the `tanhl' function. */
+#define _GLIBCXX_HAVE_TANHL 1
+
+/* Define to 1 if you have the `tanl' function. */
+#define _GLIBCXX_HAVE_TANL 1
+
+/* Define to 1 if you have the <tgmath.h> header file. */
+#define _GLIBCXX_HAVE_TGMATH_H 1
+
+/* Define to 1 if the target supports thread-local storage. */
+//#define _GLIBCXX_HAVE_TLS 1
+
 /* Define to 1 if you have the <unistd.h> header file. */
 #define _GLIBCXX_HAVE_UNISTD_H 1
 
+/* Defined if vfwscanf exists. */
+#define _GLIBCXX_HAVE_VFWSCANF 1
+
+/* Defined if vswscanf exists. */
+#define _GLIBCXX_HAVE_VSWSCANF 1
+
+/* Defined if vwscanf exists. */
+#define _GLIBCXX_HAVE_VWSCANF 1
+
+/* Define to 1 if you have the <wchar.h> header file. */
+#define _GLIBCXX_HAVE_WCHAR_H 1
+
+/* Defined if wcstof exists. */
+#define _GLIBCXX_HAVE_WCSTOF 1
+
+/* Define to 1 if you have the <wctype.h> header file. */
+#define _GLIBCXX_HAVE_WCTYPE_H 1
+
+/* Define if writev is available in <sys/uio.h>. */
+#define _GLIBCXX_HAVE_WRITEV 1
+
+/* Define to 1 if you have the `_acosf' function. */
+/* #undef _GLIBCXX_HAVE__ACOSF */
+
+/* Define to 1 if you have the `_acosl' function. */
+/* #undef _GLIBCXX_HAVE__ACOSL */
+
+/* Define to 1 if you have the `_asinf' function. */
+/* #undef _GLIBCXX_HAVE__ASINF */
+
+/* Define to 1 if you have the `_asinl' function. */
+/* #undef _GLIBCXX_HAVE__ASINL */
+
+/* Define to 1 if you have the `_atan2f' function. */
+/* #undef _GLIBCXX_HAVE__ATAN2F */
+
+/* Define to 1 if you have the `_atan2l' function. */
+/* #undef _GLIBCXX_HAVE__ATAN2L */
+
+/* Define to 1 if you have the `_atanf' function. */
+/* #undef _GLIBCXX_HAVE__ATANF */
+
+/* Define to 1 if you have the `_atanl' function. */
+/* #undef _GLIBCXX_HAVE__ATANL */
+
+/* Define to 1 if you have the `_ceilf' function. */
+/* #undef _GLIBCXX_HAVE__CEILF */
+
+/* Define to 1 if you have the `_ceill' function. */
+/* #undef _GLIBCXX_HAVE__CEILL */
+
+/* Define to 1 if you have the `_cosf' function. */
+/* #undef _GLIBCXX_HAVE__COSF */
+
+/* Define to 1 if you have the `_coshf' function. */
+/* #undef _GLIBCXX_HAVE__COSHF */
+
+/* Define to 1 if you have the `_coshl' function. */
+/* #undef _GLIBCXX_HAVE__COSHL */
+
+/* Define to 1 if you have the `_cosl' function. */
+/* #undef _GLIBCXX_HAVE__COSL */
+
+/* Define to 1 if you have the `_expf' function. */
+/* #undef _GLIBCXX_HAVE__EXPF */
+
+/* Define to 1 if you have the `_expl' function. */
+/* #undef _GLIBCXX_HAVE__EXPL */
+
+/* Define to 1 if you have the `_fabsf' function. */
+/* #undef _GLIBCXX_HAVE__FABSF */
+
+/* Define to 1 if you have the `_fabsl' function. */
+/* #undef _GLIBCXX_HAVE__FABSL */
+
+/* Define to 1 if you have the `_finite' function. */
+/* #undef _GLIBCXX_HAVE__FINITE */
+
+/* Define to 1 if you have the `_finitef' function. */
+/* #undef _GLIBCXX_HAVE__FINITEF */
+
+/* Define to 1 if you have the `_finitel' function. */
+/* #undef _GLIBCXX_HAVE__FINITEL */
+
+/* Define to 1 if you have the `_floorf' function. */
+/* #undef _GLIBCXX_HAVE__FLOORF */
+
+/* Define to 1 if you have the `_floorl' function. */
+/* #undef _GLIBCXX_HAVE__FLOORL */
+
+/* Define to 1 if you have the `_fmodf' function. */
+/* #undef _GLIBCXX_HAVE__FMODF */
+
+/* Define to 1 if you have the `_fmodl' function. */
+/* #undef _GLIBCXX_HAVE__FMODL */
+
+/* Define to 1 if you have the `_fpclass' function. */
+/* #undef _GLIBCXX_HAVE__FPCLASS */
+
+/* Define to 1 if you have the `_frexpf' function. */
+/* #undef _GLIBCXX_HAVE__FREXPF */
+
+/* Define to 1 if you have the `_frexpl' function. */
+/* #undef _GLIBCXX_HAVE__FREXPL */
+
+/* Define to 1 if you have the `_hypot' function. */
+/* #undef _GLIBCXX_HAVE__HYPOT */
+
+/* Define to 1 if you have the `_hypotf' function. */
+/* #undef _GLIBCXX_HAVE__HYPOTF */
 
+/* Define to 1 if you have the `_hypotl' function. */
+/* #undef _GLIBCXX_HAVE__HYPOTL */
+
+/* Define to 1 if you have the `_isinf' function. */
+/* #undef _GLIBCXX_HAVE__ISINF */
+
+/* Define to 1 if you have the `_isinff' function. */
+/* #undef _GLIBCXX_HAVE__ISINFF */
+
+/* Define to 1 if you have the `_isinfl' function. */
+/* #undef _GLIBCXX_HAVE__ISINFL */
+
+/* Define to 1 if you have the `_isnan' function. */
+/* #undef _GLIBCXX_HAVE__ISNAN */
+
+/* Define to 1 if you have the `_isnanf' function. */
+/* #undef _GLIBCXX_HAVE__ISNANF */
+
+/* Define to 1 if you have the `_isnanl' function. */
+/* #undef _GLIBCXX_HAVE__ISNANL */
+
+/* Define to 1 if you have the `_ldexpf' function. */
+/* #undef _GLIBCXX_HAVE__LDEXPF */
+
+/* Define to 1 if you have the `_ldexpl' function. */
+/* #undef _GLIBCXX_HAVE__LDEXPL */
+
+/* Define to 1 if you have the `_log10f' function. */
+/* #undef _GLIBCXX_HAVE__LOG10F */
+
+/* Define to 1 if you have the `_log10l' function. */
+/* #undef _GLIBCXX_HAVE__LOG10L */
+
+/* Define to 1 if you have the `_logf' function. */
+/* #undef _GLIBCXX_HAVE__LOGF */
+
+/* Define to 1 if you have the `_logl' function. */
+/* #undef _GLIBCXX_HAVE__LOGL */
+
+/* Define to 1 if you have the `_modf' function. */
+/* #undef _GLIBCXX_HAVE__MODF */
+
+/* Define to 1 if you have the `_modff' function. */
+/* #undef _GLIBCXX_HAVE__MODFF */
+
+/* Define to 1 if you have the `_modfl' function. */
+/* #undef _GLIBCXX_HAVE__MODFL */
+
+/* Define to 1 if you have the `_powf' function. */
+/* #undef _GLIBCXX_HAVE__POWF */
+
+/* Define to 1 if you have the `_powl' function. */
+/* #undef _GLIBCXX_HAVE__POWL */
+
+/* Define to 1 if you have the `_qfpclass' function. */
+/* #undef _GLIBCXX_HAVE__QFPCLASS */
+
+/* Define to 1 if you have the `_sincos' function. */
+/* #undef _GLIBCXX_HAVE__SINCOS */
+
+/* Define to 1 if you have the `_sincosf' function. */
+/* #undef _GLIBCXX_HAVE__SINCOSF */
+
+/* Define to 1 if you have the `_sincosl' function. */
+/* #undef _GLIBCXX_HAVE__SINCOSL */
+
+/* Define to 1 if you have the `_sinf' function. */
+/* #undef _GLIBCXX_HAVE__SINF */
+
+/* Define to 1 if you have the `_sinhf' function. */
+/* #undef _GLIBCXX_HAVE__SINHF */
+
+/* Define to 1 if you have the `_sinhl' function. */
+/* #undef _GLIBCXX_HAVE__SINHL */
+
+/* Define to 1 if you have the `_sinl' function. */
+/* #undef _GLIBCXX_HAVE__SINL */
+
+/* Define to 1 if you have the `_sqrtf' function. */
+/* #undef _GLIBCXX_HAVE__SQRTF */
+
+/* Define to 1 if you have the `_sqrtl' function. */
+/* #undef _GLIBCXX_HAVE__SQRTL */
+
+/* Define to 1 if you have the `_tanf' function. */
+/* #undef _GLIBCXX_HAVE__TANF */
+
+/* Define to 1 if you have the `_tanhf' function. */
+/* #undef _GLIBCXX_HAVE__TANHF */
+
+/* Define to 1 if you have the `_tanhl' function. */
+/* #undef _GLIBCXX_HAVE__TANHL */
+
+/* Define to 1 if you have the `_tanl' function. */
+/* #undef _GLIBCXX_HAVE__TANL */
+
+/* Define as const if the declaration of iconv() needs const. */
+#define _GLIBCXX_ICONV_CONST 
+
+/* Define to the sub-directory in which libtool stores uninstalled libraries.
+   */
+#define LT_OBJDIR ".libs/"
+
+/* Name of package */
+/* #undef _GLIBCXX_PACKAGE */
+
+/* Define to the address where bug reports for this package should be sent. */
+#define _GLIBCXX_PACKAGE_BUGREPORT ""
+
+/* Define to the full name of this package. */
+#define _GLIBCXX_PACKAGE_NAME "package-unused"
+
+/* Define to the full name and version of this package. */
+#define _GLIBCXX_PACKAGE_STRING "package-unused version-unused"
+
+/* Define to the one symbol short name of this package. */
+#define _GLIBCXX_PACKAGE_TARNAME "libstdc++"
+
+/* Define to the home page for this package. */
+#define _GLIBCXX_PACKAGE_URL ""
+
+/* Define to the version of this package. */
+#define _GLIBCXX_PACKAGE__GLIBCXX_VERSION "version-unused"
+
+/* The size of `char', as computed by sizeof. */
+/* #undef SIZEOF_CHAR */
+
+/* The size of `int', as computed by sizeof. */
+/* #undef SIZEOF_INT */
+
+/* The size of `long', as computed by sizeof. */
+/* #undef SIZEOF_LONG */
+
+/* The size of `short', as computed by sizeof. */
+/* #undef SIZEOF_SHORT */
+
+/* The size of `void *', as computed by sizeof. */
+/* #undef SIZEOF_VOID_P */
+
+/* Define to 1 if you have the ANSI C header files. */
+#define STDC_HEADERS 1
+
+/* Version number of package */
+/* #undef _GLIBCXX_VERSION */
 #if defined(ARCH_x86) || defined(ARCH_amd64)
 
 /* Define if builtin atomic operations for bool are supported on this host. */
@@ -416,22 +1089,21 @@ _GLIBCXX_END_NAMESPACE
 #undef _GLIBCXX_FULLY_DYNAMIC_STRING
 
 /* Define if gthreads library is available. */
-#define _GLIBCXX_HAS_GTHREADS 1
+//#define _GLIBCXX_HAS_GTHREADS 1
 
 /* Define to 1 if a full hosted library is built, or 0 if freestanding. */
 #define _GLIBCXX_HOSTED 1
 
 /* Define if compatibility should be provided for -mlong-double-64. */
-#undef _GLIBCXX_LONG_DOUBLE_COMPAT
 
 /* Define if ptrdiff_t is int. */
-#undef _GLIBCXX_PTRDIFF_T_IS_INT
+#define _GLIBCXX_PTRDIFF_T_IS_INT 1
 
 /* Define if using setrlimit to set resource limits during "make check" */
-#undef _GLIBCXX_RES_LIMITS
+//#define _GLIBCXX_RES_LIMITS 1
 
 /* Define if size_t is unsigned int. */
-#undef _GLIBCXX_SIZE_T_IS_UINT
+#define _GLIBCXX_SIZE_T_IS_UINT 1
 
 #ifdef __USING_SJLJ_EXCEPTIONS__
 /* Define if the compiler is configured for setjmp/longjmp exceptions. */
@@ -439,96 +1111,415 @@ _GLIBCXX_END_NAMESPACE
 #endif
 
 /* Define if EOF == -1, SEEK_CUR == 1, SEEK_END == 2. */
-#undef _GLIBCXX_STDIO_MACROS
+#define _GLIBCXX_STDIO_MACROS 1
 
 /* Define to use symbol versioning in the shared library. */
-#undef _GLIBCXX_SYMVER
+#define _GLIBCXX_SYMVER 1
 
 /* Define to use darwin versioning in the shared library. */
-#undef _GLIBCXX_SYMVER_DARWIN
+/* #undef _GLIBCXX_SYMVER_DARWIN */
 
 /* Define to use GNU versioning in the shared library. */
-#undef _GLIBCXX_SYMVER_GNU
+#define _GLIBCXX_SYMVER_GNU 1
 
 /* Define to use GNU namespace versioning in the shared library. */
-#undef _GLIBCXX_SYMVER_GNU_NAMESPACE
+/* #undef _GLIBCXX_SYMVER_GNU_NAMESPACE */
 
 /* Define if C99 functions or macros from <wchar.h>, <math.h>, <complex.h>,
    <stdio.h>, and <stdlib.h> can be used or exposed. */
-#undef _GLIBCXX_USE_C99
+#define _GLIBCXX_USE_C99 1
 
 /* Define if C99 functions in <complex.h> should be used in <complex>. Using
    compiler builtins for these functions requires corresponding C99 library
    functions to be present. */
-#undef _GLIBCXX_USE_C99_COMPLEX
+#define _GLIBCXX_USE_C99_COMPLEX 1
 
 /* Define if C99 functions in <complex.h> should be used in <tr1/complex>.
    Using compiler builtins for these functions requires corresponding C99
    library functions to be present. */
-#undef _GLIBCXX_USE_C99_COMPLEX_TR1
+#define _GLIBCXX_USE_C99_COMPLEX_TR1 1
 
 /* Define if C99 functions in <ctype.h> should be imported in <tr1/cctype> in
    namespace std::tr1. */
-#undef _GLIBCXX_USE_C99_CTYPE_TR1
+#define _GLIBCXX_USE_C99_CTYPE_TR1 1
 
 /* Define if C99 functions in <fenv.h> should be imported in <tr1/cfenv> in
    namespace std::tr1. */
-#undef _GLIBCXX_USE_C99_FENV_TR1
+#define _GLIBCXX_USE_C99_FENV_TR1 1
 
 /* Define if C99 functions in <inttypes.h> should be imported in
    <tr1/cinttypes> in namespace std::tr1. */
-#undef _GLIBCXX_USE_C99_INTTYPES_TR1
+#define _GLIBCXX_USE_C99_INTTYPES_TR1 1
 
 /* Define if wchar_t C99 functions in <inttypes.h> should be imported in
    <tr1/cinttypes> in namespace std::tr1. */
-#undef _GLIBCXX_USE_C99_INTTYPES_WCHAR_T_TR1
+#define _GLIBCXX_USE_C99_INTTYPES_WCHAR_T_TR1 1
 
 /* Define if C99 functions or macros in <math.h> should be imported in <cmath>
    in namespace std. */
-#undef _GLIBCXX_USE_C99_MATH
+#define _GLIBCXX_USE_C99_MATH 1
 
 /* Define if C99 functions or macros in <math.h> should be imported in
    <tr1/cmath> in namespace std::tr1. */
-#undef _GLIBCXX_USE_C99_MATH_TR1
+#define _GLIBCXX_USE_C99_MATH_TR1 1
 
 /* Define if C99 types in <stdint.h> should be imported in <tr1/cstdint> in
    namespace std::tr1. */
-#undef _GLIBCXX_USE_C99_STDINT_TR1
+#define _GLIBCXX_USE_C99_STDINT_TR1 1
 
 /* Defined if clock_gettime has monotonic clock support. */
-#undef _GLIBCXX_USE_CLOCK_MONOTONIC
+/* #undef _GLIBCXX_USE_CLOCK_MONOTONIC */
 
 /* Defined if clock_gettime has realtime clock support. */
-#undef _GLIBCXX_USE_CLOCK_REALTIME
+/* #undef _GLIBCXX_USE_CLOCK_REALTIME */
 
 /* Define if ISO/IEC TR 24733 decimal floating point types are supported on
    this host. */
-#undef _GLIBCXX_USE_DECIMAL_FLOAT
+#define _GLIBCXX_USE_DECIMAL_FLOAT 1
 
 /* Defined if gettimeofday is available. */
-#undef _GLIBCXX_USE_GETTIMEOFDAY
+//#define _GLIBCXX_USE_GETTIMEOFDAY 1
 
 /* Define if LFS support is available. */
-#undef _GLIBCXX_USE_LFS
+#define _GLIBCXX_USE_LFS 1
 
 /* Define if code specialized for long long should be used. */
-#undef _GLIBCXX_USE_LONG_LONG
+#define _GLIBCXX_USE_LONG_LONG 1
 
 /* Defined if nanosleep is available. */
-#undef _GLIBCXX_USE_NANOSLEEP
+//#undef _GLIBCXX_USE_NANOSLEEP
 
 /* Define if NLS translations are to be used. */
-#undef _GLIBCXX_USE_NLS
+//#define _GLIBCXX_USE_NLS 1
 
 /* Define if /dev/random and /dev/urandom are available for the random_device
    of TR1 (Chapter 5.1). */
-#undef _GLIBCXX_USE_RANDOM_TR1
+#define _GLIBCXX_USE_RANDOM_TR1 1
 
 /* Defined if sched_yield is available. */
-#undef _GLIBCXX_USE_SCHED_YIELD
+/* #undef _GLIBCXX_USE_SCHED_YIELD */
 
 /* Define if code specialized for wchar_t should be used. */
-#undef _GLIBCXX_USE_WCHAR_T
+//#define _GLIBCXX_USE_WCHAR_T 1
+
+#if defined (_GLIBCXX_HAVE__ACOSF) && ! defined (_GLIBCXX_HAVE_ACOSF)
+# define _GLIBCXX_HAVE_ACOSF 1
+# define acosf _acosf
+#endif
+
+#if defined (_GLIBCXX_HAVE__ACOSL) && ! defined (_GLIBCXX_HAVE_ACOSL)
+# define _GLIBCXX_HAVE_ACOSL 1
+# define acosl _acosl
+#endif
+
+#if defined (_GLIBCXX_HAVE__ASINF) && ! defined (_GLIBCXX_HAVE_ASINF)
+# define _GLIBCXX_HAVE_ASINF 1
+# define asinf _asinf
+#endif
+
+#if defined (_GLIBCXX_HAVE__ASINL) && ! defined (_GLIBCXX_HAVE_ASINL)
+# define _GLIBCXX_HAVE_ASINL 1
+# define asinl _asinl
+#endif
+
+#if defined (_GLIBCXX_HAVE__ATAN2F) && ! defined (_GLIBCXX_HAVE_ATAN2F)
+# define _GLIBCXX_HAVE_ATAN2F 1
+# define atan2f _atan2f
+#endif
+
+#if defined (_GLIBCXX_HAVE__ATAN2L) && ! defined (_GLIBCXX_HAVE_ATAN2L)
+# define _GLIBCXX_HAVE_ATAN2L 1
+# define atan2l _atan2l
+#endif
+
+#if defined (_GLIBCXX_HAVE__ATANF) && ! defined (_GLIBCXX_HAVE_ATANF)
+# define _GLIBCXX_HAVE_ATANF 1
+# define atanf _atanf
+#endif
+
+#if defined (_GLIBCXX_HAVE__ATANL) && ! defined (_GLIBCXX_HAVE_ATANL)
+# define _GLIBCXX_HAVE_ATANL 1
+# define atanl _atanl
+#endif
+
+#if defined (_GLIBCXX_HAVE__CEILF) && ! defined (_GLIBCXX_HAVE_CEILF)
+# define _GLIBCXX_HAVE_CEILF 1
+# define ceilf _ceilf
+#endif
+
+#if defined (_GLIBCXX_HAVE__CEILL) && ! defined (_GLIBCXX_HAVE_CEILL)
+# define _GLIBCXX_HAVE_CEILL 1
+# define ceill _ceill
+#endif
+
+#if defined (_GLIBCXX_HAVE__COSF) && ! defined (_GLIBCXX_HAVE_COSF)
+# define _GLIBCXX_HAVE_COSF 1
+# define cosf _cosf
+#endif
+
+#if defined (_GLIBCXX_HAVE__COSHF) && ! defined (_GLIBCXX_HAVE_COSHF)
+# define _GLIBCXX_HAVE_COSHF 1
+# define coshf _coshf
+#endif
+
+#if defined (_GLIBCXX_HAVE__COSHL) && ! defined (_GLIBCXX_HAVE_COSHL)
+# define _GLIBCXX_HAVE_COSHL 1
+# define coshl _coshl
+#endif
+
+#if defined (_GLIBCXX_HAVE__COSL) && ! defined (_GLIBCXX_HAVE_COSL)
+# define _GLIBCXX_HAVE_COSL 1
+# define cosl _cosl
+#endif
+
+#if defined (_GLIBCXX_HAVE__EXPF) && ! defined (_GLIBCXX_HAVE_EXPF)
+# define _GLIBCXX_HAVE_EXPF 1
+# define expf _expf
+#endif
+
+#if defined (_GLIBCXX_HAVE__EXPL) && ! defined (_GLIBCXX_HAVE_EXPL)
+# define _GLIBCXX_HAVE_EXPL 1
+# define expl _expl
+#endif
+
+#if defined (_GLIBCXX_HAVE__FABSF) && ! defined (_GLIBCXX_HAVE_FABSF)
+# define _GLIBCXX_HAVE_FABSF 1
+# define fabsf _fabsf
+#endif
+
+#if defined (_GLIBCXX_HAVE__FABSL) && ! defined (_GLIBCXX_HAVE_FABSL)
+# define _GLIBCXX_HAVE_FABSL 1
+# define fabsl _fabsl
+#endif
+
+#if defined (_GLIBCXX_HAVE__FINITE) && ! defined (_GLIBCXX_HAVE_FINITE)
+# define _GLIBCXX_HAVE_FINITE 1
+# define finite _finite
+#endif
+
+#if defined (_GLIBCXX_HAVE__FINITEF) && ! defined (_GLIBCXX_HAVE_FINITEF)
+# define _GLIBCXX_HAVE_FINITEF 1
+# define finitef _finitef
+#endif
+
+#if defined (_GLIBCXX_HAVE__FINITEL) && ! defined (_GLIBCXX_HAVE_FINITEL)
+# define _GLIBCXX_HAVE_FINITEL 1
+# define finitel _finitel
+#endif
+
+#if defined (_GLIBCXX_HAVE__FLOORF) && ! defined (_GLIBCXX_HAVE_FLOORF)
+# define _GLIBCXX_HAVE_FLOORF 1
+# define floorf _floorf
+#endif
+
+#if defined (_GLIBCXX_HAVE__FLOORL) && ! defined (_GLIBCXX_HAVE_FLOORL)
+# define _GLIBCXX_HAVE_FLOORL 1
+# define floorl _floorl
+#endif
+
+#if defined (_GLIBCXX_HAVE__FMODF) && ! defined (_GLIBCXX_HAVE_FMODF)
+# define _GLIBCXX_HAVE_FMODF 1
+# define fmodf _fmodf
+#endif
+
+#if defined (_GLIBCXX_HAVE__FMODL) && ! defined (_GLIBCXX_HAVE_FMODL)
+# define _GLIBCXX_HAVE_FMODL 1
+# define fmodl _fmodl
+#endif
+
+#if defined (_GLIBCXX_HAVE__FPCLASS) && ! defined (_GLIBCXX_HAVE_FPCLASS)
+# define _GLIBCXX_HAVE_FPCLASS 1
+# define fpclass _fpclass
+#endif
+
+#if defined (_GLIBCXX_HAVE__FREXPF) && ! defined (_GLIBCXX_HAVE_FREXPF)
+# define _GLIBCXX_HAVE_FREXPF 1
+# define frexpf _frexpf
+#endif
+
+#if defined (_GLIBCXX_HAVE__FREXPL) && ! defined (_GLIBCXX_HAVE_FREXPL)
+# define _GLIBCXX_HAVE_FREXPL 1
+# define frexpl _frexpl
+#endif
+
+#if defined (_GLIBCXX_HAVE__HYPOT) && ! defined (_GLIBCXX_HAVE_HYPOT)
+# define _GLIBCXX_HAVE_HYPOT 1
+# define hypot _hypot
+#endif
+
+#if defined (_GLIBCXX_HAVE__HYPOTF) && ! defined (_GLIBCXX_HAVE_HYPOTF)
+# define _GLIBCXX_HAVE_HYPOTF 1
+# define hypotf _hypotf
+#endif
+
+#if defined (_GLIBCXX_HAVE__HYPOTL) && ! defined (_GLIBCXX_HAVE_HYPOTL)
+# define _GLIBCXX_HAVE_HYPOTL 1
+# define hypotl _hypotl
+#endif
+
+#if defined (_GLIBCXX_HAVE__ISINF) && ! defined (_GLIBCXX_HAVE_ISINF)
+# define _GLIBCXX_HAVE_ISINF 1
+# define isinf _isinf
+#endif
+
+#if defined (_GLIBCXX_HAVE__ISINFF) && ! defined (_GLIBCXX_HAVE_ISINFF)
+# define _GLIBCXX_HAVE_ISINFF 1
+# define isinff _isinff
+#endif
+
+#if defined (_GLIBCXX_HAVE__ISINFL) && ! defined (_GLIBCXX_HAVE_ISINFL)
+# define _GLIBCXX_HAVE_ISINFL 1
+# define isinfl _isinfl
+#endif
+
+#if defined (_GLIBCXX_HAVE__ISNAN) && ! defined (_GLIBCXX_HAVE_ISNAN)
+# define _GLIBCXX_HAVE_ISNAN 1
+# define isnan _isnan
+#endif
+
+#if defined (_GLIBCXX_HAVE__ISNANF) && ! defined (_GLIBCXX_HAVE_ISNANF)
+# define _GLIBCXX_HAVE_ISNANF 1
+# define isnanf _isnanf
+#endif
+
+#if defined (_GLIBCXX_HAVE__ISNANL) && ! defined (_GLIBCXX_HAVE_ISNANL)
+# define _GLIBCXX_HAVE_ISNANL 1
+# define isnanl _isnanl
+#endif
+
+#if defined (_GLIBCXX_HAVE__LDEXPF) && ! defined (_GLIBCXX_HAVE_LDEXPF)
+# define _GLIBCXX_HAVE_LDEXPF 1
+# define ldexpf _ldexpf
+#endif
+
+#if defined (_GLIBCXX_HAVE__LDEXPL) && ! defined (_GLIBCXX_HAVE_LDEXPL)
+# define _GLIBCXX_HAVE_LDEXPL 1
+# define ldexpl _ldexpl
+#endif
+
+#if defined (_GLIBCXX_HAVE__LOG10F) && ! defined (_GLIBCXX_HAVE_LOG10F)
+# define _GLIBCXX_HAVE_LOG10F 1
+# define log10f _log10f
+#endif
+
+#if defined (_GLIBCXX_HAVE__LOG10L) && ! defined (_GLIBCXX_HAVE_LOG10L)
+# define _GLIBCXX_HAVE_LOG10L 1
+# define log10l _log10l
+#endif
+
+#if defined (_GLIBCXX_HAVE__LOGF) && ! defined (_GLIBCXX_HAVE_LOGF)
+# define _GLIBCXX_HAVE_LOGF 1
+# define logf _logf
+#endif
+
+#if defined (_GLIBCXX_HAVE__LOGL) && ! defined (_GLIBCXX_HAVE_LOGL)
+# define _GLIBCXX_HAVE_LOGL 1
+# define logl _logl
+#endif
+
+#if defined (_GLIBCXX_HAVE__MODF) && ! defined (_GLIBCXX_HAVE_MODF)
+# define _GLIBCXX_HAVE_MODF 1
+# define modf _modf
+#endif
+
+#if defined (_GLIBCXX_HAVE__MODFF) && ! defined (_GLIBCXX_HAVE_MODFF)
+# define _GLIBCXX_HAVE_MODFF 1
+# define modff _modff
+#endif
+
+#if defined (_GLIBCXX_HAVE__MODFL) && ! defined (_GLIBCXX_HAVE_MODFL)
+# define _GLIBCXX_HAVE_MODFL 1
+# define modfl _modfl
+#endif
+
+#if defined (_GLIBCXX_HAVE__POWF) && ! defined (_GLIBCXX_HAVE_POWF)
+# define _GLIBCXX_HAVE_POWF 1
+# define powf _powf
+#endif
+
+#if defined (_GLIBCXX_HAVE__POWL) && ! defined (_GLIBCXX_HAVE_POWL)
+# define _GLIBCXX_HAVE_POWL 1
+# define powl _powl
+#endif
+
+#if defined (_GLIBCXX_HAVE__QFPCLASS) && ! defined (_GLIBCXX_HAVE_QFPCLASS)
+# define _GLIBCXX_HAVE_QFPCLASS 1
+# define qfpclass _qfpclass
+#endif
+
+#if defined (_GLIBCXX_HAVE__SINCOS) && ! defined (_GLIBCXX_HAVE_SINCOS)
+# define _GLIBCXX_HAVE_SINCOS 1
+# define sincos _sincos
+#endif
+
+#if defined (_GLIBCXX_HAVE__SINCOSF) && ! defined (_GLIBCXX_HAVE_SINCOSF)
+# define _GLIBCXX_HAVE_SINCOSF 1
+# define sincosf _sincosf
+#endif
+
+#if defined (_GLIBCXX_HAVE__SINCOSL) && ! defined (_GLIBCXX_HAVE_SINCOSL)
+# define _GLIBCXX_HAVE_SINCOSL 1
+# define sincosl _sincosl
+#endif
+
+#if defined (_GLIBCXX_HAVE__SINF) && ! defined (_GLIBCXX_HAVE_SINF)
+# define _GLIBCXX_HAVE_SINF 1
+# define sinf _sinf
+#endif
+
+#if defined (_GLIBCXX_HAVE__SINHF) && ! defined (_GLIBCXX_HAVE_SINHF)
+# define _GLIBCXX_HAVE_SINHF 1
+# define sinhf _sinhf
+#endif
+
+#if defined (_GLIBCXX_HAVE__SINHL) && ! defined (_GLIBCXX_HAVE_SINHL)
+# define _GLIBCXX_HAVE_SINHL 1
+# define sinhl _sinhl
+#endif
+
+#if defined (_GLIBCXX_HAVE__SINL) && ! defined (_GLIBCXX_HAVE_SINL)
+# define _GLIBCXX_HAVE_SINL 1
+# define sinl _sinl
+#endif
+
+#if defined (_GLIBCXX_HAVE__SQRTF) && ! defined (_GLIBCXX_HAVE_SQRTF)
+# define _GLIBCXX_HAVE_SQRTF 1
+# define sqrtf _sqrtf
+#endif
+
+#if defined (_GLIBCXX_HAVE__SQRTL) && ! defined (_GLIBCXX_HAVE_SQRTL)
+# define _GLIBCXX_HAVE_SQRTL 1
+# define sqrtl _sqrtl
+#endif
 
+#if defined (_GLIBCXX_HAVE__STRTOF) && ! defined (_GLIBCXX_HAVE_STRTOF)
+# define _GLIBCXX_HAVE_STRTOF 1
+# define strtof _strtof
+#endif
+
+#if defined (_GLIBCXX_HAVE__STRTOLD) && ! defined (_GLIBCXX_HAVE_STRTOLD)
+# define _GLIBCXX_HAVE_STRTOLD 1
+# define strtold _strtold
+#endif
+
+#if defined (_GLIBCXX_HAVE__TANF) && ! defined (_GLIBCXX_HAVE_TANF)
+# define _GLIBCXX_HAVE_TANF 1
+# define tanf _tanf
+#endif
+
+#if defined (_GLIBCXX_HAVE__TANHF) && ! defined (_GLIBCXX_HAVE_TANHF)
+# define _GLIBCXX_HAVE_TANHF 1
+# define tanhf _tanhf
+#endif
+
+#if defined (_GLIBCXX_HAVE__TANHL) && ! defined (_GLIBCXX_HAVE_TANHL)
+# define _GLIBCXX_HAVE_TANHL 1
+# define tanhl _tanhl
+#endif
+
+#if defined (_GLIBCXX_HAVE__TANL) && ! defined (_GLIBCXX_HAVE_TANL)
+# define _GLIBCXX_HAVE_TANL 1
+# define tanl _tanl
+#endif
 
 #endif
index 78e751e2ed5ef184d062401f841245ee8f616579..4e5220e355482fd00ab4510f6aaf0f8b7c25c233 100644 (file)
@@ -23,6 +23,7 @@ L4_INLINE
 int
 l4vcpu_is_irq_entry(l4_vcpu_state_t *vcpu) L4_NOTHROW
 {
+  (void)vcpu;
   return 0; // TBD
 }
 
@@ -30,5 +31,6 @@ L4_INLINE
 int
 l4vcpu_is_page_fault_entry(l4_vcpu_state_t *vcpu) L4_NOTHROW
 {
+  (void)vcpu;
   return 0; // TBD
 }
index d6f8898d79898b2995465f5f4ee61793a25a9440..b2fc8455d33c2400052fc82532a74da50d99967e 100644 (file)
@@ -8,5 +8,8 @@ __BEGIN_DECLS
 
 l4_cap_idx_t pthread_getl4cap(pthread_t t);
 void pthread_l4_for_each_thread(void (*fn)(pthread_t));
+// This is a rather temporary solution, it will go away when UTCBs can be
+// freely placed.
+l4_utcb_t *pthread_l4_reserve_consecutive_utcbs(unsigned num);
 
 __END_DECLS
index 95e2a17150f504c45f9fdd30abba57e74ae905ad..b45d18fcb0b59abbec53396dab288307ec0bd060 100644 (file)
@@ -87,7 +87,8 @@ typedef l4_utcb_t *pthread_handle;
 
 enum pthread_request_rq {                        /* Request kind */
     REQ_CREATE, REQ_FREE, REQ_PROCESS_EXIT, REQ_MAIN_THREAD_EXIT,
-    REQ_POST, REQ_DEBUG, REQ_KICK, REQ_FOR_EACH_THREAD
+    REQ_POST, REQ_DEBUG, REQ_KICK, REQ_FOR_EACH_THREAD,
+    REQ_L4_RESERVE_CONSECUTIVE_UTCBS
 };
 
 struct pthread_request {
@@ -110,6 +111,12 @@ struct pthread_request {
       void (*fn)(void *, pthread_descr);
       void *arg;
     } for_each;
+#ifndef L4_SPECIFIC
+    struct {
+      unsigned num;
+      l4_utcb_t **retutcbp;
+    } l4_reserve_consecutive_utcbs;
+#endif
   } req_args;
 };
 
@@ -117,6 +124,8 @@ struct pthread_request {
 /* First free thread */
 extern l4_utcb_t *__pthread_first_free_handle attribute_hidden;
 
+l4_utcb_t *pthread_mgr_l4_reserve_consecutive_utcbs(unsigned num);
+
 /* Descriptor of the main thread */
 
 extern pthread_descr __pthread_main_thread;
index db06e619f74d2c3c47ec379229c0e0c193c2c984..e2b9c35b86a312eb24912e1682265bda8790a974 100644 (file)
@@ -56,6 +56,62 @@ void pthread_l4_for_each_thread(void (*fn)(pthread_t))
   __pthread_send_manager_rq(&request, 1);
 }
 
+// This is a rather temporary solution, it will go away when UTCBs can be
+// freely placed.
+l4_utcb_t *pthread_mgr_l4_reserve_consecutive_utcbs(unsigned num)
+{
+  l4_utcb_t *i = __pthread_first_free_handle;
+  l4_utcb_t *prev = 0;
+
+  while (i)
+    {
+      l4_utcb_t *s = (l4_utcb_t*)l4_utcb_tcr_u(i)->user[0];
+      unsigned cnt = 1;
+
+      while (   s
+             && cnt < num
+             && (unsigned long)i + cnt * L4_UTCB_OFFSET == (unsigned long)s)
+        {
+          s = (l4_utcb_t*)l4_utcb_tcr_u(s)->user[0];
+          cnt++;
+        }
+
+      if (cnt == num)
+        {
+          if (prev)
+            l4_utcb_tcr_u(s)->user[0] = l4_utcb_tcr_u(s)->user[0];
+          else
+            __pthread_first_free_handle = (l4_utcb_t*)l4_utcb_tcr_u(s)->user[0];
+
+          return i;
+        }
+
+      prev = i;
+      i = s;
+    }
+
+  return 0;
+}
+
+l4_utcb_t *pthread_l4_reserve_consecutive_utcbs(unsigned num)
+{
+  if (l4_is_invalid_cap(__pthread_manager_request))
+    return pthread_mgr_l4_reserve_consecutive_utcbs(num);
+
+  struct pthread_request request;
+
+  request.req_thread = thread_self();
+  request.req_kind = REQ_L4_RESERVE_CONSECUTIVE_UTCBS;
+  request.req_args.l4_reserve_consecutive_utcbs.num = num;
+
+  l4_utcb_t *u;
+  request.req_args.l4_reserve_consecutive_utcbs.retutcbp = &u;
+
+  __pthread_send_manager_rq(&request, 1);
+
+  return u;
+}
+
 int __pthread_l4_initialize_main_thread(pthread_descr th)
 {
   L4Re::Env *env = const_cast<L4Re::Env*>(L4Re::Env::env());
index 7931f146ff7f19758d67dd08340d6037b30b269d..95f7651416ebd9ef5f778164057defac2814cb5b 100644 (file)
@@ -198,6 +198,11 @@ __pthread_manager(void *arg)
           restart(request.req_thread);
          do_reply = 1;
          break;
+        case REQ_L4_RESERVE_CONSECUTIVE_UTCBS:
+          *request.req_args.l4_reserve_consecutive_utcbs.retutcbp
+             = pthread_mgr_l4_reserve_consecutive_utcbs(request.req_args.l4_reserve_consecutive_utcbs.num);
+         do_reply = 1;
+          break;
        }
       tag = l4_msgtag(0, 0, 0, L4_MSGTAG_SCHEDULE);
     }
@@ -435,14 +440,6 @@ static int pthread_allocate_stack(const pthread_attr_t *attr,
   return 0;
 }
 
-static inline
-l4_utcb_t *__pthread_utcb_for_thread(int nr)
-{
-  using namespace L4Re;
-  Env const *e = Env::env();
-  return (l4_utcb_t*)((char *)e->first_free_utcb() + nr * L4_UTCB_OFFSET);
-}
-
 static inline
 int __pthread_mgr_create_thread(pthread_descr thread, char **tos,
                                 int (*f)(void*), int prio)
@@ -524,7 +521,7 @@ int __pthread_start_manager(pthread_descr mgr)
   int err;
 
   mgr->p_tid = mgr_alloc_utcb();
-  
+
   err = __pthread_mgr_create_thread(mgr, &__pthread_manager_thread_tos,
                                     __pthread_manager, -1);
   if (err < 0)
@@ -585,6 +582,9 @@ static int pthread_handle_create(pthread_t *thread, const pthread_attr_t *attr,
     }
 
   l4_utcb_t *new_utcb = mgr_alloc_utcb();
+  if (!new_utcb)
+    return EAGAIN;
+
   new_thread_id = new_utcb;
 
   if (pthread_allocate_stack(attr, thread_segment(sseg),
index 5e0b31720aa065556b2c8e4288935ea68af8cd05..00210abb94cfc13ddf0a882b1c3463712857dc9f 100644 (file)
@@ -40,7 +40,7 @@ DIRS          := libc/stdio libc/stdlib libc/stdlib/malloc libc/string \
                   libc/misc/locale libc/misc/elf \
                   libc/misc/time libc/pwd_grp libc/unistd libc/termios \
                   libc/misc/wctype libc/misc/wchar libc/misc/fnmatch \
-                  libc/misc/glob libc libcrypt \
+                  libc/misc/glob libc/misc/search libc libcrypt \
                   libc/signal $(SYSDEPS)/$(UCLIBC_ARCH) \
                   $(SYSDEPS)/common libm libm/$(UCLIBC_ARCH)
 
@@ -103,6 +103,27 @@ PRIVATE_INCDIR_ARCH-all/libc/string/wcsnlen.s.o = $(SRC_DIR)/../contrib/uclibc/l
 PRIVATE_INCDIR_ARCH-all/libc/string/wmemcpy.o   = $(SRC_DIR)/../contrib/uclibc/libc/string
 PRIVATE_INCDIR_ARCH-all/libc/string/wmemcpy.s.o = $(SRC_DIR)/../contrib/uclibc/libc/string
 
+PRIVATE_INCDIR_ARCH-all/libc/misc/search/hcreate_r.o    = $(SRC_DIR)/../contrib/uclibc/libc/misc/search
+PRIVATE_INCDIR_ARCH-all/libc/misc/search/hcreate_r.s.o  = $(SRC_DIR)/../contrib/uclibc/libc/misc/search
+PRIVATE_INCDIR_ARCH-all/libc/misc/search/hdestroy_r.o   = $(SRC_DIR)/../contrib/uclibc/libc/misc/search
+PRIVATE_INCDIR_ARCH-all/libc/misc/search/hdestroy_r.s.o = $(SRC_DIR)/../contrib/uclibc/libc/misc/search
+PRIVATE_INCDIR_ARCH-all/libc/misc/search/hsearch_r.o    = $(SRC_DIR)/../contrib/uclibc/libc/misc/search
+PRIVATE_INCDIR_ARCH-all/libc/misc/search/hsearch_r.s.o  = $(SRC_DIR)/../contrib/uclibc/libc/misc/search
+PRIVATE_INCDIR_ARCH-all/libc/misc/search/lfind.o        = $(SRC_DIR)/../contrib/uclibc/libc/misc/search
+PRIVATE_INCDIR_ARCH-all/libc/misc/search/lfind.s.o      = $(SRC_DIR)/../contrib/uclibc/libc/misc/search
+PRIVATE_INCDIR_ARCH-all/libc/misc/search/tfind.o        = $(SRC_DIR)/../contrib/uclibc/libc/misc/search
+PRIVATE_INCDIR_ARCH-all/libc/misc/search/tfind.s.o      = $(SRC_DIR)/../contrib/uclibc/libc/misc/search
+PRIVATE_INCDIR_ARCH-all/libc/misc/search/lsearch.o      = $(SRC_DIR)/../contrib/uclibc/libc/misc/search
+PRIVATE_INCDIR_ARCH-all/libc/misc/search/lsearch.s.o    = $(SRC_DIR)/../contrib/uclibc/libc/misc/search
+PRIVATE_INCDIR_ARCH-all/libc/misc/search/tdestroy.o     = $(SRC_DIR)/../contrib/uclibc/libc/misc/search
+PRIVATE_INCDIR_ARCH-all/libc/misc/search/tdestroy.s.o   = $(SRC_DIR)/../contrib/uclibc/libc/misc/search
+PRIVATE_INCDIR_ARCH-all/libc/misc/search/tdelete.o      = $(SRC_DIR)/../contrib/uclibc/libc/misc/search
+PRIVATE_INCDIR_ARCH-all/libc/misc/search/tdelete.s.o    = $(SRC_DIR)/../contrib/uclibc/libc/misc/search
+PRIVATE_INCDIR_ARCH-all/libc/misc/search/tsearch.o      = $(SRC_DIR)/../contrib/uclibc/libc/misc/search
+PRIVATE_INCDIR_ARCH-all/libc/misc/search/tsearch.s.o    = $(SRC_DIR)/../contrib/uclibc/libc/misc/search
+PRIVATE_INCDIR_ARCH-all/libc/misc/search/twalk.o        = $(SRC_DIR)/../contrib/uclibc/libc/misc/search
+PRIVATE_INCDIR_ARCH-all/libc/misc/search/twalk.s.o      = $(SRC_DIR)/../contrib/uclibc/libc/misc/search
+
 ifneq ($(L4API),)
 DEFINES                    += -DL4_THREAD_SAFE
 LDFLAGS_r/libuc_c.so := $(LDFLAGS_libuc_c.so)
index b39acd9892b6edc0c5ef6e0cb747219e6f8088e2..6bb6f93460a5c81fd13bbf3cceb803ac0e87cd6e 100644 (file)
@@ -448,6 +448,20 @@ libc/misc/locale/locale.c
 libc/misc/locale/localeconv.c
 libc/misc/locale/nl_langinfo.c
 libc/misc/locale/setlocale.c
+libc/misc/search/hcreate_r.c
+libc/misc/search/hdestroy_r.c
+libc/misc/search/hsearch.c
+libc/misc/search/hsearch_r.c
+libc/misc/search/insque.c
+libc/misc/search/insremque.c
+libc/misc/search/lfind.c
+libc/misc/search/lsearch.c
+libc/misc/search/remque.c
+libc/misc/search/tdelete.c
+libc/misc/search/tdestroy.c
+libc/misc/search/tfind.c
+libc/misc/search/tsearch.c
+libc/misc/search/twalk.c
 libc/misc/time/time.c
 libc/misc/time/asctime.c
 libc/misc/time/asctime_r.c