Initial commit

This commit is contained in:
Your Name
2026-04-23 17:07:55 +08:00
commit b7e39e063b
16725 changed files with 1625565 additions and 0 deletions
@@ -0,0 +1,47 @@
Upstream-Status: Inappropriate [OE-Specific]
Make install tries to perform install for all variants, but some of them use the same
name for crt0 in specific, so performing all of them results in an error during
do_install, we simply modify the name of the objects so the installation can proceed
and leave it to the user to select which object files to use.
01/2023: Rebased for libgloss 4.3.0
Signed-off-by: Alejandro Enedino Hernandez Samaniego <alejandro@enedino.org>
Index: git/libgloss/rs6000/Makefile.in
===================================================================
--- git.orig/libgloss/rs6000/Makefile.in
+++ git/libgloss/rs6000/Makefile.in
@@ -362,7 +362,7 @@ install-sim:
install-mvme:
${mkinstalldirs} ${DESTDIR}${tooldir}/lib${MULTISUBDIR}
- set -e; for x in ${MVME_CRT0} ${MVME_BSP} ${MVME_SCRIPTS}; do ${INSTALL_DATA} $$x $(DESTDIR)${tooldir}/lib${MULTISUBDIR}/$$x; done
+ set -e; for x in ${MVME_CRT0} ${MVME_BSP} ${MVME_SCRIPTS}; do ${INSTALL_DATA} $$x $(DESTDIR)${tooldir}/lib${MULTISUBDIR}/mvme-$$x; done
install-solaris:
${mkinstalldirs} ${DESTDIR}${tooldir}/lib${MULTISUBDIR}
@@ -374,17 +374,17 @@ install-linux:
install-yellowknife:
${mkinstalldirs} ${DESTDIR}${tooldir}/lib${MULTISUBDIR}
- set -e; for x in ${YELLOWKNIFE_CRT0} ${YELLOWKNIFE_BSP}; do ${INSTALL_DATA} $$x $(DESTDIR)${tooldir}/lib${MULTISUBDIR}/$$x; done
+ set -e; for x in ${YELLOWKNIFE_CRT0} ${YELLOWKNIFE_BSP}; do ${INSTALL_DATA} $$x $(DESTDIR)${tooldir}/lib${MULTISUBDIR}/yellowknife-$$x; done
set -e; for x in ${YELLOWKNIFE_SCRIPTS}; do ${INSTALL_DATA} $(srcdir)/$$x $(DESTDIR)${tooldir}/lib${MULTISUBDIR}/$$x; done
install-ads:
${mkinstalldirs} ${DESTDIR}${tooldir}/lib${MULTISUBDIR}
- set -e; for x in ${ADS_CRT0} ${ADS_BSP}; do ${INSTALL_DATA} $$x $(DESTDIR)${tooldir}/lib${MULTISUBDIR}/$$x; done
+ set -e; for x in ${ADS_CRT0} ${ADS_BSP}; do ${INSTALL_DATA} $$x $(DESTDIR)${tooldir}/lib${MULTISUBDIR}/ads-$$x; done
set -e; for x in ${ADS_SCRIPTS}; do ${INSTALL_DATA} $(srcdir)/$$x $(DESTDIR)${tooldir}/lib${MULTISUBDIR}/$$x; done
install-mbx:
${mkinstalldirs} ${DESTDIR}${tooldir}/lib${MULTISUBDIR}
- set -e; for x in ${MBX_CRT0} ${MBX_BSP}; do ${INSTALL_DATA} $$x $(DESTDIR)${tooldir}/lib${MULTISUBDIR}/$$x; done
+ set -e; for x in ${MBX_CRT0} ${MBX_BSP}; do ${INSTALL_DATA} $$x $(DESTDIR)${tooldir}/lib${MULTISUBDIR}/mbx-$$x; done
set -e; for x in ${MBX_SCRIPTS} ${MBX_SPECS}; do ${INSTALL_DATA} $(srcdir)/$$x $(DESTDIR)${tooldir}/lib${MULTISUBDIR}/$$x; done
install-xil:
@@ -0,0 +1,30 @@
Upstream-Status: Inappropriate [OE-Specific]
Since commit e0c0ad82 libgloss started passing the -nostdinc to CC.
They dont want to build against C library headers that are already in
the system to avoid pollution, however, we purposely build libgloss
against the newly built newlib C library, thats why we keep newlib
and libgloss in separate recipes and create a dependency between them.
This causes an issue where bitbake stops finding newlib headers while
libgloss is being built.
Do not pass -nostdinc to CC to maintain current behavior of
TCLIBC=newlib
Signed-off-by: Alejandro Enedino Hernandez Samaniego <alejandro@enedino.org>
Index: newlib-3.0.0/libgloss/configure
===================================================================
--- newlib-3.0.0.orig/libgloss/configure
+++ newlib-3.0.0/libgloss/configure
@@ -5106,7 +5106,7 @@ fi
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_compiler_isystem" >&5
$as_echo "$libc_cv_compiler_isystem" >&6; }
-CC="$CC -nostdinc $libc_cv_compiler_isystem"
+CC="$CC $libc_cv_compiler_isystem"
host_makefile_frag_path=$host_makefile_frag
@@ -0,0 +1,36 @@
require newlib.inc
DEPENDS += "newlib"
FILESEXTRAPATHS:prepend := "${THISDIR}/libgloss:"
SRC_URI:append = " file://libgloss-build-without-nostdinc.patch"
SRC_URI:append:powerpc = " file://fix-rs6000-crt0.patch"
SRC_URI:append:powerpc = " file://fix-rs6000-cflags.patch"
do_configure() {
${S}/libgloss/configure ${EXTRA_OECONF}
}
do_install:prepend() {
# install doesn't create this itself, avoid install error
install -d ${D}${prefix}/${TARGET_SYS}/lib
}
do_install:append() {
# Move libs to default directories so they can be picked up later
install -d ${D}${libdir}
mv -v ${D}${prefix}/${TARGET_SYS}/lib/* ${D}${libdir}
# Remove original directory
rmdir -p --ignore-fail-on-non-empty ${D}${prefix}/${TARGET_SYS}/lib
}
# Split packages correctly
FILES:${PN} += "${libdir}/*.ld ${libdir}/*.specs"
FILES:${PN}-dev += "${libdir}/cpu-init/*"
# RiscV installation moved the syscall header to this location
FILES:${PN}-dev += "${prefix}/${TARGET_SYS}/include/machine/*.h"
INHIBIT_PACKAGE_STRIP = "1"
INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
+61
View File
@@ -0,0 +1,61 @@
SUMMARY = "Newlib is a C library intended for use on embedded systems"
HOMEPAGE = "https://sourceware.org/newlib/"
DESCRIPTION = "C library intended for use on embedded systems. It is a conglomeration of several library parts, all under free software licenses that make them easily usable on embedded products."
SECTION = "libs"
LICENSE = "GPL-2.0-only & LGPL-3.0-only & GPL-3.0-only & LGPL-2.0-only & BSD-2-Clause & BSD-3-Clause & TCL"
LIC_FILES_CHKSUM = " \
file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \
file://COPYING3.LIB;md5=6a6a8e020838b23406c81b19c1d46df6 \
file://COPYING3;md5=d32239bcb673463ab874e80d47fae504 \
file://COPYING.LIBGLOSS;md5=c0469b6ebb847a75781066be515f032d \
file://COPYING.LIB;md5=2d5025d4aa3495befef8f17206a5b0a1 \
file://COPYING.NEWLIB;md5=5a9d477b5f4eab20dccf655a77107a6e \
file://newlib/libc/posix/COPYRIGHT;md5=103468ff1982be840fdf4ee9f8b51bbf \
"
BASEVER = "4.3.0"
PV = "${BASEVER}+git${SRCPV}"
SRC_URI = "git://sourceware.org/git/newlib-cygwin.git;protocol=https;branch=main"
SRCREV="9e09d6ed83cce4777a5950412647ccc603040409"
INHIBIT_DEFAULT_DEPS = "1"
DEPENDS = "virtual/${TARGET_PREFIX}gcc"
S = "${WORKDIR}/git"
B = "${WORKDIR}/build"
## disable stdlib
TARGET_CC_ARCH:append = " -nostdlib"
EXTRA_OECONF = " \
--build=${BUILD_SYS} \
--target=${TARGET_SYS} \
--host=${HOST_SYS} \
--prefix=${prefix} \
--exec-prefix=${exec_prefix} \
--bindir=${bindir} \
--libdir=${libdir} \
--includedir=${includedir} \
--enable-languages=c \
--with-newlib \
--with-gnu-as \
--with-gnu-ld \
--disable-multilib \
--disable-newlib-supplied-syscalls \
"
do_configure[cleandirs] = "${B}"
# We need a dummy limits.h to pass preprocessor checks
do_configure:append(){
install -d ${STAGING_INCDIR}
touch ${STAGING_INCDIR}/limits.h
}
do_install() {
oe_runmake install DESTDIR='${D}'
}
COMPATIBLE_HOST:libc-musl:class-target = "null"
COMPATIBLE_HOST:libc-glibc:class-target = "null"
@@ -0,0 +1,20 @@
require newlib.inc
PROVIDES += "virtual/libc virtual/libiconv virtual/libintl"
do_configure() {
export CC_FOR_TARGET="${CC}"
${S}/configure ${EXTRA_OECONF}
}
do_install:append() {
# Move include files and libs to default directories so they can be picked up later
mv -v ${D}${prefix}/${TARGET_SYS}/lib ${D}${libdir}
mv -v ${D}${prefix}/${TARGET_SYS}/include ${D}${includedir}
# Remove original directory
rmdir ${D}${prefix}/${TARGET_SYS}
}
# No rpm package is actually created but -dev depends on it, avoid dnf error
DEV_PKG_DEPENDENCY:libc-newlib = ""