This commit is contained in:
TriForceX
2019-09-25 20:51:37 -03:00
commit 6203ff3e7c
11215 changed files with 428258 additions and 0 deletions

View File

@@ -0,0 +1,96 @@
From d3920dce139734e00bbe4447a16ef24dfe4d704a Mon Sep 17 00:00:00 2001
From: Eric Le Bihan <eric.le.bihan.dev@free.fr>
Date: Tue, 10 Oct 2017 19:51:02 +0200
Subject: [PATCH] No runtime tests for endianness
Replace build and execution of runtime test programs for determining
the endianness of the target with compile time test programs.
This improves support for cross-compilation.
Signed-off-by: Eric Le Bihan <eric.le.bihan.dev@free.fr>
---
configure | 13 ++++++++++---
src/sysdeps/trybigendian.c | 16 ++++++++++++++++
src/sysdeps/trylittleendian.c | 19 +++++++++++++++++++
3 files changed, 45 insertions(+), 3 deletions(-)
create mode 100644 src/sysdeps/trybigendian.c
create mode 100644 src/sysdeps/trylittleendian.c
diff --git a/configure b/configure
index f34dcd0..f2a77f3 100755
--- a/configure
+++ b/configure
@@ -478,12 +478,19 @@ EOF
exec 3>&-
echo "Checking system endianness..."
- $CC_AUTO $CPPFLAGS_AUTO $CPPFLAGS $CPPFLAGS_POST $CFLAGS_AUTO $CFLAGS $CFLAGS_POST $LDFLAGS_AUTO $LDFLAGS $LDFLAGS_POST -o tryendianness src/sysdeps/tryendianness.c
- endianness=$(./tryendianness) || fail "$0: unable to determine endianness"
+ if $CC_AUTO $CPPFLAGS_AUTO $CPPFLAGS $CPPFLAGS_POST $CFLAGS_AUTO $CFLAGS $CFLAGS_POST $LDFLAGS_AUTO $LDFLAGS $LDFLAGS_POST -o trybigendian src/sysdeps/trybigendian.c 2>/dev/null; then
+ endianness=big
+ else
+ if $CC_AUTO $CPPFLAGS_AUTO $CPPFLAGS $CPPFLAGS_POST $CFLAGS_AUTO $CFLAGS $CFLAGS_POST $LDFLAGS_AUTO $LDFLAGS $LDFLAGS_POST -o trylittleendian src/sysdeps/trylittleendian.c 2>/dev/null; then
+ endianness=little
+ else
+ fail "$0: unable to determine endianness"
+ fi
+ fi
echo "endianness: $endianness" >> $sysdeps/sysdeps
echo "#define ${package_macro_name}_ENDIANNESS \"$endianness\"" >> $sysdeps/sysdeps.h
echo " ... $endianness"
- rm -f tryendianness
+ rm -f trybigendian trylittleendian
trytypes
choose clr accept4 ACCEPT4 'accept4()'
diff --git a/src/sysdeps/trybigendian.c b/src/sysdeps/trybigendian.c
new file mode 100644
index 0000000..d857572
--- /dev/null
+++ b/src/sysdeps/trybigendian.c
@@ -0,0 +1,16 @@
+#if defined(__BYTE_ORDER) && (__BYTE_ORDER == __BIG_ENDIAN) || \
+ defined(__BYTE_ORDER__) && (__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__) || \
+ defined(__BIG_ENDIAN) || \
+ defined(__ARMEB__) || \
+ defined(__THUMBEB__) || \
+ defined(__AARCH64EB__) || \
+ defined(_MIPSEB) || defined(__MIPSEB) || defined(__MIPSEB__)
+#define YEAH
+#else
+#error "not big endian"
+#endif
+
+int main(void)
+{
+ return 0;
+}
diff --git a/src/sysdeps/trylittleendian.c b/src/sysdeps/trylittleendian.c
new file mode 100644
index 0000000..68b93c1
--- /dev/null
+++ b/src/sysdeps/trylittleendian.c
@@ -0,0 +1,19 @@
+#if defined(__BYTE_ORDER) && (__BYTE_ORDER == __LITTLE_ENDIAN) || \
+ defined(__BYTE_ORDER__) && (__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__) || \
+ defined(__LITTLE_ENDIAN) || \
+ defined(__ARMEL__) || \
+ defined(__THUMBEL__) || \
+ defined(__AARCH64EL__) || \
+ defined(__i386) || defined(__i386__) || \
+ defined(__amd64) || defined(__amd64__) || \
+ defined(__x86_64) || defined(__x86_64__) || \
+ defined(_MIPSEL) || defined(__MIPSEL) || defined(__MIPSEL__)
+#define YEAH
+#else
+#error "not little endian"
+#endif
+
+int main(void)
+{
+ return 0;
+}
--
2.13.6

View File

