OSDN Git Service

create new menu so people can select what format they wish to build uClibc
authorMike Frysinger <vapier@gentoo.org>
Mon, 11 Dec 2006 00:25:23 +0000 (00:25 -0000)
committerMike Frysinger <vapier@gentoo.org>
Mon, 11 Dec 2006 00:25:23 +0000 (00:25 -0000)
Makefile.in
Makerules
extra/Configs/Config.in
extra/Configs/Config.in.arch
libc/misc/internals/Makefile.in
libc/misc/internals/__uClibc_main.c
libc/sysdeps/linux/m68k/crt1.S
libc/sysdeps/linux/m68k/m68k_pic.S

index 4d98c1f..f6d3d24 100644 (file)
@@ -246,7 +246,7 @@ ifeq ($(DOPIC),y)
        fi
 endif
 endif
-ifeq ($(HAVE_SHARED_FLAT),y)
+ifeq ($(UCLIBC_FORMAT_SHARED_FLAT),y)
        for file in lib/lib*.gdb; do \
                if test -f $$file; then \
                        $(INSTALL) -m 755 $$file $(PREFIX)$(DEVEL_PREFIX)lib; \
index 44151d4..b4df69b 100644 (file)
--- a/Makerules
+++ b/Makerules
@@ -11,7 +11,7 @@ libs: $(lib-so-y) $(lib-a-y)
 $(lib-so-y): $(interp)
 else
 .LIBPATTERNS: "lib%.a"
-ifeq ($(HAVE_SHARED_FLAT),y)
+ifeq ($(UCLIBC_FORMAT_SHARED_FLAT),y)
 libs: $(lib-gdb-y)
 endif
 libs: $(lib-a-y)
@@ -207,7 +207,7 @@ $(headers_dep):
 
 CRT := crt1
 
-ifeq ($(HAVE_SHARED)$(HAVE_SHARED_FLAT),y)
+ifeq ($(HAVE_SHARED)$(UCLIBC_FORMAT_SHARED_FLAT),y)
 CRTS=$(top_builddir)lib/$(CRT).o $(top_builddir)lib/S$(CRT).o
 else
 CRTS=$(top_builddir)lib/$(CRT).o
index 9999b37..b3d9250 100644 (file)
@@ -196,30 +196,6 @@ config DOPIC
          If you wish to build all of uClibc as PIC objects, then answer Y here.
          If you are unsure, then you should answer N.
 
-config HAVE_SHARED_FLAT
-       bool "Generate a flat-format shared library"
-       default n
-       depends on !ARCH_USE_MMU
-       help
-         Answer Y here if you are using uClinux and wish to build uClibc
-         as a flat-format shared library.
-
-config SHARED_FLAT_ID
-       int "Shared library id"
-       default 1
-       depends on HAVE_SHARED_FLAT
-       help
-         When using flat shared libraries, every library has a unique
-         system-wide identifier.  Identifier 0 is reserved for
-         executables and true shared libraries have identifiers
-         starting at 1.  The maximum shared library identifier is
-         determined by the kernel and is usually 3.  Shared library
-         N must be available on the target system as "/lib/libN.so".
-
-         When a shared C library is used, it usually has identifier 1,
-         but you can use this option to select a different identifier
-         if you need to.
-
 config HAVE_NO_SHARED
        bool
        default n
index f5c31b2..b8e3267 100644 (file)
@@ -3,6 +3,53 @@
 # see extra/config/Kconfig-language.txt
 #
 
+
+#
+# Binary format
+#
+choice
+       prompt "Target File Format"
+config UCLIBC_FORMAT_ELF
+       bool "ELF"
+       depends on ARCH_USE_MMU
+config UCLIBC_FORMAT_FDPIC_ELF
+       bool "FDPIC ELF"
+       depends on !ARCH_USE_MMU
+config UCLIBC_FORMAT_FLAT
+       bool "STATIC FLAT"
+       depends on !ARCH_USE_MMU
+config UCLIBC_FORMAT_FLAT_SEP_DATA
+       bool "STATIC FLAT (sep-data)"
+       depends on !ARCH_USE_MMU
+config UCLIBC_FORMAT_SHARED_FLAT
+       bool "SHARED FLAT"
+       depends on !ARCH_USE_MMU
+       help
+         Pick this one if you are using uClinux and wish to build
+         uClibc as a flat-format shared library.
+endchoice
+
+config UCLIBC_SHARED_FLAT_ID
+       int "Shared library ID"
+       default 1
+       depends on UCLIBC_FORMAT_SHARED_FLAT
+       help
+         When using flat shared libraries, every library has a unique
+         system-wide identifier.  Identifier 0 is reserved for
+         executables and true shared libraries have identifiers
+         starting at 1.  The maximum shared library identifier is
+         determined by the kernel and is usually 3.  Shared library
+         N must be available on the target system as "/lib/libN.so".
+
+         When a shared C library is used, it usually has identifier 1,
+         but you can use this option to select a different identifier
+         if you need to.
+
+
+
+#
+# Endian Format
+#
 config ARCH_ANY_ENDIAN
        bool
 config ARCH_BIG_ENDIAN
index af97b39..b9f9708 100644 (file)
@@ -18,7 +18,7 @@ MISC_INTERNALS_OBJ := $(patsubst %.c,$(MISC_INTERNALS_OUT)/%.o,$(CSRC))
 libc-y += $(MISC_INTERNALS_OBJ)
 libc-shared-y += $(MISC_INTERNALS_OUT)/__uClibc_main.oS
 libc-static-y += $(MISC_INTERNALS_OUT)/__uClibc_main.o
