From c799e04a8fe85bf90d7f9dfe59298a696f4b0893 Mon Sep 17 00:00:00 2001 From: Chris Johns Date: Sat, 6 Jul 2019 19:20:09 +1000 Subject: 5/packages: Add curl and update all packages with RTEMS 5 and LibBSD - Update rtems-bsp support to correctly handle hosts for BSP. - Clean up the options for a BSP. - Check all RTEMS 5 packages and add 5/rtems-packages for all that build. - Update download locations and checksum of all packages. - The work requires the kernel and Libbsd hacve the same prefix. --- rtems/config/rtems-bsp.cfg | 83 ++++++++++++++++++++++++++++++++++++---------- 1 file changed, 65 insertions(+), 18 deletions(-) (limited to 'rtems/config/rtems-bsp.cfg') diff --git a/rtems/config/rtems-bsp.cfg b/rtems/config/rtems-bsp.cfg index 28d250f..8e1c12a 100644 --- a/rtems/config/rtems-bsp.cfg +++ b/rtems/config/rtems-bsp.cfg @@ -3,13 +3,21 @@ # # -# The RTEMS BSP support requires the host turple, the RTEMS BSP and the path to +# The RTEMS BSP support requires the host tuple, the RTEMS BSP and the path to # the tools. The prefix is set to an installed RTEMS. The built package is # installed into the prefix. # # Keeping the package's installed path in the RTEMS install path and separate -# to the tools lets the tools version vary independently. If --rtems-tools -# (--with-tools) is not provided use the prefix. +# to the tools lets the tools version vary independently. +# +# Provide the path to the RTEMS tools is not in the prefix with the +# --with-tools option. If --with-tools is not provided use the prefix. +# +# Provide the path to the installed RTEMS kernel is not in the prefix with the +# --with-rtems option. If --with-rtems is not provided use the prefix. +# +# Note, only a single path (--with-rtems) for the RTEMS kernel and any other +# add on or 3rd party libraries is supported. # # @@ -23,14 +31,24 @@ %define rtems_bsp_error 1 %endif -%if %{_target} == %{nil} && %{rtems_bsp_error} - %error No RTEMS target specified: --rtems-bsp=arch/bsp (or --target=target) +# +# The target is used by compilers or Cxc builds. +# +%if %{_target} != %{nil} + %error RTEMS BSP builds use --host and not --target %endif -%if %{_host} != %{_build} - %error Canadian cross building for BSP is not supported. +# +# We need a host from the user to specifiy the RTEMS architecture and major +# version. +# +%if %{_host} == %{nil} && %{rtems_bsp_error} + %error No RTEMS host or BSP specified: --host=-rtems %endif +# +# We need a BSP from the user. +# %ifn %{defined with_rtems_bsp} %if %{rtems_bsp_error} %error No RTEMS BSP specified: --rtems-bsp=arch/bsp (or --with-rtems-bsp=bsp) @@ -38,14 +56,16 @@ %define with_rtems_bsp sparc/erc32 %endif +# +# If no tools or RTEMS provided use the prefix. +# %ifn %{defined with_tools} %define with_tools %{_prefix} %endif -# -# Set the host to the target. -# -%define _host %{_target} +%ifn %{defined with_rtems} + %define with_rtems %{_prefix} +%endif # # Set the path to the tools. @@ -57,27 +77,54 @@ # enable support when crosscompiling, and filter specific optimisation and # warning from the flags that RTEMS exports. # -%{pkgconfig prefix %{_prefix}/lib/pkgconfig} +%{pkgconfig prefix %{with_rtems}/lib/pkgconfig} %{pkgconfig crosscompile yes} %{pkgconfig filter-flags yes} # # The RTEMS BSP Flags # -%define rtems_bsp %{with_rtems_bsp} -%define rtems_bsp_ccflags %{pkgconfig ccflags %{_host}-%{rtems_bsp}} -%define rtems_bsp_cflags %{pkgconfig cflags %{_host}-%{rtems_bsp}} -%define rtems_bsp_ldflags %{pkgconfig ldflags %{_host}-%{rtems_bsp}} -%define rtems_bsp_libs %{pkgconfig libs %{_host}-%{rtems_bsp}} +%define rtems_bsp %{with_rtems_bsp} +%define rtems_bsp_ccflags %{pkgconfig ccflags %{_host}-%{rtems_bsp}} +%define rtems_bsp_cflags %{pkgconfig cflags %{_host}-%{rtems_bsp}} +%define rtems_bsp_ldflags %{pkgconfig ldflags %{_host}-%{rtems_bsp}} +%define rtems_bsp_libs %{pkgconfig libs %{_host}-%{rtems_bsp}} %if %{rtems_bsp_cflags} == %{nil} && %{rtems_bsp_error} - %error No RTEMS target CFLAGS found; Please check the --rtems-bsp option. + %error No RTEMS BSP CFLAGS found; Please check the --rtems-bsp option. %endif %if %{rtems_bsp_ccflags} == %{nil} %define rtems_bsp_ccflags %{rtems_bsp_cflags} %endif +# +# RTEMS BSP paths +# +%define rtems_bsp_cc %{_host}-gcc +%define rtems_bsp_incpath %{with_rtems}/%{_host}/%{rtems_bsp}/include +%define rtems_bsp_libpath %{with_rtems}/%{_host}/%{rtems_bsp}/lib + +# +# Check for installed libraries. +# +# - Check is LibBSD is install +# - Add librtemsdefaultconfig so configure scripts work. +# +# Note: default BSP flags include the standard RTEMS libraries. +# +%define rtems-dep-check %(%{_sbdir}/sb/rtems-build-dep -c %{with_tools}/bin/%{rtems_bsp_cc} + +%define rtems-libbsd %{rtems-dep-check} -L %{rtems_bsp_libpath} -l libbsd.a) +%if %{rtems-libbsd} == found + %define rtems_bsp_libs %{rtems_bsp_libs} -lbsd -lm -lz +%endif + +%define rtems-defaultconfig %{rtems-dep-check} -L %{rtems_bsp_libpath} -l librtemsdefaultconfig.a) +%if %{rtems-defaultconfig} == found + %define rtems_bsp_libs %{rtems_bsp_libs} -lrtemsdefaultconfig +%endif + # # Update the configure paths to be BSP specific. # -- cgit v1.2.3