This is the mail archive of the
libc-ports@sources.redhat.com
mailing list for the libc-ports project.
[PATCH v2 0/2] Add MicroBlaze Port
- From: David Holsgrove <david dot holsgrove at xilinx dot com>
- To: <libc-ports at sourceware dot org>
- Cc: <joseph at codesourcery dot com>, <david dot holsgrove at xilinx dot com>, <john dot williams at xilinx dot com>, <edgar dot iglesias at xilinx dot com>, <vinod dot kathail at xilinx dot com>, <vidhumouli dot hunsigida at xilinx dot com>, <nagaraju dot mekala at xilinx dot com>, <tom dot shui at xilinx dot com>
- Date: Sun, 31 Mar 2013 00:14:45 +1000
- Subject: [PATCH v2 0/2] Add MicroBlaze Port
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