This is the mail archive of the libc-ports@sources.redhat.com mailing list for the libc-ports project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[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



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]