e1a6e0e33e
Remove our custom SYSTEM_LD definition. This generates program headers that are more consistent with other architectures, and more importantly, are in line with what loader(8) expects when loading a kernel. As noted in https://reviews.freebsd.org/D22920, there is no apparent reason why the kernel would need a writable text segment, so removal of the -N flag isn't likely to cause issue. Reviewed by: kp, br MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D24909
62 lines
1.5 KiB
Makefile
62 lines
1.5 KiB
Makefile
# Makefile.riscv -- with config changes.
|
|
# Copyright 1990 W. Jolitz
|
|
# from: @(#)Makefile.i386 7.1 5/10/91
|
|
# from FreeBSD: src/sys/conf/Makefile.i386,v 1.255 2002/02/20 23:35:49
|
|
# $FreeBSD$
|
|
#
|
|
# Makefile for FreeBSD
|
|
#
|
|
# RISCVTODO: copy pasted from aarch64, needs to be
|
|
# constructed from a machine description:
|
|
# config machineid
|
|
# Most changes should be made in the machine description
|
|
# /sys/riscv/conf/``machineid''
|
|
# after which you should do
|
|
# config machineid
|
|
# Generic makefile changes should be made in
|
|
# /sys/conf/Makefile.riscv
|
|
# after which config should be rerun for all machines.
|
|
#
|
|
|
|
# Which version of config(8) is required.
|
|
%VERSREQ= 600012
|
|
|
|
.if !defined(S)
|
|
S= ../../..
|
|
.endif
|
|
.include "$S/conf/kern.pre.mk"
|
|
|
|
INCLUDES+= -I$S/contrib/libfdt
|
|
|
|
# Set the ELF LMA to the address that OpenSBI's fw_jump jumps to. This allows
|
|
# us to load the kernel with the -kernel flag in QEMU without having to embed
|
|
# it inside BBL or OpenSBI's fw_payload first.
|
|
# Note: For rv32 the start address is different (0x80400000).
|
|
# We set this value using --defsym rather than hardcoding it in ldscript.riscv
|
|
# so that different kernel configs can override the load address.
|
|
KERNEL_LMA?= 0x80200000
|
|
LDFLAGS+= --defsym='kernel_lma=${KERNEL_LMA}'
|
|
|
|
.if !empty(DDB_ENABLED)
|
|
CFLAGS += -fno-omit-frame-pointer -fno-optimize-sibling-calls
|
|
.endif
|
|
|
|
# hack because genassym.c includes sys/bus.h which includes these.
|
|
genassym.o: bus_if.h device_if.h
|
|
|
|
%BEFORE_DEPEND
|
|
|
|
%OBJS
|
|
|
|
%FILES.c
|
|
|
|
%FILES.s
|
|
|
|
%FILES.m
|
|
|
|
%CLEAN
|
|
|
|
%RULES
|
|
|
|
.include "$S/conf/kern.post.mk"
|