- Cleanups related to sparc64 removal.
- Remove remains of sparc64 files. Reviewed by: imp Differential Revision: https://reviews.freebsd.org/D25831
This commit is contained in:
parent
0bea73b236
commit
27a435ec3d
@ -2,10 +2,10 @@
|
|||||||
|
|
||||||
.include <src.opts.mk>
|
.include <src.opts.mk>
|
||||||
|
|
||||||
SUBDIR= ${_drti} \
|
SUBDIR= drti \
|
||||||
libavl \
|
libavl \
|
||||||
libctf \
|
libctf \
|
||||||
${_libdtrace} \
|
libdtrace \
|
||||||
libnvpair \
|
libnvpair \
|
||||||
libumem \
|
libumem \
|
||||||
libuutil \
|
libuutil \
|
||||||
@ -23,11 +23,6 @@ _libzpool= libzpool
|
|||||||
.endif
|
.endif
|
||||||
.endif
|
.endif
|
||||||
|
|
||||||
.if ${MACHINE_CPUARCH} != "sparc64"
|
|
||||||
_drti= drti
|
|
||||||
_libdtrace= libdtrace
|
|
||||||
.endif
|
|
||||||
|
|
||||||
SUBDIR_DEPEND_libdtrace= libctf
|
SUBDIR_DEPEND_libdtrace= libctf
|
||||||
SUBDIR_DEPEND_libzfs_core= libnvpair
|
SUBDIR_DEPEND_libzfs_core= libnvpair
|
||||||
SUBDIR_DEPEND_libzfs= libavl libnvpair libumem libuutil libzfs_core
|
SUBDIR_DEPEND_libzfs= libavl libnvpair libumem libuutil libzfs_core
|
||||||
|
@ -103,9 +103,6 @@ CFLAGS+= -I${OPENSOLARIS_SYS_DISTDIR}/uts/powerpc
|
|||||||
CFLAGS+= -I${OPENSOLARIS_SYS_DISTDIR}/uts/riscv
|
CFLAGS+= -I${OPENSOLARIS_SYS_DISTDIR}/uts/riscv
|
||||||
.PATH: ${SRCTOP}/cddl/contrib/opensolaris/lib/libdtrace/riscv
|
.PATH: ${SRCTOP}/cddl/contrib/opensolaris/lib/libdtrace/riscv
|
||||||
.PATH: ${SRCTOP}/sys/cddl/dev/dtrace/riscv
|
.PATH: ${SRCTOP}/sys/cddl/dev/dtrace/riscv
|
||||||
.elif ${MACHINE_CPUARCH} == "sparc64"
|
|
||||||
CFLAGS+= -I${OPENSOLARIS_SYS_DISTDIR}/uts/sparc
|
|
||||||
.PATH: ${SRCTOP}/cddl/contrib/opensolaris/lib/libdtrace/sparc
|
|
||||||
.else
|
.else
|
||||||
# temporary hack
|
# temporary hack
|
||||||
CFLAGS+= -I${OPENSOLARIS_SYS_DISTDIR}/uts/intel
|
CFLAGS+= -I${OPENSOLARIS_SYS_DISTDIR}/uts/intel
|
||||||
|
@ -18,9 +18,7 @@
|
|||||||
.if exists(${SRCTOP}/sys/cddl/contrib/opensolaris/common/atomic/${MACHINE_ARCH}/opensolaris_atomic.S)
|
.if exists(${SRCTOP}/sys/cddl/contrib/opensolaris/common/atomic/${MACHINE_ARCH}/opensolaris_atomic.S)
|
||||||
.PATH: ${SRCTOP}/sys/cddl/contrib/opensolaris/common/atomic/${MACHINE_ARCH}
|
.PATH: ${SRCTOP}/sys/cddl/contrib/opensolaris/common/atomic/${MACHINE_ARCH}
|
||||||
ATOMIC_SRCS= opensolaris_atomic.S
|
ATOMIC_SRCS= opensolaris_atomic.S
|
||||||
.if ${MACHINE_ARCH} != "sparc64"
|
|
||||||
ACFLAGS+= -Wa,--noexecstack
|
ACFLAGS+= -Wa,--noexecstack
|
||||||
.endif
|
|
||||||
.else
|
.else
|
||||||
.PATH: ${SRCTOP}/sys/cddl/compat/opensolaris/kern
|
.PATH: ${SRCTOP}/sys/cddl/compat/opensolaris/kern
|
||||||
ATOMIC_SRCS= opensolaris_atomic.c
|
ATOMIC_SRCS= opensolaris_atomic.c
|
||||||
|
@ -864,8 +864,6 @@
|
|||||||
..
|
..
|
||||||
powerpc
|
powerpc
|
||||||
..
|
..
|
||||||
sparc64
|
|
||||||
..
|
|
||||||
..
|
..
|
||||||
man5
|
man5
|
||||||
..
|
..
|
||||||
@ -880,8 +878,6 @@
|
|||||||
..
|
..
|
||||||
powerpc
|
powerpc
|
||||||
..
|
..
|
||||||
sparc64
|
|
||||||
..
|
|
||||||
..
|
..
|
||||||
man9
|
man9
|
||||||
..
|
..
|
||||||
|
@ -1,86 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
#
|
|
||||||
# Module: mkisoimages.sh
|
|
||||||
# Author: Jordan K Hubbard
|
|
||||||
# Date: 22 June 2001
|
|
||||||
#
|
|
||||||
# $FreeBSD$
|
|
||||||
#
|
|
||||||
# This script is used by release/Makefile to build the (optional) ISO images
|
|
||||||
# for a FreeBSD release. It is considered architecture dependent since each
|
|
||||||
# platform has a slightly unique way of making bootable CDs. This script
|
|
||||||
# is also allowed to generate any number of images since that is more of
|
|
||||||
# publishing decision than anything else.
|
|
||||||
#
|
|
||||||
# Usage:
|
|
||||||
#
|
|
||||||
# mkisoimages.sh [-b] image-label image-name base-bits-dir [extra-bits-dir]
|
|
||||||
#
|
|
||||||
# Where -b is passed if the ISO image should be made "bootable" by
|
|
||||||
# whatever standards this architecture supports (may be unsupported),
|
|
||||||
# image-label is the ISO image label, image-name is the filename of the
|
|
||||||
# resulting ISO image, base-bits-dir contains the image contents and
|
|
||||||
# extra-bits-dir, if provided, contains additional files to be merged
|
|
||||||
# into base-bits-dir as part of making the image.
|
|
||||||
set -e
|
|
||||||
|
|
||||||
if [ $# -lt 3 ]; then
|
|
||||||
echo "Usage: $0 [-b] image-label image-name base-bits-dir [extra-bits-dir]" > /dev/stderr
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
case "$1" in
|
|
||||||
-b) BOPT="$1"; shift ;;
|
|
||||||
esac
|
|
||||||
LABEL=`echo "$1" | tr '[:lower:]' '[:upper:]'`; shift
|
|
||||||
NAME="$1"; shift
|
|
||||||
BASEBITSDIR="$1"
|
|
||||||
|
|
||||||
# Create an ISO image
|
|
||||||
publisher="The FreeBSD Project. https://www.FreeBSD.org/"
|
|
||||||
echo "/dev/iso9660/$LABEL / cd9660 ro 0 0" > "$BASEBITSDIR/etc/fstab"
|
|
||||||
makefs -t cd9660 -o rockridge -o label="$LABEL" -o publisher="$publisher" "$NAME.tmp" "$@"
|
|
||||||
rm -f "$BASEBITSDIR/etc/fstab"
|
|
||||||
|
|
||||||
if [ "$BOPT" != "-b" ]; then
|
|
||||||
mv "$NAME.tmp" "$NAME"
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
TMPIMGDIR=`mktemp -d /tmp/bootfs.XXXXXXXX` || exit 1
|
|
||||||
BOOTFSDIR="$TMPIMGDIR/bootfs"
|
|
||||||
BOOTFSIMG="$TMPIMGDIR/bootfs.img"
|
|
||||||
|
|
||||||
# Create a boot filesystem
|
|
||||||
mkdir -p "$BOOTFSDIR/boot"
|
|
||||||
cp -p "$BASEBITSDIR/boot/loader" "$BOOTFSDIR/boot"
|
|
||||||
makefs -t ffs -B be -M 512k "$BOOTFSIMG" "$BOOTFSDIR"
|
|
||||||
dd if="$BASEBITSDIR/boot/boot1" of="$BOOTFSIMG" bs=512 conv=notrunc,sync
|
|
||||||
|
|
||||||
# Create a boot ISO image
|
|
||||||
: ${CYLSIZE:=640}
|
|
||||||
ISOSIZE=$(stat -f %z "$NAME.tmp")
|
|
||||||
ISOBLKS=$((($ISOSIZE + 511) / 512))
|
|
||||||
ISOCYLS=$((($ISOBLKS + ($CYLSIZE - 1)) / $CYLSIZE))
|
|
||||||
|
|
||||||
BOOTFSSIZE=$(stat -f %z "$BOOTFSIMG")
|
|
||||||
BOOTFSBLKS=$((($BOOTFSSIZE + 511) / 512))
|
|
||||||
BOOTFSCYLS=$((($BOOTFSBLKS + ($CYLSIZE - 1)) / $CYLSIZE))
|
|
||||||
|
|
||||||
ENDCYL=$(($ISOCYLS + $BOOTFSCYLS))
|
|
||||||
NSECTS=$(($ENDCYL * 1 * $CYLSIZE))
|
|
||||||
|
|
||||||
dd if="$NAME.tmp" of="$NAME" bs="${CYLSIZE}b" conv=notrunc,sync
|
|
||||||
dd if="$BOOTFSIMG" of="$NAME" bs="${CYLSIZE}b" seek=$ISOCYLS conv=notrunc,sync
|
|
||||||
# The number of alternative cylinders is always 2.
|
|
||||||
dd if=/dev/zero of="$NAME" bs="${CYLSIZE}b" seek=$ENDCYL count=2 conv=notrunc,sync
|
|
||||||
rm -rf "$NAME.tmp" "$TMPIMGDIR"
|
|
||||||
|
|
||||||
# Write VTOC8 label to boot ISO image
|
|
||||||
MD=`mdconfig -a -t vnode -S 512 -y 1 -x "$CYLSIZE" -f "$NAME"`
|
|
||||||
gpart create -s VTOC8 $MD
|
|
||||||
# !4: usr, for ISO image part
|
|
||||||
gpart add -i 1 -s "$(($ISOCYLS * $CYLSIZE * 512))b" -t \!4 $MD
|
|
||||||
# !2: root, for bootfs part.
|
|
||||||
gpart add -i 6 -s "$(($BOOTFSCYLS * $CYLSIZE * 512))b" -t \!2 $MD
|
|
||||||
mdconfig -d -u ${MD#md}
|
|
@ -1,10 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
#
|
|
||||||
# $FreeBSD$
|
|
||||||
#
|
|
||||||
|
|
||||||
# Configuration file for release/release.sh to build sparc64/sparc64.
|
|
||||||
|
|
||||||
TARGET="sparc64"
|
|
||||||
TARGET_ARCH="sparc64"
|
|
||||||
KERNEL="GENERIC"
|
|
@ -147,10 +147,6 @@ CRUNCH_ALIAS_bsdlabel= disklabel
|
|||||||
#CRUNCH_LIBS+= -lsmb
|
#CRUNCH_LIBS+= -lsmb
|
||||||
.endif
|
.endif
|
||||||
|
|
||||||
.if ${MACHINE_CPUARCH} == "sparc64"
|
|
||||||
CRUNCH_PROGS_sbin+= bsdlabel sunlabel
|
|
||||||
.endif
|
|
||||||
|
|
||||||
.if ${MACHINE_CPUARCH} == "amd64"
|
.if ${MACHINE_CPUARCH} == "amd64"
|
||||||
CRUNCH_PROGS_sbin+= bsdlabel fdisk
|
CRUNCH_PROGS_sbin+= bsdlabel fdisk
|
||||||
CRUNCH_ALIAS_bsdlabel= disklabel
|
CRUNCH_ALIAS_bsdlabel= disklabel
|
||||||
|
@ -1,54 +0,0 @@
|
|||||||
#
|
|
||||||
# $FreeBSD$
|
|
||||||
# @(#)ttys 5.1 (Berkeley) 4/17/89
|
|
||||||
#
|
|
||||||
# This file specifies various information about terminals on the system.
|
|
||||||
# It is used by several different programs. Common entries for the
|
|
||||||
# various columns include:
|
|
||||||
#
|
|
||||||
# name The name of the terminal device.
|
|
||||||
#
|
|
||||||
# getty The program to start running on the terminal. Typically a
|
|
||||||
# getty program, as the name implies. Other common entries
|
|
||||||
# include none, when no getty is needed, and xdm, to start the
|
|
||||||
# X Window System.
|
|
||||||
#
|
|
||||||
# type The initial terminal type for this port. For hardwired
|
|
||||||
# terminal lines, this will contain the type of terminal used.
|
|
||||||
# For virtual consoles, the correct type is typically xterm.
|
|
||||||
# Other common values include dialup for incoming modem ports, and
|
|
||||||
# unknown when the terminal type cannot be predetermined.
|
|
||||||
#
|
|
||||||
# status Must be on or off. If on, init will run the getty program on
|
|
||||||
# the specified port. If the word "secure" appears, this tty
|
|
||||||
# allows root login.
|
|
||||||
#
|
|
||||||
# name getty type status comments
|
|
||||||
#
|
|
||||||
# If console is marked "insecure", then init will ask for the root password
|
|
||||||
# when going to single-user mode.
|
|
||||||
console none unknown off secure
|
|
||||||
# ofw_console(4)
|
|
||||||
screen "/usr/libexec/getty Pc" vt100 off secure
|
|
||||||
ttya "/usr/libexec/getty 3wire.9600" vt100 off secure
|
|
||||||
ttyb "/usr/libexec/getty 3wire.9600" vt100 off secure
|
|
||||||
# syscons(4)
|
|
||||||
ttyv0 "/usr/libexec/getty Pc" xterm onifexists secure
|
|
||||||
# Virtual terminals
|
|
||||||
ttyv1 "/usr/libexec/getty Pc" xterm onifexists secure
|
|
||||||
ttyv2 "/usr/libexec/getty Pc" xterm onifexists secure
|
|
||||||
ttyv3 "/usr/libexec/getty Pc" xterm onifexists secure
|
|
||||||
ttyv4 "/usr/libexec/getty Pc" xterm onifexists secure
|
|
||||||
ttyv5 "/usr/libexec/getty Pc" xterm onifexists secure
|
|
||||||
ttyv6 "/usr/libexec/getty Pc" xterm onifexists secure
|
|
||||||
ttyv7 "/usr/libexec/getty Pc" xterm onifexists secure
|
|
||||||
ttyv8 "/usr/local/bin/xdm -nodaemon" xterm off secure
|
|
||||||
# Serial terminals
|
|
||||||
# The 'dialup' keyword identifies dialin lines to login, fingerd etc.
|
|
||||||
# uart(4)
|
|
||||||
ttyu0 "/usr/libexec/getty 3wire" vt100 onifconsole secure
|
|
||||||
ttyu1 "/usr/libexec/getty 3wire" vt100 onifconsole secure
|
|
||||||
ttyu2 "/usr/libexec/getty 3wire" vt100 onifconsole secure
|
|
||||||
ttyu3 "/usr/libexec/getty 3wire" vt100 onifconsole secure
|
|
||||||
# Dumb console
|
|
||||||
dcons "/usr/libexec/getty std.9600" vt100 off secure
|
|
@ -54,7 +54,7 @@ static size_t fragsz;
|
|||||||
|
|
||||||
struct dump_pa dump_map[DUMPSYS_MD_PA_NPAIRS];
|
struct dump_pa dump_map[DUMPSYS_MD_PA_NPAIRS];
|
||||||
|
|
||||||
#if !defined(__powerpc__) && !defined(__sparc__)
|
#if !defined(__powerpc__)
|
||||||
void
|
void
|
||||||
dumpsys_gen_pa_init(void)
|
dumpsys_gen_pa_init(void)
|
||||||
{
|
{
|
||||||
@ -97,14 +97,12 @@ dumpsys_gen_unmap_chunk(vm_paddr_t pa __unused, size_t chunk __unused,
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#if !defined(__sparc__)
|
|
||||||
int
|
int
|
||||||
dumpsys_gen_write_aux_headers(struct dumperinfo *di)
|
dumpsys_gen_write_aux_headers(struct dumperinfo *di)
|
||||||
{
|
{
|
||||||
|
|
||||||
return (0);
|
return (0);
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
int
|
int
|
||||||
dumpsys_buf_seek(struct dumperinfo *di, size_t sz)
|
dumpsys_buf_seek(struct dumperinfo *di, size_t sz)
|
||||||
@ -240,7 +238,6 @@ dumpsys_foreach_chunk(dumpsys_callback_t cb, void *arg)
|
|||||||
return (seqnr);
|
return (seqnr);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if !defined(__sparc__)
|
|
||||||
static off_t fileofs;
|
static off_t fileofs;
|
||||||
|
|
||||||
static int
|
static int
|
||||||
@ -387,4 +384,3 @@ dumpsys_generic(struct dumperinfo *di)
|
|||||||
printf("\n** DUMP FAILED (ERROR %d) **\n", error);
|
printf("\n** DUMP FAILED (ERROR %d) **\n", error);
|
||||||
return (error);
|
return (error);
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
.PATH: ${SRCTOP}/sys/dev/esp
|
.PATH: ${SRCTOP}/sys/dev/esp
|
||||||
|
|
||||||
KMOD= esp
|
KMOD= esp
|
||||||
SRCS= device_if.h esp_pci.c ${esp_sbus} bus_if.h ncr53c9x.c ${ofw_bus_if}
|
SRCS= device_if.h esp_pci.c bus_if.h ncr53c9x.c
|
||||||
SRCS+= opt_cam.h pci_if.h
|
SRCS+= opt_cam.h pci_if.h
|
||||||
|
|
||||||
.include <bsd.kmod.mk>
|
.include <bsd.kmod.mk>
|
||||||
|
@ -28,7 +28,7 @@ uart_dev_mu=uart_dev_mu.c
|
|||||||
.endif
|
.endif
|
||||||
|
|
||||||
KMOD= uart
|
KMOD= uart
|
||||||
SRCS= ${uart_bus_acpi} ${uart_bus_ebus} uart_bus_isa.c uart_bus_pccard.c \
|
SRCS= ${uart_bus_acpi} uart_bus_isa.c uart_bus_pccard.c \
|
||||||
uart_bus_pci.c uart_bus_puc.c uart_bus_scc.c \
|
uart_bus_pci.c uart_bus_puc.c uart_bus_scc.c \
|
||||||
uart_core.c ${uart_cpu_acpi} ${uart_cpu_machine} uart_dbg.c \
|
uart_core.c ${uart_cpu_acpi} ${uart_cpu_machine} uart_dbg.c \
|
||||||
${uart_dev_mvebu} uart_dev_ns8250.c ${uart_dev_mu} \
|
${uart_dev_mvebu} uart_dev_ns8250.c ${uart_dev_mu} \
|
||||||
|
@ -1,84 +0,0 @@
|
|||||||
/*-
|
|
||||||
* SPDX-License-Identifier: BSD-2-Clause-FreeBSD
|
|
||||||
*
|
|
||||||
* Copyright (c) 2011 Nathan Whitehorn
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
* 1. Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
* 2. Redistributions in binary form must reproduce the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer in the
|
|
||||||
* documentation and/or other materials provided with the distribution.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
|
|
||||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
|
||||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
||||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
|
||||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
||||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
||||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
|
||||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
||||||
* SUCH DAMAGE.
|
|
||||||
*
|
|
||||||
* $FreeBSD$
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <string.h>
|
|
||||||
|
|
||||||
#include "partedit.h"
|
|
||||||
|
|
||||||
const char *
|
|
||||||
default_scheme(void) {
|
|
||||||
return ("VTOC8");
|
|
||||||
}
|
|
||||||
|
|
||||||
int
|
|
||||||
is_scheme_bootable(const char *part_type) {
|
|
||||||
if (strcmp(part_type, "VTOC8") == 0)
|
|
||||||
return (1);
|
|
||||||
return (0);
|
|
||||||
}
|
|
||||||
|
|
||||||
int
|
|
||||||
is_fs_bootable(const char *part_type, const char *fs)
|
|
||||||
{
|
|
||||||
if (strcmp(fs, "freebsd-ufs") == 0 || strcmp(fs, "freebsd-zfs") == 0)
|
|
||||||
return (1);
|
|
||||||
return (0);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
size_t
|
|
||||||
bootpart_size(const char *part_type) {
|
|
||||||
/* No standalone boot partition */
|
|
||||||
|
|
||||||
return (0);
|
|
||||||
}
|
|
||||||
|
|
||||||
const char *
|
|
||||||
bootpart_type(const char *scheme, const char **mountpoint) {
|
|
||||||
return ("freebsd-boot");
|
|
||||||
}
|
|
||||||
|
|
||||||
const char *
|
|
||||||
bootcode_path(const char *part_type) {
|
|
||||||
return (NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
const char *
|
|
||||||
partcode_path(const char *part_type, const char *fs_type) {
|
|
||||||
if (strcmp(part_type, "VTOC8") == 0) {
|
|
||||||
if (strcmp(fs_type, "ufs") == 0) {
|
|
||||||
return ("/boot/boot1");
|
|
||||||
} else if (strcmp(fs_type, "zfs") == 0) {
|
|
||||||
return ("/boot/zfsboot");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return (NULL);
|
|
||||||
}
|
|
||||||
|
|
@ -1,71 +0,0 @@
|
|||||||
/*-
|
|
||||||
* SPDX-License-Identifier: BSD-2-Clause-FreeBSD
|
|
||||||
*
|
|
||||||
* Copyright (c) 2003 Jake Burkholder.
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
* 1. Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
* 2. Redistributions in binary form must reproduce the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer in the
|
|
||||||
* documentation and/or other materials provided with the distribution.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
|
|
||||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
|
||||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
||||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
|
||||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
||||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
||||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
|
||||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
||||||
* SUCH DAMAGE.
|
|
||||||
*
|
|
||||||
* $FreeBSD$
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <sys/types.h>
|
|
||||||
#include <machine/elf.h>
|
|
||||||
|
|
||||||
#include <err.h>
|
|
||||||
#include <string.h>
|
|
||||||
|
|
||||||
#include "ef.h"
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Apply relocations to the values we got from the file. `relbase' is the
|
|
||||||
* target relocation address of the section, and `dataoff' is the target
|
|
||||||
* relocation address of the data in `dest'.
|
|
||||||
*/
|
|
||||||
int
|
|
||||||
ef_reloc(struct elf_file *ef, const void *reldata, int reltype, Elf_Off relbase,
|
|
||||||
Elf_Off dataoff, size_t len, void *dest)
|
|
||||||
{
|
|
||||||
const Elf_Rela *a;
|
|
||||||
Elf_Size w;
|
|
||||||
|
|
||||||
switch (reltype) {
|
|
||||||
case EF_RELOC_RELA:
|
|
||||||
a = reldata;
|
|
||||||
if (relbase + a->r_offset >= dataoff && relbase + a->r_offset <
|
|
||||||
dataoff + len) {
|
|
||||||
switch (ELF_R_TYPE(a->r_info)) {
|
|
||||||
case R_SPARC_RELATIVE:
|
|
||||||
w = a->r_addend + relbase;
|
|
||||||
memcpy((u_char *)dest + (relbase + a->r_offset -
|
|
||||||
dataoff), &w, sizeof(w));
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
warnx("unhandled relocation type %u",
|
|
||||||
(unsigned int)ELF_R_TYPE(a->r_info));
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
return (0);
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user