@@ -0,0 +1,115 @@
From f411b502222c8fe442d7b3beb00b530c9e16b7a2 Mon Sep 17 00:00:00 2001
From: "Van Bemten, Lionel (Nokia - BE/Antwerp)" <lionel.van_bemten@nokia.com>
Date: Sun, 29 Apr 2018 19:53:40 +0200
Subject: [PATCH] No runtime tests for type sizes
Replace build and execution of runtime test programs for determining
some type sizes of the target with compile time test programs.
This improves support for cross-compilation.
Signed-off-by: "Van Bemten, Lionel (Nokia - BE/Antwerp)" <lionel.van_bemten@nokia.com>
Signed-off-by: Eric Le Bihan <eric.le.bihan.dev@free.fr>
---
configure | 75 ++++++++++++++++++++++++++++++++++++++++++++++++++-------------
1 file changed, 60 insertions(+), 15 deletions(-)
diff --git a/configure b/configure
index 434eec8..c09e9c8 100755
--- a/configure
+++ b/configure
@@ -155,23 +155,69 @@ choose () {
fi
}
+findtypesize () {
+ typ=$1
+ abbr=$2
+ r=false
+ type_size=0
+ while true; do
+ cat>trysizeof${abbr}.c<<EOF
+#include <sys/types.h>
+
+int main(void)
+{
+ static int v = 1 / !!((sizeof($typ) == $type_size));
+ return 0;
+}
+EOF
+ if $CC_AUTO $CPPFLAGS_AUTO $CPPFLAGS $CPPFLAGS_POST $CFLAGS_AUTO $CFLAGS $CFLAGS_POST $LDFLAGS_AUTO $LDFLAGS $LDFLAGS_POST -o trysizeof${abbr} trysizeof${abbr}.c 2>/dev/null; then
+ r=true
+ break
+ fi
+ type_size=$(expr $type_size + 1)
+ test $type_size -le 16 || break
+ done
+ rm -f trysizeof${abbr} trysizeof${abbr}.c
+ test $r = true || fail "$0: unable to determine size of $typ"
+ caps=$(echo "sizeof${abbr}" | tr a-z A-Z)
+ echo "#define ${package_macro_name}_${caps} $type_size" >> $sysdeps/sysdeps.h
+ echo "sizeof${abbr}: $type_size" >> $sysdeps/sysdeps
+}
+
+findtypesign () {
+ typ=$1
+ abbr=$2
+ caps=$(echo "signed${abbr}" | tr a-z A-Z)
+ cat>trysignof${abbr}.c<<EOF
+#include <sys/types.h>
+
+int main(void)
+{
+ static int v = 1 / !!(((($typ) -1) < 0));
+ return 0;
+}
+EOF
+ if $CC_AUTO $CPPFLAGS_AUTO $CPPFLAGS $CPPFLAGS_POST $CFLAGS_AUTO $CFLAGS $CFLAGS_POST $LDFLAGS_AUTO $LDFLAGS $LDFLAGS_POST -o trysignof${abbr} trysignof${abbr}.c 2>/dev/null; then
+ echo "#define ${package_macro_name}_HAS${caps}" >> $sysdeps/sysdeps.h
+ echo "#undef ${package_macro_name}_HASUN${caps}" >> $sysdeps/sysdeps.h
+ echo "signed${abbr}: yes" >> $sysdeps/sysdeps
+ else
+ echo "#undef ${package_macro_name}_HAS${caps}" >> $sysdeps/sysdeps.h
+ echo "#define ${package_macro_name}_HASUN${caps}" >> $sysdeps/sysdeps.h
+ echo "signed${abbr}: no" >> $sysdeps/sysdeps
+ fi
+ rm -f trysignof${abbr} trysignof${abbr}.c
+}
+
trytypes () {
echo "Checking size and signedness of standard types..."
- $CC_AUTO $CPPFLAGS_AUTO $CPPFLAGS $CPPFLAGS_POST $CFLAGS_AUTO $CFLAGS $CFLAGS_POST $LDFLAGS_AUTO $LDFLAGS $LDFLAGS_POST -o output-types src/sysdeps/output-types.c
- ./output-types >> $sysdeps/sysdeps
- ./output-types | grep -F sizeof | while read key value ; do
- caps=$(echo $key | sed s/:\$// | tr a-z A-Z)
- echo "#define ${package_macro_name}_${caps} $value" >> $sysdeps/sysdeps.h
+ for t in "unsigned short" "unsigned int" "unsigned long"; do
+ abbr=$(echo "$t" | sed -e 's/nsigned //')
+ findtypesize "$t" "${abbr}"
done
- ./output-types | grep -F signed | while read key value ; do
- caps=$(echo $key | sed s/:\$// | tr a-z A-Z)
- if test $value = yes ; then
- echo "#define ${package_macro_name}_HAS${caps}"
- echo "#undef ${package_macro_name}_HASUN${caps}"
- else
- echo "#undef ${package_macro_name}_HAS${caps}"
- echo "#define ${package_macro_name}_HASUN${caps}"
- fi >> $sysdeps/sysdeps.h
+ for t in size uid gid pid time dev ino; do
+ findtypesize "${t}_t" "$t"
+ findtypesign "${t}_t" "$t"
done
rm -f output-types
echo " ... done"
@@ -548,7 +594,6 @@ EOF
choose cl itimer ITIMER 'setitimer()'
choose cl namespaces NAMESPACES 'namespaces'
choose cl nsgetparent NSGETPARENT 'NS_GET_PARENT'
- choose cl explicit_bzero EXPLICIT_BZERO 'explicit_bzero()'
echo '#endif' >> $sysdeps/sysdeps.h
fi
--
2.14.3

View File

@@ -0,0 +1,44 @@
From 02ef4599179ead87cc6d154a32acaa6627cbfca2 Mon Sep 17 00:00:00 2001
From: Eric Le Bihan <eric.le.bihan.dev@free.fr>
Date: Tue, 10 Oct 2017 19:51:34 +0200
Subject: [PATCH] Make linker use dummy file when testing libs
For some architectures, like Xtensa or HPPA, ld from binutils requires
the output file to be a regular file, as mentioned in a bug report on
the mailing list [1].
So, use a dummy file as output file for ld in trylibs(), instead of
/dev/null.
[1] https://sourceware.org/bugzilla/show_bug.cgi?id=19526
Signed-off-by: Eric Le Bihan <eric.le.bihan.dev@free.fr>
---
configure | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/configure b/configure
index 8348b1f..62e5981 100755
--- a/configure
+++ b/configure
@@ -227,7 +227,7 @@ trylibs () {
echo "Checking whether system has $2..." >&3
shift 2
if $CC_AUTO $CPPFLAGS_AUTO $CPPFLAGS $CPPFLAGS_POST $CFLAGS_AUTO $CFLAGS $CFLAGS_POST -c -o try$name.o src/sysdeps/try$name.c 2>/dev/null ; then
- until $CC_AUTO $CFLAGS_AUTO $CFLAGS $CFLAGS_POST $LDFLAGS_AUTO $LDFLAGS $LDFLAGS_POST -o /dev/null try$name.o $args 2>/dev/null ; do
+ until $CC_AUTO $CPPFLAGS_AUTO $CPPFLAGS $CPPFLAGS_POST $CFLAGS_AUTO $CFLAGS $CFLAGS_POST -o try$name try$name.o $args 2>/dev/null ; do
if test -z "$*" ; then
rm -f try$name.o
echo
@@ -243,7 +243,7 @@ trylibs () {
else
echo " ... yes, with$args" >&3
fi
- rm -f try$name.o
+ rm -f try$name.o try$name
return 0
else
echo
--
2.13.6

View File

@@ -0,0 +1,9 @@
config BR2_PACKAGE_SKALIBS
bool "skalibs"
depends on BR2_USE_MMU # fork()
help
skalibs is a package centralizing the FOSS C development
files used for building all software at skarnet.org:
it contains essentially general-purpose libraries.
http://skarnet.org/software/skalibs/

View File

@@ -0,0 +1,3 @@
# Locally generated
sha256 30ac73f1e8da6387fcfa19cfe1e326a143b4d811aaf532988b280daefa56dcc7 skalibs-2.6.4.0.tar.gz
sha256 3eadcf980c40da0f257b8292d805ff41e5e5a908c1942315d9a627732e1aa012 COPYING

View File

@@ -0,0 +1,54 @@
################################################################################
#
# skalibs
#
################################################################################
SKALIBS_VERSION = 2.6.4.0
SKALIBS_SITE = http://skarnet.org/software/skalibs
SKALIBS_LICENSE = ISC
SKALIBS_LICENSE_FILES = COPYING
SKALIBS_INSTALL_STAGING = YES
SKALIBS_CONF_OPTS = \
--prefix=/usr \
--with-default-path=/sbin:/usr/sbin:/bin:/usr/bin \
$(SHARED_STATIC_LIBS_OPTS)
define SKALIBS_CONFIGURE_CMDS
(cd $(@D); $(TARGET_CONFIGURE_OPTS) ./configure $(SKALIBS_CONF_OPTS))
endef
define SKALIBS_BUILD_CMDS
$(TARGET_MAKE_ENV) $(MAKE) -C $(@D)
endef
define SKALIBS_INSTALL_TARGET_CMDS
$(TARGET_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR=$(TARGET_DIR) install
rm -rf $(TARGET_DIR)/usr/lib/skalibs
endef
define SKALIBS_INSTALL_STAGING_CMDS
$(TARGET_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR=$(STAGING_DIR) install
endef
HOST_SKALIBS_CONF_OPTS = \
--prefix=$(HOST_DIR) \
--disable-static \
--enable-shared \
--disable-allstatic
define HOST_SKALIBS_CONFIGURE_CMDS
(cd $(@D); $(HOST_CONFIGURE_OPTS) ./configure $(HOST_SKALIBS_CONF_OPTS))
endef
define HOST_SKALIBS_BUILD_CMDS
$(HOST_MAKE_ENV) $(MAKE) -C $(@D)
endef
define HOST_SKALIBS_INSTALL_CMDS
$(HOST_MAKE_ENV) $(MAKE) -C $(@D) install
endef
$(eval $(generic-package))
$(eval $(host-generic-package))