-libc-static-$(HAVE_SHARED_FLAT) += \
+libc-static-$(UCLIBC_FORMAT_SHARED_FLAT) += \
   $(MISC_INTERNALS_OUT)/shared_flat_initfini.o \
   $(MISC_INTERNALS_OUT)/shared_flat_add_library.o
 libc-nomulti-y += $(MISC_INTERNALS_OUT)/__uClibc_main.o
index a2fbf6c..50f3c5c 100644 (file)
@@ -88,9 +88,9 @@ extern void weak_function _locale_init(void) attribute_hidden;
 extern void weak_function __pthread_initialize_minimal(void);
 #endif
 
-/* If __HAVE_SHARED_FLAT__, all array initialisation and finalisation
+/* If __UCLIBC_FORMAT_SHARED_FLAT__, all array initialisation and finalisation
  * is handled by the routines passed to __uClibc_main().  */
-#if defined (__UCLIBC_CTOR_DTOR__) && !defined (__HAVE_SHARED_FLAT__)
+#if defined (__UCLIBC_CTOR_DTOR__) && !defined (__UCLIBC_FORMAT_SHARED_FLAT__)
 extern void _dl_app_init_array(void);
 extern void _dl_app_fini_array(void);
 # ifndef SHARED
@@ -249,11 +249,11 @@ libc_hidden_proto(__uClibc_fini)
 void __uClibc_fini(void)
 {
 #ifdef __UCLIBC_CTOR_DTOR__
-    /* If __HAVE_SHARED_FLAT__, all array finalisation is handled
+    /* If __UCLIBC_FORMAT_SHARED_FLAT__, all array finalisation is handled
      * by __app_fini.  */
 # ifdef SHARED
     _dl_app_fini_array();
-# elif !defined (__HAVE_SHARED_FLAT__)
+# elif !defined (__UCLIBC_FORMAT_SHARED_FLAT__)
     size_t i = __fini_array_end - __fini_array_start;
     while (i-- > 0)
        (*__fini_array_start [i]) ();
@@ -352,9 +352,9 @@ void __uClibc_main(int (*main)(int, char **, char **), int argc,
     /* Arrange for the application's dtors to run before we exit.  */
     __app_fini = app_fini;
 
-    /* If __HAVE_SHARED_FLAT__, all array initialisation is handled
+    /* If __UCLIBC_FORMAT_SHARED_FLAT__, all array initialisation is handled
      * by __app_init.  */
-# if !defined (SHARED) && !defined (__HAVE_SHARED_FLAT__)
+# if !defined (SHARED) && !defined (__UCLIBC_FORMAT_SHARED_FLAT__)
     /* For dynamically linked executables the preinit array is executed by
        the dynamic linker (before initializing any shared object).
        For static executables, preinit happens rights before init.  */
@@ -369,11 +369,11 @@ void __uClibc_main(int (*main)(int, char **, char **), int argc,
     if (app_init!=NULL) {
        app_init();
     }
-    /* If __HAVE_SHARED_FLAT__, all array initialisation is handled
+    /* If __UCLIBC_FORMAT_SHARED_FLAT__, all array initialisation is handled
      * by __app_init.  */
 # ifdef SHARED
     _dl_app_init_array();
-# elif !defined (__HAVE_SHARED_FLAT__)
+# elif !defined (__UCLIBC_FORMAT_SHARED_FLAT__)
     {
        const size_t size = __init_array_end - __init_array_start;
        size_t i;
index a5f973f..a9cf001 100644 (file)
@@ -85,7 +85,7 @@ _start:
        .equ have_current_got, 1
 #endif
        
-#ifdef __HAVE_SHARED_FLAT__
+#ifdef __UCLIBC_FORMAT_SHARED_FLAT__
        CALL __shared_flat_add_library,%a1
 #endif
 
@@ -113,7 +113,7 @@ _start:
 
        /* Push the address of our own entry points to `.fini' and
           `.init'.  */
-#if defined __HAVE_SHARED_FLAT__
+#if defined __UCLIBC_FORMAT_SHARED_FLAT__
        PEA_TEXT __shared_flat_fini,%a1
        PEA_TEXT __shared_flat_init,%a1
 #else
index e01e33b..d41509e 100644 (file)
@@ -16,7 +16,7 @@
         * a text address.  <tmp> is available as a temporary address
         * register.  */
        .macro  DO_TEXT op,target,tmp
-#if defined __HAVE_SHARED_FLAT__
+#if defined __UCLIBC_FORMAT_SHARED_FLAT__
        .ifne   have_current_got
        move.l \target@GOT(%a5),\tmp
        .else
@@ -50,7 +50,7 @@
 
        /* Initialize the global pointer, if functions need to do that.  */
        .macro INIT_GP
-#if defined __HAVE_SHARED_FLAT__
+#if defined __UCLIBC_FORMAT_SHARED_FLAT__
        move.l  %a5,-(%sp)
        move.l _current_shared_library_a5_offset_(%a5),%a5
 #endif
@@ -58,7 +58,7 @@
 
        /* Undo the effects of INIT_GP.  */
        .macro FINI_GP
-#if defined __HAVE_SHARED_FLAT__
+#if defined __UCLIBC_FORMAT_SHARED_FLAT__
        move.l  (%sp)+,%a5
 #endif
        .endm