Re: [DTrace-devel] [PATCH v2] sparc: remove architecture support
Eugene Loh <[email protected]> Thu, 5 Mar 2026 06:00:35 -0500
| Newsgroups | dev.linux.lists.dtrace |
|---|---|
| Message-ID | <[email protected]> |
Reviewed-by: Eugene Loh <[email protected]> Two tiny comments that do not warrant holding up the patch: 1) in dt_link.c, the code is now #if defined(__i386) || defined(__amd64) emu = " -m elf_i386"; #endif Does the absence of an "#else" clause mean that emu will be undefined for some builds? Well, no, due to other constraints. So, would it be clearer to remove the "#if / #endif" altogether? I don't know. Presumably this is not a correctness issue but a clarity issue. 2) the procfs.d.in M4 is so compact now (m4_kver(4,9,0), m4_dnl [[T->cpu]]) that it might look better on a single line: (m4_kver(4,9,0), [[T->cpu]]) On 3/5/26 00:01, Kris Van Hees via DTrace-devel wrote: > Signed-off-by: Kris Van Hees <[email protected]> > --- > COMMANDLINE-OPTIONS | 6 +- > GNUmakefile | 10 +- > include/sparc/platform.h | 32 ----- > libdtrace/dt_link.c | 4 +- > libdtrace/dt_open.c | 16 +-- > libdtrace/procfs.d.in | 4 +- > libdtrace/sparc/regs.d | 99 ------------- > libproc/sparc/isadep.c | 133 ------------------ > libproc/sparc/isadep.h | 81 ----------- > test/stress/fbtsafety/tst.vahole.d | 50 ------- > test/unittest/aggs/tst.neglquant.d | 10 +- > test/unittest/arrays/tst.uregsarray.sparc64.d | 69 --------- > test/unittest/arrays/tst.uregsarray.sparc64.x | 4 - > test/unittest/pid/test.sparc64.options | 1 - > test/unittest/usdt/tst.enabled2.sh | 2 +- > 15 files changed, 16 insertions(+), 505 deletions(-) > delete mode 100644 include/sparc/platform.h > delete mode 100644 libdtrace/sparc/regs.d > delete mode 100644 libproc/sparc/isadep.c > delete mode 100644 libproc/sparc/isadep.h > delete mode 100755 test/stress/fbtsafety/tst.vahole.d > delete mode 100644 test/unittest/arrays/tst.uregsarray.sparc64.d > delete mode 100755 test/unittest/arrays/tst.uregsarray.sparc64.x > delete mode 100644 test/unittest/pid/test.sparc64.options > > diff --git a/COMMANDLINE-OPTIONS b/COMMANDLINE-OPTIONS > index 73be89b1..67be7447 100644 > --- a/COMMANDLINE-OPTIONS > +++ b/COMMANDLINE-OPTIONS > @@ -3,8 +3,8 @@ DTRACE OPTIONS > > This file lists the dtrace commandline options, and indicates whether > or not they have been made to work on Linux and roughly when. All options > -are believed to work equally well on all supported architectures (x86 and > -SPARC). > +are believed to work equally well on all supported architectures (x86_64 and > +ARM64). > > Notations: > > @@ -317,8 +317,6 @@ definitions are always specified and valid in all modes: > * __linux > * __unix > * __SVR4 > - * __sparc (on SPARC® systems only) > - * __sparcv9 (on SPARC® systems only when 64–bit programs are compiled) > * __i386 (on x86 systems only when 32–bit programs are compiled) > * __amd64 (on x86 systems only when 64–bit programs are compiled) > * __`uname -s` (for example, __Linux) > diff --git a/GNUmakefile b/GNUmakefile > index 835bc9b5..10530f3c 100644 > --- a/GNUmakefile > +++ b/GNUmakefile > @@ -20,8 +20,8 @@ VERSION := $(shell ./libdtrace/mkvers -vcurrent=t libdtrace/versions.list) > > ARCH := $(shell uname -m) > > -$(if $(subst sparc64,,$(subst aarch64,,$(subst x86_64,,$(ARCH)))), \ > - $(error "Error: DTrace for Linux only supports x86_64, ARM64 and sparc64"),) > +$(if $(subst aarch64,,$(subst x86_64,,$(ARCH))), \ > + $(error "Error: DTrace for Linux currently only supports x86_64 and ARM64"),) > $(if $(subst Linux,,$(shell uname -s)), \ > $(error "Error: DTrace only supports Linux"),) > > @@ -74,7 +74,7 @@ ifdef KERNELSRCDIR > KERNELOBJDIR ?= $(KERNELSRCDIR) > endif > > -KERNELARCH := $(subst sparc64,sparc,$(subst aarch64,arm64,$(subst x86_64,x86,$(ARCH)))) > +KERNELARCH := $(subst aarch64,arm64,$(subst x86_64,x86,$(ARCH))) > > # Paths. > > @@ -120,7 +120,7 @@ export CC ?= gcc > > BITNESS := 64 > NATIVE_BITNESS_ONLY := $(shell echo 'int main (void) { }' | $(CC) -x c -o /dev/null -m32 - 2>/dev/null || echo t) > -ARCHINC := $(subst sparc64,sparc,$(subst aarch64,arm64,$(subst x86_64,i386,$(ARCH)))) > +ARCHINC := $(subst aarch64,arm64,$(subst x86_64,i386,$(ARCH))) > > INVARIANT_CFLAGS := -std=gnu99 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 $(if $(NATIVE_BITNESS_ONLY),-DNATIVE_BITNESS_ONLY) -D_DT_VERSION=\"$(VERSION)\" > CPPFLAGS += -Iinclude -Iuts/common -Iinclude/$(ARCHINC) -I$(objdir) > @@ -129,7 +129,7 @@ override CFLAGS += $(INVARIANT_CFLAGS) > PREPROCESS = $(CC) -E > export BPFC ?= bpf-unknown-none-gcc > > -BPFCPPFLAGS += -D$(subst sparc64,__sparc,$(subst aarch64,__aarch64__,$(subst x86_64,__amd64,$(ARCH)))) > +BPFCPPFLAGS += -D$(subst aarch64,__aarch64__,$(subst x86_64,__amd64,$(ARCH))) > BPFCFLAGS ?= -O2 -Wall -Wno-unknown-pragmas $(if $(HAVE_BPFV3),-mcpu=v3) $(if $(HAVE_BPFMASM),-masm=normal) -ffreestanding > export BPFLD ?= bpf-unknown-none-ld > > diff --git a/include/sparc/platform.h b/include/sparc/platform.h > deleted file mode 100644 > index 1dea6ea2..00000000 > --- a/include/sparc/platform.h > +++ /dev/null > @@ -1,32 +0,0 @@ > -/* > - * Oracle Linux DTrace. > - * Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved. > - * Licensed under the Universal Permissive License v 1.0 as shown at > - * http://oss.oracle.com/licenses/upl. > - */ > - > -#ifndef _SPARC_PLATFORM_H > -#define _SPARC_PLATFORM_H > - > -#include <inttypes.h> > -#include <asm/ptrace.h> > -#include <elf.h> > -#include <sys/syscall.h> /* for __NR_* */ > - > -/* > - * Must be no larger than an 'unsigned long'. > - */ > -const static unsigned char plat_bkpt[] = { 0x91, 0xd0, 0x20, 0x01 }; > - > -/* > - * Number of processor-specific dynamic tags on this platform. > - */ > -#define DT_THISPROCNUM DT_SPARC_NUM > - > -/* > - * TRUE if this platform requires software singlestepping. > - */ > -#define NEED_SOFTWARE_SINGLESTEP 1 > - > -#endif > - > diff --git a/libdtrace/dt_link.c b/libdtrace/dt_link.c > index 6d733881..340273fb 100644 > --- a/libdtrace/dt_link.c > +++ b/libdtrace/dt_link.c > @@ -524,9 +524,7 @@ dtrace_program_link(dtrace_hdl_t *dtp, dtrace_prog_t *pgp, uint_t dflags, > > if (dtp->dt_oflags & DTRACE_O_ILP32) { > snprintf(drti, sizeof (drti), "%s/drti/drti32.o", libdir->dir_path); > -#if defined(__sparc) > - emu = " -m elf32_sparc"; > -#elif defined(__i386) || defined(__amd64) > +#if defined(__i386) || defined(__amd64) > emu = " -m elf_i386"; > #endif > } else { > diff --git a/libdtrace/dt_open.c b/libdtrace/dt_open.c > index 54adec02..30b8758d 100644 > --- a/libdtrace/dt_open.c > +++ b/libdtrace/dt_open.c > @@ -827,24 +827,10 @@ dt_vopen(int version, int flags, int *errp, > else if (flags & DTRACE_O_ILP32) > dtp->dt_conf.dtc_ctfmodel = CTF_MODEL_ILP32; > > -#ifdef __sparc > - /* > - * On SPARC systems, __sparc is always defined for <sys/isa_defs.h> > - * and __sparcv9 is defined if we are doing a 64-bit compile. > - */ > - if (dt_cpp_add_arg(dtp, "-D__sparc") == NULL) > - return set_open_errno(dtp, errp, EDT_NOMEM); > - > - if (dtp->dt_conf.dtc_ctfmodel == CTF_MODEL_LP64 && > - dt_cpp_add_arg(dtp, "-D__sparcv9") == NULL) > - return set_open_errno(dtp, errp, EDT_NOMEM); > -#endif > - > #ifdef __x86 > /* > * On x86 systems, __i386 is defined for <sys/isa_defs.h> for 32-bit > - * compiles and __amd64 is defined for 64-bit compiles. Unlike SPARC, > - * they are defined exclusive of one another (see PSARC 2004/619). > + * compiles and __amd64 is defined for 64-bit compiles. > */ > if (dtp->dt_conf.dtc_ctfmodel == CTF_MODEL_LP64) { > if (dt_cpp_add_arg(dtp, "-D__amd64") == NULL) > diff --git a/libdtrace/procfs.d.in b/libdtrace/procfs.d.in > index 23454d63..4140608b 100644 > --- a/libdtrace/procfs.d.in > +++ b/libdtrace/procfs.d.in > @@ -285,9 +285,7 @@ translator lwpsinfo_t < struct task_struct *T > { > define_for_kernel([[on_cpu]], [[(m4_kver(5,16,0), m4_dnl > [[((struct thread_info *)T->stack)->cpu]]), m4_dnl > (m4_kver(4,9,0), m4_dnl > - [[if_arch([[x86]],[[T->cpu]])]] m4_dnl > - [[if_arch([[arm64]],[[T->cpu]])]] m4_dnl > - [[if_arch([[sparc]],[[((struct thread_info *)T->stack)->cpu]])]])]], m4_dnl > + [[T->cpu]])]], m4_dnl > [[((struct thread_info *)T->stack)->cpu]])m4_dnl > pr_onpro = on_cpu; > }; > diff --git a/libdtrace/sparc/regs.d b/libdtrace/sparc/regs.d > deleted file mode 100644 > index 112ae207..00000000 > --- a/libdtrace/sparc/regs.d > +++ /dev/null > @@ -1,99 +0,0 @@ > -/* > - * Oracle Linux DTrace. > - * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved. > - * Licensed under the Universal Permissive License v 1.0 as shown at > - * http://oss.oracle.com/licenses/upl. > - */ > - > -inline int R_G0 = 0; > -#pragma D binding "1.0" R_G0 > -inline int R_G1 = 1; > -#pragma D binding "1.0" R_G1 > -inline int R_G2 = 2; > -#pragma D binding "1.0" R_G2 > -inline int R_G3 = 3; > -#pragma D binding "1.0" R_G3 > -inline int R_G4 = 4; > -#pragma D binding "1.0" R_G4 > -inline int R_G5 = 5; > -#pragma D binding "1.0" R_G5 > -inline int R_G6 = 6; > -#pragma D binding "1.0" R_G6 > -inline int R_G7 = 7; > -#pragma D binding "1.0" R_G7 > - > -inline int R_O0 = 8; > -#pragma D binding "1.0" R_O0 > -inline int R_O1 = 9; > -#pragma D binding "1.0" R_O1 > -inline int R_O2 = 10; > -#pragma D binding "1.0" R_O2 > -inline int R_O3 = 11; > -#pragma D binding "1.0" R_O3 > -inline int R_O4 = 12; > -#pragma D binding "1.0" R_O4 > -inline int R_O5 = 13; > -#pragma D binding "1.0" R_O5 > -inline int R_O6 = 14; > -#pragma D binding "1.0" R_O6 > -inline int R_O7 = 15; > -#pragma D binding "1.0" R_O7 > - > -inline int R_L0 = 16; > -#pragma D binding "1.0" R_L0 > -inline int R_L1 = 17; > -#pragma D binding "1.0" R_L1 > -inline int R_L2 = 18; > -#pragma D binding "1.0" R_L2 > -inline int R_L3 = 19; > -#pragma D binding "1.0" R_L3 > -inline int R_L4 = 20; > -#pragma D binding "1.0" R_L4 > -inline int R_L5 = 21; > -#pragma D binding "1.0" R_L5 > -inline int R_L6 = 22; > -#pragma D binding "1.0" R_L6 > -inline int R_L7 = 23; > -#pragma D binding "1.0" R_L7 > - > -inline int R_I0 = 24; > -#pragma D binding "1.0" R_I0 > -inline int R_I1 = 25; > -#pragma D binding "1.0" R_I1 > -inline int R_I2 = 26; > -#pragma D binding "1.0" R_I2 > -inline int R_I3 = 27; > -#pragma D binding "1.0" R_I3 > -inline int R_I4 = 28; > -#pragma D binding "1.0" R_I4 > -inline int R_I5 = 29; > -#pragma D binding "1.0" R_I5 > -inline int R_I6 = 30; > -#pragma D binding "1.0" R_I6 > -inline int R_I7 = 31; > -#pragma D binding "1.0" R_I7 > - > -inline int R_CCR = 32; > -#pragma D binding "1.0" R_CCR > -inline int R_PC = 33; > -#pragma D binding "1.0" R_PC > -inline int R_nPC = 34; > -#pragma D binding "1.0" R_nPC > -inline int R_NPC = R_nPC; > -#pragma D binding "1.0" R_NPC > -inline int R_Y = 35; > -#pragma D binding "1.0" R_Y > -inline int R_ASI = 36; > -#pragma D binding "1.0" R_ASI > -inline int R_FPRS = 37; > -#pragma D binding "1.0" R_FPRS > -inline int R_PS = R_CCR; > -#pragma D binding "1.0" R_PS > -inline int R_SP = R_O6; > -#pragma D binding "1.0" R_SP > -inline int R_FP = R_I6; > -#pragma D binding "1.0" R_FP > -inline int R_R0 = R_O0; > -#pragma D binding "1.0" R_R0 > -inline int R_R1 = R_O1; > -#pragma D binding "1.0" R_R1 > diff --git a/libproc/sparc/isadep.c b/libproc/sparc/isadep.c > deleted file mode 100644 > index aa4f53f5..00000000 > --- a/libproc/sparc/isadep.c > +++ /dev/null > @@ -1,133 +0,0 @@ > -/* > - * ISA-dependent functions for SPARC and SPARC64. > - */ > - > -/* > - * Oracle Linux DTrace. > - * Copyright (c) 2013, 2020, Oracle and/or its affiliates. All rights reserved. > - * Licensed under the Universal Permissive License v 1.0 as shown at > - * http://oss.oracle.com/licenses/upl. > - */ > - > -#include <inttypes.h> > -#include <errno.h> > -#include <string.h> > -#include <sys/ptrace.h> > -#include <asm/ptrace.h> /* for struct pt_regs */ > - > -#include "Pcontrol.h" > -#include "libproc.h" > -#include "platform.h" > - > -#define PTRACE_GETREGSET 0x4204 > - > -/* > - * Get a SPARC64 regset. > - */ > -static struct pt_regs * > -getregs_sparc64(struct ps_prochandle *P, struct pt_regs *regs) > -{ > - if (Pstate(P) == PS_RUN || > - Pstate(P) == PS_DEAD) > - return NULL; > - > - if (wrapped_ptrace(P, PTRACE_GETREGS64, P->pid, regs) < 0) > - return NULL; > - > - return regs; > -} > - > -static struct pt_regs32 * > -getregs_sparc32(struct ps_prochandle *P, struct pt_regs32 *regs) > -{ > - if (Pstate(P) == PS_RUN || > - Pstate(P) == PS_DEAD) > - return NULL; > - > - if (wrapped_ptrace(P, PTRACE_GETREGS, P->pid, regs) < 0) > - return NULL; > - > - return regs; > -} > - > -/* > - * Read the first argument of the function at which the process P is halted, > - * which must be a pointer (though other integral arguments happen to work for > - * the SPARC and SPARC64 ABI). > - * > - * For SPARC, the first integral argument to a function will always be in %i0. > - * Horrifically, the value of all the UREG_* constants is off by 1, so we have > - * to correct for that. > - * > - * On error, -1 cast to a uintptr_t is returned, and errno is set. > - */ > -uintptr_t > -Pread_first_arg_sparc64(struct ps_prochandle *P) > -{ > - struct pt_regs regs; > - > - if (getregs_sparc64(P, ®s) == NULL) > - return (uintptr_t)-1; > - > - return regs.u_regs[UREG_I0 - 1]; > -} > - > -uintptr_t > -Pread_first_arg_sparc32(struct ps_prochandle *P) > -{ > - struct pt_regs32 regs; > - > - if (getregs_sparc32(P, ®s) == NULL) > - return (uintptr_t)-1; > - > - return regs.u_regs[UREG_I0 - 1]; > -} > - > -/* > - * Get the address at which we stopped at a breakpoint. Unlike on x86, no post > - * facto adjustment is required. > - */ > -uintptr_t > -Pget_bkpt_ip_sparc64(struct ps_prochandle *P, int expect_esrch) > -{ > - struct pt_regs regs; > - > - if (getregs_sparc64(P, ®s) == NULL) { > - if ((errno == ESRCH) && (expect_esrch)) > - return 0; > - else { > - _dprintf("Unexpected ptrace (PTRACE_GETREGSET) " > - "error: %s\n", strerror(errno)); > - return -1; > - } > - } > - > - return regs.tpc; > -} > - > -/* > - * Reset the instruction pointer address at which the process P is stopped. > - * (Not needed on SPARC.) > - */ > -long > -Preset_bkpt_ip_sparc(struct ps_prochandle *P, uintptr_t addr) > -{ > - return 0; /* nothing doing */ > -} > - > -/* > - * Get the address at which the temporary breakpoint should be dropped when a > - * breakpoint is hit. > - */ > -extern long Pget_next_ip_sparc64(struct ps_prochandle *P, uintptr_t addr) > -{ > - struct pt_regs regs; > - > - if (getregs_sparc64(P, ®s) == NULL) { > - _dprintf("Unexpected ptrace (PTRACE_GETREGSET) " > - "error: %s\n", strerror(errno)); > - return -1; > - } > - > - return regs.tnpc; > -} > diff --git a/libproc/sparc/isadep.h b/libproc/sparc/isadep.h > deleted file mode 100644 > index 005e6008..00000000 > --- a/libproc/sparc/isadep.h > +++ /dev/null > @@ -1,81 +0,0 @@ > -/* > - * Underlying ISA-dependent functions for SPARC and SPARC64. > - */ > - > -/* > - * Oracle Linux DTrace. > - * Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved. > - * Licensed under the Universal Permissive License v 1.0 as shown at > - * http://oss.oracle.com/licenses/upl. > - */ > - > -/* > - * Not protected against multiple inclusion: this file is included by > - * isadep_dispatch.h repeatedly, at local scope, to get different prototypes and > - * dispatch variables. > - */ > - > -#ifdef WANT_FIRST_ARG_DISPATCH > - > -extern uintptr_t Pread_first_arg_sparc64(struct ps_prochandle *P); > -extern uintptr_t Pread_first_arg_sparc32(struct ps_prochandle *P); > - > -isa_dispatch_t dispatch[] = { > - {B_FALSE, EM_SPARCV9, (dispatch_fun_t *) Pread_first_arg_sparc32}, > - {B_TRUE, EM_SPARCV9, (dispatch_fun_t *) Pread_first_arg_sparc64}, > - {B_FALSE, EM_SPARC32PLUS, (dispatch_fun_t *) Pread_first_arg_sparc32}, > - {B_TRUE, EM_SPARC32PLUS, (dispatch_fun_t *) Pread_first_arg_sparc64}, > - {B_FALSE, EM_SPARC, (dispatch_fun_t *) Pread_first_arg_sparc32}, > - {B_TRUE, EM_SPARC, (dispatch_fun_t *) Pread_first_arg_sparc64}, /* ??? */ > - {0, 0, NULL}}; > - > -#endif > - > -#ifdef WANT_GET_BKPT_IP > - > -extern uintptr_t Pget_bkpt_ip_sparc64(struct ps_prochandle *P, int expect_esrch); > - > -/* > - * I hope 32-on-64 traps are treated like 64-on-64 traps. > - */ > - > -isa_dispatch_t dispatch[] = { > - {B_FALSE, EM_SPARCV9, (dispatch_fun_t *) Pget_bkpt_ip_sparc64}, > - {B_TRUE, EM_SPARCV9, (dispatch_fun_t *) Pget_bkpt_ip_sparc64}, > - {B_FALSE, EM_SPARC32PLUS, (dispatch_fun_t *) Pget_bkpt_ip_sparc64}, > - {B_TRUE, EM_SPARC32PLUS, (dispatch_fun_t *) Pget_bkpt_ip_sparc64}, > - {B_FALSE, EM_SPARC, (dispatch_fun_t *) Pget_bkpt_ip_sparc64}, > - {B_TRUE, EM_SPARC, (dispatch_fun_t *) Pget_bkpt_ip_sparc64}, /* ??? */ > - {0, 0, NULL}}; > - > -#endif > - > -#ifdef WANT_RESET_BKPT_IP > - > -extern long Preset_bkpt_ip_sparc(struct ps_prochandle *P, uintptr_t addr); > - > -isa_dispatch_t dispatch[] = { > - {B_FALSE, EM_SPARCV9, (dispatch_fun_t *) Preset_bkpt_ip_sparc}, > - {B_TRUE, EM_SPARCV9, (dispatch_fun_t *) Preset_bkpt_ip_sparc}, > - {B_FALSE, EM_SPARC32PLUS, (dispatch_fun_t *) Preset_bkpt_ip_sparc}, > - {B_TRUE, EM_SPARC32PLUS, (dispatch_fun_t *) Preset_bkpt_ip_sparc}, > - {B_FALSE, EM_SPARC, (dispatch_fun_t *) Preset_bkpt_ip_sparc}, > - {B_TRUE, EM_SPARC, (dispatch_fun_t *) Preset_bkpt_ip_sparc}, /* ??? */ > - {0, 0, NULL}}; > - > -#endif > - > -#ifdef WANT_GET_NEXT_IP > - > -extern long Pget_next_ip_sparc64(struct ps_prochandle *P, uintptr_t addr); > - > -isa_dispatch_t dispatch[] = { > - {B_FALSE, EM_SPARCV9, (dispatch_fun_t *) Pget_next_ip_sparc64}, > - {B_TRUE, EM_SPARCV9, (dispatch_fun_t *) Pget_next_ip_sparc64}, > - {B_FALSE, EM_SPARC32PLUS, (dispatch_fun_t *) Pget_next_ip_sparc64}, > - {B_TRUE, EM_SPARC32PLUS, (dispatch_fun_t *) Pget_next_ip_sparc64}, > - {B_FALSE, EM_SPARC, (dispatch_fun_t *) Pget_next_ip_sparc64}, > - {B_TRUE, EM_SPARC, (dispatch_fun_t *) Pget_next_ip_sparc64}, /* ??? */ > - {0, 0, NULL}}; > - > -#endif > diff --git a/test/stress/fbtsafety/tst.vahole.d b/test/stress/fbtsafety/tst.vahole.d > deleted file mode 100755 > index 732ae3ca..00000000 > --- a/test/stress/fbtsafety/tst.vahole.d > +++ /dev/null > @@ -1,50 +0,0 @@ > -#!dtrace -Cs > - > -/* > - * Oracle Linux DTrace. > - * Copyright (c) 2006, 2026, Oracle and/or its affiliates. All rights reserved. > - * Licensed under the Universal Permissive License v 1.0 as shown at > - * http://oss.oracle.com/licenses/upl. > - */ > - > -/* @@skip: nonportable */ > - > -/* > - * We set our buffer size absurdly low to prevent a flood of errors that we > - * don't care about. > - */ > -#pragma D option bufsize=16 > -#pragma D option bufpolicy=ring > - > -fbt::: > -{ > - n++; > -#ifdef __sparc > - trace(*(int *)0x8000000000000000 ^ rand()); > -#else > - trace(*(int *)(`kernelbase - 1)); > -#endif > -} > - > -dtrace:::ERROR > -{ > - err++; > -} > - > -tick-1sec > -/sec++ == 10/ > -{ > - exit(2); > -} > - > -END > -/n == 0 || err == 0/ > -{ > - exit(1); > -} > - > -END > -/n != 0 && err != 0/ > -{ > - exit(0); > -} > diff --git a/test/unittest/aggs/tst.neglquant.d b/test/unittest/aggs/tst.neglquant.d > index c09d7aab..5e6d1dc0 100644 > --- a/test/unittest/aggs/tst.neglquant.d > +++ b/test/unittest/aggs/tst.neglquant.d > @@ -90,11 +90,11 @@ BEGIN > * We want to test the ability to sort very large quantizations > * that differ by a small amount. Ideally, they would differ only > * by 1 -- but that is smaller than the precision of long doubles of > - * this magnitude on x86. To assure that the same test works on x86 > - * just as it does on SPARC, we pick a value that is just larger than > - * the precision at this magnitude. It should go without saying that > - * this robustness on new ISAs very much depends on the precision > - * of the long double representation. > + * this magnitude on x86_64. To assure that the same test works for > + * the architectures DTrace is developed for, we pick a value that is > + * just larger than the precision at this magnitude. It should go > + * without saying that this robustness on new ISAs very much depends on > + * the precision of the long double representation. > */ > this->val = (((long long) 1) << 63) - 7; > > diff --git a/test/unittest/arrays/tst.uregsarray.sparc64.d b/test/unittest/arrays/tst.uregsarray.sparc64.d > deleted file mode 100644 > index 2179a0db..00000000 > --- a/test/unittest/arrays/tst.uregsarray.sparc64.d > +++ /dev/null > @@ -1,69 +0,0 @@ > -/* > - * Oracle Linux DTrace. > - * Copyright (c) 2006, Oracle and/or its affiliates. All rights reserved. > - * Licensed under the Universal Permissive License v 1.0 as shown at > - * http://oss.oracle.com/licenses/upl. > - */ > -/* @@xfail: dtv2 */ > - > -/* > - * ASSERTION: > - * Positive test to make sure that we can invoke sparc > - * ureg[] aliases. > - * > - * SECTION: User Process Tracing/uregs Array > - * > - * NOTES: This test does no verification - the value of the output > - * is not deterministic. > - */ > - > -#pragma D option quiet > - > -BEGIN > -{ > - printf("R_G0 = 0x%x\n", uregs[R_G0]); > - printf("R_G1 = 0x%x\n", uregs[R_G1]); > - printf("R_G2 = 0x%x\n", uregs[R_G2]); > - printf("R_G3 = 0x%x\n", uregs[R_G3]); > - printf("R_G4 = 0x%x\n", uregs[R_G4]); > - printf("R_G5 = 0x%x\n", uregs[R_G5]); > - printf("R_G6 = 0x%x\n", uregs[R_G6]); > - printf("R_G7 = 0x%x\n", uregs[R_G7]); > - printf("R_O0 = 0x%x\n", uregs[R_O0]); > - printf("R_O1 = 0x%x\n", uregs[R_O1]); > - printf("R_O2 = 0x%x\n", uregs[R_O2]); > - printf("R_O3 = 0x%x\n", uregs[R_O3]); > - printf("R_O4 = 0x%x\n", uregs[R_O4]); > - printf("R_O5 = 0x%x\n", uregs[R_O5]); > - printf("R_O6 = 0x%x\n", uregs[R_O6]); > - printf("R_O7 = 0x%x\n", uregs[R_O7]); > - printf("R_L0 = 0x%x\n", uregs[R_L0]); > - printf("R_L1 = 0x%x\n", uregs[R_L1]); > - printf("R_L2 = 0x%x\n", uregs[R_L2]); > - printf("R_L3 = 0x%x\n", uregs[R_L3]); > - printf("R_L4 = 0x%x\n", uregs[R_L4]); > - printf("R_L5 = 0x%x\n", uregs[R_L5]); > - printf("R_L6 = 0x%x\n", uregs[R_L6]); > - printf("R_L7 = 0x%x\n", uregs[R_L7]); > - printf("R_I0 = 0x%x\n", uregs[R_I0]); > - printf("R_I1 = 0x%x\n", uregs[R_I1]); > - printf("R_I2 = 0x%x\n", uregs[R_I2]); > - printf("R_I3 = 0x%x\n", uregs[R_I3]); > - printf("R_I4 = 0x%x\n", uregs[R_I4]); > - printf("R_I5 = 0x%x\n", uregs[R_I5]); > - printf("R_I6 = 0x%x\n", uregs[R_I6]); > - printf("R_I7 = 0x%x\n", uregs[R_I7]); > - printf("R_CCR = 0x%x\n", uregs[R_CCR]); > - printf("R_PC = 0x%x\n", uregs[R_PC]); > - printf("R_NPC = 0x%x\n", uregs[R_NPC]); > - printf("R_Y = 0x%x\n", uregs[R_Y]); > - printf("R_ASI = 0x%x\n", uregs[R_ASI]); > - printf("R_FPRS = 0x%x\n", uregs[R_FPRS]); > - exit(0); > -} > - > -ERROR > -{ > - printf("uregs access failed.\n"); > - exit(1); > -} > diff --git a/test/unittest/arrays/tst.uregsarray.sparc64.x b/test/unittest/arrays/tst.uregsarray.sparc64.x > deleted file mode 100755 > index 2c34e04d..00000000 > --- a/test/unittest/arrays/tst.uregsarray.sparc64.x > +++ /dev/null > @@ -1,4 +0,0 @@ > -#!/bin/sh > - > -[ `uname -m` = "sparc64" ] && exit 0 > -exit 2 > diff --git a/test/unittest/pid/test.sparc64.options b/test/unittest/pid/test.sparc64.options > deleted file mode 100644 > index 9e81427e..00000000 > --- a/test/unittest/pid/test.sparc64.options > +++ /dev/null > @@ -1 +0,0 @@ > -@@skip: pid provider not yet implemented (sparc64) > diff --git a/test/unittest/usdt/tst.enabled2.sh b/test/unittest/usdt/tst.enabled2.sh > index b174ef4c..c33bca07 100755 > --- a/test/unittest/usdt/tst.enabled2.sh > +++ b/test/unittest/usdt/tst.enabled2.sh > @@ -5,7 +5,7 @@ > # Licensed under the Universal Permissive License v 1.0 as shown at > # http://oss.oracle.com/licenses/upl. > # > -# This test is primarily intended to verify a fix for SPARC, but there's no > +# This test was primarily developed to verify a fix for SPARC, but there's no > # harm in running it on other platforms. Here, we verify that is-enabled > # probes don't interfere with return values from previously invoked functions. > > > _______________________________________________ > DTrace-devel mailing list > [email protected] > https://oss.oracle.com/mailman/listinfo/dtrace-devel