freebsd-dev/sys/conf/Makefile.powerpc

83 lines
1.7 KiB
Makefile
Raw Normal View History

# Makefile.powerpc -- with config changes.
1993-06-12 14:58:17 +00:00
# Copyright 1990 W. Jolitz
This Makefile is for FreeBSD, not 4.3 BSD-Reno. Moved $Id$. Added STRIP=, DBSYM=, and LOAD_ADDRESS?= Now use LOAD_ADDRESS for linking kernel and for dbsym, added strip -x to cut kernel size. Added machde.o: dependency, this will be needed in the future, and for now it does not hurt anyone. Cleaned out conf.o: dependency, mkdep does the right things. Same for param.c: This is really a Merge in of NetBSD's Makefile.i386, here is the relevant rlog info: ---------------------------- revision 1.27 date: 1993/08/27 23:58:20; author: brezak; state: Exp; lines: +2 -2 Need LOAD_ADDRESS for depend pass. ---------------------------- revision 1.25 date: 1993/07/19 16:52:16; author: mycroft; state: Exp; lines: +3 -3 Add ${DEBUG} to CFLAGS and -f to dbsym. ---------------------------- revision 1.22 date: 1993/07/18 10:08:22; author: mycroft; state: Exp; lines: +5 -6 Change to work with new config stuff for specifying load address. ---------------------------- revision 1.20 date: 1993/07/18 09:47:40; author: mycroft; state: Exp; lines: +6 -5 Use new -T option to dbsym. ---------------------------- revision 1.17 date: 1993/07/11 08:42:22; author: cgd; state: Exp; lines: +2 -2 don't ignore errors from dbsym... it might say that, e.g. there's not enough symbol space! ---------------------------- revision 1.14 date: 1993/06/06 23:29:03; author: cgd; state: Exp; lines: +2 -2 make conf.o actually depend on conf.c... ---------------------------- revision 1.8 date: 1993/04/29 03:27:39; author: cgd; state: Exp; lines: +5 -10 use ed instead of ex. the script to use is identical, and we might want to switch back to using ex when our ex supports -. ---------------------------- revision 1.5 date: 1993/03/24 18:48:57; author: cgd; state: Exp; lines: +1 -1 now use absolute path for dbsym ----------------------------
1993-09-26 19:44:33 +00:00
# from: @(#)Makefile.i386 7.1 5/10/91
1999-08-28 01:08:13 +00:00
# $FreeBSD$
This Makefile is for FreeBSD, not 4.3 BSD-Reno. Moved $Id$. Added STRIP=, DBSYM=, and LOAD_ADDRESS?= Now use LOAD_ADDRESS for linking kernel and for dbsym, added strip -x to cut kernel size. Added machde.o: dependency, this will be needed in the future, and for now it does not hurt anyone. Cleaned out conf.o: dependency, mkdep does the right things. Same for param.c: This is really a Merge in of NetBSD's Makefile.i386, here is the relevant rlog info: ---------------------------- revision 1.27 date: 1993/08/27 23:58:20; author: brezak; state: Exp; lines: +2 -2 Need LOAD_ADDRESS for depend pass. ---------------------------- revision 1.25 date: 1993/07/19 16:52:16; author: mycroft; state: Exp; lines: +3 -3 Add ${DEBUG} to CFLAGS and -f to dbsym. ---------------------------- revision 1.22 date: 1993/07/18 10:08:22; author: mycroft; state: Exp; lines: +5 -6 Change to work with new config stuff for specifying load address. ---------------------------- revision 1.20 date: 1993/07/18 09:47:40; author: mycroft; state: Exp; lines: +6 -5 Use new -T option to dbsym. ---------------------------- revision 1.17 date: 1993/07/11 08:42:22; author: cgd; state: Exp; lines: +2 -2 don't ignore errors from dbsym... it might say that, e.g. there's not enough symbol space! ---------------------------- revision 1.14 date: 1993/06/06 23:29:03; author: cgd; state: Exp; lines: +2 -2 make conf.o actually depend on conf.c... ---------------------------- revision 1.8 date: 1993/04/29 03:27:39; author: cgd; state: Exp; lines: +5 -10 use ed instead of ex. the script to use is identical, and we might want to switch back to using ex when our ex supports -. ---------------------------- revision 1.5 date: 1993/03/24 18:48:57; author: cgd; state: Exp; lines: +1 -1 now use absolute path for dbsym ----------------------------
1993-09-26 19:44:33 +00:00
#
# Makefile for FreeBSD
1993-06-12 14:58:17 +00:00
#
# This makefile is constructed from a machine description:
# config machineid
# Most changes should be made in the machine description
# /sys/powerpc/conf/``machineid''
1993-06-12 14:58:17 +00:00
# after which you should do
# config machineid
# Generic makefile changes should be made in
# /sys/conf/Makefile.powerpc
1993-06-12 14:58:17 +00:00
# after which config should be rerun for all machines.
#
# Which version of config(8) is required.
%VERSREQ= 600012
STD8X16FONT?= iso
.if !defined(S)
.if exists(./@/.)
S= ./@
.else
S= ../../..
.endif
.endif
LDSCRIPT_NAME?= ldscript.${MACHINE_ARCH}
.include "$S/conf/kern.pre.mk"
INCLUDES+= -I$S/contrib/libfdt
Create a new MACHINE_ARCH for Freescale PowerPC e500v2 Summary: The Freescale e500v2 PowerPC core does not use a standard FPU. Instead, it uses a Signal Processing Engine (SPE)--a DSP-style vector processor unit, which doubles as a FPU. The PowerPC SPE ABI is incompatible with the stock powerpc ABI, so a new MACHINE_ARCH was created to deal with this. Additionaly, the SPE opcodes overlap with Altivec, so these are mutually exclusive. Taking advantage of this fact, a new file, powerpc/booke/spe.c, was created with the same function set as in powerpc/powerpc/altivec.c, so it becomes effectively a drop-in replacement. setjmp/longjmp were modified to save the upper 32-bits of the now-64-bit GPRs (upper 32-bits are only accessible by the SPE). Note: This does _not_ support the SPE in the e500v1, as the e500v1 SPE does not support double-precision floating point. Also, without a new MACHINE_ARCH it would be impossible to provide binary packages which utilize the SPE. Additionally, no work has been done to support ports, work is needed for this. This also means no newer gcc can yet be used. However, gcc's powerpc support has been refactored which would make adding a powerpcspe-freebsd target very easy. Test Plan: This was lightly tested on a RouterBoard RB800 and an AmigaOne A1222 (P1022-based) board, compiled against the new ABI. Base system utilities (/bin/sh, /bin/ls, etc) still function appropriately, the system is able to boot multiuser. Reviewed By: bdrewery, imp Relnotes: yes Differential Revision: https://reviews.freebsd.org/D5683
2016-10-22 01:57:15 +00:00
.if "${MACHINE_ARCH}" == "powerpcspe"
# Force __SPE__, since the builtin will be removed later with -mno-spe
CFLAGS.gcc+= -mabi=spe -D__SPE__
CFLAGS.clang+= -mspe -D__SPE__ -m32
Create a new MACHINE_ARCH for Freescale PowerPC e500v2 Summary: The Freescale e500v2 PowerPC core does not use a standard FPU. Instead, it uses a Signal Processing Engine (SPE)--a DSP-style vector processor unit, which doubles as a FPU. The PowerPC SPE ABI is incompatible with the stock powerpc ABI, so a new MACHINE_ARCH was created to deal with this. Additionaly, the SPE opcodes overlap with Altivec, so these are mutually exclusive. Taking advantage of this fact, a new file, powerpc/booke/spe.c, was created with the same function set as in powerpc/powerpc/altivec.c, so it becomes effectively a drop-in replacement. setjmp/longjmp were modified to save the upper 32-bits of the now-64-bit GPRs (upper 32-bits are only accessible by the SPE). Note: This does _not_ support the SPE in the e500v1, as the e500v1 SPE does not support double-precision floating point. Also, without a new MACHINE_ARCH it would be impossible to provide binary packages which utilize the SPE. Additionally, no work has been done to support ports, work is needed for this. This also means no newer gcc can yet be used. However, gcc's powerpc support has been refactored which would make adding a powerpcspe-freebsd target very easy. Test Plan: This was lightly tested on a RouterBoard RB800 and an AmigaOne A1222 (P1022-based) board, compiled against the new ABI. Base system utilities (/bin/sh, /bin/ls, etc) still function appropriately, the system is able to boot multiuser. Reviewed By: bdrewery, imp Relnotes: yes Differential Revision: https://reviews.freebsd.org/D5683
2016-10-22 01:57:15 +00:00
.endif
CFLAGS+= -msoft-float
CFLAGS.gcc+= -Wa,-many
# Apply compiler-specific DPAA exceptions.
.if "${COMPILER_TYPE}" == "clang"
DPAAWARNFLAGS += \
-Wno-error=parentheses-equality \
-Wno-error=self-assign \
-Wno-error=incompatible-pointer-types-discards-qualifiers \
-Wno-error=non-literal-null-conversion \
-Wno-error=enum-conversion
.elif "${COMPILER_TYPE}" == "gcc" && ${COMPILER_VERSION} >= 50200
DPAAWARNFLAGS += \
-Wno-error=redundant-decls \
-Wno-error=int-in-bool-context
.endif
# Build position-independent kernel
CFLAGS+= -fPIC
LDFLAGS+= -pie
2005-09-07 17:38:46 +00:00
.if !empty(DDB_ENABLED)
CFLAGS+= -fno-omit-frame-pointer
.endif
%BEFORE_DEPEND
1993-06-12 14:58:17 +00:00
%OBJS
%FILES.c
1993-06-12 14:58:17 +00:00
%FILES.s
%FILES.m
%CLEAN
1993-06-12 14:58:17 +00:00
%RULES
.include "$S/conf/kern.post.mk"