[uclibc-ng-devel] uClibc-ng - small C library for embedded systems branch upstream updated. c78cc48514723c9182a4fb5baa35bd59b8485cc7

wbx wbx at helium.waldemar-brodkorb.de
Wed Apr 15 19:27:41 CEST 2015


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "uClibc-ng - small C library for embedded systems".

The branch, upstream has been updated
       via  c78cc48514723c9182a4fb5baa35bd59b8485cc7 (commit)
       via  03cc2041fc21889ca2256d0f1de76683bed4e94e (commit)
       via  efc26521e8c8cda6430efe9a8ed1b73896b655b5 (commit)
       via  a8cf23486eef67c359c295e8da3cb39cadf87f79 (commit)
       via  a68d786f309fa1ac5478b5b60d5b6fa0b5de7b7c (commit)
       via  19c4bf396ead620a84051102e7f0914200fcc5e0 (commit)
       via  04cd09eb3a4856e9dc31112170290e3baa3bf9fb (commit)
       via  1df50b08dfe4133d306156483a224f5a478f7dff (commit)
       via  f820f4ce071ae0985d84e09ea74dc42d55081e86 (commit)
      from  cf0234de47b019ac24e2d361d6386fdfad48f119 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit c78cc48514723c9182a4fb5baa35bd59b8485cc7
