PERFORCE change 152012 for review
Bjoern A. Zeeb
bz at FreeBSD.org
Mon Oct 27 12:47:46 UTC 2008
http://perforce.freebsd.org/chv.cgi?CH=152012
Change 152012 by bz at bz_dumpster on 2008/10/27 12:47:24
Make things _compile_ again.
Lots of placeholders and bogus code.
Affected files ...
.. //depot/projects/s390/Makefile#15 edit
.. //depot/projects/s390/Makefile.inc1#24 edit
.. //depot/projects/s390/cddl/contrib/opensolaris/lib/libdtrace/common/dt_link.c#2 edit
.. //depot/projects/s390/cddl/contrib/opensolaris/lib/libdtrace/common/dt_printf.c#2 edit
.. //depot/projects/s390/cddl/lib/libzpool/Makefile#2 edit
.. //depot/projects/s390/contrib/gcc/config/s390/freebsd.h#3 edit
.. //depot/projects/s390/contrib/gcc/config/s390/s390.h#6 edit
.. //depot/projects/s390/gnu/lib/libgomp/Makefile#2 edit
.. //depot/projects/s390/gnu/usr.bin/Makefile#10 edit
.. //depot/projects/s390/gnu/usr.bin/binutils/ld/Makefile.s390#4 edit
.. //depot/projects/s390/gnu/usr.bin/binutils/ld/Makefile.s390x#4 edit
.. //depot/projects/s390/gnu/usr.bin/binutils/libbfd/Makefile#9 edit
.. //depot/projects/s390/gnu/usr.bin/binutils/libbfd/Makefile.s390#3 edit
.. //depot/projects/s390/gnu/usr.bin/binutils/libbfd/Makefile.s390x#3 edit
.. //depot/projects/s390/gnu/usr.bin/binutils/libbfd/bfd.h#3 edit
.. //depot/projects/s390/gnu/usr.bin/binutils/libbfd/s390/bfd.h#4 delete
.. //depot/projects/s390/gnu/usr.bin/binutils/libbfd/s390x/bfd.h#4 delete
.. //depot/projects/s390/gnu/usr.bin/binutils/libiberty/Makefile#5 edit
.. //depot/projects/s390/gnu/usr.bin/cc/cc_tools/Makefile#10 edit
.. //depot/projects/s390/gnu/usr.bin/gdb/arch/s390/Makefile#1 add
.. //depot/projects/s390/gnu/usr.bin/gdb/arch/s390/config.h#1 add
.. //depot/projects/s390/gnu/usr.bin/gdb/arch/s390/init.c#1 add
.. //depot/projects/s390/lib/bind/config.mk#4 edit
.. //depot/projects/s390/lib/libc/Makefile#12 edit
.. //depot/projects/s390/lib/libc/gen/tls.c#4 edit
.. //depot/projects/s390/lib/libc/gmon/gmon.c#9 edit
.. //depot/projects/s390/lib/libc/s390/Makefile.inc#3 edit
.. //depot/projects/s390/lib/libc/s390/Symbol.map#1 add
.. //depot/projects/s390/lib/libc/s390/_fpmath.h#3 edit
.. //depot/projects/s390/lib/libc/s390/gd_qnan.h#1 add
.. //depot/projects/s390/lib/libc/s390/stdlib/gdtoa.mk#2 delete
.. //depot/projects/s390/lib/libc/s390/sys/Makefile.inc#3 edit
.. //depot/projects/s390/lib/libc/s390x/gd_qnan.h#1 add
.. //depot/projects/s390/lib/libc/stdlib/malloc.c#12 edit
.. //depot/projects/s390/lib/libkvm/kvm_s390.c#2 edit
.. //depot/projects/s390/lib/libkvm/kvm_s390x.c#2 edit
.. //depot/projects/s390/lib/libthr/arch/s390/Makefile.inc#1 add
.. //depot/projects/s390/lib/libthr/arch/s390/include/pthread_md.h#1 add
.. //depot/projects/s390/lib/libthr/arch/s390/s390/pthread_md.c#1 add
.. //depot/projects/s390/lib/libthr/thread/thr_getschedparam.c#2 integrate
.. //depot/projects/s390/lib/libthread_db/arch/s390/libpthread_md.c#1 add
.. //depot/projects/s390/lib/msun/Makefile#8 edit
.. //depot/projects/s390/lib/msun/s390/Makefile.inc#2 edit
.. //depot/projects/s390/lib/msun/s390/e_fmod.S#2 edit
.. //depot/projects/s390/lib/msun/s390/e_fmodf.S#2 edit
.. //depot/projects/s390/lib/msun/s390/e_hypot.S#2 edit
.. //depot/projects/s390/lib/msun/s390/e_hypotf.S#2 edit
.. //depot/projects/s390/lib/msun/s390/e_remainder.S#2 edit
.. //depot/projects/s390/lib/msun/s390/e_remainderf.S#2 edit
.. //depot/projects/s390/lib/msun/s390/e_sqrt.S#2 edit
.. //depot/projects/s390/lib/msun/s390/e_sqrtf.S#2 edit
.. //depot/projects/s390/lib/msun/s390/fenv.c#1 add
.. //depot/projects/s390/lib/msun/s390/fenv.h#1 add
.. //depot/projects/s390/lib/msun/s390/s_floor.S#2 edit
.. //depot/projects/s390/lib/msun/s390/s_rint.S#2 edit
.. //depot/projects/s390/libexec/rtld-aout/shlib.c#3 edit
.. //depot/projects/s390/libexec/rtld-aout/shlib.h#2 edit
.. //depot/projects/s390/libexec/rtld-elf/s390/reloc.c#7 edit
.. //depot/projects/s390/libexec/rtld-elf/s390/rtld_machdep.h#4 edit
.. //depot/projects/s390/sbin/ldconfig/Makefile#3 edit
.. //depot/projects/s390/secure/lib/libcrypto/opensslconf-s390.h#3 edit
.. //depot/projects/s390/secure/lib/libcrypto/opensslconf-s390x.h#3 edit
.. //depot/projects/s390/share/mk/bsd.endian.mk#3 edit
.. //depot/projects/s390/sys/boot/Makefile#10 edit
.. //depot/projects/s390/sys/cddl/compat/opensolaris/kern/opensolaris_atomic.c#2 edit
.. //depot/projects/s390/sys/cddl/compat/opensolaris/sys/atomic.h#2 edit
.. //depot/projects/s390/sys/cddl/contrib/opensolaris/uts/common/sys/isa_defs.h#2 edit
.. //depot/projects/s390/sys/conf/Makefile.s390#5 edit
.. //depot/projects/s390/sys/conf/files.s390#6 edit
.. //depot/projects/s390/sys/conf/kern.mk#8 edit
.. //depot/projects/s390/sys/s390/conf/GENERIC#11 edit
.. //depot/projects/s390/sys/s390/include/_bus.h#1 add
.. //depot/projects/s390/sys/s390/include/_limits.h#2 edit
.. //depot/projects/s390/sys/s390/include/_types.h#4 edit
.. //depot/projects/s390/sys/s390/include/asm.h#2 edit
.. //depot/projects/s390/sys/s390/include/atomic.h#2 edit
.. //depot/projects/s390/sys/s390/include/bus.h#2 edit
.. //depot/projects/s390/sys/s390/include/cpu.h#3 edit
.. //depot/projects/s390/sys/s390/include/cpufunc.h#3 edit
.. //depot/projects/s390/sys/s390/include/float.h#3 edit
.. //depot/projects/s390/sys/s390/include/kdb.h#1 add
.. //depot/projects/s390/sys/s390/include/memdev.h#1 add
.. //depot/projects/s390/sys/s390/include/pcb.h#2 edit
.. //depot/projects/s390/sys/s390/include/pcpu.h#2 edit
.. //depot/projects/s390/sys/s390/include/pmap.h#4 edit
.. //depot/projects/s390/sys/s390/include/pmc_mdep.h#1 add
.. //depot/projects/s390/sys/s390/include/proc.h#2 edit
.. //depot/projects/s390/sys/s390/include/profile.h#2 edit
.. //depot/projects/s390/sys/s390/include/signal.h#5 edit
.. //depot/projects/s390/sys/s390/include/stdarg.h#2 edit
.. //depot/projects/s390/sys/s390/include/sysarch.h#3 edit
.. //depot/projects/s390/sys/s390/include/vmparam.h#2 edit
.. //depot/projects/s390/sys/s390/s390/clock.c#6 edit
.. //depot/projects/s390/sys/s390/s390/dump_machdep.c#4 edit
.. //depot/projects/s390/sys/s390/s390/elf_machdep.c#7 edit
.. //depot/projects/s390/sys/s390/s390/hmcsc.c#9 edit
.. //depot/projects/s390/sys/s390/s390/identcpu.c#7 edit
.. //depot/projects/s390/sys/s390/s390/machdep.c#12 edit
.. //depot/projects/s390/sys/s390/s390/mem.c#8 edit
.. //depot/projects/s390/sys/s390/s390/pmap.c#18 edit
.. //depot/projects/s390/sys/s390/s390/support.S#4 edit
.. //depot/projects/s390/sys/s390/s390/sys_machdep.c#5 edit
.. //depot/projects/s390/sys/s390/s390/trap.c#12 edit
.. //depot/projects/s390/sys/s390/s390/uio_machdep.c#1 add
.. //depot/projects/s390/sys/s390/s390/vm_machdep.c#11 edit
.. //depot/projects/s390/sys/s390x/include/_types.h#3 edit
.. //depot/projects/s390/sys/sys/priv.h#2 edit
.. //depot/projects/s390/usr.sbin/Makefile#18 edit
Differences ...
==== //depot/projects/s390/Makefile#15 (text+ko) ====
@@ -275,7 +275,7 @@
# existing system is.
#
.if make(universe)
-TARGETS?=amd64 arm i386 ia64 pc98 powerpc sparc64 sun4v
+TARGETS?=amd64 arm i386 ia64 pc98 powerpc s390 s390x sparc64 sun4v
universe: universe_prologue
universe_prologue:
==== //depot/projects/s390/Makefile.inc1#24 (text+ko) ====
@@ -125,7 +125,7 @@
TARGET?= ${MACHINE}
TARGET_ARCH?= ${MACHINE_ARCH}
-KNOWN_ARCHES?= amd64 arm i386 i386/pc98 ia64 mips powerpc sparc64 sparc64/sun4v
+KNOWN_ARCHES?= amd64 arm i386 i386/pc98 ia64 mips powerpc s390 s390x sparc64 sparc64/sun4v
.if ${TARGET} == ${TARGET_ARCH}
_t= ${TARGET}
.else
==== //depot/projects/s390/cddl/contrib/opensolaris/lib/libdtrace/common/dt_link.c#2 (text+ko) ====
@@ -250,6 +250,12 @@
dofr[j].dofr_offset + 4;
rel->r_info = ELF32_R_INFO(count + dep->de_global,
R_SPARC_32);
+#elif defined(__s390__) && !defined(__s390x__)
+/* XXX */
+printf("%s:%s(%d): DOODAD\n",__FUNCTION__,__FILE__,__LINE__);
+#elif defined(__s390x__)
+/* XXX */
+printf("%s:%s(%d): DOODAD\n",__FUNCTION__,__FILE__,__LINE__);
#else
#error unknown ISA
#endif
@@ -432,6 +438,10 @@
dofr[j].dofr_offset;
rel->r_info = ELF64_R_INFO(count + dep->de_global,
R_SPARC_64);
+#elif defined(__s390__) && !defined(__s390x__)
+/* XXX */
+#elif defined(__s390x__)
+/* XXX */
#else
#error unknown ISA
#endif
@@ -530,6 +540,8 @@
elf_file.ehdr.e_machine = EM_MIPS;
#elif defined(__powerpc__)
elf_file.ehdr.e_machine = EM_PPC;
+#elif defined(__s390__)
+ elf_file.ehdr.e_machine = EM_S390;
#elif defined(__sparc)
elf_file.ehdr.e_machine = EM_SPARC;
#elif defined(__i386) || defined(__amd64)
@@ -678,6 +690,8 @@
elf_file.ehdr.e_machine = EM_MIPS;
#elif defined(__powerpc__)
elf_file.ehdr.e_machine = EM_PPC;
+#elif defined(__s390__)
+ elf_file.ehdr.e_machine = EM_S390;
#elif defined(__sparc)
elf_file.ehdr.e_machine = EM_SPARCV9;
#elif defined(__i386) || defined(__amd64)
@@ -831,6 +845,26 @@
return (0);
}
+#elif defined(__s390__) && !defined(__s390x__)
+/* XXX */
+static int
+dt_modtext(dtrace_hdl_t *dtp, char *p, int isenabled, GElf_Rela *rela,
+ uint32_t *off)
+{
+printf("%s:%s(%d): DOODAD\n",__FUNCTION__,__FILE__,__LINE__);
+ return (0);
+}
+
+#elif defined(__s390x__)
+/* XXX */
+static int
+dt_modtext(dtrace_hdl_t *dtp, char *p, int isenabled, GElf_Rela *rela,
+ uint32_t *off)
+{
+printf("%s:%s(%d): DOODAD\n",__FUNCTION__,__FILE__,__LINE__);
+ return (0);
+}
+
#elif defined(__sparc)
#define DT_OP_RET 0x81c7e008
@@ -1139,6 +1173,8 @@
emachine1 = emachine2 = EM_MIPS;
#elif defined(__powerpc__)
emachine1 = emachine2 = EM_PPC64;
+#elif defined(__s390__)
+ emachine1 = emachine2 = EM_S390;
#elif defined(__sparc)
emachine1 = emachine2 = EM_SPARCV9;
#elif defined(__i386) || defined(__amd64)
@@ -1153,6 +1189,8 @@
emachine1 = emachine2 = EM_MIPS;
#elif defined(__powerpc__)
emachine1 = emachine2 = EM_PPC;
+#elif defined(__s390__)
+ emachine1 = emachine2 = EM_S390;
#elif defined(__sparc)
emachine1 = EM_SPARC;
emachine2 = EM_SPARC32PLUS;
==== //depot/projects/s390/cddl/contrib/opensolaris/lib/libdtrace/common/dt_printf.c#2 (text+ko) ====
@@ -306,7 +306,8 @@
case sizeof (double):
return (dt_printf(dtp, fp, format,
*((double *)addr) / n));
-#if !defined(__arm__) && !defined(__powerpc__) && !defined(__mips__)
+#if !defined(__arm__) && !defined(__powerpc__) && !defined(__mips__) && \
+ (!defined(__s390__) || defined(__s390x__))
case sizeof (long double):
return (dt_printf(dtp, fp, format,
*((long double *)addr) / ldn));
==== //depot/projects/s390/cddl/lib/libzpool/Makefile#2 (text+ko) ====
@@ -11,7 +11,7 @@
# LIST_SRCS
.PATH: ${.CURDIR}/../../../sys/cddl/contrib/opensolaris/uts/common/os
# ATOMIC_SRCS
-.if ${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "amd64" || ${MACHINE_ARCH} == "ia64"
+.if ${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "amd64" || ${MACHINE_ARCH} == "ia64" # XXX-BZ || ${MACHINE_ARCH} == "s390"
.PATH: ${.CURDIR}/../../../sys/cddl/contrib/opensolaris/common/atomic/${MACHINE_ARCH}
ATOMIC_SRCS= atomic.S
.else
==== //depot/projects/s390/contrib/gcc/config/s390/freebsd.h#3 (text+ko) ====
@@ -20,8 +20,8 @@
the Free Software Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
-#ifndef _FREEBSD_H
-#define _FREEBSD_H
+#ifndef _CONFIG_S390_FREEBSD_H
+#define _CONFIG_S390_FREEBSD_H
/* Target specific version string. */
@@ -33,7 +33,6 @@
#define TARGET_VERSION fprintf (stderr, " (FreeBSD for S/390)");
#endif
-
/* Target specific type definitions. */
/* ??? Do we really want long as size_t on 31-bit? */
@@ -51,15 +50,11 @@
#undef DEFAULT_SIGNED_CHAR
#define DEFAULT_SIGNED_CHAR 1
+
/* Target specific assembler settings. */
-#ifdef DEFAULT_TARGET_64BIT
#undef ASM_SPEC
-#define ASM_SPEC "%{m31:-m31 -Aesa}"
-#else
-#undef ASM_SPEC
-#define ASM_SPEC "%{m64:-m64 -Aesame}"
-#endif
+#define ASM_SPEC "%{m31&m64}%{mesa&mzarch}%{march=*}"
/* Target specific linker settings. */
@@ -70,130 +65,44 @@
#define MULTILIB_DEFAULTS { "m31" }
#endif
-#define LINK_ARCH31_SPEC \
- "-m elf_s390 \
- %{p:%nconsider using '-pg' instead of '-p' with gprof(1) } \
- %{Wl,*:%*} \
- %{v:-V} \
- %{assert*} %{R*} %{rpath*} %{defsym*} \
- %{shared:-Bshareable %{h*} %{soname*}} \
- %{!shared: \
- %{!static: \
- %{rdynamic:-export-dynamic} \
- %{!dynamic-linker:-dynamic-linker /libexec/ld-elf.so.1}} \
- %{static:-Bstatic}} \
- %{symbolic:-Bsymbolic}"
+#undef SUBTARGET_EXTRA_SPECS
+#define SUBTARGET_EXTRA_SPECS \
+ { "fbsd_dynamic_linker", FBSD_DYNAMIC_LINKER }
+
+#undef EXTRA_SPECS
+#define EXTRA_SPECS \
+ SUBTARGET_EXTRA_SPECS
-#define LINK_ARCH64_SPEC \
- "-m elf64_s390 \
+#undef LINK_SPEC
+#define LINK_SPEC \
+ "%{m31:-m elf_s390}%{m64:-m elf64_s390} \
%{shared:-shared} \
%{!shared: \
%{static:-static} \
%{!static: \
%{rdynamic:-export-dynamic} \
- %{!dynamic-linker:-dynamic-linker /lib/ld64.so.1}}}"
+ %{!dynamic-linker: \
+ %{m31:-dynamic-linker %(fbsd_dynamic_linker) } \
+ %{m64:-dynamic-linker %(fbsd_dynamic_linker) }}} \
+ %{static:-Bstatic}}"
-#ifdef DEFAULT_TARGET_64BIT
-#undef LINK_SPEC
-#define LINK_SPEC "%{m31:%(link_arch31)} %{!m31:%(link_arch64)}"
-#else
-#undef LINK_SPEC
-#define LINK_SPEC "%{m64:%(link_arch64)} %{!m64:%(link_arch31)}"
-#endif
+#define MD_UNWIND_SUPPORT "config/s390/freebsd-unwind.h"
+#define TARGET_ASM_FILE_END file_end_indicate_exec_stack
-/* This macro defines names of additional specifications to put in the specs
- that can be used in various specifications like CC1_SPEC. Its definition
- is an initializer with a subgrouping for each command option. */
+#ifdef TARGET_LIBC_PROVIDES_SSP
+/* s390 glibc provides __stack_chk_guard in 0x14(tp),
+ s390x glibc provides it at 0x28(tp). */
+#define TARGET_THREAD_SSP_OFFSET (TARGET_64BIT ? 0x28 : 0x14)
+#endif
-#define EXTRA_SPECS \
- { "link_arch31", LINK_ARCH31_SPEC }, \
- { "link_arch64", LINK_ARCH64_SPEC }, \
+/* Define if long doubles should be mangled as 'g'. */
+#define TARGET_ALTERNATE_LONG_DOUBLE_MANGLING
-#undef ASM_COMMENT_START
-#define ASM_COMMENT_START "#"
-
-#undef ASM_APP_ON
-#define ASM_APP_ON "#APP\n"
-#undef ASM_APP_OFF
-#define ASM_APP_OFF "#NO_APP\n"
-
-/* Do code reading to identify a signal frame, and set the frame
- state data appropriately. See unwind-dw2.c for the structs. */
-
-#define MD_FALLBACK_FRAME_STATE_FOR(CONTEXT, FS, SUCCESS) \
- do { \
- unsigned char *pc_ = (CONTEXT)->ra; \
- long new_cfa_; \
- int i_; \
- \
- typedef struct \
- { \
- unsigned long psw_mask; \
- unsigned long psw_addr; \
- unsigned long gprs[16]; \
- unsigned int acrs[16]; \
- unsigned int fpc; \
- unsigned int __pad; \
- double fprs[16]; \
- } __attribute__ ((__aligned__ (8))) sigregs_; \
- \
- sigregs_ *regs_; \
- \
- /* svc $__NR_sigreturn or svc $__NR_rt_sigreturn */ \
- if (pc_[0] != 0x0a || (pc_[1] != 119 && pc_[1] != 173)) \
- break; \
- \
- /* New-style RT frame: \
- retcode + alignment (8 bytes) \
- siginfo (128 bytes) \
- ucontext (contains sigregs) */ \
- if ((CONTEXT)->ra == (CONTEXT)->cfa) \
- { \
- struct ucontext_ \
- { \
- unsigned long uc_flags; \
- struct ucontext_ *uc_link; \
- unsigned long uc_stack[3]; \
- sigregs_ uc_mcontext; \
- } *uc_ = (CONTEXT)->cfa + 8 + 128; \
- \
- regs_ = &uc_->uc_mcontext; \
- } \
- \
- /* Old-style RT frame and all non-RT frames: \
- old signal mask (8 bytes) \
- pointer to sigregs */ \
- else \
- { \
- regs_ = *(sigregs_ **)((CONTEXT)->cfa + 8); \
- } \
- \
- new_cfa_ = regs_->gprs[15] + 16*sizeof(long) + 32; \
- (FS)->cfa_how = CFA_REG_OFFSET; \
- (FS)->cfa_reg = 15; \
- (FS)->cfa_offset = \
- new_cfa_ - (long) (CONTEXT)->cfa + 16*sizeof(long) + 32; \
- \
- for (i_ = 0; i_ < 16; i_++) \
- { \
- (FS)->regs.reg[i_].how = REG_SAVED_OFFSET; \
- (FS)->regs.reg[i_].loc.offset = \
- (long)®s_->gprs[i_] - new_cfa_; \
- } \
- for (i_ = 0; i_ < 16; i_++) \
- { \
- (FS)->regs.reg[16+i_].how = REG_SAVED_OFFSET; \
- (FS)->regs.reg[16+i_].loc.offset = \
- (long)®s_->fprs[i_] - new_cfa_; \
- } \
- \
- /* Load return addr from PSW into dummy register 32. */ \
- (FS)->regs.reg[32].how = REG_SAVED_OFFSET; \
- (FS)->regs.reg[32].loc.offset = (long)®s_->psw_addr - new_cfa_; \
- (FS)->retaddr_column = 32; \
- \
- goto SUCCESS; \
- } while (0)
+/* Override the default comment-starter of "/APP" from unix.h. */
+#undef ASM_APP_ON
+#define ASM_APP_ON "#APP\n"
+#undef ASM_APP_OFF
+#define ASM_APP_OFF "#NO_APP\n"
#endif
==== //depot/projects/s390/contrib/gcc/config/s390/s390.h#6 (text+ko) ====
==== //depot/projects/s390/gnu/lib/libgomp/Makefile#2 (text+ko) ====
@@ -24,7 +24,8 @@
# Target-specific OpenMP configuration
.if ${MACHINE_ARCH} == arm || ${MACHINE_ARCH} == i386 || \
- ${MACHINE_ARCH} == mips || ${MACHINE_ARCH} == powerpc
+ ${MACHINE_ARCH} == mips || ${MACHINE_ARCH} == powerpc || \
+ ${MACHINE_ARCH} == s390
OMP_LOCK_ALIGN = 4
OMP_LOCK_KIND= 4
OMP_LOCK_SIZE= 4
==== //depot/projects/s390/gnu/usr.bin/Makefile#10 (text+ko) ====
@@ -23,7 +23,8 @@
sort \
${_texinfo}
-.if ${MACHINE_ARCH} == "mips"
+.if ${MACHINE_ARCH} == "mips" || ${MACHINE_ARCH} == "s390" || \
+ ${MACHINE_ARCH} == "s390x"
MK_GDB=no # not yet
.endif
==== //depot/projects/s390/gnu/usr.bin/binutils/ld/Makefile.s390#4 (text+ko) ====
@@ -1,29 +1,12 @@
# $FreeBSD: src/gnu/usr.bin/binutils/ld/Makefile.s390,v 1.0 2002/05/17 03:10:33 tzukanov Exp $
-TARGET_TUPLE?= s390-unknown-freebsd
+NATIVE_EMULATION= elf_s390
-.if ${TARGET_ARCH} == "s390"
-NATIVE_EMULATION= elf_s390
-HOST= ${TARGET_TUPLE}
-CFLAGS+= -DDEFAULT_EMULATION=\"${NATIVE_EMULATION}\"
-CFLAGS+= -DTARGET=\"${TARGET_TUPLE}\"
-_s390_path= \"${TOOLS_PREFIX}/lib\":\"${TOOLS_PREFIX}/usr/lib\"
-.else
-_s390_path= \"/usr/cross/s390-freebsd/usr/lib\"
-.endif
-EMS+= ${NATIVE_EMULATION}
-LDSCRIPTS+= ${NATIVE_EMULATION}.x \
- ${NATIVE_EMULATION}.xbn \
- ${NATIVE_EMULATION}.xn \
- ${NATIVE_EMULATION}.xr \
- ${NATIVE_EMULATION}.xs \
- ${NATIVE_EMULATION}.xu \
- ${NATIVE_EMULATION}.xsc
SRCS+= e${NATIVE_EMULATION}.c
CLEANFILES+= e${NATIVE_EMULATION}.c
-
e${NATIVE_EMULATION}.c: emulparams/${NATIVE_EMULATION}.sh emultempl/elf32.em \
scripttempl/elf.sc genscripts.sh stringify.sed
- sh ${.CURDIR}/genscripts.sh ${SRCDIR}/ld ${_s390_path} \
+ sh ${.CURDIR}/genscripts.sh ${SRCDIR}/ld ${LIBSERACHPATH} \
+ ${TOOLS_PREFIX}/usr \
${HOST} ${TARGET_TUPLE} ${TARGET_TUPLE} \
- ${NATIVE_EMULATION} "" ${NATIVE_EMULATION} ${TARGET_TUPLE}
+ ${NATIVE_EMULATION} "" no ${NATIVE_EMULATION} ${TARGET_TUPLE}
==== //depot/projects/s390/gnu/usr.bin/binutils/ld/Makefile.s390x#4 (text+ko) ====
@@ -1,29 +1,12 @@
# $FreeBSD: src/gnu/usr.bin/binutils/ld/Makefile.s390x,v 1.0 2002/05/17 03:10:33 tzukanov Exp $
-TARGET_TUPLE?= s390x-unknown-freebsd
+NATIVE_EMULATION= elf64_s390
-.if ${TARGET_ARCH} == "s390x"
-NATIVE_EMULATION= elf64_s390
-HOST= ${TARGET_TUPLE}
-CFLAGS+= -DDEFAULT_EMULATION=\"${NATIVE_EMULATION}\"
-CFLAGS+= -DTARGET=\"${TARGET_TUPLE}\"
-_s390x_path= \"${TOOLS_PREFIX}/lib\":\"${TOOLS_PREFIX}/usr/lib\"
-.else
-_s390x_path= \"/usr/cross/s390x-freebsd/usr/lib\"
-.endif
-EMS+= ${NATIVE_EMULATION}
-LDSCRIPTS+= ${NATIVE_EMULATION}.x \
- ${NATIVE_EMULATION}.xbn \
- ${NATIVE_EMULATION}.xn \
- ${NATIVE_EMULATION}.xr \
- ${NATIVE_EMULATION}.xs \
- ${NATIVE_EMULATION}.xu \
- ${NATIVE_EMULATION}.xsc
SRCS+= e${NATIVE_EMULATION}.c
CLEANFILES+= e${NATIVE_EMULATION}.c
-
e${NATIVE_EMULATION}.c: emulparams/${NATIVE_EMULATION}.sh emultempl/elf32.em \
scripttempl/elf.sc genscripts.sh stringify.sed
- sh ${.CURDIR}/genscripts.sh ${SRCDIR}/ld ${_s390x_path} \
+ sh ${.CURDIR}/genscripts.sh ${SRCDIR}/ld ${LIBSERACHPATH} \
+ ${TOOLS_PREFIX}/usr \
${HOST} ${TARGET_TUPLE} ${TARGET_TUPLE} \
- ${NATIVE_EMULATION} "" ${NATIVE_EMULATION} ${TARGET_TUPLE}
+ ${NATIVE_EMULATION} "" no ${NATIVE_EMULATION} ${TARGET_TUPLE}
==== //depot/projects/s390/gnu/usr.bin/binutils/libbfd/Makefile#9 (text+ko) ====
==== //depot/projects/s390/gnu/usr.bin/binutils/libbfd/Makefile.s390#3 (text+ko) ====
@@ -13,7 +13,4 @@
.if ${TARGET_ARCH} == "s390"
CFLAGS+= -DDEFAULT_VECTOR=${DEFAULT_VECTOR}
.endif
-CLEANFILES+= elf32-target.h
-elf32-target.h: elfxx-target.h
- sed -e s/NN/32/g ${.ALLSRC} > ${.TARGET}
==== //depot/projects/s390/gnu/usr.bin/binutils/libbfd/Makefile.s390x#3 (text+ko) ====
@@ -17,10 +17,4 @@
.if ${TARGET_ARCH} == "s390x"
CFLAGS+= -DDEFAULT_VECTOR=${DEFAULT_VECTOR}
.endif
-CLEANFILES+= elf32-target.h elf64-target.h
-
-elf32-target.h: elfxx-target.h
- sed -e s/NN/32/g ${.ALLSRC} > ${.TARGET}
-elf64-target.h: elfxx-target.h
- sed -e s/NN/64/g ${.ALLSRC} > ${.TARGET}
==== //depot/projects/s390/gnu/usr.bin/binutils/libbfd/bfd.h#3 (text+ko) ====
@@ -57,11 +57,13 @@
#define BFD_ARCH_SIZE 64
-#if defined(__i386__) || defined(__powerpc__) || defined(__arm__)
+#if defined(__i386__) || defined(__powerpc__) || defined(__arm__) || \
+ (defined(__s390__) && !defined(__s390x__))
#define BFD_HOST_64BIT_LONG 0
#define BFD_HOST_64_BIT long long
#define BFD_HOST_U_64_BIT unsigned long long
-#elif defined(__alpha__) || defined(__sparc64__) || defined(__amd64__) || defined(__ia64__)
+#elif defined(__alpha__) || defined(__sparc64__) || defined(__amd64__) || \
+ defined(__ia64__) || defined(__s390x__)
#define BFD_HOST_64BIT_LONG 1
#define BFD_HOST_64_BIT long
#define BFD_HOST_U_64_BIT unsigned long
==== //depot/projects/s390/gnu/usr.bin/binutils/libiberty/Makefile#5 (text+ko) ====
==== //depot/projects/s390/gnu/usr.bin/cc/cc_tools/Makefile#10 (text+ko) ====
@@ -59,6 +59,9 @@
.if ${TARGET_ARCH} == "arm"
TARGET_INC+= ${GCC_CPU}/arm.h
.endif
+.if ${TARGET_ARCH} == "s390"
+TARGET_INC+= ${GCC_CPU}/s390.h
+.endif
.if ${TARGET_ARCH} == "s390x"
TARGET_INC+= ${GCC_CPU}/s390x.h
.endif
==== //depot/projects/s390/lib/bind/config.mk#4 (text+ko) ====
@@ -45,7 +45,8 @@
CFLAGS+= -DUSE_MD5
# Endianness
-.if ${MACHINE_ARCH} == "powerpc" || ${MACHINE_ARCH} == "sparc64"
+.if ${MACHINE_ARCH} == "powerpc" || ${MACHINE_ARCH} == "sparc64" || \
+ ${MACHINE_ARCH} == "s390" || ${MACHINE_ARCH} == "s390x"
CFLAGS+= -DWORDS_BIGENDIAN
.endif
==== //depot/projects/s390/lib/libc/Makefile#12 (text+ko) ====
==== //depot/projects/s390/lib/libc/gen/tls.c#4 (text+ko) ====
@@ -43,10 +43,8 @@
__weak_reference(__libc_free_tls, _rtld_free_tls);
#ifdef __i386__
-
__weak_reference(___libc_tls_get_addr, ___tls_get_addr);
__attribute__((__regparm__(1))) void * ___libc_tls_get_addr(void *);
-
#endif
void * __libc_tls_get_addr(void *);
@@ -60,7 +58,8 @@
#if defined(__ia64__) || defined(__amd64__)
#define TLS_TCB_ALIGN 16
#elif defined(__powerpc__) || defined(__i386__) || defined(__arm__) || \
- defined(__sparc64__) || defined(__mips__)
+ defined(__sparc64__) || defined(__mips__) || defined(__s390__) || \
+ defined(__s390x__)
#define TLS_TCB_ALIGN sizeof(void *)
#else
#error TLS_TCB_ALIGN undefined for target architecture
@@ -70,10 +69,20 @@
#define TLS_VARIANT_I
#endif
#if defined(__i386__) || defined(__amd64__) || defined(__sparc64__) || \
- defined(__arm__) || defined(__mips__)
+ defined(__arm__) || defined(__mips__) || defined(__s390__) || \
+ defined(__s390x__)
#define TLS_VARIANT_II
#endif
+#if defined(__s390__)
+void *
+__tls_get_offset(size_t offset __unused)
+{
+
+ return (0); /* XXX-BZ dump core here? */
+}
+#endif
+
#ifndef PIC
#define round(size, align) \
==== //depot/projects/s390/lib/libc/gmon/gmon.c#9 (text+ko) ====
@@ -49,8 +49,8 @@
#include "libc_private.h"
-#if defined(__i386__) || defined(__sparc64__) || defined(__amd64__) || defined(__powerpc__) \
- defined(__s390__)
+#if defined(__i386__) || defined(__sparc64__) || defined(__amd64__) || \
+ defined(__powerpc__) || defined(__s390__)
extern char *minbrk __asm (".minbrk");
#else
extern char *minbrk __asm ("minbrk");
==== //depot/projects/s390/lib/libc/s390/Makefile.inc#3 (text+ko) ====
@@ -3,3 +3,9 @@
# Temporary kludge.
#
NO_QUAD=1
+
+# Long double is quad precision
+GDTOASRCS+=strtorQ.c
+MDSRCS+=machdep_ldisQ.c
+
+SYM_MAPS+=${.CURDIR}/s390/Symbol.map
==== //depot/projects/s390/lib/libc/s390/_fpmath.h#3 (text+ko) ====
@@ -27,23 +27,56 @@
* $FreeBSD: src/lib/libc/s390/_fpmath.h,v 1.0 2003/02/08 20:37:54 tzukanov Exp $
*/
+#if 0
+/* XXX see comment in lib/msun/s390/Makkefile.inc */
union IEEEl2bits {
long double e;
struct {
- unsigned int sign :1;
- unsigned int exp :15;
- unsigned long manh :48;
- unsigned long manl :64;
+ unsigned int sign :1;
+ unsigned int exp :15;
+ unsigned long long manh :48;
+ unsigned long long manl :64;
} bits;
+ struct {
+ unsigned int expsign :16;
+ unsigned long long manh :48;
+ unsigned long long manl :64;
+ } xbits;
};
#define mask_nbit_l(u) ((void)0)
#define LDBL_IMPLICIT_NBIT
+#define LDBL_NBIT 0
+#define LDBL_MANH_SIZE 48
+#define LDBL_MANL_SIZE 64
+
#define LDBL_TO_ARRAY32(u, a) do { \
(a)[0] = (uint32_t)(u).bits.manl; \
- (a)[1] = (uint32_t)((u).bits.manl >> 32); \
+ (a)[1] = (uint32_t)((u).bits.manl >> 32); \
(a)[2] = (uint32_t)(u).bits.manh; \
(a)[3] = (uint32_t)((u).bits.manh >> 32); \
-} while (0)
+} while(0)
+#endif
+
+union IEEEl2bits {
+ long double e;
+ struct {
+ unsigned int sign :1;
+ unsigned int exp :11;
+ unsigned int manh :20;
+ unsigned int manl :32;
+ } bits;
+};
+
+#define mask_nbit_l(u) ((void)0)
+#define LDBL_IMPLICIT_NBIT
+#define LDBL_NBIT 0
+
+#define LDBL_MANH_SIZE 20
+#define LDBL_MANL_SIZE 32
+#define LDBL_TO_ARRAY32(u, a) do { \
+ (a)[0] = (uint32_t)(u).bits.manl; \
+ (a)[1] = (uint32_t)(u).bits.manh; \
+} while(0)
==== //depot/projects/s390/lib/libc/s390/sys/Makefile.inc#3 (text+ko) ====
@@ -5,10 +5,13 @@
MDASM= brk.S cerror.S exect.S pipe.S ptrace.S sbrk.S setlogin.S
# Don't generate default code for these syscalls:
-NOASM= break.o exit.o ftruncate.o getdomainname.o getlogin.o \
- lseek.o mlockall.o mmap.o munlockall.o openbsd_poll.o pread.o \
- pwrite.o setdomainname.o sstk.o truncate.o uname.o yield.o
+NOASM= break.o exit.o getdomainname.o ftruncate.o getlogin.o \
+ lseek.o mmap.o openbsd_poll.o pread.o \
+ pwrite.o setdomainname.o truncate.o
PSEUDO= _getlogin.o _exit.o
+.if !defined(WITHOUT_SYSCALL_COMPAT)
+PSEUDO+= _pread.o _pwrite.o _lseek.o _mmap.o _ftruncate.o _truncate.o
+.endif
MAN+= s390_sysinfo.2
==== //depot/projects/s390/lib/libc/stdlib/malloc.c#12 (text+ko) ====
@@ -255,8 +255,8 @@
# define SIZEOF_PTR_2POW 2
#endif
#ifdef __s390__
-# define QUANTUM_2POW_MIN 4
-# define SIZEOF_PTR 8
+# define QUANTUM_2POW 4
+# define SIZEOF_PTR_2POW 2
# define NO_TLS
#endif
==== //depot/projects/s390/lib/libkvm/kvm_s390.c#2 (text+ko) ====
@@ -68,7 +68,7 @@
}
int
-_kvm_kvatop(kvm_t *kd, u_long va, u_long *pa)
+_kvm_kvatop(kvm_t *kd, u_long va, off_t *pa)
{
_kvm_err(kd, 0, "%s not yet implemented", __func__);
==== //depot/projects/s390/lib/libkvm/kvm_s390x.c#2 (text+ko) ====
@@ -68,7 +68,7 @@
}
int
-_kvm_kvatop(kvm_t *kd, u_long va, u_long *pa)
+_kvm_kvatop(kvm_t *kd, u_long va, off_t *pa)
{
_kvm_err(kd, 0, "%s not yet implemented", __func__);
==== //depot/projects/s390/lib/libthr/thread/thr_getschedparam.c#2 (text+ko) ====
@@ -29,10 +29,16 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: src/lib/libthr/thread/thr_getschedparam.c,v 1.1 2003/04/01 03:46:28 jeff Exp $
+ * $FreeBSD: src/lib/libthr/thread/thr_getschedparam.c,v 1.9 2006/09/21 04:21:30 davidxu Exp $
*/
+
+#include "namespace.h"
+#include <sys/types.h>
+#include <sys/rtprio.h>
#include <errno.h>
#include <pthread.h>
+#include "un-namespace.h"
+
#include "thr_private.h"
__weak_reference(_pthread_getschedparam, pthread_getschedparam);
@@ -41,19 +47,31 @@
_pthread_getschedparam(pthread_t pthread, int *policy,
struct sched_param *param)
{
+ struct pthread *curthread = _get_curthread();
int ret;
- if ((param == NULL) || (policy == NULL))
- /* Return an invalid argument error: */
- ret = EINVAL;
+ if (policy == NULL || param == NULL)
+ return (EINVAL);
- /* Find the thread in the list of active threads: */
- else if ((ret = _find_thread(pthread)) == 0) {
- /* Return the threads base priority and scheduling policy: */
- param->sched_priority =
- PTHREAD_BASE_PRIORITY(pthread->base_priority);
+ if (pthread == curthread) {
+ /*
+ * Avoid searching the thread list when it is the current
+ * thread.
+ */
+ THR_LOCK(curthread);
+ *policy = curthread->attr.sched_policy;
+ param->sched_priority = curthread->attr.prio;
+ THR_UNLOCK(curthread);
+ ret = 0;
+ }
+ /* Find the thread in the list of active threads. */
+ else if ((ret = _thr_ref_add(curthread, pthread, /*include dead*/0))
+ == 0) {
+ THR_THREAD_LOCK(curthread, pthread);
*policy = pthread->attr.sched_policy;
+ param->sched_priority = pthread->attr.prio;
+ THR_THREAD_UNLOCK(curthread, pthread);
+ _thr_ref_delete(curthread, pthread);
}
-
- return(ret);
+ return (ret);
}
==== //depot/projects/s390/lib/msun/Makefile#8 (text+ko) ====
@@ -19,14 +19,6 @@
.endif
.include "${ARCH_SUBDIR}/Makefile.inc"
-# Broken:
-# ARCH_SRCS+= s_log1p.S
-#.elif ${MACHINE_ARCH} == "s390"
-#ARCH= s390
-#ARCH_SRCS = e_fmodf.S e_fmod.S e_hypotf.S e_hypot.S \
-# e_remainderf.S e_remainder.S e_sqrtf.S e_sqrt.S \
-# s_ceilf.S s_ceil.S s_copysignf.S s_copysign.S s_fabsf.S s_fabs.S \
-# s_finitef.S s_finite.S s_floorf.S s_floor.S s_rintf.S s_rint.S
.PATH: ${.CURDIR}/${ARCH_SUBDIR}
==== //depot/projects/s390/lib/msun/s390/Makefile.inc#2 (text+ko) ====
@@ -1,4 +1,13 @@
# $FreeBSD$
+ARCH_SRCS = e_fmodf.S e_fmod.S e_hypotf.S e_hypot.S \
+ e_remainderf.S e_remainder.S e_sqrtf.S e_sqrt.S \
+ s_ceilf.S s_ceil.S s_copysignf.S s_copysign.S s_fabsf.S s_fabs.S \
+ s_finitef.S s_finite.S s_floorf.S s_floor.S s_rintf.S s_rint.S
+
LDBL_PREC = 53 # dz9ar008 19-5
+# should be 113 as I assume FLT(short), DBL(double), LDBL(extended),
+# and so did machine/float.h; if we find a solution to the framework
+# for 113 on a 32 bit machine.. ; also lib/libc/s390/_f*.h
+SYM_MAPS += ${.CURDIR}/s390/Symbol.map
==== //depot/projects/s390/lib/msun/s390/e_fmod.S#2 (text+ko) ====
@@ -10,5 +10,5 @@
#include <machine/asm.h>
/* double fmod(double, double) */
-ENTRY(__ieee754_fmod)
+ENTRY(fmod)
br %r14
==== //depot/projects/s390/lib/msun/s390/e_fmodf.S#2 (text+ko) ====
@@ -10,5 +10,5 @@
#include <machine/asm.h>
/* float fmodf(float, float) */
-ENTRY(__ieee754_fmodf)
+ENTRY(fmodf)
br %r14
==== //depot/projects/s390/lib/msun/s390/e_hypot.S#2 (text+ko) ====
@@ -10,8 +10,8 @@
#include <machine/asm.h>
/* double hypot(double, double) */
-ENTRY(__ieee754_hypot)
- ldbr %f1, %f2
+ENTRY(hypot)
+ lxdbr %f1, %f2
mxdbr %f1, %f1
mxdbr %f0, %f0
axbr %f0, %f1
==== //depot/projects/s390/lib/msun/s390/e_hypotf.S#2 (text+ko) ====
@@ -10,7 +10,7 @@
#include <machine/asm.h>
/* float hypot(float, float) */
-ENTRY(__ieee754_hypotf)
+ENTRY(hypotf)
mdebr %f0, %f0
mdebr %f2, %f2
adbr %f0, %f2
==== //depot/projects/s390/lib/msun/s390/e_remainder.S#2 (text+ko) ====
@@ -10,6 +10,6 @@
#include <machine/asm.h>
/* double remainder(double, double) */
-ENTRY(__ieee754_remainder)
+ENTRY(remainder)
sqdbr %f0, %f0
br %r14
==== //depot/projects/s390/lib/msun/s390/e_remainderf.S#2 (text+ko) ====
@@ -10,6 +10,6 @@
#include <machine/asm.h>
/* float remainderf(float, float) */
-ENTRY(__ieee754_remainderf)
+ENTRY(remainderf)
sqdbr %f0, %f0
br %r14
>>> TRUNCATED FOR MAIL (1000 lines) <<<
More information about the p4-projects
mailing list