diff options
| -rw-r--r-- | Makefile.in | 2 | ||||
| -rw-r--r-- | Makerules | 4 | ||||
| -rw-r--r-- | extra/Configs/Config.in | 24 | ||||
| -rw-r--r-- | extra/Configs/Config.in.arch | 47 | ||||
| -rw-r--r-- | libc/misc/internals/Makefile.in | 2 | ||||
| -rw-r--r-- | libc/misc/internals/__uClibc_main.c | 16 | ||||
| -rw-r--r-- | libc/sysdeps/linux/m68k/crt1.S | 4 | ||||
| -rw-r--r-- | libc/sysdeps/linux/m68k/m68k_pic.S | 6 | 
8 files changed, 64 insertions, 41 deletions
diff --git a/Makefile.in b/Makefile.in index 4d98c1f8f..f6d3d24f1 100644 --- a/Makefile.in +++ b/Makefile.in @@ -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; \ @@ -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 diff --git a/extra/Configs/Config.in b/extra/Configs/Config.in index 9999b370e..b3d9250f0 100644 --- a/extra/Configs/Config.in +++ b/extra/Configs/Config.in @@ -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 diff --git a/extra/Configs/Config.in.arch b/extra/Configs/Config.in.arch index f5c31b276..b8e326723 100644 --- a/extra/Configs/Config.in.arch +++ b/extra/Configs/Config.in.arch @@ -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 diff --git a/libc/misc/internals/Makefile.in b/libc/misc/internals/Makefile.in index af97b39af..b9f970876 100644 --- a/libc/misc/internals/Makefile.in +++ b/libc/misc/internals/Makefile.in @@ -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 diff --git a/libc/misc/internals/__uClibc_main.c b/libc/misc/internals/__uClibc_main.c index a2fbf6c89..50f3c5cae 100644 --- a/libc/misc/internals/__uClibc_main.c +++ b/libc/misc/internals/__uClibc_main.c @@ -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; diff --git a/libc/sysdeps/linux/m68k/crt1.S b/libc/sysdeps/linux/m68k/crt1.S index a5f973fe2..a9cf00193 100644 --- a/libc/sysdeps/linux/m68k/crt1.S +++ b/libc/sysdeps/linux/m68k/crt1.S @@ -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 diff --git a/libc/sysdeps/linux/m68k/m68k_pic.S b/libc/sysdeps/linux/m68k/m68k_pic.S index e01e33b83..d41509ec3 100644 --- a/libc/sysdeps/linux/m68k/m68k_pic.S +++ b/libc/sysdeps/linux/m68k/m68k_pic.S @@ -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  | 
