mirror of
https://github.com/motioneye-project/motioneyeos.git
synced 2025-08-01 15:37:44 +00:00
target/; xtensa support
Part of #163. Signed-off-by: Maxim Grigoriev <maxim2405@gmail.com> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
This commit is contained in:
parent
cd0b1ce3b7
commit
5ddb904a86
@ -43,6 +43,8 @@ config BR2_sparc64
|
|||||||
bool "sparc64"
|
bool "sparc64"
|
||||||
config BR2_x86_64
|
config BR2_x86_64
|
||||||
bool "x86_64"
|
bool "x86_64"
|
||||||
|
config BR2_xtensa
|
||||||
|
bool "xtensa"
|
||||||
endchoice
|
endchoice
|
||||||
|
|
||||||
#
|
#
|
||||||
@ -394,6 +396,38 @@ config BR2_ia64_itanium2
|
|||||||
bool "itanium 2"
|
bool "itanium 2"
|
||||||
endchoice
|
endchoice
|
||||||
|
|
||||||
|
choice
|
||||||
|
prompt "Target Architecture Variant"
|
||||||
|
depends on BR2_xtensa
|
||||||
|
default BR2_xtensa_dc232b
|
||||||
|
help
|
||||||
|
Specific CPU variant to use
|
||||||
|
|
||||||
|
config BR2_xtensa_custom
|
||||||
|
bool "Custom Xtensa processor configuration"
|
||||||
|
config BR2_xtensa_dc232a
|
||||||
|
bool "dc232a - Diamond 232L Standard Core Rev.A (LE)"
|
||||||
|
config BR2_xtensa_dc232b
|
||||||
|
bool "dc232b - Diamond 232L Standard Core Rev.B (LE)"
|
||||||
|
#config BR2_xtensa_s5000
|
||||||
|
# bool "s5000 - Stretch S5000"
|
||||||
|
endchoice
|
||||||
|
|
||||||
|
config BR2_xtensa_custom_name
|
||||||
|
string "Custom Xtensa processor configuration name"
|
||||||
|
depends on BR2_xtensa_custom
|
||||||
|
default ""
|
||||||
|
help
|
||||||
|
Name given to a custom Xtensa processor configuration.
|
||||||
|
This is used to select the correct overlay.
|
||||||
|
|
||||||
|
config BR2_xtensa_core_name
|
||||||
|
string
|
||||||
|
default BR2_xtensa_custom_name if BR2_xtensa_custom
|
||||||
|
default "dc232a" if BR2_xtensa_dc232a
|
||||||
|
default "dc232b" if BR2_xtensa_dc232b
|
||||||
|
# default "s5000" if BR2_xtensa_s5000
|
||||||
|
|
||||||
choice
|
choice
|
||||||
prompt "Target Architecture Variant"
|
prompt "Target Architecture Variant"
|
||||||
depends on BR2_powerpc
|
depends on BR2_powerpc
|
||||||
@ -496,6 +530,7 @@ config BR2_ARCH
|
|||||||
default "x86_64" if BR2_x86_64_opteron
|
default "x86_64" if BR2_x86_64_opteron
|
||||||
default "x86_64" if BR2_x86_64_opteron_sse3
|
default "x86_64" if BR2_x86_64_opteron_sse3
|
||||||
default "x86_64" if BR2_x86_64_barcelona
|
default "x86_64" if BR2_x86_64_barcelona
|
||||||
|
default "xtensa" if BR2_xtensa
|
||||||
|
|
||||||
|
|
||||||
config BR2_ENDIAN
|
config BR2_ENDIAN
|
||||||
|
@ -62,6 +62,7 @@ include target/generic/Makefile.in
|
|||||||
include target/device/Makefile.in
|
include target/device/Makefile.in
|
||||||
include target/x86/Makefile.in
|
include target/x86/Makefile.in
|
||||||
include target/powerpc/Makefile.in
|
include target/powerpc/Makefile.in
|
||||||
|
include target/xtensa/Makefile.in
|
||||||
|
|
||||||
ifeq ($(BR2_TARGET_UBOOT),y)
|
ifeq ($(BR2_TARGET_UBOOT),y)
|
||||||
include target/u-boot/Makefile.in
|
include target/u-boot/Makefile.in
|
||||||
|
@ -10,6 +10,7 @@ source "target/device/Atmel/Config.in"
|
|||||||
source "target/device/KwikByte/Config.in"
|
source "target/device/KwikByte/Config.in"
|
||||||
source "target/device/valka/Config.in"
|
source "target/device/valka/Config.in"
|
||||||
source "target/device/x86/Config.in"
|
source "target/device/x86/Config.in"
|
||||||
|
source "target/device/xtensa/Config.in"
|
||||||
|
|
||||||
# This must be last
|
# This must be last
|
||||||
source "target/generic/Config.in"
|
source "target/generic/Config.in"
|
||||||
|
21
target/device/xtensa/Config.in
Normal file
21
target/device/xtensa/Config.in
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
menuconfig BR2_TARGET_XTENSA
|
||||||
|
bool "Device and Board Support for Xtensa and Diamond cores"
|
||||||
|
depends on BR2_xtensa
|
||||||
|
default y
|
||||||
|
help
|
||||||
|
Lists development boards with support for the Xtensa architecture.
|
||||||
|
|
||||||
|
if BR2_TARGET_XTENSA
|
||||||
|
comment "Tensilica Xtensa/Diamond based Device Support"
|
||||||
|
depends on BR2_xtensa
|
||||||
|
|
||||||
|
config BR2_TARGET_XTENSA_XTAV60
|
||||||
|
bool "XTAV60/200 board (Avnet LX60 or LX200 plus Tensilica IP)"
|
||||||
|
depends on BR2_xtensa
|
||||||
|
default y
|
||||||
|
help
|
||||||
|
The XTAV60 or XTAV200 board, which is an Avnet LX60 or LX200
|
||||||
|
emulation board programmed with an FPGA bitstream obtained
|
||||||
|
from Tensilica.
|
||||||
|
|
||||||
|
endif
|
14
target/device/xtensa/Makefile.in
Normal file
14
target/device/xtensa/Makefile.in
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
ifeq ($(strip $(BR2_TARGET_XTENSA_XTAV60)),y)
|
||||||
|
# UCLIBC_CONFIG_FILE:=target/device/xtensa/xtav60/uClibc.config
|
||||||
|
# BR2_PACKAGE_BUSYBOX_CONFIG:=target/device/xtensa/xtav60/busybox.config
|
||||||
|
TARGET_SKELETON_PATCH:=target/device/xtensa
|
||||||
|
endif
|
||||||
|
|
||||||
|
# Custom device table patch used when targeting ISS:
|
||||||
|
OLD_TARGET_DEVICE_TABLE := $(TARGET_DEVICE_TABLE)
|
||||||
|
TARGET_DEVICE_TABLE := target/device/xtensa/device_table.txt
|
||||||
|
makedevs:
|
||||||
|
@echo "Applying patch to $(TARGET_DEVICE_TABLE)"
|
||||||
|
cp -f $(OLD_TARGET_DEVICE_TABLE) $(TARGET_DEVICE_TABLE)
|
||||||
|
patch -p1 -g 0 < target/device/xtensa/device_table.diff
|
||||||
|
|
10
target/device/xtensa/device_table.diff
Normal file
10
target/device/xtensa/device_table.diff
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
diff --git a/target/generic/device_table.txt b/target/generic/device_table.txt
|
||||||
|
index f4b16ba..b87bf69 100644
|
||||||
|
--- a/target/device/xtensa/device_table.txt
|
||||||
|
+++ b/target/device/xtensa/device_table.txt
|
||||||
|
@@ -169,3 +169,5 @@
|
||||||
|
#/dev/mcd b 640 0 0 23 0 0 0
|
||||||
|
#/dev/optcd b 640 0 0 17 0 0 0
|
||||||
|
|
||||||
|
+/dev/simdisk0 b 640 0 0 240 0 0 0
|
||||||
|
+/dev/simdisk1 b 640 0 0 240 1 0 0
|
47
target/device/xtensa/skeleton-patch/etc/inittab
Normal file
47
target/device/xtensa/skeleton-patch/etc/inittab
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
# /etc/inittab
|
||||||
|
#
|
||||||
|
# Copyright (C) 2001 Erik Andersen <andersen@codepoet.org>
|
||||||
|
#
|
||||||
|
# Note: BusyBox init doesn't support runlevels. The runlevels field is
|
||||||
|
# completely ignored by BusyBox init. If you want runlevels, use
|
||||||
|
# sysvinit.
|
||||||
|
#
|
||||||
|
# Format for each entry: <id>:<runlevels>:<action>:<process>
|
||||||
|
#
|
||||||
|
# id == tty to run on, or empty for /dev/console
|
||||||
|
# runlevels == ignored
|
||||||
|
# action == one of sysinit, respawn, askfirst, wait, and once
|
||||||
|
# process == program to run
|
||||||
|
|
||||||
|
# Startup the system
|
||||||
|
null::sysinit:/bin/mount -t proc proc /proc
|
||||||
|
null::sysinit:/bin/mount -o remount,rw /
|
||||||
|
null::sysinit:/bin/mount -a
|
||||||
|
null::sysinit:/bin/hostname -F /etc/hostname
|
||||||
|
null::sysinit:/sbin/ifconfig lo 127.0.0.1 up
|
||||||
|
null::sysinit:/sbin/route add -net 127.0.0.0 netmask 255.0.0.0 lo
|
||||||
|
# now run any rc scripts
|
||||||
|
::sysinit:/etc/init.d/rcS
|
||||||
|
|
||||||
|
# Set up a couple of getty's
|
||||||
|
#tty1::respawn:/sbin/getty 38400 tty1
|
||||||
|
#tty2::respawn:/sbin/getty 38400 tty2
|
||||||
|
|
||||||
|
# Put a getty on the serial port
|
||||||
|
ttyS0::respawn:/sbin/getty -L ttyS0 38400 vt100
|
||||||
|
|
||||||
|
# Logging junk
|
||||||
|
null::sysinit:/bin/touch /var/log/messages
|
||||||
|
null::respawn:/sbin/syslogd -n -m 0
|
||||||
|
null::respawn:/sbin/klogd -n
|
||||||
|
#tty3::respawn:/usr/bin/tail -f /var/log/messages
|
||||||
|
|
||||||
|
# Stuff to do for the 3-finger salute
|
||||||
|
::ctrlaltdel:/sbin/reboot
|
||||||
|
|
||||||
|
# Stuff to do before rebooting
|
||||||
|
null::shutdown:/usr/bin/killall klogd
|
||||||
|
null::shutdown:/usr/bin/killall syslogd
|
||||||
|
null::shutdown:/bin/umount -a -r
|
||||||
|
null::shutdown:/sbin/swapoff -a
|
||||||
|
|
1
target/xtensa/.gitignore
vendored
Normal file
1
target/xtensa/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
/busybox-config
|
1
target/xtensa/Makefile.in
Normal file
1
target/xtensa/Makefile.in
Normal file
@ -0,0 +1 @@
|
|||||||
|
-include target/xtensa/*/*.mk
|
133
target/xtensa/defconfig
Normal file
133
target/xtensa/defconfig
Normal file
@ -0,0 +1,133 @@
|
|||||||
|
# Default buildroot configuration for running Linux on an Xtensa processor
|
||||||
|
# on an LX60 board.
|
||||||
|
|
||||||
|
#
|
||||||
|
# Project Options
|
||||||
|
#
|
||||||
|
BR2_BANNER="Welcome to your custom Xtensa processor based uClibc environment."
|
||||||
|
BR2_HAVE_DOT_CONFIG=y
|
||||||
|
BR2_xtensa=y
|
||||||
|
BR2_xtensa_dc232b=y
|
||||||
|
BR2_xtensa_core_name="dc232b"
|
||||||
|
BR2_ARCH="xtensa"
|
||||||
|
|
||||||
|
#
|
||||||
|
# Build options
|
||||||
|
#
|
||||||
|
BR2_WGET="wget --passive-ftp"
|
||||||
|
# BR2_STRIP_strip is not set
|
||||||
|
# BR2_STRIP_none=y
|
||||||
|
|
||||||
|
## Added by Maxim
|
||||||
|
BR2_UPDATE_CONFIG=y
|
||||||
|
|
||||||
|
#
|
||||||
|
# Kernel Header Options
|
||||||
|
#
|
||||||
|
BR2_KERNEL_none=y
|
||||||
|
BR2_KERNEL_HEADERS_2_6_22_1=y
|
||||||
|
BR2_DEFAULT_KERNEL_HEADERS="2.6.22.1"
|
||||||
|
|
||||||
|
#
|
||||||
|
# uClibc Options
|
||||||
|
#
|
||||||
|
BR2_UCLIBC_VERSION_0_9_30=y
|
||||||
|
# BR2_UCLIBC_VERSION_SNAPSHOT is not set
|
||||||
|
BR2_UCLIBC_CONFIG="target/xtensa/uClibc-0.9.30.config"
|
||||||
|
BR2_PTHREADS_OLD=y
|
||||||
|
# BR2_PTHREADS_NATIVE is not set
|
||||||
|
BR2_PTHREAD_DEBUG=y
|
||||||
|
|
||||||
|
#
|
||||||
|
# Binutils Options
|
||||||
|
#
|
||||||
|
BR2_BINUTILS_VERSION_2_19=y
|
||||||
|
BR2_BINUTILS_VERSION="2.19"
|
||||||
|
BR2_EXTRA_BINUTILS_CONFIG_OPTIONS=""
|
||||||
|
|
||||||
|
#
|
||||||
|
# Gcc Options
|
||||||
|
#
|
||||||
|
BR2_GCC_VERSION_4_3_2=y
|
||||||
|
# BR2_GCC_IS_SNAP is not set
|
||||||
|
BR2_GCC_VERSION="4.3.2"
|
||||||
|
BR2_TOOLCHAIN_SYSROOT=y
|
||||||
|
BR2_EXTRA_GCC_CONFIG_OPTIONS=""
|
||||||
|
BR2_GCC_CROSS_CXX=y
|
||||||
|
BR2_INSTALL_LIBSTDCPP=y
|
||||||
|
BR2_GCC_SHARED_LIBGCC=y
|
||||||
|
|
||||||
|
#
|
||||||
|
# Gdb Options
|
||||||
|
#
|
||||||
|
BR2_PACKAGE_GDB=y
|
||||||
|
BR2_PACKAGE_GDB_SERVER=y
|
||||||
|
BR2_PACKAGE_GDB_HOST=y
|
||||||
|
# BR2_GDB_VERSION_6_2_1 is not set
|
||||||
|
# BR2_GDB_VERSION_6_3 is not set
|
||||||
|
# BR2_GDB_VERSION_6_4 is not set
|
||||||
|
# BR2_GDB_VERSION_6_5 is not set
|
||||||
|
# BR2_GDB_VERSION_6_6 is not set
|
||||||
|
# BR2_GDB_VERSION_6_7_1 is not set
|
||||||
|
BR2_GDB_VERSION_6_8=y
|
||||||
|
# BR2_GDB_VERSION_SNAPSHOT is not set
|
||||||
|
BR2_GDB_VERSION="6.8"
|
||||||
|
|
||||||
|
#
|
||||||
|
# Common Toolchain Options
|
||||||
|
#
|
||||||
|
# BR2_PACKAGE_SSTRIP_TARGET is not set
|
||||||
|
# BR2_PACKAGE_SSTRIP_HOST is not set
|
||||||
|
# BR2_ENABLE_MULTILIB is not set
|
||||||
|
BR2_LARGEFILE=y
|
||||||
|
BR2_INET_RPC=y
|
||||||
|
BR2_TARGET_OPTIMIZATION="-Os -pipe"
|
||||||
|
BR2_CROSS_TOOLCHAIN_TARGET_UTILS=y
|
||||||
|
|
||||||
|
|
||||||
|
## These two added by Maxim
|
||||||
|
BR2_TOOLCHAIN_BUILDROOT=y
|
||||||
|
BR2_TOOLCHAIN_SOURCE=y
|
||||||
|
|
||||||
|
|
||||||
|
BR2_PACKAGE_BUSYBOX_HIDE_OTHERS=y
|
||||||
|
|
||||||
|
#
|
||||||
|
# Other development stuff
|
||||||
|
#
|
||||||
|
BR2_HOST_FAKEROOT=y
|
||||||
|
# BR2_PACKAGE_LIBINTL is not set
|
||||||
|
# For NFS mount:
|
||||||
|
BR2_PACKAGE_PORTMAP=y
|
||||||
|
|
||||||
|
#
|
||||||
|
# Other stuff
|
||||||
|
#
|
||||||
|
|
||||||
|
#
|
||||||
|
# filesystem for target device
|
||||||
|
#
|
||||||
|
BR2_TARGET_ROOTFS_CPIO=y
|
||||||
|
BR2_TARGET_ROOTFS_CPIO_GZIP=y
|
||||||
|
BR2_TARGET_ROOTFS_INITRAMFS=y
|
||||||
|
|
||||||
|
#
|
||||||
|
# Linux Options
|
||||||
|
#
|
||||||
|
# BR2_PACKAGE_LINUX is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Board Support Options
|
||||||
|
#
|
||||||
|
BR2_TARGET_XTENSA=y
|
||||||
|
|
||||||
|
#
|
||||||
|
# Tensilica Xtensa/Diamond based Device Support
|
||||||
|
#
|
||||||
|
BR2_TARGET_XTENSA_XTAV60=y
|
||||||
|
|
||||||
|
#
|
||||||
|
# Compressors / decompressors
|
||||||
|
#
|
||||||
|
|
||||||
|
BR2_PACKAGE_ZLIB=y
|
33
target/xtensa/patch.in
Normal file
33
target/xtensa/patch.in
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
ifneq ($(filter xtensa%,$(ARCH)),)
|
||||||
|
#############################################################
|
||||||
|
#
|
||||||
|
# Xtensa processor architecture (including Diamond Standard cores)
|
||||||
|
#
|
||||||
|
#############################################################
|
||||||
|
|
||||||
|
# The following defines a function to be used like this:
|
||||||
|
# $(call XTENSA_PATCH, <module>, <patchdir>, <relative dir list...>)
|
||||||
|
# which returns the first overlay patch file for <module> found
|
||||||
|
# in the list of directories <relative dir list...> which are
|
||||||
|
# relative to <patchdir> (itself either absolute or relative to the
|
||||||
|
# current directory). The returned filename is relative to <patchdir>.
|
||||||
|
# For example:
|
||||||
|
# $(call XTENSA_PATCH, binutils, some/dir/path, . ..)
|
||||||
|
# (no commas between directory paths in the list).
|
||||||
|
#
|
||||||
|
# A selected overlay patch must exist ("fsf" means no specific
|
||||||
|
# overlay is selected). So the function emits a Makefile error
|
||||||
|
# if a selected patch file is not found.
|
||||||
|
|
||||||
|
XTENSA_CORENAME:=$(strip $(subst ",,$(BR2_xtensa_core_name)))
|
||||||
|
ifeq ($(XTENSA_CORENAME),fsf)
|
||||||
|
XTENSA_PATCH =
|
||||||
|
else
|
||||||
|
XTENSA_PATCH_SUFFIX = $(1)-xtensa_$(XTENSA_CORENAME).tgz
|
||||||
|
XTENSA_PATCH_FILE = $(firstword $(wildcard $(patsubst %,$(2)/%/*$(XTENSA_PATCH_SUFFIX),$(3))))
|
||||||
|
# FULLPATH = $(if $(filter /%,$(1)),$(1),$(PWD)/$(1))
|
||||||
|
XTENSA_PATCH = $(if $(XTENSA_PATCH_FILE),$(patsubst $(2)/%,%,$(XTENSA_PATCH_FILE)),\
|
||||||
|
$(error Missing $(1) patch for Xtensa $(XTENSA_CORENAME) processor (*$(XTENSA_PATCH_SUFFIX) in $(addprefix $(2)/,$(3)))))
|
||||||
|
endif
|
||||||
|
|
||||||
|
endif
|
57
target/xtensa/setup-config
Normal file
57
target/xtensa/setup-config
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# Convenience script for setting up a default buildroot config
|
||||||
|
# for Xtensa processor targets..
|
||||||
|
|
||||||
|
usage() {
|
||||||
|
echo "Usage (invoke from top of buildroot tree):"
|
||||||
|
echo " ./target/xtensa/setup-config <corename>"
|
||||||
|
#echo " ./target/xtensa/setup-config <corename> [<overlaypath>]"
|
||||||
|
echo "where:"
|
||||||
|
echo " <corename> is the Xtensa core overlay name, as specified in the -c option"
|
||||||
|
echo " of the ./target/xtensa/xt-buildroot-overlay-install script."
|
||||||
|
echo ""
|
||||||
|
echo "For example:"
|
||||||
|
echo " ./target/xtensa/setup-config dc232b"
|
||||||
|
echo ""
|
||||||
|
echo "Currently installed (available) core overlay names are:"
|
||||||
|
echo " " `ls toolchain/binutils/binutils-xtensa_*.tgz | sed -e 's,toolchain\/binutils\/binutils-xtensa_\(.*\)\.tgz,\1,g'`
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
if [ $# -ne 1 ]; then
|
||||||
|
usage
|
||||||
|
fi
|
||||||
|
|
||||||
|
core=$1 ; shift
|
||||||
|
|
||||||
|
if [ ! -f toolchain/binutils/binutils-xtensa_${core}.tgz \
|
||||||
|
-o ! -f toolchain/gcc/gcc-xtensa_${core}.tgz \
|
||||||
|
-o ! -f toolchain/gdb/gdb-xtensa_${core}.tgz ]; then
|
||||||
|
echo "ERROR: Did not find an installed Xtensa core overlay named '${core}'."
|
||||||
|
echo "ERROR: Please install it first with ./target/xtensa/xt-buildroot-overlay-install"
|
||||||
|
echo ""
|
||||||
|
usage
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Use preset buildroot config:
|
||||||
|
cp target/xtensa/defconfig .defconfig-xtensa
|
||||||
|
# Set core name:
|
||||||
|
sed -i -e 's,^BR2_xtensa_\(.*\)=y,BR2_xtensa_custom=y\nBR2_xtensa_custom_name="'${core}'",' .defconfig-xtensa
|
||||||
|
## sed -i -e 's,^.*BR2_xtensa_core_name.*,BR_xtensa_core_name="'${core}'",' .defconfig-xtensa
|
||||||
|
# Create full .config with defaults:
|
||||||
|
make clean defconfig CONFIG_DEFCONFIG=.defconfig-xtensa || exit 1
|
||||||
|
|
||||||
|
# Busybox adjustments: turn off 'ar' (can't create archives yet overrides real one)
|
||||||
|
# and turn on NFS mounting (Xtensa defconfig turns on RPC so this can work):
|
||||||
|
#
|
||||||
|
bborig=`grep '^BR2_PACKAGE_BUSYBOX_CONFIG=' .config | sed -e 's,.*"\(.*\)".*,\1,'`
|
||||||
|
bbconf=target/xtensa/busybox-config
|
||||||
|
cp $bborig $bbconf
|
||||||
|
sed -i -e 's,^CONFIG_AR=y,# CONFIG_AR is not set,' $bbconf
|
||||||
|
sed -i -e 's,^.*CONFIG_FEATURE_MOUNT_NFS.*,CONFIG_FEATURE_MOUNT_NFS=y,' $bbconf
|
||||||
|
# Make use of above busybox adjustments:
|
||||||
|
sed -i -e 's,.*\(BR2_PACKAGE_BUSYBOX_CONFIG\).*,\1="'$bbconf'",' .config
|
||||||
|
|
||||||
|
echo "Done."
|
||||||
|
|
245
target/xtensa/uClibc-0.9.30.config
Normal file
245
target/xtensa/uClibc-0.9.30.config
Normal file
@ -0,0 +1,245 @@
|
|||||||
|
#
|
||||||
|
# Automatically generated make config: don't edit
|
||||||
|
# Thu Jan 23 14:50:00 2009
|
||||||
|
#
|
||||||
|
# TARGET_alpha is not set
|
||||||
|
# TARGET_arm is not set
|
||||||
|
# TARGET_avr32 is not set
|
||||||
|
# TARGET_bfin is not set
|
||||||
|
# TARGET_cris is not set
|
||||||
|
# TARGET_e1 is not set
|
||||||
|
# TARGET_frv is not set
|
||||||
|
# TARGET_h8300 is not set
|
||||||
|
# TARGET_hppa is not set
|
||||||
|
# TARGET_i386 is not set
|
||||||
|
# TARGET_i960 is not set
|
||||||
|
# TARGET_ia64 is not set
|
||||||
|
# TARGET_m68k is not set
|
||||||
|
# TARGET_microblaze is not set
|
||||||
|
# TARGET_mips is not set
|
||||||
|
# TARGET_nios is not set
|
||||||
|
# TARGET_nios2 is not set
|
||||||
|
# TARGET_powerpc is not set
|
||||||
|
# TARGET_sh is not set
|
||||||
|
# TARGET_sh64 is not set
|
||||||
|
# TARGET_sparc is not set
|
||||||
|
# TARGET_v850 is not set
|
||||||
|
# TARGET_vax is not set
|
||||||
|
# TARGET_x86_64 is not set
|
||||||
|
TARGET_xtensa=y
|
||||||
|
|
||||||
|
#
|
||||||
|
# Target Architecture Features and Options
|
||||||
|
#
|
||||||
|
TARGET_ARCH="xtensa"
|
||||||
|
FORCE_OPTIONS_FOR_ARCH=y
|
||||||
|
# ARCH_LITTLE_ENDIAN is not set
|
||||||
|
# ARCH_BIG_ENDIAN is not set
|
||||||
|
# ARCH_WANTS_LITTLE_ENDIAN is not set
|
||||||
|
# ARCH_WANTS_BIG_ENDIAN is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Using ELF file format
|
||||||
|
#
|
||||||
|
ARCH_HAS_MMU=y
|
||||||
|
ARCH_USE_MMU=y
|
||||||
|
UCLIBC_HAS_FLOATS=y
|
||||||
|
UCLIBC_HAS_FPU=y
|
||||||
|
DO_C99_MATH=y
|
||||||
|
# UCLIBC_HAS_FENV is not set
|
||||||
|
UCLIBC_HAS_LONG_DOUBLE_MATH=y
|
||||||
|
KERNEL_HEADERS="/usr/src/linux/include"
|
||||||
|
HAVE_DOT_CONFIG=y
|
||||||
|
|
||||||
|
#
|
||||||
|
# General Library Settings
|
||||||
|
#
|
||||||
|
# HAVE_NO_PIC is not set
|
||||||
|
DOPIC=y
|
||||||
|
# ARCH_HAS_NO_SHARED is not set
|
||||||
|
# ARCH_HAS_NO_LDSO is not set
|
||||||
|
HAVE_SHARED=y
|
||||||
|
# FORCE_SHAREABLE_TEXT_SEGMENTS is not set
|
||||||
|
LDSO_LDD_SUPPORT=y
|
||||||
|
LDSO_CACHE_SUPPORT=y
|
||||||
|
# LDSO_PRELOAD_FILE_SUPPORT is not set
|
||||||
|
LDSO_BASE_FILENAME="ld.so"
|
||||||
|
# UCLIBC_STATIC_LDCONFIG is not set
|
||||||
|
# LDSO_RUNPATH is not set
|
||||||
|
UCLIBC_CTOR_DTOR=y
|
||||||
|
# LDSO_GNU_HASH_SUPPORT is not set
|
||||||
|
# HAS_NO_THREADS is not set
|
||||||
|
UCLIBC_HAS_THREADS=y
|
||||||
|
PTHREADS_DEBUG_SUPPORT=y
|
||||||
|
LINUXTHREADS_OLD=y
|
||||||
|
UCLIBC_HAS_SYSLOG=y
|
||||||
|
UCLIBC_HAS_LFS=y
|
||||||
|
# MALLOC is not set
|
||||||
|
# MALLOC_SIMPLE is not set
|
||||||
|
MALLOC_STANDARD=y
|
||||||
|
MALLOC_GLIBC_COMPAT=y
|
||||||
|
UCLIBC_DYNAMIC_ATEXIT=y
|
||||||
|
# COMPAT_ATEXIT is not set
|
||||||
|
UCLIBC_SUSV3_LEGACY=y
|
||||||
|
UCLIBC_SUSV3_LEGACY_MACROS=y
|
||||||
|
# UCLIBC_HAS_STUBS is not set
|
||||||
|
UCLIBC_HAS_SHADOW=y
|
||||||
|
# UCLIBC_HAS_PROGRAM_INVOCATION_NAME is not set
|
||||||
|
UCLIBC_HAS___PROGNAME=y
|
||||||
|
UCLIBC_HAS_PTY=y
|
||||||
|
UNIX98PTY_ONLY=y
|
||||||
|
# UCLIBC_HAS_GETPT is not set
|
||||||
|
ASSUME_DEVPTS=y
|
||||||
|
UCLIBC_HAS_TM_EXTENSIONS=y
|
||||||
|
UCLIBC_HAS_TZ_CACHING=y
|
||||||
|
UCLIBC_HAS_TZ_FILE=y
|
||||||
|
UCLIBC_HAS_TZ_FILE_READ_MANY=y
|
||||||
|
UCLIBC_TZ_FILE_PATH="/etc/TZ"
|
||||||
|
|
||||||
|
#
|
||||||
|
# Advanced Library Settings
|
||||||
|
#
|
||||||
|
UCLIBC_PWD_BUFFER_SIZE=256
|
||||||
|
UCLIBC_GRP_BUFFER_SIZE=256
|
||||||
|
UCLIBC_HAS_NONREENTRANT=y
|
||||||
|
|
||||||
|
#
|
||||||
|
# Networking Support
|
||||||
|
#
|
||||||
|
|
||||||
|
UCLIBC_LINUX_MODULE_24=y
|
||||||
|
UCLIBC_LINUX_SPECIFIC=y
|
||||||
|
UCLIBC_HAS_GNU_ERROR=y
|
||||||
|
UCLIBC_BSD_SPECIFIC=y
|
||||||
|
UCLIBC_HAS_BSD_ERR=y
|
||||||
|
UCLIBC_HAS_OBSOLETE_BSD_SIGNAL=y
|
||||||
|
UCLIBC_HAS_OBSOLETE_SYSV_SIGNAL=y
|
||||||
|
# UCLIBC_NTP_LEGACY is not set
|
||||||
|
# UCLIBC_SV4_DEPRECATED is not set
|
||||||
|
UCLIBC_HAS_REALTIME=y
|
||||||
|
UCLIBC_HAS_ADVANCED_REALTIME=y
|
||||||
|
UCLIBC_HAS_EPOLL=y
|
||||||
|
UCLIBC_HAS_XATTR=y
|
||||||
|
UCLIBC_HAS_PROFILING=y
|
||||||
|
UCLIBC_HAS_CRYPT_IMPL=y
|
||||||
|
UCLIBC_HAS_CRYPT=y
|
||||||
|
UCLIBC_HAS_NETWORK_SUPPORT=y
|
||||||
|
UCLIBC_HAS_SOCKET=y
|
||||||
|
UCLIBC_HAS_IPV4=y
|
||||||
|
UCLIBC_HAS_IPV6=y
|
||||||
|
UCLIBC_HAS_RPC=y
|
||||||
|
UCLIBC_HAS_FULL_RPC=y
|
||||||
|
UCLIBC_HAS_REENTRANT_RPC=y
|
||||||
|
UCLIBC_USE_NETLINK=y
|
||||||
|
# UCLIBC_SUPPORT_AI_ADDRCONFIG is not set
|
||||||
|
# UCLIBC_HAS_BSD_RES_CLOSE is not set
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# String and Stdio Support
|
||||||
|
#
|
||||||
|
# UCLIBC_HAS_STRING_GENERIC_OPT is not set
|
||||||
|
# UCLIBC_HAS_STRING_ARCH_OPT is not set
|
||||||
|
UCLIBC_HAS_CTYPE_TABLES=y
|
||||||
|
UCLIBC_HAS_CTYPE_SIGNED=y
|
||||||
|
# UCLIBC_HAS_CTYPE_UNSAFE is not set
|
||||||
|
# UCLIBC_HAS_CTYPE_CHECKED is not set
|
||||||
|
# UCLIBC_HAS_CTYPE_ENFORCED is not set
|
||||||
|
# UCLIBC_HAS_WCHAR is not set
|
||||||
|
# UCLIBC_HAS_LOCALE is not set
|
||||||
|
UCLIBC_HAS_HEXADECIMAL_FLOATS=y
|
||||||
|
UCLIBC_HAS_GLIBC_CUSTOM_PRINTF=y
|
||||||
|
# USE_OLD_VFPRINTF is not set
|
||||||
|
UCLIBC_PRINTF_SCANF_POSITIONAL_ARGS=9
|
||||||
|
UCLIBC_HAS_SCANF_GLIBC_A_FLAG=y
|
||||||
|
# UCLIBC_HAS_STDIO_BUFSIZ_NONE is not set
|
||||||
|
# UCLIBC_HAS_STDIO_BUFSIZ_256 is not set
|
||||||
|
# UCLIBC_HAS_STDIO_BUFSIZ_512 is not set
|
||||||
|
# UCLIBC_HAS_STDIO_BUFSIZ_1024 is not set
|
||||||
|
# UCLIBC_HAS_STDIO_BUFSIZ_2048 is not set
|
||||||
|
UCLIBC_HAS_STDIO_BUFSIZ_4096=y
|
||||||
|
# UCLIBC_HAS_STDIO_BUFSIZ_8192 is not set
|
||||||
|
UCLIBC_HAS_STDIO_BUILTIN_BUFFER_NONE=y
|
||||||
|
# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_4 is not set
|
||||||
|
# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_8 is not set
|
||||||
|
# UCLIBC_HAS_STDIO_SHUTDOWN_ON_ABORT is not set
|
||||||
|
# UCLIBC_HAS_STDIO_GETC_MACRO is not set
|
||||||
|
# UCLIBC_HAS_STDIO_PUTC_MACRO is not set
|
||||||
|
UCLIBC_HAS_STDIO_AUTO_RW_TRANSITION=y
|
||||||
|
# UCLIBC_HAS_FOPEN_LARGEFILE_MODE is not set
|
||||||
|
UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE=y
|
||||||
|
UCLIBC_HAS_GLIBC_CUSTOM_STREAMS=y
|
||||||
|
UCLIBC_HAS_PRINTF_M_SPEC=y
|
||||||
|
UCLIBC_HAS_ERRNO_MESSAGES=y
|
||||||
|
# UCLIBC_HAS_SYS_ERRLIST is not set
|
||||||
|
UCLIBC_HAS_SIGNUM_MESSAGES=y
|
||||||
|
# UCLIBC_HAS_SYS_SIGLIST is not set
|
||||||
|
UCLIBC_HAS_GNU_GETOPT=y
|
||||||
|
# UCLIBC_HAS_GNU_GETSUBOPT is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Big and Tall
|
||||||
|
#
|
||||||
|
UCLIBC_HAS_REGEX=y
|
||||||
|
# UCLIBC_HAS_REGEX_OLD is not set
|
||||||
|
UCLIBC_HAS_FNMATCH=y
|
||||||
|
# UCLIBC_HAS_FNMATCH_OLD is not set
|
||||||
|
# UCLIBC_HAS_WORDEXP is not set
|
||||||
|
UCLIBC_HAS_FTW=y
|
||||||
|
UCLIBC_HAS_GLOB=y
|
||||||
|
UCLIBC_HAS_GNU_GLOB=y
|
||||||
|
|
||||||
|
#
|
||||||
|
# Library Installation Options
|
||||||
|
#
|
||||||
|
SHARED_LIB_LOADER_PREFIX="/lib"
|
||||||
|
RUNTIME_PREFIX="/"
|
||||||
|
DEVEL_PREFIX="/usr/"
|
||||||
|
|
||||||
|
#
|
||||||
|
# Security options
|
||||||
|
#
|
||||||
|
# UCLIBC_BUILD_PIE is not set
|
||||||
|
UCLIBC_HAS_ARC4RANDOM=y
|
||||||
|
# HAVE_NO_SSP is not set
|
||||||
|
# UCLIBC_HAS_SSP is not set
|
||||||
|
UCLIBC_BUILD_RELRO=y
|
||||||
|
UCLIBC_BUILD_NOW=y
|
||||||
|
# UCLIBC_BUILD_NOEXECSTACK is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# uClibc development/debugging options
|
||||||
|
#
|
||||||
|
CROSS_COMPILER_PREFIX=""
|
||||||
|
UCLIBC_EXTRA_CFLAGS=""
|
||||||
|
# DODEBUG is not set
|
||||||
|
# DODEBUG_PT is not set
|
||||||
|
DOSTRIP=y
|
||||||
|
# DOASSERTS is not set
|
||||||
|
# SUPPORT_LD_DEBUG is not set
|
||||||
|
# SUPPORT_LD_DEBUG_EARLY is not set
|
||||||
|
# UCLIBC_MALLOC_DEBUGGING is not set
|
||||||
|
WARNINGS="-Wall"
|
||||||
|
# EXTRA_WARNINGS is not set
|
||||||
|
# DOMULTI is not set
|
||||||
|
# UCLIBC_MJN3_ONLY is not set
|
||||||
|
|
||||||
|
# USE_BX is not set
|
||||||
|
# CONFIG_GENERIC_ARM is not set
|
||||||
|
# CONFIG_ARM610 is not set
|
||||||
|
# CONFIG_ARM710 is not set
|
||||||
|
# CONFIG_ARM7TDMI is not set
|
||||||
|
# CONFIG_ARM720T is not set
|
||||||
|
# CONFIG_ARM920T is not set
|
||||||
|
# CONFIG_ARM922T is not set
|
||||||
|
# CONFIG_ARM926T is not set
|
||||||
|
# CONFIG_ARM10T is not set
|
||||||
|
# CONFIG_ARM1136JF_S is not set
|
||||||
|
# CONFIG_ARM1176JZ_S is not set
|
||||||
|
# CONFIG_ARM1176JZF_S is not set
|
||||||
|
# CONFIG_ARM_CORTEX_M3 is not set
|
||||||
|
# CONFIG_ARM_CORTEX_M1 is not set
|
||||||
|
# CONFIG_ARM_SA110 is not set
|
||||||
|
# CONFIG_ARM_SA1100 is not set
|
||||||
|
# CONFIG_ARM_XSCALE is not set
|
||||||
|
# CONFIG_ARM_IWMMXT is not set
|
190
target/xtensa/uClibc.config
Normal file
190
target/xtensa/uClibc.config
Normal file
@ -0,0 +1,190 @@
|
|||||||
|
#
|
||||||
|
# Automatically generated make config: don't edit
|
||||||
|
# Thu Jan 10 00:46:51 2008
|
||||||
|
#
|
||||||
|
# TARGET_alpha is not set
|
||||||
|
# TARGET_arm is not set
|
||||||
|
# TARGET_avr32 is not set
|
||||||
|
# TARGET_bfin is not set
|
||||||
|
# TARGET_cris is not set
|
||||||
|
# TARGET_e1 is not set
|
||||||
|
# TARGET_frv is not set
|
||||||
|
# TARGET_h8300 is not set
|
||||||
|
# TARGET_hppa is not set
|
||||||
|
# TARGET_i386 is not set
|
||||||
|
# TARGET_i960 is not set
|
||||||
|
# TARGET_ia64 is not set
|
||||||
|
# TARGET_m68k is not set
|
||||||
|
# TARGET_microblaze is not set
|
||||||
|
# TARGET_mips is not set
|
||||||
|
# TARGET_nios is not set
|
||||||
|
# TARGET_nios2 is not set
|
||||||
|
# TARGET_powerpc is not set
|
||||||
|
# TARGET_sh is not set
|
||||||
|
# TARGET_sh64 is not set
|
||||||
|
# TARGET_sparc is not set
|
||||||
|
# TARGET_v850 is not set
|
||||||
|
# TARGET_vax is not set
|
||||||
|
# TARGET_x86_64 is not set
|
||||||
|
TARGET_xtensa=y
|
||||||
|
|
||||||
|
#
|
||||||
|
# Target Architecture Features and Options
|
||||||
|
#
|
||||||
|
TARGET_ARCH="xtensa"
|
||||||
|
TARGET_SUBARCH=""
|
||||||
|
|
||||||
|
#
|
||||||
|
# Using ELF file format
|
||||||
|
#
|
||||||
|
ARCH_HAS_MMU=y
|
||||||
|
ARCH_USE_MMU=y
|
||||||
|
UCLIBC_HAS_FLOATS=y
|
||||||
|
UCLIBC_HAS_FPU=y
|
||||||
|
DO_C99_MATH=y
|
||||||
|
KERNEL_HEADERS="/usr/src/linux/include"
|
||||||
|
HAVE_DOT_CONFIG=y
|
||||||
|
|
||||||
|
#
|
||||||
|
# General Library Settings
|
||||||
|
#
|
||||||
|
# HAVE_NO_PIC is not set
|
||||||
|
DOPIC=y
|
||||||
|
# HAVE_NO_SHARED is not set
|
||||||
|
# ARCH_HAS_NO_LDSO is not set
|
||||||
|
HAVE_SHARED=y
|
||||||
|
# FORCE_SHAREABLE_TEXT_SEGMENTS is not set
|
||||||
|
LDSO_LDD_SUPPORT=y
|
||||||
|
LDSO_CACHE_SUPPORT=y
|
||||||
|
# LDSO_PRELOAD_FILE_SUPPORT is not set
|
||||||
|
LDSO_BASE_FILENAME="ld.so"
|
||||||
|
# UCLIBC_STATIC_LDCONFIG is not set
|
||||||
|
# LDSO_RUNPATH is not set
|
||||||
|
UCLIBC_CTOR_DTOR=y
|
||||||
|
# HAS_NO_THREADS is not set
|
||||||
|
UCLIBC_HAS_THREADS=y
|
||||||
|
PTHREADS_DEBUG_SUPPORT=y
|
||||||
|
LINUXTHREADS_OLD=y
|
||||||
|
UCLIBC_HAS_LFS=y
|
||||||
|
# MALLOC is not set
|
||||||
|
# MALLOC_SIMPLE is not set
|
||||||
|
MALLOC_STANDARD=y
|
||||||
|
MALLOC_GLIBC_COMPAT=y
|
||||||
|
UCLIBC_DYNAMIC_ATEXIT=y
|
||||||
|
# COMPAT_ATEXIT is not set
|
||||||
|
# UCLIBC_SUSV3_LEGACY is not set
|
||||||
|
UCLIBC_SUSV3_LEGACY_MACROS=y
|
||||||
|
UCLIBC_HAS_SHADOW=y
|
||||||
|
# UCLIBC_HAS_PROGRAM_INVOCATION_NAME is not set
|
||||||
|
UCLIBC_HAS___PROGNAME=y
|
||||||
|
# UNIX98PTY_ONLY is not set
|
||||||
|
ASSUME_DEVPTS=y
|
||||||
|
UCLIBC_HAS_TM_EXTENSIONS=y
|
||||||
|
UCLIBC_HAS_TZ_CACHING=y
|
||||||
|
UCLIBC_HAS_TZ_FILE=y
|
||||||
|
UCLIBC_HAS_TZ_FILE_READ_MANY=y
|
||||||
|
UCLIBC_TZ_FILE_PATH="/etc/TZ"
|
||||||
|
|
||||||
|
#
|
||||||
|
# Advanced Library Settings
|
||||||
|
#
|
||||||
|
UCLIBC_PWD_BUFFER_SIZE=256
|
||||||
|
UCLIBC_GRP_BUFFER_SIZE=256
|
||||||
|
|
||||||
|
#
|
||||||
|
# Networking Support
|
||||||
|
#
|
||||||
|
UCLIBC_HAS_IPV6=y
|
||||||
|
UCLIBC_HAS_RPC=y
|
||||||
|
UCLIBC_HAS_FULL_RPC=y
|
||||||
|
UCLIBC_HAS_REENTRANT_RPC=y
|
||||||
|
# UCLIBC_USE_NETLINK is not set
|
||||||
|
# UCLIBC_HAS_BSD_RES_CLOSE is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# String and Stdio Support
|
||||||
|
#
|
||||||
|
UCLIBC_HAS_STRING_GENERIC_OPT=y
|
||||||
|
UCLIBC_HAS_STRING_ARCH_OPT=y
|
||||||
|
UCLIBC_HAS_CTYPE_TABLES=y
|
||||||
|
UCLIBC_HAS_CTYPE_SIGNED=y
|
||||||
|
# UCLIBC_HAS_CTYPE_UNSAFE is not set
|
||||||
|
UCLIBC_HAS_CTYPE_CHECKED=y
|
||||||
|
# UCLIBC_HAS_CTYPE_ENFORCED is not set
|
||||||
|
# UCLIBC_HAS_WCHAR is not set
|
||||||
|
# UCLIBC_HAS_LOCALE is not set
|
||||||
|
UCLIBC_HAS_HEXADECIMAL_FLOATS=y
|
||||||
|
UCLIBC_HAS_GLIBC_CUSTOM_PRINTF=y
|
||||||
|
# USE_OLD_VFPRINTF is not set
|
||||||
|
UCLIBC_PRINTF_SCANF_POSITIONAL_ARGS=9
|
||||||
|
UCLIBC_HAS_SCANF_GLIBC_A_FLAG=y
|
||||||
|
# UCLIBC_HAS_STDIO_BUFSIZ_NONE is not set
|
||||||
|
# UCLIBC_HAS_STDIO_BUFSIZ_256 is not set
|
||||||
|
# UCLIBC_HAS_STDIO_BUFSIZ_512 is not set
|
||||||
|
# UCLIBC_HAS_STDIO_BUFSIZ_1024 is not set
|
||||||
|
# UCLIBC_HAS_STDIO_BUFSIZ_2048 is not set
|
||||||
|
UCLIBC_HAS_STDIO_BUFSIZ_4096=y
|
||||||
|
# UCLIBC_HAS_STDIO_BUFSIZ_8192 is not set
|
||||||
|
UCLIBC_HAS_STDIO_BUILTIN_BUFFER_NONE=y
|
||||||
|
# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_4 is not set
|
||||||
|
# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_8 is not set
|
||||||
|
# UCLIBC_HAS_STDIO_SHUTDOWN_ON_ABORT is not set
|
||||||
|
UCLIBC_HAS_STDIO_GETC_MACRO=y
|
||||||
|
UCLIBC_HAS_STDIO_PUTC_MACRO=y
|
||||||
|
UCLIBC_HAS_STDIO_AUTO_RW_TRANSITION=y
|
||||||
|
# UCLIBC_HAS_FOPEN_LARGEFILE_MODE is not set
|
||||||
|
UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE=y
|
||||||
|
UCLIBC_HAS_GLIBC_CUSTOM_STREAMS=y
|
||||||
|
UCLIBC_HAS_PRINTF_M_SPEC=y
|
||||||
|
UCLIBC_HAS_ERRNO_MESSAGES=y
|
||||||
|
# UCLIBC_HAS_SYS_ERRLIST is not set
|
||||||
|
UCLIBC_HAS_SIGNUM_MESSAGES=y
|
||||||
|
# UCLIBC_HAS_SYS_SIGLIST is not set
|
||||||
|
UCLIBC_HAS_GNU_GETOPT=y
|
||||||
|
UCLIBC_HAS_GNU_GETSUBOPT=y
|
||||||
|
|
||||||
|
#
|
||||||
|
# Big and Tall
|
||||||
|
#
|
||||||
|
UCLIBC_HAS_REGEX=y
|
||||||
|
UCLIBC_HAS_REGEX_OLD=y
|
||||||
|
UCLIBC_HAS_FNMATCH=y
|
||||||
|
UCLIBC_HAS_FNMATCH_OLD=y
|
||||||
|
# UCLIBC_HAS_WORDEXP is not set
|
||||||
|
UCLIBC_HAS_FTW=y
|
||||||
|
UCLIBC_HAS_GLOB=y
|
||||||
|
UCLIBC_HAS_GNU_GLOB=y
|
||||||
|
|
||||||
|
#
|
||||||
|
# Library Installation Options
|
||||||
|
#
|
||||||
|
SHARED_LIB_LOADER_PREFIX="/lib"
|
||||||
|
RUNTIME_PREFIX="/"
|
||||||
|
DEVEL_PREFIX="/usr/"
|
||||||
|
|
||||||
|
#
|
||||||
|
# Security options
|
||||||
|
#
|
||||||
|
# UCLIBC_HAS_ARC4RANDOM is not set
|
||||||
|
# HAVE_NO_SSP is not set
|
||||||
|
# UCLIBC_HAS_SSP is not set
|
||||||
|
UCLIBC_BUILD_RELRO=y
|
||||||
|
UCLIBC_BUILD_NOW=y
|
||||||
|
# UCLIBC_BUILD_NOEXECSTACK is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# uClibc development/debugging options
|
||||||
|
#
|
||||||
|
CROSS_COMPILER_PREFIX=""
|
||||||
|
UCLIBC_EXTRA_CFLAGS=""
|
||||||
|
# DODEBUG is not set
|
||||||
|
# DOSTRIP is not set
|
||||||
|
# DODEBUG_PT is not set
|
||||||
|
# DOASSERTS is not set
|
||||||
|
SUPPORT_LD_DEBUG=y
|
||||||
|
# SUPPORT_LD_DEBUG_EARLY is not set
|
||||||
|
# UCLIBC_MALLOC_DEBUGGING is not set
|
||||||
|
WARNINGS="-Wall"
|
||||||
|
EXTRA_WARNINGS=y
|
||||||
|
# DOMULTI is not set
|
||||||
|
# UCLIBC_MJN3_ONLY is not set
|
494
target/xtensa/xt-buildroot-overlay-install
Normal file
494
target/xtensa/xt-buildroot-overlay-install
Normal file
@ -0,0 +1,494 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
# Not every host installs perl at the same location, handle many locations:
|
||||||
|
PATH=/usr/bin:/usr/local/bin:$PATH
|
||||||
|
exec perl -x -S $0 ${1+"$@"}
|
||||||
|
exit $?
|
||||||
|
#!perl -w
|
||||||
|
#line 8
|
||||||
|
|
||||||
|
# xt-buildroot-overlay-install [-t overlay_tarball] [-b buildroot_dir] \
|
||||||
|
# [-k kernel_dir] \
|
||||||
|
# [-c config_name] [-l long_name] [-f] [--help]
|
||||||
|
#
|
||||||
|
# Creates individual overlay tarballs for gcc, binutils, gdb, and
|
||||||
|
# the Linux kernel, out of the Xtensa Configuration Overlay tarball from
|
||||||
|
# a Tensilica Core Package. And installs these individual tarballs
|
||||||
|
# at the appropriate locations within a buildroot source tree.
|
||||||
|
#
|
||||||
|
# The Xtensa configuration overlay tarball is located in:
|
||||||
|
# <xtensa_root>/src/xtensa-config-overlay.tar.gz
|
||||||
|
# where <xtensa_root> is the path to the Tensilica Core Package.
|
||||||
|
#
|
||||||
|
# Copyright (c) 2003-2008 by Tensilica Inc. ALL RIGHTS RESERVED.
|
||||||
|
# These coded instructions, statements, and computer programs are the
|
||||||
|
# copyrighted works and confidential proprietary information of Tensilica Inc.
|
||||||
|
# They may not be modified, copied, reproduced, distributed, or disclosed to
|
||||||
|
# third parties in any manner, medium, or form, in whole or in part, without
|
||||||
|
# the prior written consent of Tensilica Inc.
|
||||||
|
#
|
||||||
|
# History:
|
||||||
|
# 2007-NOV-08 1.0 meg Initial version
|
||||||
|
# 2007-NOV-21 1.1 meg Add -k parameter
|
||||||
|
# 2007-DEC-06 1.2 meg Make -k and -b optional, check overlay sw vers.
|
||||||
|
# 2008-FEB-27 1.3 meg Accept Xtensa Tools RB-2008.3 overlays
|
||||||
|
|
||||||
|
$progvers = "1.3";
|
||||||
|
$progname = $0;
|
||||||
|
$progname =~ s|.*[/\\:]||;
|
||||||
|
|
||||||
|
|
||||||
|
######################################################################
|
||||||
|
#
|
||||||
|
# Parse cmdline
|
||||||
|
#
|
||||||
|
|
||||||
|
my $overlay_tarball = undef;
|
||||||
|
my $buildroot_dir = undef;
|
||||||
|
my $kernel_dir = undef;
|
||||||
|
my $config_name = undef;
|
||||||
|
my $config_long_name = undef;
|
||||||
|
my $force_clobber = 0;
|
||||||
|
my $prompt = 1; # undocumented option
|
||||||
|
|
||||||
|
sub usage {
|
||||||
|
print "$progname version $progvers\n"
|
||||||
|
."Usage: $progname <parameters> [<options>]\n"
|
||||||
|
."Where <parameters> are:\n"
|
||||||
|
." -t file.tgz Specify path to the Xtensa Linux overlay tarball, typically\n"
|
||||||
|
." <xtensa_root>/src/xtensa-config-overlay.tar.gz\n"
|
||||||
|
." -b dir Path to the base of the buildroot source tree, in which\n"
|
||||||
|
." package specific overlay tarballs get installed.\n"
|
||||||
|
." -k dir Path to the base of the Linux kernel source tree, in which\n"
|
||||||
|
." the Linux kernel specific overlay gets installed.\n"
|
||||||
|
." -c config_name Name for the Xtensa processor configuration as it will be\n"
|
||||||
|
." known to the open source community. Must be a lowercase\n"
|
||||||
|
." identifier, starting with a letter, consisting of letters\n"
|
||||||
|
." and numbers and underscores, not ending with underscore\n"
|
||||||
|
." and not containing consecutive underscores. For examples:\n"
|
||||||
|
." dc232b , dc232b_be , mmubasele , fsf , s5000 .\n"
|
||||||
|
." -l long_name Long name for the Xtensa processor configuration, human-\n"
|
||||||
|
." readable with spaces etc allowed (must be quoted).\n"
|
||||||
|
." For example: 'Diamond 232L Standard Core Rev.B (LE)'\n"
|
||||||
|
." Try to keep it within approximately 40 characters.\n"
|
||||||
|
."And <options> are:\n"
|
||||||
|
." -f If package specific overlay tarballs already exist in\n"
|
||||||
|
." the destination source tree, overwrite them without asking.\n"
|
||||||
|
." --help Show this usage message.\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
# Get arguments:
|
||||||
|
if (!@ARGV) {
|
||||||
|
usage();
|
||||||
|
exit 0;
|
||||||
|
}
|
||||||
|
while( defined($_ = shift) ) {
|
||||||
|
if( /^-[tbclk]$/ ) { # option taking an argument
|
||||||
|
my $arg = shift;
|
||||||
|
if( !defined($arg) ) {
|
||||||
|
print STDERR "$progname: ERROR: missing parameter after '$_' option\n\n";
|
||||||
|
usage();
|
||||||
|
exit 1;
|
||||||
|
}
|
||||||
|
$overlay_tarball = $arg if $_ eq "-t";
|
||||||
|
$buildroot_dir = $arg if $_ eq "-b";
|
||||||
|
$kernel_dir = $arg if $_ eq "-k";
|
||||||
|
$config_name = $arg if $_ eq "-c";
|
||||||
|
$config_long_name = $arg if $_ eq "-l";
|
||||||
|
next;
|
||||||
|
}
|
||||||
|
if( /^-f$/ ) {
|
||||||
|
$force_clobber = 1;
|
||||||
|
next;
|
||||||
|
}
|
||||||
|
if( /^--[m-t]{8}$/ && /[new]([wow])([pup])[fur]\1[maze]\2[tuff]/ ) {
|
||||||
|
$prompt = 0;
|
||||||
|
next;
|
||||||
|
}
|
||||||
|
if( /^-(h|help|\-h|\-help|\?)$/i ) {
|
||||||
|
usage();
|
||||||
|
exit 0;
|
||||||
|
}
|
||||||
|
print STDERR "$progname: ERROR: unrecognized option or argument '$_'\n\n";
|
||||||
|
usage();
|
||||||
|
exit 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
######################################################################
|
||||||
|
#
|
||||||
|
# Validate cmdline arguments
|
||||||
|
#
|
||||||
|
|
||||||
|
ErrorU("missing -c argument (core name)")
|
||||||
|
unless defined($config_name);
|
||||||
|
# Try to enforce reasonable names:
|
||||||
|
ErrorU("-c: malformed core name '$config_name' (must be lowercase, letter followed by letters/digits, may contain underscore separators)")
|
||||||
|
unless $config_name =~ /^[a-z][a-z0-9]*(_[a-z0-9]+)*$/;
|
||||||
|
ErrorU("-c: core name too short '$config_name'")
|
||||||
|
unless length($config_name) >= 2;
|
||||||
|
ErrorU("-c: core name too long '$config_name'")
|
||||||
|
unless length($config_name) <= 16;
|
||||||
|
|
||||||
|
|
||||||
|
ErrorU("missing -l argument (core long name)")
|
||||||
|
unless defined($config_long_name);
|
||||||
|
$config_long_name =~ s/^\s+//; # trim extra whitespace...
|
||||||
|
$config_long_name =~ s/\s+$//;
|
||||||
|
$config_long_name =~ s/\s+/ /g;
|
||||||
|
# Try to enforce reasonable names:
|
||||||
|
ErrorU("-l: invalid (non-ASCII-printable) characters in core long name '$config_long_name'")
|
||||||
|
unless $config_long_name =~ /^[\x20-\x7E]+$/;
|
||||||
|
ErrorU("-l: disallowed characters (\"\'\\) in core long name '$config_long_name'")
|
||||||
|
if $config_long_name =~ /[\'\"\\]/;
|
||||||
|
ErrorU("-l: core long name too short '$config_long_name'")
|
||||||
|
unless length($config_long_name) >= 5;
|
||||||
|
ErrorU("-l: core long name too long '$config_long_name'")
|
||||||
|
unless length($config_long_name) <= 60;
|
||||||
|
|
||||||
|
|
||||||
|
#ErrorU("missing -b argument (buildroot source tree directory)")
|
||||||
|
# unless defined($buildroot_dir);
|
||||||
|
if (defined($buildroot_dir)) {
|
||||||
|
ErrorU("-b: not a directory: $buildroot_dir")
|
||||||
|
unless -d $buildroot_dir;
|
||||||
|
foreach my $p ("toolchain/gcc", "toolchain/binutils", "toolchain/gdb", "target/xtensa") {
|
||||||
|
ErrorU("-b: not a buildroot directory: missing $buildroot_dir/$p")
|
||||||
|
unless -d $buildroot_dir . "/" . $p;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#ErrorU("missing -k argument (Linux kernel source tree directory)")
|
||||||
|
# unless defined($kernel_dir);
|
||||||
|
if (defined($kernel_dir)) {
|
||||||
|
ErrorU("-k: not a directory: $kernel_dir")
|
||||||
|
unless -d $kernel_dir;
|
||||||
|
foreach my $p ("kernel", "arch/xtensa/kernel", "include/asm-xtensa") {
|
||||||
|
ErrorU("-k: not a Linux kernel directory: missing $kernel_dir/$p")
|
||||||
|
unless -d $kernel_dir . "/" . $p;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (!defined($buildroot_dir) and !defined($kernel_dir)) {
|
||||||
|
print STDERR "$progname: WARNING:\n";
|
||||||
|
print STDERR "$progname: WARNING: Test run only, NOTHING WILL BE INSTALLED\n";
|
||||||
|
print STDERR "$progname: WARNING: (use -b and -k to specify install destination)\n";
|
||||||
|
print STDERR "$progname: WARNING:\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
my @ovpaths = ( "/src/xtensa-config-overlay.tar.gz",
|
||||||
|
"/xtensa-elf/src/linux/misc/linux-overlay.tar.gz" );
|
||||||
|
if (!defined($overlay_tarball)) {
|
||||||
|
# Try to locate the overlay tarball based on XTENSA_SYSTEM and XTENSA_CORE
|
||||||
|
# settings:
|
||||||
|
my $xtensa_root = `xt-xcc --show-config=config 2>/dev/null`;
|
||||||
|
$xtensa_root = "" unless defined($xtensa_root);
|
||||||
|
chomp($xtensa_root);
|
||||||
|
if ($xtensa_root ne "") {
|
||||||
|
($overlay_tarball) = grep(-f $xtensa_root.$_, @ovpaths);
|
||||||
|
if (!defined($overlay_tarball)) {
|
||||||
|
ErrorU("Xtensa configuration overlay tarball not found: ".$xtensa_root.$ovpaths[0])
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
ErrorU("missing -t argument (Xtensa configuration overlay tarball filename)\n"
|
||||||
|
."and no default Xtensa Core Package defined in the environment");
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
foreach my $p ("", @ovpaths) {
|
||||||
|
if (-f $overlay_tarball.$p) {
|
||||||
|
$overlay_tarball .= $p;
|
||||||
|
last;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ErrorU("-t: file not found: $overlay_tarball") unless -f $overlay_tarball;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
######################################################################
|
||||||
|
#
|
||||||
|
# Misc
|
||||||
|
#
|
||||||
|
|
||||||
|
my $overlay_unpacked = 0;
|
||||||
|
my $ovdir;
|
||||||
|
|
||||||
|
sub cleanup {
|
||||||
|
if ($overlay_unpacked) {
|
||||||
|
system("rm -rf '$ovdir' 2>/dev/null");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
sub ErrorEmit {
|
||||||
|
my ($msg,$usage) = @_;
|
||||||
|
$msg =~ s|\n|"\n${progname}: ERROR: "|ge;
|
||||||
|
print STDERR "$progname: ERROR: $msg\n";
|
||||||
|
if ($usage) {
|
||||||
|
print "\n";
|
||||||
|
usage();
|
||||||
|
}
|
||||||
|
cleanup();
|
||||||
|
exit 1;
|
||||||
|
}
|
||||||
|
sub ErrorU { ErrorEmit(shift,1); }
|
||||||
|
sub Error { ErrorEmit(shift); }
|
||||||
|
|
||||||
|
|
||||||
|
# Read specified file (as binary), returning contents.
|
||||||
|
#
|
||||||
|
sub readfile {
|
||||||
|
my ($filename) = @_;
|
||||||
|
# Read the file:
|
||||||
|
open(INFILE,"<$filename") or Error("error reading from '$filename': $!");
|
||||||
|
my $savesep = $/;
|
||||||
|
undef $/;
|
||||||
|
my $file = <INFILE>;
|
||||||
|
$/ = $savesep;
|
||||||
|
close(INFILE);
|
||||||
|
$file;
|
||||||
|
}
|
||||||
|
|
||||||
|
# Write specified file (as binary) with first argument (string).
|
||||||
|
#
|
||||||
|
sub writefile {
|
||||||
|
my ($filename, $file) = @_;
|
||||||
|
# Read the file:
|
||||||
|
open(INFILE,">$filename") or Error("error writing to '$filename': $!");
|
||||||
|
print INFILE $file;
|
||||||
|
close(INFILE) or Error("error closing file '$filename': $!");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
######################################################################
|
||||||
|
#
|
||||||
|
# Determine a temporary directory.
|
||||||
|
#
|
||||||
|
|
||||||
|
my $tmpdir = "/tmp";
|
||||||
|
if (defined($ENV{"TMP"}) and -d $ENV{"TMP"}) {
|
||||||
|
$tmpdir = $ENV{"TMP"};
|
||||||
|
} elsif (defined($ENV{"TEMP"}) and -d $ENV{"TEMP"}) {
|
||||||
|
$tmpdir = $ENV{"TEMP"};
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
######################################################################
|
||||||
|
#
|
||||||
|
# Unpack the general overlay tarball
|
||||||
|
#
|
||||||
|
|
||||||
|
my $user = defined($ENV{"USER"}) ? $ENV{"USER"} : "xtensa";
|
||||||
|
$ovdir = $tmpdir."/tmp-overlay-${user}-$$";
|
||||||
|
mkdir $ovdir or Error("cannot create directory $ovdir");
|
||||||
|
$overlay_unpacked = 1;
|
||||||
|
system("tar xfz '$overlay_tarball' -C '$ovdir'")
|
||||||
|
and Error("tar failed...");
|
||||||
|
|
||||||
|
|
||||||
|
######################################################################
|
||||||
|
#
|
||||||
|
# Define and sanity check contents of overlay
|
||||||
|
#
|
||||||
|
|
||||||
|
my $oldpack = -f $ovdir."/xtensa-elf/src/linux/misc/core.h";
|
||||||
|
my $pf1 = ($oldpack ? "src/" : "");
|
||||||
|
my $pf2 = ($oldpack ? "xtensa-elf/src/linux/misc/" : "config/");
|
||||||
|
|
||||||
|
my @packages = (
|
||||||
|
["binutils", "toolchain/binutils",
|
||||||
|
["${pf1}/binutils/xtensa-modules.c", "bfd/"],
|
||||||
|
["${pf1}/binutils/xtensa-config.h", "include/"],
|
||||||
|
#["${pf1}/binutils/xtensa-config.sh", "ld/emulparams/"],
|
||||||
|
],
|
||||||
|
["gcc", "toolchain/gcc",
|
||||||
|
["${pf1}/gcc/xtensa-config.h", "include/"],
|
||||||
|
],
|
||||||
|
["gdb", "toolchain/gdb",
|
||||||
|
["${pf1}/gdb/xtensa-modules.c", "bfd/"],
|
||||||
|
["${pf1}/gdb/xtensa-config.h", "include/"],
|
||||||
|
["${pf1}/gdb/xtensa-config.c", "gdb/"],
|
||||||
|
["${pf1}/gdb/xtensa-regmap.c", "gdb/gdbserver/"],
|
||||||
|
["${pf1}/gdb/xtensa-regmap.c", "gdb/gdbserver/xtensa-xtregs.c"], # for GDB 6.8
|
||||||
|
["${pf1}/gdb/xtensa-regmap.c", "gdb/xtensa-xtregs.c"], # for GDB 6.8
|
||||||
|
["${pf1}/gdb/reg-xtensa.dat", "gdb/regformats/"],
|
||||||
|
],
|
||||||
|
["kernel", "target/xtensa", # ???
|
||||||
|
["${pf2}core.h", "include/asm-xtensa/variant-${config_name}/"],
|
||||||
|
["${pf2}tie.h", "include/asm-xtensa/variant-${config_name}/"],
|
||||||
|
["${pf2}tie-asm.h", "include/asm-xtensa/variant-${config_name}/"],
|
||||||
|
],
|
||||||
|
);
|
||||||
|
|
||||||
|
# Check that all files are present ...
|
||||||
|
foreach my $pack (@packages) {
|
||||||
|
my ($pname, $buildroot_subdir, @files) = @$pack;
|
||||||
|
print "Checking files for $pname ...\n";
|
||||||
|
foreach my $f (@files) {
|
||||||
|
my ($src, $dst) = @$f;
|
||||||
|
-f $ovdir."/".$src or Error("missing '$src' in overlay tarball");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
######################################################################
|
||||||
|
#
|
||||||
|
# Extract some useful information
|
||||||
|
#
|
||||||
|
|
||||||
|
# Extract core name as specified in the build.
|
||||||
|
my $coreh = readfile($ovdir."/".$pf2."core.h");
|
||||||
|
|
||||||
|
$coreh =~ /^\s*\#\s*define\s+XCHAL_SW_VERSION\s+(\w+)/m;
|
||||||
|
my $swversion = $1;
|
||||||
|
defined($swversion) or Error("missing XCHAL_SW_VERSION in overlay core.h file;\n"
|
||||||
|
."overlay is too old, need RB-2008.3 (SW version 7.1.1) or later");
|
||||||
|
|
||||||
|
$coreh =~ /^\s*\#\s*define\s+XCHAL_CORE_ID\s+"([^"]+)"/m;
|
||||||
|
my $coreid = $1;
|
||||||
|
defined($coreid) or Error("missing XCHAL_CORE_ID in overlay core.h file");
|
||||||
|
|
||||||
|
$coreh =~ /^\s*\#\s*define\s+XCHAL_HW_VERSION_NAME\s+"([^"]+)"/m;
|
||||||
|
my $hwversion = $1;
|
||||||
|
defined($hwversion) or Error("missing XCHAL_HW_VERSION_NAME in overlay core.h file");
|
||||||
|
|
||||||
|
|
||||||
|
$swvers_human = sprintf("%u.%u.%u",
|
||||||
|
$swversion/100000, (($swversion/1000) % 100), ($swversion % 1000));
|
||||||
|
my $release = "software version $swvers_human";
|
||||||
|
if (-f $ovdir."/release") {
|
||||||
|
$release = readfile($ovdir."/release");
|
||||||
|
chomp($release);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
######################################################################
|
||||||
|
#
|
||||||
|
# Prompt user to be sure this is what he wants to do
|
||||||
|
#
|
||||||
|
|
||||||
|
# Catch Ctrl-C so we can do a proper cleanup:
|
||||||
|
sub catch_term {
|
||||||
|
my $signame = shift;
|
||||||
|
#print STDERR "whoa!\n";
|
||||||
|
cleanup();
|
||||||
|
print STDERR "\n$progname: Cleaned up.\n";
|
||||||
|
exit 3;
|
||||||
|
}
|
||||||
|
$SIG{TERM} = \&catch_term;
|
||||||
|
$SIG{HUP} = \&catch_term;
|
||||||
|
$SIG{INT} = \&catch_term;
|
||||||
|
|
||||||
|
$| = 1;
|
||||||
|
print "\n",
|
||||||
|
"About to generate package-specific overlay tarballs for the following:\n",
|
||||||
|
"\n",
|
||||||
|
" Xtensa processor short name: $config_name\n";
|
||||||
|
print " This short name overrides the name specified in the XPG: $coreid\n" if $coreid ne $config_name;
|
||||||
|
#print " Please ensure that's the name you want. If submitted to the open source\n",
|
||||||
|
# " community, it can be a hassle to change later on.\n";
|
||||||
|
print " Xtensa processor description: $config_long_name\n",
|
||||||
|
" Targeting Xtensa HW version: $hwversion\n",
|
||||||
|
" Xtensa configuration overlay: $overlay_tarball\n",
|
||||||
|
" (release of overlay): $release\n",
|
||||||
|
" Destination buildroot dir: ".(defined($buildroot_dir)?$buildroot_dir:"(none, not installed)")."\n",
|
||||||
|
" Destination Linux kernel dir: ".(defined($kernel_dir)?$kernel_dir:"(none, not installed)")."\n",
|
||||||
|
"\n",
|
||||||
|
"Are you sure? (y/n) ";
|
||||||
|
if ($prompt) {
|
||||||
|
my $line = <STDIN>;
|
||||||
|
chomp($line);
|
||||||
|
if ($line !~ /^y(es)?$/i) {
|
||||||
|
print "\nInstallation aborted.\n";
|
||||||
|
cleanup();
|
||||||
|
exit 2;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
print "YES [no prompt]\n";
|
||||||
|
}
|
||||||
|
print "\n";
|
||||||
|
|
||||||
|
|
||||||
|
######################################################################
|
||||||
|
#
|
||||||
|
# Now generate the tarballs
|
||||||
|
#
|
||||||
|
|
||||||
|
# Now generate each tarball ...
|
||||||
|
foreach my $pack (@packages) {
|
||||||
|
my ($pname, $buildroot_subdir, @files) = @$pack;
|
||||||
|
my $tarname = "${pname}-xtensa_${config_name}.tgz";
|
||||||
|
my $fulltarname;
|
||||||
|
if (defined($buildroot_dir)) {
|
||||||
|
my $tarsubname = $buildroot_subdir . "/" . $tarname;
|
||||||
|
print "Generating and installing $tarsubname ...\n";
|
||||||
|
$fulltarname = $buildroot_dir . "/" . $tarsubname;
|
||||||
|
} else {
|
||||||
|
print "Generating $tarname ...\n";
|
||||||
|
$fulltarname = $ovdir . "/" . $tarname;
|
||||||
|
}
|
||||||
|
if (-e $fulltarname) {
|
||||||
|
if ($force_clobber or !defined($buildroot_dir)) {
|
||||||
|
unlink($fulltarname) or Error("could not delete '$fulltarname': $!");
|
||||||
|
} else {
|
||||||
|
Error("destination tarball already exists: '$fulltarname'");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
my $pdir = $ovdir."/tmp-".$pname;
|
||||||
|
system("rm -fr '${pdir}' 2>/dev/null");
|
||||||
|
mkdir $pdir or Error("cannot create directory $pdir");
|
||||||
|
foreach my $f (@files) {
|
||||||
|
my ($src, $dst) = @$f;
|
||||||
|
# If $dst ends in / , take filename from $src :
|
||||||
|
if ($dst =~ m|/$|) {
|
||||||
|
my $fname = $src;
|
||||||
|
$fname =~ s|^.*/||;
|
||||||
|
$dst .= $fname;
|
||||||
|
}
|
||||||
|
# Ensure destination directory exists:
|
||||||
|
my $dstdir = $pdir;
|
||||||
|
while ($dst =~ s|^([^/]+)/+||) {
|
||||||
|
$dstdir .= "/" . $1;
|
||||||
|
mkdir($dstdir);
|
||||||
|
}
|
||||||
|
# Read file:
|
||||||
|
my $content = readfile($ovdir."/".$src);
|
||||||
|
|
||||||
|
# Adjust contents of file.
|
||||||
|
# Fix-up typo:
|
||||||
|
$content =~ s/XCHAL_SA_(NCP|CP\d+)_/XCHAL_$1_SA_/g;
|
||||||
|
# Update core name info:
|
||||||
|
my $iscore = ($content =~ s/^(\s*\#\s*define\s+XCHAL_CORE_ID\s+)"[^"]+"/$1"$config_name"/mg);
|
||||||
|
$iscore or $content =~ s{^(\s*\#\s*define\s+XCHAL_INST_FETCH_WIDTH\s+\S+\s*(/\*[^\*]*\*/)?\s*$)}
|
||||||
|
{$1\n\#undef XCHAL_CORE_ID\n\#define XCHAL_CORE_ID\t\t\t"$config_name"\n}smg;
|
||||||
|
# Update core description info:
|
||||||
|
$content =~ s/^(\s*\#\s*define\s+XCHAL_CORE_DESCRIPTION\s+)"[^"]+"/$1"$config_long_name"/mg
|
||||||
|
or $content =~ s{^(\s*\#\s*define\s+XCHAL_CORE_ID\s+\S+\s*(/\*[^\*]*\*/)?\s*$)}
|
||||||
|
{"$1\n" . ($iscore ? "" : "\n\#undef XCHAL_CORE_DESCRIPTION\n")
|
||||||
|
. "\#define XCHAL_CORE_DESCRIPTION\t\t\"${config_long_name}\""}smge;
|
||||||
|
|
||||||
|
# Write (possibly modified) file:
|
||||||
|
writefile($dstdir."/".$dst, $content);
|
||||||
|
}
|
||||||
|
my $tarcmd = "tar cfz '${fulltarname}' -C '${pdir}' .";
|
||||||
|
system($tarcmd) and Error("failed executing: $tarcmd");
|
||||||
|
|
||||||
|
# Install Linux kernel overlay:
|
||||||
|
if ($pname eq "kernel" and defined($kernel_dir)) {
|
||||||
|
print "Installing Linux kernel overlay from $tarname ...\n";
|
||||||
|
my $untarcmd = "tar xfz '${fulltarname}' -C '${kernel_dir}' .";
|
||||||
|
system($untarcmd) and Error("failed executing: $tarcmd");
|
||||||
|
}
|
||||||
|
# Possible TODO: update arch/xtensa/{Kconfig,Makefile} to add this config?
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
######################################################################
|
||||||
|
#
|
||||||
|
# The End
|
||||||
|
#
|
||||||
|
|
||||||
|
cleanup();
|
||||||
|
print "Done.\n";
|
||||||
|
exit 0;
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user