From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 20557 invoked by alias); 30 Mar 2013 14:28:55 -0000 Mailing-List: contact libc-ports-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: libc-ports-owner@sourceware.org Received: (qmail 20525 invoked by uid 89); 30 Mar 2013 14:28:44 -0000 X-Spam-SWARE-Status: No, score=-3.9 required=5.0 tests=AWL,BAYES_00,KHOP_RCVD_UNTRUST,RCVD_IN_DNSWL_LOW,RCVD_IN_HOSTKARMA_W,RCVD_IN_HOSTKARMA_WL,RCVD_IN_HOSTKARMA_YE autolearn=ham version=3.3.1 Received: from co1ehsobe003.messaging.microsoft.com (HELO co1outboundpool.messaging.microsoft.com) (216.32.180.186) by sourceware.org (qpsmtpd/0.84/v0.84-167-ge50287c) with ESMTP; Sat, 30 Mar 2013 14:28:40 +0000 Received: from mail190-co1-R.bigfish.com (10.243.78.231) by CO1EHSOBE014.bigfish.com (10.243.66.77) with Microsoft SMTP Server id 14.1.225.23; Sat, 30 Mar 2013 14:28:38 +0000 Received: from mail190-co1 (localhost [127.0.0.1]) by mail190-co1-R.bigfish.com (Postfix) with ESMTP id 3204B8C0076; Sat, 30 Mar 2013 14:28:38 +0000 (UTC) X-Forefront-Antispam-Report: CIP:149.199.60.83;KIP:(null);UIP:(null);IPV:NLI;H:xsj-gw1;RD:unknown-60-83.xilinx.com;EFVD:NLI X-SpamScore: -1 X-BigFish: VPS-1(zz936eI154dIzz1f42h1fc6h1ee6h1de0h1202h1e76h1d1ah1d2ahzz177df4h17326ah8275dhz2fh95h668h839hd24hf0ah119dh1288h12a5h12a9h12bdh12e5h137ah139eh13b6h1441h14ddh1504h1537h162dh1631h1758h1898h18e1h1946h19b5h1b0ah906i1155h) Received-SPF: pass (mail190-co1: domain of xilinx.com designates 149.199.60.83 as permitted sender) client-ip=149.199.60.83; envelope-from=david.holsgrove@xilinx.com; helo=xsj-gw1 ;helo=xsj-gw1 ; Received: from mail190-co1 (localhost.localdomain [127.0.0.1]) by mail190-co1 (MessageSwitch) id 1364653715977294_29577; Sat, 30 Mar 2013 14:28:35 +0000 (UTC) Received: from CO1EHSMHS029.bigfish.com (unknown [10.243.78.235]) by mail190-co1.bigfish.com (Postfix) with ESMTP id E2FD8B20049; Sat, 30 Mar 2013 14:28:35 +0000 (UTC) Received: from xsj-gw1 (149.199.60.83) by CO1EHSMHS029.bigfish.com (10.243.66.39) with Microsoft SMTP Server id 14.1.225.23; Sat, 30 Mar 2013 14:28:35 +0000 Received: from unknown-38-66.xilinx.com ([149.199.38.66] helo=xsj-smtp1.xilinx.com) by xsj-gw1 with esmtp (Exim 4.63) (envelope-from ) id 1ULwln-00012Y-F8; Sat, 30 Mar 2013 07:28:35 -0700 From: David Holsgrove To: CC: , , , , , , , Subject: [PATCH v2 0/2] Add MicroBlaze Port Date: Sat, 30 Mar 2013 14:28:00 -0000 X-RCIS-Action: ALLOW MIME-Version: 1.0 Content-Type: text/plain Message-ID: <58dc39eb-781a-47ee-a493-43ac9162f29d@CO1EHSMHS029.ehs.local> X-OriginatorOrg: xilinx.com X-SW-Source: 2013-03/txt/msg00164.txt.bz2 The following patches add support for the MicroBlaze architecture to libc ports. TLS support for MicroBlaze has been accepted into binutils, and gcc mainline as of 2 weeks ago (2013-03-14), and MicroBlaze has been present in the linux kernel since version 2.6.30. This glibc work has existed out of tree for several years, and is included in released MicroBlaze toolchains. The following patches have been revised in this v2 in response to Joseph Myers helpfully thorough review (http://sourceware.org/ml/libc-ports/2012-11/msg00139.html) and have been tested under the cross-test-ssh wrapper and through ltp. Joseph - I've left the linking with ld.so in the Makefile. I'm not familiar enough with the core Make infrastructure to suggest a method without risking breaking other ports (which currently link as I have for MicroBlaze). If this core change is required for MicroBlaze port to be added, I'd appreciate some pointers as to where to look. I did find that by making the following change to Makerules to stop reporting unresolved symbols in object files helped, but again, I'm not confident of the wider implications here; diff --git a/Makerules b/Makerules index d88bb62..4555edc 100644 --- a/Makerules +++ b/Makerules @@ -442,7 +442,7 @@ lib%.so: lib%_pic.a $(+preinit) $(+postinit) $(+interp) define build-shlib-helper $(LINK.o) -shared $(static-libgcc) -Wl,-O1 $(sysdep-LDFLAGS) \ - $(if $($(@F)-no-z-defs)$(no-z-defs),,-Wl,-z,defs) $(rtld-LDFLAGS) \ + $(rtld-LDFLAGS) \ $(extra-B-$(@F:lib%.so=%).so) -B$(csu-objpfx) \ $(extra-B-$(@F:lib%.so=%).so) $(load-map-file) \ -Wl,-soname=lib$(libprefix)$(@F:lib%.so=%).so$($(@F)-version) \ The first patch is to elf/elf.h and is sent to both libc-alpha and libc-ports mailing lists. The second adds the MicroBlaze architecture to ports, and is sent to libc-ports mailing list. Xilinx have a current FSF copyright assignment on file. thanks, David David Holsgrove (2): Adding MicroBlaze support to elf/elf.h MicroBlaze Port elf/elf.h | 32 + ports/ChangeLog.microblaze | 105 + ports/sysdeps/microblaze/Implies | 4 + ports/sysdeps/microblaze/Makefile | 26 + ports/sysdeps/microblaze/__longjmp.S | 55 + ports/sysdeps/microblaze/_mcount.S | 91 + ports/sysdeps/microblaze/abort-instr.h | 2 + ports/sysdeps/microblaze/asm-syntax.h | 24 + ports/sysdeps/microblaze/backtrace.c | 133 ++ ports/sysdeps/microblaze/backtrace_linux.c | 55 + ports/sysdeps/microblaze/bits/atomic.h | 269 +++ ports/sysdeps/microblaze/bits/endian.h | 30 + ports/sysdeps/microblaze/bits/fenv.h | 62 + ports/sysdeps/microblaze/bits/link.h | 55 + ports/sysdeps/microblaze/bits/setjmp.h | 37 + ports/sysdeps/microblaze/bsd-_setjmp.S | 22 + ports/sysdeps/microblaze/bsd-setjmp.S | 22 + ports/sysdeps/microblaze/configure | 4 + ports/sysdeps/microblaze/configure.in | 8 + ports/sysdeps/microblaze/crti.S | 72 + ports/sysdeps/microblaze/crtn.S | 37 + ports/sysdeps/microblaze/dl-machine.h | 302 +++ ports/sysdeps/microblaze/dl-tls.h | 29 + ports/sysdeps/microblaze/dl-trampoline.S | 109 + ports/sysdeps/microblaze/fegetround.c | 24 + ports/sysdeps/microblaze/fesetround.c | 25 + ports/sysdeps/microblaze/gccframe.h | 21 + ports/sysdeps/microblaze/jmpbuf-unwind.h | 46 + ports/sysdeps/microblaze/ldsodefs.h | 41 + ports/sysdeps/microblaze/libc-tls.c | 32 + ports/sysdeps/microblaze/libm-test-ulps | 1728 ++++++++++++++++ ports/sysdeps/microblaze/machine-gmon.h | 30 + ports/sysdeps/microblaze/math_private.h | 8 + ports/sysdeps/microblaze/memusage.h | 21 + ports/sysdeps/microblaze/nptl/Makefile | 21 + ports/sysdeps/microblaze/nptl/pthread_spin_lock.c | 24 + ports/sysdeps/microblaze/nptl/pthreaddef.h | 41 + ports/sysdeps/microblaze/nptl/tcb-offsets.sym | 11 + ports/sysdeps/microblaze/nptl/tls.h | 155 ++ ports/sysdeps/microblaze/preconfigure | 3 + ports/sysdeps/microblaze/setjmp.S | 75 + ports/sysdeps/microblaze/shlib-versions | 1 + ports/sysdeps/microblaze/sotruss-lib.c | 49 + ports/sysdeps/microblaze/stackinfo.h | 34 + ports/sysdeps/microblaze/start.S | 67 + ports/sysdeps/microblaze/sysdep.h | 91 + ports/sysdeps/microblaze/tls-macros.h | 44 + ports/sysdeps/microblaze/tst-audit.h | 25 + ports/sysdeps/unix/sysv/linux/microblaze/Makefile | 3 + ports/sysdeps/unix/sysv/linux/microblaze/Versions | 5 + .../unix/sysv/linux/microblaze/____longjmp_chk.S | 29 + .../unix/sysv/linux/microblaze/bits/fcntl.h | 86 + .../sysdeps/unix/sysv/linux/microblaze/bits/mman.h | 42 + .../sysdeps/unix/sysv/linux/microblaze/bits/stat.h | 203 ++ ports/sysdeps/unix/sysv/linux/microblaze/brk.c | 44 + ports/sysdeps/unix/sysv/linux/microblaze/clone.S | 70 + ports/sysdeps/unix/sysv/linux/microblaze/configure | 4 + .../unix/sysv/linux/microblaze/configure.in | 4 + ports/sysdeps/unix/sysv/linux/microblaze/fcntl.c | 1 + ports/sysdeps/unix/sysv/linux/microblaze/fxstat.c | 1 + .../sysdeps/unix/sysv/linux/microblaze/fxstatat.c | 1 + .../unix/sysv/linux/microblaze/getsysstats.c | 35 + .../unix/sysv/linux/microblaze/kernel-features.h | 30 + .../unix/sysv/linux/microblaze/kernel_stat.h | 49 + ports/sysdeps/unix/sysv/linux/microblaze/lxstat.c | 1 + ports/sysdeps/unix/sysv/linux/microblaze/mmap.S | 50 + ports/sysdeps/unix/sysv/linux/microblaze/msgctl.c | 1 + .../sysv/linux/microblaze/nptl/bits/pthreadtypes.h | 185 ++ .../sysv/linux/microblaze/nptl/bits/semaphore.h | 35 + .../unix/sysv/linux/microblaze/nptl/c++-types.data | 67 + .../unix/sysv/linux/microblaze/nptl/createthread.c | 23 + .../sysdeps/unix/sysv/linux/microblaze/nptl/fork.c | 29 + .../unix/sysv/linux/microblaze/nptl/ld.abilist | 12 + .../linux/microblaze/nptl/libBrokenLocale.abilist | 3 + .../unix/sysv/linux/microblaze/nptl/libanl.abilist | 6 + .../unix/sysv/linux/microblaze/nptl/libc.abilist | 2082 ++++++++++++++++++++ .../sysv/linux/microblaze/nptl/libcrypt.abilist | 9 + .../unix/sysv/linux/microblaze/nptl/libdl.abilist | 11 + .../unix/sysv/linux/microblaze/nptl/libm.abilist | 368 ++++ .../unix/sysv/linux/microblaze/nptl/libnsl.abilist | 123 ++ .../sysv/linux/microblaze/nptl/libpthread.abilist | 224 +++ .../sysv/linux/microblaze/nptl/libresolv.abilist | 93 + .../unix/sysv/linux/microblaze/nptl/librt.abilist | 42 + .../linux/microblaze/nptl/libthread_db.abilist | 42 + .../sysv/linux/microblaze/nptl/libutil.abilist | 8 + .../unix/sysv/linux/microblaze/nptl/localplt.data | 11 + .../unix/sysv/linux/microblaze/nptl/lowlevellock.c | 132 ++ .../unix/sysv/linux/microblaze/nptl/lowlevellock.h | 325 +++ .../unix/sysv/linux/microblaze/nptl/pt-vfork.S | 21 + .../unix/sysv/linux/microblaze/nptl/pthread_once.c | 90 + .../unix/sysv/linux/microblaze/nptl/vfork.S | 46 + .../unix/sysv/linux/microblaze/profil-counter.h | 20 + ports/sysdeps/unix/sysv/linux/microblaze/semctl.c | 1 + .../sysdeps/unix/sysv/linux/microblaze/setgroups.c | 1 + ports/sysdeps/unix/sysv/linux/microblaze/shmctl.c | 1 + .../unix/sysv/linux/microblaze/sigcontextinfo.h | 25 + ports/sysdeps/unix/sysv/linux/microblaze/socket.S | 126 ++ .../unix/sysv/linux/microblaze/sys/procfs.h | 123 ++ .../sysdeps/unix/sysv/linux/microblaze/sys/user.h | 77 + ports/sysdeps/unix/sysv/linux/microblaze/syscall.S | 37 + .../unix/sysv/linux/microblaze/syscalls.list | 18 + ports/sysdeps/unix/sysv/linux/microblaze/sysdep.S | 39 + ports/sysdeps/unix/sysv/linux/microblaze/sysdep.h | 306 +++ ports/sysdeps/unix/sysv/linux/microblaze/xstat.c | 1 + 104 files changed, 9623 insertions(+), 0 deletions(-) create mode 100644 ports/ChangeLog.microblaze create mode 100644 ports/sysdeps/microblaze/Implies create mode 100644 ports/sysdeps/microblaze/Makefile create mode 100644 ports/sysdeps/microblaze/__longjmp.S create mode 100644 ports/sysdeps/microblaze/_mcount.S create mode 100644 ports/sysdeps/microblaze/abort-instr.h create mode 100644 ports/sysdeps/microblaze/asm-syntax.h create mode 100644 ports/sysdeps/microblaze/backtrace.c create mode 100644 ports/sysdeps/microblaze/backtrace_linux.c create mode 100755 ports/sysdeps/microblaze/bits/atomic.h create mode 100644 ports/sysdeps/microblaze/bits/endian.h create mode 100644 ports/sysdeps/microblaze/bits/fenv.h create mode 100644 ports/sysdeps/microblaze/bits/link.h create mode 100644 ports/sysdeps/microblaze/bits/setjmp.h create mode 100644 ports/sysdeps/microblaze/bsd-_setjmp.S create mode 100644 ports/sysdeps/microblaze/bsd-setjmp.S create mode 100644 ports/sysdeps/microblaze/configure create mode 100644 ports/sysdeps/microblaze/configure.in create mode 100644 ports/sysdeps/microblaze/crti.S create mode 100644 ports/sysdeps/microblaze/crtn.S create mode 100644 ports/sysdeps/microblaze/dl-machine.h create mode 100644 ports/sysdeps/microblaze/dl-tls.h create mode 100644 ports/sysdeps/microblaze/dl-trampoline.S create mode 100644 ports/sysdeps/microblaze/fegetround.c create mode 100644 ports/sysdeps/microblaze/fesetround.c create mode 100644 ports/sysdeps/microblaze/gccframe.h create mode 100644 ports/sysdeps/microblaze/jmpbuf-unwind.h create mode 100644 ports/sysdeps/microblaze/ldsodefs.h create mode 100644 ports/sysdeps/microblaze/libc-tls.c create mode 100644 ports/sysdeps/microblaze/libm-test-ulps create mode 100644 ports/sysdeps/microblaze/machine-gmon.h create mode 100644 ports/sysdeps/microblaze/math_private.h create mode 100644 ports/sysdeps/microblaze/memusage.h create mode 100644 ports/sysdeps/microblaze/nptl/Makefile create mode 100644 ports/sysdeps/microblaze/nptl/pthread_spin_lock.c create mode 100644 ports/sysdeps/microblaze/nptl/pthreaddef.h create mode 100644 ports/sysdeps/microblaze/nptl/tcb-offsets.sym create mode 100644 ports/sysdeps/microblaze/nptl/tls.h create mode 100644 ports/sysdeps/microblaze/preconfigure create mode 100644 ports/sysdeps/microblaze/setjmp.S create mode 100644 ports/sysdeps/microblaze/shlib-versions create mode 100644 ports/sysdeps/microblaze/sotruss-lib.c create mode 100644 ports/sysdeps/microblaze/stackinfo.h create mode 100644 ports/sysdeps/microblaze/start.S create mode 100644 ports/sysdeps/microblaze/sysdep.h create mode 100644 ports/sysdeps/microblaze/tls-macros.h create mode 100644 ports/sysdeps/microblaze/tst-audit.h create mode 100644 ports/sysdeps/unix/sysv/linux/microblaze/Makefile create mode 100644 ports/sysdeps/unix/sysv/linux/microblaze/Versions create mode 100644 ports/sysdeps/unix/sysv/linux/microblaze/____longjmp_chk.S create mode 100644 ports/sysdeps/unix/sysv/linux/microblaze/bits/fcntl.h create mode 100644 ports/sysdeps/unix/sysv/linux/microblaze/bits/mman.h create mode 100644 ports/sysdeps/unix/sysv/linux/microblaze/bits/stat.h create mode 100644 ports/sysdeps/unix/sysv/linux/microblaze/brk.c create mode 100644 ports/sysdeps/unix/sysv/linux/microblaze/clone.S create mode 100644 ports/sysdeps/unix/sysv/linux/microblaze/configure create mode 100644 ports/sysdeps/unix/sysv/linux/microblaze/configure.in create mode 100644 ports/sysdeps/unix/sysv/linux/microblaze/fcntl.c create mode 100644 ports/sysdeps/unix/sysv/linux/microblaze/fxstat.c create mode 100644 ports/sysdeps/unix/sysv/linux/microblaze/fxstatat.c create mode 100644 ports/sysdeps/unix/sysv/linux/microblaze/getsysstats.c create mode 100644 ports/sysdeps/unix/sysv/linux/microblaze/kernel-features.h create mode 100644 ports/sysdeps/unix/sysv/linux/microblaze/kernel_stat.h create mode 100644 ports/sysdeps/unix/sysv/linux/microblaze/lxstat.c create mode 100644 ports/sysdeps/unix/sysv/linux/microblaze/mmap.S create mode 100644 ports/sysdeps/unix/sysv/linux/microblaze/msgctl.c create mode 100644 ports/sysdeps/unix/sysv/linux/microblaze/nptl/bits/pthreadtypes.h create mode 100644 ports/sysdeps/unix/sysv/linux/microblaze/nptl/bits/semaphore.h create mode 100644 ports/sysdeps/unix/sysv/linux/microblaze/nptl/c++-types.data create mode 100644 ports/sysdeps/unix/sysv/linux/microblaze/nptl/createthread.c create mode 100644 ports/sysdeps/unix/sysv/linux/microblaze/nptl/fork.c create mode 100644 ports/sysdeps/unix/sysv/linux/microblaze/nptl/ld.abilist create mode 100644 ports/sysdeps/unix/sysv/linux/microblaze/nptl/libBrokenLocale.abilist create mode 100644 ports/sysdeps/unix/sysv/linux/microblaze/nptl/libanl.abilist create mode 100644 ports/sysdeps/unix/sysv/linux/microblaze/nptl/libc.abilist create mode 100644 ports/sysdeps/unix/sysv/linux/microblaze/nptl/libcrypt.abilist create mode 100644 ports/sysdeps/unix/sysv/linux/microblaze/nptl/libdl.abilist create mode 100644 ports/sysdeps/unix/sysv/linux/microblaze/nptl/libm.abilist create mode 100644 ports/sysdeps/unix/sysv/linux/microblaze/nptl/libnsl.abilist create mode 100644 ports/sysdeps/unix/sysv/linux/microblaze/nptl/libpthread.abilist create mode 100644 ports/sysdeps/unix/sysv/linux/microblaze/nptl/libresolv.abilist create mode 100644 ports/sysdeps/unix/sysv/linux/microblaze/nptl/librt.abilist create mode 100644 ports/sysdeps/unix/sysv/linux/microblaze/nptl/libthread_db.abilist create mode 100644 ports/sysdeps/unix/sysv/linux/microblaze/nptl/libutil.abilist create mode 100644 ports/sysdeps/unix/sysv/linux/microblaze/nptl/localplt.data create mode 100644 ports/sysdeps/unix/sysv/linux/microblaze/nptl/lowlevellock.c create mode 100644 ports/sysdeps/unix/sysv/linux/microblaze/nptl/lowlevellock.h create mode 100644 ports/sysdeps/unix/sysv/linux/microblaze/nptl/pt-vfork.S create mode 100644 ports/sysdeps/unix/sysv/linux/microblaze/nptl/pthread_once.c create mode 100644 ports/sysdeps/unix/sysv/linux/microblaze/nptl/vfork.S create mode 100644 ports/sysdeps/unix/sysv/linux/microblaze/profil-counter.h create mode 100644 ports/sysdeps/unix/sysv/linux/microblaze/semctl.c create mode 100644 ports/sysdeps/unix/sysv/linux/microblaze/setgroups.c create mode 100644 ports/sysdeps/unix/sysv/linux/microblaze/shmctl.c create mode 100644 ports/sysdeps/unix/sysv/linux/microblaze/sigcontextinfo.h create mode 100644 ports/sysdeps/unix/sysv/linux/microblaze/socket.S create mode 100644 ports/sysdeps/unix/sysv/linux/microblaze/sys/procfs.h create mode 100644 ports/sysdeps/unix/sysv/linux/microblaze/sys/user.h create mode 100644 ports/sysdeps/unix/sysv/linux/microblaze/syscall.S create mode 100644 ports/sysdeps/unix/sysv/linux/microblaze/syscalls.list create mode 100644 ports/sysdeps/unix/sysv/linux/microblaze/sysdep.S create mode 100755 ports/sysdeps/unix/sysv/linux/microblaze/sysdep.h create mode 100644 ports/sysdeps/unix/sysv/linux/microblaze/xstat.c