Author: Bernhard Reutner-Fischer <rep.dot.nop at gmail.com>
Date:   Tue Apr 14 23:58:41 2015 +0200

    arm: thumb1: Fix conflicting types for _v3
    
    In file included from ./include/sys/syscall.h:33:0,
                     from libc/sysdeps/linux/common/sync_file_range.c:10:
    libc/sysdeps/linux/common/sync_file_range.c: In function '__sync_file_range_nocancel':
    ./include/bits/syscalls.h:144:16: error: conflicting types for '_v3'
       register int _v3 __asm__ ("v3") = _v3tmp;
                    ^
    ./libc/sysdeps/linux/arm/sysdep.h:281:7: note: in expansion of macro 'LOAD_ARGS_7'
           LOAD_ARGS_##nr (args)     \
           ^
    ./libc/sysdeps/linux/arm/sysdep.h:324:2: note: in expansion of macro 'INTERNAL_SYSCALL_RAW'
      INTERNAL_SYSCALL_RAW(SYS_ify(name), err, nr, args)
      ^
    ./libc/sysdeps/linux/arm/sysdep.h:256:40: note: in expansion of macro 'INTERNAL_SYSCALL'
       ({ unsigned int _inline_sys_result = INTERNAL_SYSCALL (name, , nr, args); \
                                            ^
    libc/sysdeps/linux/common/sync_file_range.c:32:9: note: in expansion of macro 'INLINE_SYSCALL'
      return INLINE_SYSCALL(sync_file_range, 7, fd, 0,
             ^
    In file included from ./libpthread/nptl/sysdeps/unix/sysv/linux/arm/sysdep-cancel.h:18:0,
                     from ./include/cancel.h:58,
                     from libc/sysdeps/linux/common/sync_file_range.c:15:
    ./libc/sysdeps/linux/arm/sysdep.h:280:21: note: previous definition of '_v3' was here
           register int *_v3 __asm__ ("v3") = _sys_buf;  \
    ...
    
    Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop at gmail.com>

commit 03cc2041fc21889ca2256d0f1de76683bed4e94e
Author: Bernhard Reutner-Fischer <rep.dot.nop at gmail.com>
Date:   Tue Apr 14 23:58:41 2015 +0200

    librt: Add missing __dso_handle
    
    Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop at gmail.com>

commit efc26521e8c8cda6430efe9a8ed1b73896b655b5
Author: Bernhard Reutner-Fischer <rep.dot.nop at gmail.com>
Date:   Tue Apr 14 23:58:41 2015 +0200

    librt: Refine LIBS
    
    Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop at gmail.com>

commit a8cf23486eef67c359c295e8da3cb39cadf87f79
Author: Bernhard Reutner-Fischer <rep.dot.nop at gmail.com>
Date:   Tue Apr 14 23:58:41 2015 +0200

    librt: honour HAS_STUBS in buildsys
    
    Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop at gmail.com>

commit a68d786f309fa1ac5478b5b60d5b6fa0b5de7b7c
Author: Bernhard Reutner-Fischer <rep.dot.nop at gmail.com>
Date:   Tue Apr 14 23:58:41 2015 +0200

    include/: ignore sys/random.h symlink
    
    Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop at gmail.com>

commit 19c4bf396ead620a84051102e7f0914200fcc5e0
Author: Bernhard Reutner-Fischer <rep.dot.nop at gmail.com>
Date:   Tue Apr 14 23:58:41 2015 +0200

    librt: Rephrase librt.so library dependencies
    
    Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop at gmail.com>

commit 04cd09eb3a4856e9dc31112170290e3baa3bf9fb
Author: Bernhard Reutner-Fischer <rep.dot.nop at gmail.com>
Date:   Tue Apr 14 23:58:41 2015 +0200

    librt: Fix librt.so depends for !NPTL
    
    Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop at gmail.com>

commit 1df50b08dfe4133d306156483a224f5a478f7dff
Author: Bernhard Reutner-Fischer <rep.dot.nop at gmail.com>
Date:   Tue Apr 14 23:58:41 2015 +0200

    prelink: handle _begin in a gold-agnostic way
    
    The nostartfiles is redundant but better be safe
    
    Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop at gmail.com>

commit f820f4ce071ae0985d84e09ea74dc42d55081e86
Author: Bernhard Reutner-Fischer <rep.dot.nop at gmail.com>
Date:   Tue Apr 14 23:58:41 2015 +0200

    buildsys: pass -O to ld unless DODEBUG
    
    Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop at gmail.com>

-----------------------------------------------------------------------

Summary of changes:
 Makerules                              |   13 ++-----------
 Rules.mak                              |    7 ++++++-
 include/.gitignore                     |    1 +
 ldso/ldso/Makefile.in                  |   13 ++++---------
 libc/sysdeps/linux/arm/bits/syscalls.h |   24 ++++++++++++------------
 librt/Makefile.in                      |   19 ++++++++++++-------
 librt/dso_handle.c                     |    5 +++++
 7 files changed, 42 insertions(+), 40 deletions(-)
 create mode 100644 librt/dso_handle.c

diff --git a/Makerules b/Makerules
index 10dc529..dd19cea 100644
--- a/Makerules
+++ b/Makerules
@@ -326,22 +326,13 @@ endef
 cmd_hcompile.u = $(HOSTCC) $(filter-out $(PHONY),$^) $(DEPS-$(notdir $@)) -o $@ $(BUILD_LDFLAGS) $(BUILD_LDFLAGS-$(notdir $(^D))) $(BUILD_LDFLAGS-$(notdir $@)) $(BUILD_CFLAGS) $(BUILD_CFLAGS-$(notdir $(^D))) $(BUILD_CFLAGS-$(notdir $@))
 cmd_hcompile.o = $(HOSTCC) $(filter-out $(PHONY),$<) $(DEPS-$(notdir $@)) -c -o $@ $(BUILD_CFLAGS) $(BUILD_CFLAGS-$(notdir $(^D))) $(BUILD_CFLAGS-$(notdir $@))
 
-define create-lds
-	$(Q)$(RM) $@.lds
-	$(Q)$(CC) $(LDFLAG-fuse-ld) $(CPU_LDFLAGS-y) \
-	-nostdlib -nostartfiles -shared -Wl,-z,combreloc \
-	-Wl,-z,relro $(CFLAG_-Wl--hash-style=gnu) -Wl,-z,defs \
-	-x c /dev/null -Wl,--verbose 2>&1 | LC_ALL=C \
-	$(SED) -e '/^=========/,/^=========/!d;/^=========/d' \
-	-e 's/^\([ 	]*\)\. = .* + SIZEOF_HEADERS;/&\n\1$(SYMBOL_PREFIX)_begin = . - SIZEOF_HEADERS;/' > $@.lds
-endef
-
 define link.so
 	$(Q)$(RM) $@ $@.$(2) $(dir $@)$(1)
 	@$(disp_ld)
 	$(Q)$(CC) $(LDFLAGS-$(notdir $@)) $(LDFLAGS-y-$(@F)) \
 		-Wl,-soname=$(notdir $@).$(2) \
-		$(CFLAG_-nostdlib) -o $(dir $@)$(1) $(START_FILE-$(notdir $@)) \
+		$(CFLAG_-nostdlib) $(CFLAG_-nostartfiles) \
+		-o $(dir $@)$(1) $(START_FILE-$(notdir $@)) \
 		-Wl,--whole-archive $(firstword $^) -Wl,--no-whole-archive \
 		$(LIBS-$(notdir $@)) $(LIBGCC) $(END_FILE-$(notdir $@))
 	$(Q)$(LN) -sf $(1) $@.$(2)
diff --git a/Rules.mak b/Rules.mak
index c68153e..71ceb90 100644
--- a/Rules.mak
+++ b/Rules.mak
@@ -255,6 +255,7 @@ ARFLAGS:=cr
 
 # Note: The check for -nostdlib has to be before all calls to check_ld
 $(eval $(call check-gcc-var,-nostdlib))
+$(eval $(call check-gcc-var,-nostartfiles))
 # deliberately not named CFLAG-fuse-ld since unchecked and from user
 LDFLAG-fuse-ld := $(filter -fuse-ld=%,$(call qstrip,$(UCLIBC_EXTRA_CFLAGS)))
 # failed to merge target specific data of file /dev/null
@@ -687,14 +688,18 @@ LDFLAGS_NOSTRIP += $(CFLAG_-Wl--hash-style=gnu)
 endif
 endif
 
-LDFLAGS:=$(LDFLAGS_NOSTRIP) -Wl,-z,defs
 ifeq ($(DODEBUG),y)
 CFLAGS += -O0 -g3 -DDEBUG
 else
 CFLAGS += $(OPTIMIZATION)
 CFLAGS += $(OPTIMIZATION-$(GCC_MAJOR_VER))
 CFLAGS += $(OPTIMIZATION-$(GCC_MAJOR_VER).$(GCC_MINOR_VER))
+$(eval $(call check-ld-var,-O2))
+LDFLAGS_NOSTRIP += $(CFLAG_-Wl-O2)
 endif
+
+LDFLAGS:=$(LDFLAGS_NOSTRIP) -Wl,-z,defs
+
 ifeq ($(DOSTRIP),y)
 LDFLAGS += -Wl,-s
 else
diff --git a/include/.gitignore b/include/.gitignore
index 636f8ee..8f86c4c 100644
--- a/include/.gitignore
+++ b/include/.gitignore
@@ -38,6 +38,7 @@
 /sys/prctl.h
 /sys/procfs.h
 /sys/ptrace.h
+/sys/random.h
 /sys/reg.h
 /sys/regdef.h
 /sys/signalfd.h
diff --git a/ldso/ldso/Makefile.in b/ldso/ldso/Makefile.in
index 8152642..9b04d61 100644
--- a/ldso/ldso/Makefile.in
+++ b/ldso/ldso/Makefile.in
@@ -33,10 +33,13 @@ LDFLAGS-$(UCLIBC_LDSO_NAME).so := $(LDFLAGS)
 else
 LDFLAGS-$(UCLIBC_LDSO_NAME).so := $(LDFLAGS_NOSTRIP) -Wl,-z,defs
 endif
-LDFLAGS-$(UCLIBC_LDSO_NAME).so += -Wl,-e,$(SYMBOL_PREFIX)_start -Wl,-z,now -Wl,-Bsymbolic \
+LDFLAGS-$(UCLIBC_LDSO_NAME).so += -Wl,-e,$(SYMBOL_PREFIX)_start \
+	-Wl,-z,now -Wl,-Bsymbolic \
 	-Wl,--export-dynamic $(CFLAG_-Wl--sort-common) -Wl,--discard-locals \
 	$(CFLAG_-Wl--discard-all) -Wl,--no-undefined
 
+LDFLAGS-$(LDSO_PRELINK_SUPPORT)-$(UCLIBC_LDSO_NAME).so += -Wl,-defsym=$(SYMBOL_PREFIX)_begin=0
+
 ldso_FULL_NAME := $(UCLIBC_LDSO_NAME)-$(VERSION).so
 
 $(UCLIBC_LDSO_NAME)_DIR := $(top_srcdir)ldso/ldso
@@ -62,17 +65,9 @@ ldso-y := $($(UCLIBC_LDSO_NAME)_OBJS:.o=.oS)
 lib-so-y += $(ldso)
 objclean-y += CLEAN_ldso/ldso
 
-ifeq ($(LDSO_PRELINK_SUPPORT),y)
-# Use a specific linker script for ld.so
-LDFLAGS-$(UCLIBC_LDSO_NAME).so += -T $(ldso:.$(ABI_VERSION)=).lds
-endif
-
 $(ldso): $(ldso:.$(ABI_VERSION)=)
 $(ldso:.$(ABI_VERSION)=): | $(top_builddir)lib
 $(ldso:.$(ABI_VERSION)=): $($(UCLIBC_LDSO_NAME)_OUT)/$(UCLIBC_LDSO_NAME)_so.a
-ifeq ($(LDSO_PRELINK_SUPPORT),y)
-	$(call create-lds)
-endif
 	$(call link.so,$(ldso_FULL_NAME),$(ABI_VERSION))
 
 $($(UCLIBC_LDSO_NAME)_OUT)/$(UCLIBC_LDSO_NAME)_so.a: $(ldso-y)
diff --git a/libc/sysdeps/linux/arm/bits/syscalls.h b/libc/sysdeps/linux/arm/bits/syscalls.h
index 6b747d9..5544ca6 100644
--- a/libc/sysdeps/linux/arm/bits/syscalls.h
+++ b/libc/sysdeps/linux/arm/bits/syscalls.h
@@ -87,15 +87,15 @@
     {									\
       int _sys_buf[2];							\
       register int __a1 __asm__ ("a1");					\
-      register int *_v3 __asm__ ("v3") = _sys_buf;			\
-      *_v3 = (int) (name);						\
+      register int *__v3 __asm__ ("v3") = _sys_buf;			\
+      *__v3 = (int) (name);						\
       LOAD_ARGS_##nr (args)						\
       __asm__ __volatile__ ("str	r7, [v3, #4]\n"			\
 		    "\tldr	r7, [v3]\n"				\
 		    "\tswi	0	@ syscall " #name "\n"		\
 		    "\tldr	r7, [v3, #4]"				\
 		    : "=r" (__a1)					\
-		    : "r" (_v3) ASM_ARGS_##nr				\
+		    : "r" (__v3) ASM_ARGS_##nr				\
                     : "memory");					\
 	__internal_sys_result = __a1;					\
     }									\
@@ -129,20 +129,20 @@
   register int __a4 __asm__ ("a4") = __a4tmp;
 #define ASM_ARGS_4	ASM_ARGS_3, "r" (__a4)
 #define LOAD_ARGS_5(a1, a2, a3, a4, a5)		\
-  int _v1tmp = (int) (a5);			\
+  int __v1tmp = (int) (a5);			\
   LOAD_ARGS_4 (a1, a2, a3, a4)			\
-  register int _v1 __asm__ ("v1") = _v1tmp;
-#define ASM_ARGS_5	ASM_ARGS_4, "r" (_v1)
+  register int __v1 __asm__ ("v1") = __v1tmp;
+#define ASM_ARGS_5	ASM_ARGS_4, "r" (__v1)
 #define LOAD_ARGS_6(a1, a2, a3, a4, a5, a6)	\
-  int _v2tmp = (int) (a6);			\
+  int __v2tmp = (int) (a6);			\
   LOAD_ARGS_5 (a1, a2, a3, a4, a5)		\
-  register int _v2 __asm__ ("v2") = _v2tmp;
-#define ASM_ARGS_6	ASM_ARGS_5, "r" (_v2)
+  register int __v2 __asm__ ("v2") = __v2tmp;
+#define ASM_ARGS_6	ASM_ARGS_5, "r" (__v2)
 #define LOAD_ARGS_7(a1, a2, a3, a4, a5, a6, a7)	\
-  int _v3tmp = (int) (a7);			\
+  int __v3tmp = (int) (a7);			\
   LOAD_ARGS_6 (a1, a2, a3, a4, a5, a6)		\
-  register int _v3 __asm__ ("v3") = _v3tmp;
-#define ASM_ARGS_7	ASM_ARGS_6, "r" (_v3)
+  register int __v3 __asm__ ("v3") = __v3tmp;
+#define ASM_ARGS_7	ASM_ARGS_6, "r" (__v3)
 
 
 #endif /* __ASSEMBLER__ */
diff --git a/librt/Makefile.in b/librt/Makefile.in
index a246d00..1536a5c 100644
--- a/librt/Makefile.in
+++ b/librt/Makefile.in
@@ -13,7 +13,8 @@ LDFLAGS-$(UCLIBC_FORMAT_DSBT_ELF)-librt.so := -Wl,--dsbt-index=9
 LDFLAGS-librt.so := $(LDFLAGS)
 LIBS-librt.so := $(LIBS)
 ifeq ($(UCLIBC_HAS_THREADS_NATIVE),y)
-LIBS-librt.so += $(top_builddir)lib/libdl.so $(top_builddir)lib/libpthread.so
+LIBS-librt.so += $(top_builddir)lib/libpthread.so \
+	$(CC_FLAG_ASNEEDED) $(top_builddir)lib/libdl.so $(CC_FLAG_NO_ASNEEDED)
 endif
 
 librt_FULL_NAME := librt-$(VERSION).so
@@ -21,8 +22,6 @@ librt_FULL_NAME := librt-$(VERSION).so
 librt_DIR := $(top_srcdir)librt
 librt_OUT := $(top_builddir)librt
 
-ifeq ($(UCLIBC_HAS_REALTIME),y)
-
 librt_SRC := $(notdir $(wildcard $(librt_DIR)/*.c))
 librt_filter_SRC :=
 ifeq ($(UCLIBC_HAS_THREADS_NATIVE),y)
@@ -42,8 +41,10 @@ librt_filter_SRC += $(if $(UCLIBC_HAS_ADVANCED_REALTIME),, \
 	spawn_faction_addopen.c \
 	spawn_faction_init.c)
 
-librt_SRC := $(filter-out $(librt_filter_SRC),$(librt_SRC))
+librt_filter_SRC += $(if $(UCLIBC_HAS_STUBS),,rt_stubs.c)
+librt_filter_SRC += $(if $(HAS_NO_THREADS),dso_handle.c)
 
+librt_SRC := $(filter-out $(librt_filter_SRC),$(librt_SRC))
 librt_OBJ := $(patsubst %.c,$(librt_OUT)/%.o,$(librt_SRC))
 librt_OBJ += $(patsubst $(librt_DIR)/%.S,$(librt_OUT)/%.o,$(librt_SSRC))
 
@@ -57,15 +58,19 @@ librt-a-y += $(librt_OBJ)
 endif
 librt-so-y += $(librt_OBJ:.o=.oS)
 
+ifeq ($(UCLIBC_HAS_REALTIME),y)
 lib-a-y += $(top_builddir)lib/librt.a
 lib-so-y += $(top_builddir)lib/librt.so
 endif
 
+librt-dep-y := $(libc.depend)
+librt-dep-$(UCLIBC_HAS_THREADS_NATIVE) += $(libpthread.depend) $(libdl.depend)
 
-ifeq ($(DOPIC)$(UCLIBC_HAS_THREADS_NATIVE),yn)
-$(top_builddir)lib/librt.so: $(top_builddir)lib/librt.a $(libc.depend)
+# for NPTL we need SHARED regardless of DOPIC
+ifeq ($(if $(UCLIBC_HAS_THREADS_NATIVE),,$(DOPIC)),y)
+$(top_builddir)lib/librt.so: $(top_builddir)lib/librt.a $(librt-dep-y)
 else
-$(top_builddir)lib/librt.so: $(librt_OUT)/librt_so.a $(libc.depend) $(libpthread.depend) $(libdl.depend)
+$(top_builddir)lib/librt.so: $(librt_OUT)/librt_so.a $(librt-dep-y)
 endif
 	$(call link.so,$(librt_FULL_NAME),$(ABI_VERSION))
 
diff --git a/librt/dso_handle.c b/librt/dso_handle.c
new file mode 100644
index 0000000..6339071
--- /dev/null
+++ b/librt/dso_handle.c
@@ -0,0 +1,5 @@
+/* Copyright (C) 2015 Bernhard Reutner-Fischer
+ * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
+ */
+
+const void *const __dso_handle attribute_hidden = &__dso_handle;


hooks/post-receive
-- 
uClibc-ng - small C library for embedded systems


More information about the devel mailing list