OPENDINGUX: Add OpenDingux platform

New GCC, same kernel and uClibc.
Same packages versions linked dynamically.
This commit is contained in:
Le Philousophe
2021-03-04 19:22:45 +00:00
parent 78194c6121
commit 69c855b7b2
30 changed files with 9227 additions and 0 deletions
+22
View File
@@ -604,6 +604,28 @@ def nds():
register_platform(platform)
nds()
def opendingux():
platform = Platform("opendingux")
platform.compatibleBuilds = (builds.ScummVMBuild, )
platform.env["CXX"] = "ccache ${CXX}"
platform.configureargs.append("--host=dingux")
platform.buildconfigureargs = {
builds.ScummVMBuild: [ "--enable-plugins", "--default-dynamic", "--enable-vkeybd",
# Our Tremor decoder is too old for use with Theora, we could have a more recent version
# but Theora is quite CPU intensive anyway
"--disable-theoradec" ],
}
platform.built_files = {
builds.ScummVMBuild: [ "scummvm", "plugins" ],
}
platform.archiveext = "tar.xz"
platform.description = "OpenDingux"
platform.icon = 'dingux'
register_platform(platform)
opendingux()
def openpandora():
platform = Platform("openpandora")
platform.workerimage = "openpandora"
+16
View File
@@ -299,6 +299,22 @@ VERSIONS = {
# Use same libsdl as Open2x toolchain
('./toolchains/open2x/packages/libsdl/build.sh', 'SDL'): 'ignore',
# OpenDingux packages (except toolchain) are set by (old) firmware
('./toolchains/opendingux/packages/alsa-lib/build.sh', 'ALSA_LIB'): 'ignore',
('./toolchains/opendingux/packages/flac/build.sh', 'FLAC'): 'ignore',
('./toolchains/opendingux/packages/freetype/build.sh', 'FREETYPE'): 'ignore',
('./toolchains/opendingux/packages/libiconv/build.sh', 'LIBICONV'): 'ignore',
('./toolchains/opendingux/packages/libjpeg/build.sh', 'JPEG'): 'ignore',
('./toolchains/opendingux/packages/libmad/build.sh', 'LIBMAD'): 'ignore',
('./toolchains/opendingux/packages/libogg/build.sh', 'LIBOGG'): 'ignore',
('./toolchains/opendingux/packages/libpng/build.sh', 'LIBPNG'): 'ignore',
('./toolchains/opendingux/packages/libsdl/build.sh', 'SDL'): 'ignore',
('./toolchains/opendingux/packages/libtheora/build.sh', 'LIBTHEORA'): 'ignore',
('./toolchains/opendingux/packages/libvorbisidec/build.sh', 'LIBTREMOR'): 'ignore',
('./toolchains/opendingux/packages/sdl-net1.2/build.sh', 'SDL_NET'): 'ignore',
('./toolchains/opendingux/packages/zlib/build.sh', 'ZLIB'): 'ignore',
('./toolchains/opendingux/packages/toolchain/build.sh', 'CT_NG'): crosstool_ng_check,
# OpenPandora packages (except toolchain) are set by (old) firmware
('./toolchains/openpandora/packages/alsa-lib/build.sh', 'ALSA_LIB'): 'ignore',
('./toolchains/openpandora/packages/curl/build.sh', 'CURL'): 'ignore',
+97
View File
@@ -0,0 +1,97 @@
m4_include(`paths.m4')m4_dnl
m4_include(`packages.m4')m4_dnl
m4_dnl Include Debian base preparation steps
m4_dnl This ensures all common steps are shared by all toolchains
m4_include(`debian-toolchain-base.m4')m4_dnl
COPY functions-platform.sh lib-helpers/
# Create fake links because those got deleted when installing gawk
# Using docker in an unprivileged container prevents deleting files across layers
RUN apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
bison \
flex \
gawk \
gperf \
g++ \
help2man \
libncurses-dev \
libtool-bin \
python-libxml2 \
texinfo && \
ln -s /nonexistent /etc/alternatives/awk.1.gz && \
ln -s /nonexistent /etc/alternatives/nawk.1.gz && \
rm -rf /var/lib/apt/lists/*
ENV DINGUX_TOOLCHAIN=/opt/dingux-toolchain HOST=mipsel-unknown-linux-uclibc
local_package(toolchain)
ENV PREFIX=${DINGUX_TOOLCHAIN}/${HOST}/sysroot/usr
ENV \
def_binaries(`${DINGUX_TOOLCHAIN}/bin/${HOST}-', `ar, as, c++filt, ld, nm, objcopy, objdump, ranlib, readelf, strings, strip') \
def_binaries(`${DINGUX_TOOLCHAIN}/bin/${HOST}-', `gcc, cpp, c++') \
CC=${DINGUX_TOOLCHAIN}/bin/$HOST-gcc \
def_aclocal(`${PREFIX}') \
def_pkg_config(`${PREFIX}') \
PATH=$PATH:${PREFIX}/bin
# Use same version as official toolchain
local_package(zlib)
# Use same version as official toolchain
local_package(libpng)
# Use same version as official toolchain
local_package(libjpeg)
# No libfaad2 in the original toolchain build ours statically
helpers_package(faad2)
# Use same version as official toolchain
local_package(libmad)
# Use same version as official toolchain
local_package(libogg)
# Use same version as official toolchain
local_package(libtheora)
# Use same version as official toolchain
local_package(libvorbisidec)
# Use same version as official toolchain
local_package(flac)
# No mpeg2dec in the original toolchain build ours statically
helpers_package(mpeg2dec)
# No a52dec in the original toolchain build ours statically
helpers_package(a52dec)
# Use same version as official toolchain
local_package(freetype)
# No fribidi in the original toolchain build ours statically
helpers_package(fribidi)
# Dependency of libsdl
# Use same version as official toolchain
local_package(alsa-lib)
# Dependency of libsdl
# Use same version as official toolchain
local_package(libiconv)
# Use same version as official toolchain
local_package(libsdl)
# Use same version as official toolchain
local_package(sdl-net1.2)
# TODO: openssl and curl
# fluidsynth-lite is unlikely to be fast enough.
@@ -0,0 +1,3 @@
do_configure_shared () {
./configure --prefix=$PREFIX --host=$HOST "$@"
}
+34
View File
@@ -0,0 +1,34 @@
#! /bin/sh
# Stick with toolchain version
ALSA_LIB_VERSION=1.0.24.1
ALSA_LIB_SHA256=a32f7c21015b6c71f9a80ff70a2b6a50e4ff4d5c77c744ff0793dea7ba7a2517
PACKAGE_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)
HELPERS_DIR=$PACKAGE_DIR/../..
. $HELPERS_DIR/functions.sh
do_make_bdir
do_http_fetch alsa-lib "http://www.alsa-project.org/files/pub/lib/alsa-lib-${ALSA_LIB_VERSION}.tar.bz2" \
'tar xjf' "sha256:${ALSA_LIB_SHA256}"
# Enable shared objects to make binary lighter
do_configure_shared \
--enable-static \
--without-versioned \
--disable-rawmidi \
--disable-alisp \
--disable-seq \
--disable-old-symbols \
--disable-python \
--with-softfloat
# Only build src and include
do_make -C src
do_make -C include
do_make -C src install-exec
do_make -C include install
do_clean_bdir
@@ -0,0 +1,61 @@
From f21f48a70f8437a671b58fcab75e54222a9eea16 Mon Sep 17 00:00:00 2001
From: Kai Kang <jiashuo.kang at gmail.com>
Date: Thu, 15 Aug 2013 17:17:19 +0800
Subject: [PATCH] Update iatomic.h functions definitions for mips
Functions atomic_add(s) and atomic_sub(s) are defined with 'extern
__inline__' that may cause compile fails when cross compile for mips.
The error message looks like:
| pcm/.libs/libpcm.a(pcm_meter.o): In function `snd_pcm_meter_update_scope':
| .../alsa-lib-1.0.27.2/src/pcm/pcm_meter.c:139: undefined reference to `atomic_sub'
Replace the 'extern __inline__' with 'static __inline__' to fix this
issue.
Signed-off-by: Kai Kang <jiashuo.kang at gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
---
include/iatomic.h | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/include/iatomic.h b/include/iatomic.h
index 5711fe8d..23932975 100644
--- a/include/iatomic.h
+++ b/include/iatomic.h
@@ -720,7 +720,7 @@ typedef struct { volatile int counter; } atomic_t;
* Atomically adds @i to @v. Note that the guaranteed useful range
* of an atomic_t is only 24 bits.
*/
-extern __inline__ void atomic_add(int i, atomic_t * v)
+static __inline__ void atomic_add(int i, atomic_t * v)
{
unsigned long temp;
@@ -744,7 +744,7 @@ extern __inline__ void atomic_add(int i, atomic_t * v)
* Atomically subtracts @i from @v. Note that the guaranteed
* useful range of an atomic_t is only 24 bits.
*/
-extern __inline__ void atomic_sub(int i, atomic_t * v)
+static __inline__ void atomic_sub(int i, atomic_t * v)
{
unsigned long temp;
@@ -763,7 +763,7 @@ extern __inline__ void atomic_sub(int i, atomic_t * v)
/*
* Same as above, but return the result value
*/
-extern __inline__ int atomic_add_return(int i, atomic_t * v)
+static __inline__ int atomic_add_return(int i, atomic_t * v)
{
unsigned long temp, result;
@@ -784,7 +784,7 @@ extern __inline__ int atomic_add_return(int i, atomic_t * v)
return result;
}
-extern __inline__ int atomic_sub_return(int i, atomic_t * v)
+static __inline__ int atomic_sub_return(int i, atomic_t * v)
{
unsigned long temp, result;
+23
View File
@@ -0,0 +1,23 @@
#! /bin/sh
# Stick with toolchain version
FLAC_VERSION=1.2.1
FLAC_SHA256=9635a44bceb478bbf2ee8a785cf6986fba525afb5fad1fd4bba73cf71f2d3edf
PACKAGE_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)
HELPERS_DIR=$PACKAGE_DIR/../..
. $HELPERS_DIR/functions.sh
do_make_bdir
do_http_fetch flac "http://downloads.xiph.org/releases/flac/flac-${FLAC_VERSION}.tar.gz" \
'tar xzf' "sha256:${FLAC_SHA256}"
autoreconf -fi -I m4
do_configure_shared --disable-doxygen-docs --disable-xmms-plugin --disable-cpplibs --enable-ogg "$@"
do_make -C src/libFLAC
do_make -C src/libFLAC install
# No need to build includes
do_make -C include install
do_clean_bdir
+22
View File
@@ -0,0 +1,22 @@
#! /bin/sh
# Stick with toolchain version
FREETYPE_VERSION=2.3.12
PACKAGE_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)
HELPERS_DIR=$PACKAGE_DIR/../..
. $HELPERS_DIR/functions.sh
do_make_bdir
# GPG key of Werner Lemberg <wl@gnu.org>
gpg --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 0xC1A60EACE707FDA5
do_http_fetch freetype "http://download.savannah.gnu.org/releases/freetype/freetype-old/freetype-${FREETYPE_VERSION}.tar.bz2" \
'tar xjf' "gpgurl:http://download.savannah.gnu.org/releases/freetype/freetype-old/freetype-${FREETYPE_VERSION}.tar.bz2.sig"
rm -Rf $HOME/.gnupg
do_configure_shared
do_make
do_make install
do_clean_bdir
+22
View File
@@ -0,0 +1,22 @@
#! /bin/sh
# Stick with toolchain version
LIBICONV_VERSION=1.12
PACKAGE_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)
HELPERS_DIR=$PACKAGE_DIR/../..
. $HELPERS_DIR/functions.sh
do_make_bdir
# GPG key used for signing 1.12 is unknown...
do_http_fetch libiconv "http://ftp.gnu.org/pub/gnu/libiconv/libiconv-${LIBICONV_VERSION}.tar.gz" 'tar xzf'
do_configure
do_make
# Only install library
do_make install-lib
do_clean_bdir
+24
View File
@@ -0,0 +1,24 @@
#! /bin/sh
# Stick with toolchain version
JPEG_VERSION=6b
JPEG_SHA256=75c3ec241e9996504fe02a9ed4d12f16b74ade713972f3db9e65ce95cd27e35d
PACKAGE_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)
HELPERS_DIR=$PACKAGE_DIR/../..
. $HELPERS_DIR/functions.sh
do_make_bdir
do_http_fetch jpeg "http://www.ijg.org/files/jpegsrc.v${JPEG_VERSION}.tar.gz" 'tar xzf' "sha256:${JPEG_SHA256}"
# Override config.guess and config.sub with modern versions
cp /usr/share/misc/config.guess /usr/share/misc/config.sub .
do_configure_shared --without-x --enable-shared --enable-static
do_make
# Don't install binaries and doc
do_make install-lib
do_clean_bdir
@@ -0,0 +1,99 @@
- Respect options from configure (bindir/libdir/etc...)
- Grab AR from the env instead of hardcoding to 'ar'
- Fix install to respect $(DESTDIR)
- Also install jpegint.h #64254
--- jpeg/makefile.cfg
+++ jpeg/makefile.cfg
@@ -11,13 +11,13 @@
# Where to install the programs and man pages.
prefix = @prefix@
exec_prefix = @exec_prefix@
-bindir = $(exec_prefix)/bin
-libdir = $(exec_prefix)/lib
-includedir = $(prefix)/include
+bindir = @bindir@
+libdir = @libdir@
+includedir = @includedir@
binprefix =
manprefix =
manext = 1
-mandir = $(prefix)/man/man$(manext)
+mandir = @mandir@/man$(manext)
# The name of your C compiler:
CC= @CC@
@@ -60,7 +60,8 @@
# directory creation command
MKDIR= mkdir
# library (.a) file creation command
-AR= ar rc
+AR = @AR@
+ARFLAGS = rc
# second step in .a creation (use "touch" if not needed)
AR2= @RANLIB@
# installation program
@@ -163,7 +164,7 @@
# without libtool:
libjpeg.a: @A2K_DEPS@ $(LIBOBJECTS)
$(RM) libjpeg.a
- $(AR) libjpeg.a $(LIBOBJECTS)
+ $(AR) $(ARFLAGS) libjpeg.a $(LIBOBJECTS)
$(AR2) libjpeg.a
# with libtool:
@@ -191,25 +191,29 @@
# Installation rules:
install: cjpeg djpeg jpegtran rdjpgcom wrjpgcom @FORCE_INSTALL_LIB@
- $(INSTALL_PROGRAM) cjpeg $(bindir)/$(binprefix)cjpeg
- $(INSTALL_PROGRAM) djpeg $(bindir)/$(binprefix)djpeg
- $(INSTALL_PROGRAM) jpegtran $(bindir)/$(binprefix)jpegtran
- $(INSTALL_PROGRAM) rdjpgcom $(bindir)/$(binprefix)rdjpgcom
- $(INSTALL_PROGRAM) wrjpgcom $(bindir)/$(binprefix)wrjpgcom
- $(INSTALL_DATA) $(srcdir)/cjpeg.1 $(mandir)/$(manprefix)cjpeg.$(manext)
- $(INSTALL_DATA) $(srcdir)/djpeg.1 $(mandir)/$(manprefix)djpeg.$(manext)
- $(INSTALL_DATA) $(srcdir)/jpegtran.1 $(mandir)/$(manprefix)jpegtran.$(manext)
- $(INSTALL_DATA) $(srcdir)/rdjpgcom.1 $(mandir)/$(manprefix)rdjpgcom.$(manext)
- $(INSTALL_DATA) $(srcdir)/wrjpgcom.1 $(mandir)/$(manprefix)wrjpgcom.$(manext)
+ mkdir -p $(DESTDIR)$(bindir) $(DESTDIR)$(mandir)
+ $(INSTALL_PROGRAM) cjpeg $(DESTDIR)$(bindir)/$(binprefix)cjpeg
+ $(INSTALL_PROGRAM) djpeg $(DESTDIR)$(bindir)/$(binprefix)djpeg
+ $(INSTALL_PROGRAM) jpegtran $(DESTDIR)$(bindir)/$(binprefix)jpegtran
+ $(INSTALL_PROGRAM) rdjpgcom $(DESTDIR)$(bindir)/$(binprefix)rdjpgcom
+ $(INSTALL_PROGRAM) wrjpgcom $(DESTDIR)$(bindir)/$(binprefix)wrjpgcom
+ $(INSTALL_DATA) $(srcdir)/cjpeg.1 $(DESTDIR)$(mandir)/$(manprefix)cjpeg.$(manext)
+ $(INSTALL_DATA) $(srcdir)/djpeg.1 $(DESTDIR)$(mandir)/$(manprefix)djpeg.$(manext)
+ $(INSTALL_DATA) $(srcdir)/jpegtran.1 $(DESTDIR)$(mandir)/$(manprefix)jpegtran.$(manext)
+ $(INSTALL_DATA) $(srcdir)/rdjpgcom.1 $(DESTDIR)$(mandir)/$(manprefix)rdjpgcom.$(manext)
+ $(INSTALL_DATA) $(srcdir)/wrjpgcom.1 $(DESTDIR)$(mandir)/$(manprefix)wrjpgcom.$(manext)
install-lib: libjpeg.$(A) install-headers
- $(INSTALL_LIB) libjpeg.$(A) $(libdir)/$(binprefix)libjpeg.$(A)
+ mkdir -p $(DESTDIR)$(libdir)
+ $(INSTALL_LIB) libjpeg.$(A) $(DESTDIR)$(libdir)/$(binprefix)libjpeg.$(A)
install-headers: jconfig.h
- $(INSTALL_DATA) jconfig.h $(includedir)/jconfig.h
- $(INSTALL_DATA) $(srcdir)/jpeglib.h $(includedir)/jpeglib.h
- $(INSTALL_DATA) $(srcdir)/jmorecfg.h $(includedir)/jmorecfg.h
- $(INSTALL_DATA) $(srcdir)/jerror.h $(includedir)/jerror.h
+ mkdir -p $(DESTDIR)$(includedir)
+ $(INSTALL_DATA) jconfig.h $(DESTDIR)$(includedir)/jconfig.h
+ $(INSTALL_DATA) $(srcdir)/jpegint.h $(DESTDIR)$(includedir)/jpegint.h
+ $(INSTALL_DATA) $(srcdir)/jpeglib.h $(DESTDIR)$(includedir)/jpeglib.h
+ $(INSTALL_DATA) $(srcdir)/jmorecfg.h $(DESTDIR)$(includedir)/jmorecfg.h
+ $(INSTALL_DATA) $(srcdir)/jerror.h $(DESTDIR)$(includedir)/jerror.h
clean:
$(RM) *.o *.lo libjpeg.a libjpeg.la
--- jpeg/configure
+++ jpeg/configure
@@ -1777,6 +1777,7 @@
s%@CPP@%$CPP%g
s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g
s%@INSTALL_DATA@%$INSTALL_DATA%g
+s%@AR@%${AR-ar}%g
s%@RANLIB@%$RANLIB%g
s%@LIBTOOL@%$LIBTOOL%g
s%@O@%$O%g
@@ -0,0 +1,66 @@
--- jpeg/configure
+++ jpeg/configure
@@ -1559,7 +1559,7 @@
if test "x$LTSTATIC" = xno; then
disable_static="--disable-static"
fi
- $srcdir/ltconfig $disable_shared $disable_static $srcdir/ltmain.sh
+ $srcdir/ltconfig $disable_shared $disable_static $srcdir/ltmain.sh $host
fi
# Select memory manager depending on user input.
--- jpeg/ltconfig
+++ jpeg/ltconfig
@@ -299,6 +299,7 @@
# Transform linux* to *-*-linux-gnu*, to support old configure scripts.
case "$host_os" in
linux-gnu*) ;;
+linux-uclibc*) ;;
linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'`
esac
@@ -553,7 +553,9 @@
# On HP-UX, both CC and GCC only warn that PIC is supported... then they
# create non-PIC objects. So, if there were any warnings, we assume that
# PIC is not supported.
+ # Make sure we only test warnings on HP-UX (pic_flag == +Z) or we can
+ # easily break Linux builds http://bugs.gentoo.org/70947
- if test -s conftest.err; then
+ if test -s conftest.err -a "$pic_flag" = "+Z"; then
echo "$ac_t"no 1>&6
can_build_shared=no
pic_flag=
@@ -1210,7 +1210,6 @@
else
# Only the GNU ld.so supports shared libraries on MkLinux.
case "$host_cpu" in
- powerpc*) dynamic_linker=no ;;
*) dynamic_linker='Linux ld.so' ;;
esac
fi
@@ -1259,6 +1260,25 @@
fi
;;
+linux-uclibc*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}.so.$versuffix ${libname}${release}.so.$major $libname.so'
+ soname_spec='${libname}${release}.so.$major'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ deplibs_check_method=pass_all
+ # This implies no fast_install, which is unacceptable.
+ # Some rework will be needed to allow for fast_install
+ # before this can be enabled.
+ # Note: copied from linux-gnu, and may not be appropriate.
+ hardcode_into_libs=yes
+ # Assume using the uClibc dynamic linker.
+ dynamic_linker="uClibc ld.so"
+ ;;
+
netbsd* | openbsd*)
version_type=sunos
library_names_spec='${libname}${release}.so.$versuffix'
+22
View File
@@ -0,0 +1,22 @@
#! /bin/sh
# Stick with toolchain version
LIBMAD_VERSION=0.15.1b
LIBMAD_SHA256=bbfac3ed6bfbc2823d3775ebb931087371e142bb0e9bb1bee51a76a6e0078690
PACKAGE_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)
HELPERS_DIR=$PACKAGE_DIR/../..
. $HELPERS_DIR/functions.sh
do_make_bdir
do_http_fetch libmad "http://download.sourceforge.net/project/mad/libmad/${LIBMAD_VERSION}/libmad-${LIBMAD_VERSION}.tar.gz" \
'tar xzf' "sha256:${LIBMAD_SHA256}"
touch NEWS AUTHORS ChangeLog
autoreconf -fi
do_configure_shared --disable-debugging --enable-speed
do_make
do_make install
do_clean_bdir
@@ -0,0 +1,72 @@
http://patchwork.openembedded.org/patch/921/
diff -ur libmad-0.15.1b-orig/fixed.h libmad-0.15.1b/fixed.h
--- libmad-0.15.1b-orig/fixed.h 2004-02-17 12:32:03.000000000 +1030
+++ libmad-0.15.1b/fixed.h 2009-08-05 10:46:30.000000000 +0930
@@ -299,6 +299,23 @@
# elif defined(FPM_MIPS)
+/* Test for gcc >= maj.min, as per __GNUC_PREREQ in glibc */
+#if defined (__GNUC__) && defined (__GNUC_MINOR__)
+#define __GNUC_PREREQ(maj, min) \
+ ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min))
+#else
+#define __GNUC_PREREQ(maj, min) 0
+#endif
+
+#if __GNUC_PREREQ(4,4)
+ typedef unsigned int u64_di_t __attribute__ ((mode (DI)));
+# define MAD_F_MLX(hi, lo, x, y) \
+ do { \
+ u64_di_t __ll = (u64_di_t) (x) * (y); \
+ hi = __ll >> 32; \
+ lo = __ll; \
+ } while (0)
+#else
/*
* This MIPS version is fast and accurate; the disposition of the least
* significant bit depends on OPT_ACCURACY via mad_f_scale64().
@@ -328,6 +345,7 @@
: "%r" ((x) >> 12), "r" ((y) >> 16))
# define MAD_F_MLZ(hi, lo) ((mad_fixed_t) (lo))
# endif
+#endif /* __GNU_PREREQ(4,4) */
# if defined(OPT_SPEED)
# define mad_f_scale64(hi, lo) \
diff -ur libmad-0.15.1b-orig/mad.h libmad-0.15.1b/mad.h
--- libmad-0.15.1b-orig/mad.h 2004-02-17 13:25:44.000000000 +1030
+++ libmad-0.15.1b/mad.h 2009-08-05 10:42:40.000000000 +0930
@@ -344,6 +344,23 @@
# elif defined(FPM_MIPS)
+/* Test for gcc >= maj.min, as per __GNUC_PREREQ in glibc */
+#if defined (__GNUC__) && defined (__GNUC_MINOR__)
+#define __GNUC_PREREQ(maj, min) \
+ ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min))
+#else
+#define __GNUC_PREREQ(maj, min) 0
+#endif
+
+#if __GNUC_PREREQ(4,4)
+ typedef unsigned int u64_di_t __attribute__ ((mode (DI)));
+# define MAD_F_MLX(hi, lo, x, y) \
+ do { \
+ u64_di_t __ll = (u64_di_t) (x) * (y); \
+ hi = __ll >> 32; \
+ lo = __ll; \
+ } while (0)
+#else
/*
* This MIPS version is fast and accurate; the disposition of the least
* significant bit depends on OPT_ACCURACY via mad_f_scale64().
@@ -373,6 +390,7 @@
: "%r" ((x) >> 12), "r" ((y) >> 16))
# define MAD_F_MLZ(hi, lo) ((mad_fixed_t) (lo))
# endif
+#endif /* __GNU_PREREQ(4,4) */
# if defined(OPT_SPEED)
# define mad_f_scale64(hi, lo) \
@@ -0,0 +1,33 @@
libmad: remove deprecated cflags (-fforce-mem)
fforce-mem has long been deprecated, and is completely removed from
gcc 4.3.x on.
---
configure | 1 -
configure.ac | 1 -
2 files changed, 2 deletions(-)
Index: libmad-0.15.1b/configure.ac
===================================================================
--- libmad-0.15.1b.orig/configure.ac
+++ libmad-0.15.1b/configure.ac
@@ -140,7 +140,6 @@
case "$optimize" in
-O|"-O "*)
optimize="-O"
- optimize="$optimize -fforce-mem"
optimize="$optimize -fforce-addr"
: #x optimize="$optimize -finline-functions"
: #- optimize="$optimize -fstrength-reduce"
Index: libmad-0.15.1b/configure
===================================================================
--- libmad-0.15.1b.orig/configure
+++ libmad-0.15.1b/configure
@@ -19099,7 +19099,6 @@
case "$optimize" in
-O|"-O "*)
optimize="-O"
- optimize="$optimize -fforce-mem"
optimize="$optimize -fforce-addr"
: #x optimize="$optimize -finline-functions"
: #- optimize="$optimize -fstrength-reduce"
+24
View File
@@ -0,0 +1,24 @@
#! /bin/sh
# Stick with toolchain version
LIBOGG_VERSION=1.1.4
LIBOGG_SHA256=9354c183fd88417c2860778b60b7896c9487d8f6e58b9fec3fdbf971142ce103
PACKAGE_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)
HELPERS_DIR=$PACKAGE_DIR/../..
. $HELPERS_DIR/functions.sh
do_make_bdir
do_http_fetch libogg "http://downloads.xiph.org/releases/ogg/libogg-${LIBOGG_VERSION}.tar.gz" \
'tar xzf' "sha256:${LIBOGG_SHA256}"
# Avoid compiling and installing doc
sed -ie 's/^\(SUBDIRS.*\) doc/\1/' Makefile.am
autoreconf -fi
do_configure_shared
do_make
do_make install
do_clean_bdir
+28
View File
@@ -0,0 +1,28 @@
#! /bin/sh
# Stick with toolchain version
LIBPNG_VERSION=1.2.46
LIBPNG_SHA256=a5e796e1802b2e221498bda09ff9850bc7ec9068b6788948cc2c42af213914d8
PACKAGE_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)
HELPERS_DIR=$PACKAGE_DIR/../..
. $HELPERS_DIR/functions.sh
do_make_bdir
do_http_fetch libpng "http://download.sourceforge.net/project/libpng/libpng12/older-releases/${LIBPNG_VERSION}/libpng-${LIBPNG_VERSION}.tar.bz2" \
'tar xjf' "sha256:${LIBPNG_SHA256}"
# Enable shared objects to make binary lighter
do_configure_shared
do_make
# Don't install man pages and binaries
do_make install-libLTLIBRARIES \
install-binSCRIPTS \
install-exec-hook \
install-pkgconfigDATA \
install-pkgincludeHEADERS \
install-data-hook
do_clean_bdir
+33
View File
@@ -0,0 +1,33 @@
#! /bin/sh
# Stick with toolchain version
SDL_VERSION=1.2.15
PACKAGE_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)
HELPERS_DIR=$PACKAGE_DIR/../..
. $HELPERS_DIR/functions.sh
do_make_bdir
# GPG key of Sam Lantinga
gpg --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 0xA7763BE6
do_http_fetch SDL "https://www.libsdl.org/release/SDL-${SDL_VERSION}.tar.gz" 'tar xzf' \
"gpgurl:http://www.libsdl.org/release/SDL-${SDL_VERSION}.tar.gz.sig"
rm -Rf $HOME/.gnupg
./autogen.sh
# The test fails because of cross-compilation
# DOn't know why but linuxev is disabled on official toolchain, force it here
export ac_cv_func_memcmp_working=yes
do_configure_shared \
--enable-rpath=no \
--enable-video-fbcon=yes \
--enable-video-x11=no
do_make
# No man pages
do_make install-bin install-hdrs install-lib install-data
do_clean_bdir
@@ -0,0 +1,22 @@
--- SDL-1.2.15.org/src/video/fbcon/SDL_fbvideo.c 2012-01-19 07:30:06.000000000 +0100
+++ SDL-1.2.15/src/video/fbcon/SDL_fbvideo.c 2012-02-04 23:34:04.000000000 +0100
@@ -34,6 +34,7 @@
#include <asm/page.h> /* For definition of PAGE_SIZE */
#endif
+#include <linux/fb.h>
#include <linux/vt.h>
#include "SDL_video.h"
@@ -1409,8 +1410,9 @@
static void FB_WaitVBL(_THIS)
{
-#ifdef FBIOWAITRETRACE /* Heheh, this didn't make it into the main kernel */
- ioctl(console_fd, FBIOWAITRETRACE, 0);
+#ifdef FBIO_WAITFORVSYNC
+ unsigned int screen = 0;
+ ioctl(console_fd, FBIO_WAITFORVSYNC, &screen);
#endif
return;
}
+29
View File
@@ -0,0 +1,29 @@
#! /bin/sh
# Stick with toolchain version
LIBTHEORA_VERSION=1.0
LIBTHEORA_SHA256=3ae9df56e8fc75ffe26e63a13cae2ce79d079416175fb0baffe0e2de8dc91a6d
PACKAGE_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)
HELPERS_DIR=$PACKAGE_DIR/../..
. $HELPERS_DIR/functions.sh
do_make_bdir
do_http_fetch libtheora "http://downloads.xiph.org/releases/theora/libtheora-${LIBTHEORA_VERSION}.tar.bz2" \
'tar xjf' "sha256:${LIBTHEORA_SHA256}"
# Avoid compiling and installing doc
sed -ie 's/^\(SUBDIRS.*\) doc/\1/' Makefile.am
autoreconf -fi -I m4
do_configure_shared \
--disable-oggtest \
--disable-vorbistest \
--disable-sdltest \
--disable-examples \
--disable-spec
do_make
do_make install
do_clean_bdir
+20
View File
@@ -0,0 +1,20 @@
#! /bin/sh
# Stick with toolchain version (SVN revision 16259)
LIBTREMOR_VERSION=4ce4ec7859e7f8074341cfb00af1c207f5d24d3f
PACKAGE_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)
HELPERS_DIR=$PACKAGE_DIR/../..
. $HELPERS_DIR/functions.sh
do_make_bdir
do_http_fetch tremor "https://gitlab.xiph.org/xiph/tremor/-/archive/${LIBTREMOR_VERSION}/tremor-${LIBTREMOR_VERSION}.tar.gz" \
'tar xzf'
autoreconf -i
do_configure_shared
do_make
do_make install
do_clean_bdir
+25
View File
@@ -0,0 +1,25 @@
#! /bin/sh
# Stick with toolchain version
SDL_NET_VERSION=1.2.7
SDL_NET_SHA256=2ce7c84e62ff8117b9f205758bcce68ea603e08bc9d6936ded343735b8b77c53
PACKAGE_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)
HELPERS_DIR=$PACKAGE_DIR/../..
. $HELPERS_DIR/functions.sh
do_make_bdir
do_http_fetch SDL_net "https://www.libsdl.org/projects/SDL_net/release/SDL_net-${SDL_NET_VERSION}.tar.gz" 'tar xzf' \
"sha256:${SDL_NET_SHA256}"
# Override config.guess and config.sub with modern versions
cp /usr/share/misc/config.guess /usr/share/misc/config.sub .
do_configure_shared \
--with-sdl-prefix="${PREFIX}"
do_make
do_make install
do_clean_bdir
+37
View File
@@ -0,0 +1,37 @@
#! /bin/sh
CT_NG_VERSION=1.24.0
PACKAGE_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)
HELPERS_DIR=$PACKAGE_DIR/../..
. $HELPERS_DIR/functions.sh
do_make_bdir
# GPG keys of Bryan Hundven and Alexey Neyman
gpg --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 0x35B871D1 0x11D618A4
do_http_fetch crosstool-ng "http://crosstool-ng.org/download/crosstool-ng/crosstool-ng-${CT_NG_VERSION}.tar.bz2" 'tar xjf' \
"gpgurl:http://crosstool-ng.org/download/crosstool-ng/crosstool-ng-${CT_NG_VERSION}.tar.bz2.sig"
rm -Rf $HOME/.gnupg
# Update everything as we just patched Crosstool
./bootstrap
# Don't use do_configure as it's a pure host job
./configure --enable-local
make
# Create tarballs directory
mkdir -p ./.tarballs
# Update configuration
cp ${PACKAGE_DIR}/config .config
./ct-ng olddefconfig
cp ${PACKAGE_DIR}/uclibc.config uclibc.config
./ct-ng build CT_PREFIX=${DINGUX_TOOLCHAIN}
do_clean_bdir
# Cleanup stuff left by crosstool-ng
rm -f $HOME/.wget-hsts
rm -f /tmp/cc*
@@ -0,0 +1,176 @@
#
# crosstool-NG Configuration
#
CT_CONFIG_VERSION="3"
#
# Paths and misc options
#
#
# crosstool-NG behavior
#
# uClibc version is obsolete but it's what OpenDingux has
CT_OBSOLETE=y
#
# Paths
#
# Define all paths
#
CT_LOCAL_TARBALLS_DIR="${CT_TOP_DIR}/.tarballs"
CT_WORK_DIR="${CT_TOP_DIR}/.build"
CT_BUILD_TOP_DIR="${CT_WORK_DIR:-${CT_TOP_DIR}/.build}/${CT_HOST:+HOST-${CT_HOST}/}${CT_TARGET}"
CT_PREFIX_DIR="${CT_PREFIX:-${CT_TOP_DIR}/toolchain}"
# Don't put toolchain R/O as we need to install libraries in it
# CT_PREFIX_DIR_RO is not set
#
# Target options
#
# That's a MIPS 32r2
CT_ARCH_MIPS=y
CT_ARCH_TUNE="mips32r2"
#
# Options for mips
#
#
# Generic target options
#
# Little endian
CT_ARCH_LE=y
# Quite simply o32
CT_ARCH_32=y
#
# Target optimisations
#
# Specify precise arch
CT_ARCH_ARCH="mips32r2"
# No hardfloat on the target
CT_ARCH_FLOAT_SW=y
#
# Toolchain options
#
#
# General toolchain options
#
#
# Tuple completion and aliasing
#
#
# Toolchain type
#
CT_CROSS=y
#
# Build system
#
#
# Misc options
#
#
# Operating System
#
CT_KERNEL_LINUX=y
#
# Options for linux
#
# Use 2.6.36 kernel like the one running on the target
CT_LINUX_SRC_RELEASE=y
CT_LINUX_V_2_6_36=y
#
# Common kernel options
#
#
# Binary utilities
#
#
# Options for binutils
#
#
# GNU binutils
#
#
# C-library
#
CT_LIBC_UCLIBC=y
#
# Options for uClibc
#
# Use same uClibc as the target to avoid static linking of it
CT_UCLIBC_USE_UCLIBC_ORG=y
CT_UCLIBC_SRC_RELEASE=y
CT_UCLIBC_V_0_9_31=y
CT_LIBC_UCLIBC_CONFIG_FILE="${CT_TOP_DIR}/uclibc.config"
# CT_LIBC_UCLIBC_LOCALES is not set
# CT_LIBC_UCLIBC_IPV6 is not set
CT_LIBC_UCLIBC_WCHAR=y
# CT_LIBC_UCLIBC_FENV is not set
# CT_LIBC_UCLIBC_RPC is not set
# CT_LIBC_UCLIBC_HAS_SSP is not set
#
# Common C library options
#
# Use LT threads (no other choice though)
CT_THREADS_LT=y
#
# C compiler
#
CT_CC_GCC=y
#
# Options for gcc
#
# Don't build shared libgcc_s and libstdc++ as we are way more recent than the target compiler
CT_CC_GCC_EXTRA_CONFIG_ARRAY="--disable-shared"
#
# Optimisation features
#
# Make the toolchain lighter
# CT_CC_GCC_USE_GRAPHITE is not set
# CT_CC_GCC_USE_LTO is not set
#
# Settings for libraries running on target
#
#
# Misc. obscure options.
#
#
# Additional supported languages:
#
# Support C++
CT_CC_LANG_CXX=y
#
# Debug facilities
#
#
# Companion libraries
#
#
# Companion tools
#
@@ -0,0 +1,36 @@
From 18789ea9bff4cf2b653e482227167d12edcbcaa2 Mon Sep 17 00:00:00 2001
From: Le Philousophe <lephilousophe@users.noreply.github.com>
Date: Sun, 28 Feb 2021 10:36:45 +0100
Subject: [PATCH 1/3] Allow compilation by root
---
config/global/ct-behave.in | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/config/global/ct-behave.in b/config/global/ct-behave.in
index 42171e4d..244a2d60 100644
--- a/config/global/ct-behave.in
+++ b/config/global/ct-behave.in
@@ -30,9 +30,8 @@ config EXPERIMENTAL
the result
config ALLOW_BUILD_AS_ROOT
- bool
+ def_bool y
prompt "Allow building as root user (READ HELP!)"
- depends on EXPERIMENTAL
help
You normally do *not* need to be root to build a toolchain using
crosstool-NG. In fact, it is *VERY* dangerous to run as root, as
@@ -56,7 +55,7 @@ config ALLOW_BUILD_AS_ROOT
(ad libitum)
config ALLOW_BUILD_AS_ROOT_SURE
- bool
+ def_bool y
prompt "Are you sure?"
depends on ALLOW_BUILD_AS_ROOT
--
2.25.1
@@ -0,0 +1,45 @@
From cd02b6212271534cdbb6254993158eb7590e517f Mon Sep 17 00:00:00 2001
From: Le Philousophe <lephilousophe@users.noreply.github.com>
Date: Sun, 28 Feb 2021 10:38:18 +0100
Subject: [PATCH 2/3] Allow static libstdc++
---
.../8.3.0/9999-allow-static-libstdc++.patch | 26 +++++++++++++++++++
1 file changed, 26 insertions(+)
create mode 100644 packages/gcc/8.3.0/9999-allow-static-libstdc++.patch
diff --git a/packages/gcc/8.3.0/9999-allow-static-libstdc++.patch b/packages/gcc/8.3.0/9999-allow-static-libstdc++.patch
new file mode 100644
index 00000000..725130fd
--- /dev/null
+++ b/packages/gcc/8.3.0/9999-allow-static-libstdc++.patch
@@ -0,0 +1,26 @@
+--- a/libstdc++-v3/configure.ac
++++ b/libstdc++-v3/configure.ac
+@@ -121,8 +121,8 @@ if test "$enable_shared" = yes; then
+ glibcxx_compiler_shared_flag="-D_GLIBCXX_SHARED"
+
+ else
+- glibcxx_lt_pic_flag=
+- glibcxx_compiler_pic_flag=
++ glibcxx_lt_pic_flag="-prefer-pic"
++ glibcxx_compiler_pic_flag="$lt_prog_compiler_pic_CXX"
+ glibcxx_compiler_shared_flag=
+ fi
+ AC_SUBST(glibcxx_lt_pic_flag)
+--- a/libstdc++-v3/configure
++++ b/libstdc++-v3/configure
+@@ -15025,8 +15025,8 @@ if test "$enable_shared" = yes; then
+ glibcxx_compiler_shared_flag="-D_GLIBCXX_SHARED"
+
+ else
+- glibcxx_lt_pic_flag=
+- glibcxx_compiler_pic_flag=
++ glibcxx_lt_pic_flag="-prefer-pic"
++ glibcxx_compiler_pic_flag="$lt_prog_compiler_pic_CXX"
+ glibcxx_compiler_shared_flag=
+ fi
+
--
2.25.1
@@ -0,0 +1,27 @@
FORCE_SHAREABLE_TEXT_SEGMENTS=y
# UCLIBC_STATIC_LDCONFIG is not set
MALLOC_GLIBC_COMPAT=y
UCLIBC_SUSV3_LEGACY=y
UCLIBC_SUSV4_LEGACY=y
# UCLIBC_HAS_SHADOW is not set
UCLIBC_HAS_LIBUTIL=y
# UCLIBC_LINUX_MODULE_24 is not set
# UCLIBC_HAS_XATTR is not set
# UCLIBC_HAS_PROFILING is not set
UCLIBC_USE_NETLINK=y
# UCLIBC_HAS_CTYPE_UNSAFE is not set
UCLIBC_HAS_CTYPE_ENFORCED=y
UCLIBC_HAS_HEXADECIMAL_FLOATS=y
UCLIBC_HAS_GLIBC_CUSTOM_PRINTF=y
UCLIBC_HAS_SCANF_GLIBC_A_FLAG=y
UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE=y
UCLIBC_HAS_GLIBC_CUSTOM_STREAMS=y
UCLIBC_HAS_PRINTF_M_SPEC=y
# UCLIBC_HAS_GNU_GETSUBOPT is not set
UCLIBC_HAS_GNU_GLOB=y
UCLIBC_HAS_UTMPX=y
UCLIBC_BUILD_NOW=y
+20
View File
@@ -0,0 +1,20 @@
#! /bin/sh
# Stick with toolchain version
ZLIB_VERSION=1.2.5
ZLIB_SHA256=6064e52e513facb0fbb7998c6413406cf253cfb986063d68f4771c2bf7a3f958
PACKAGE_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)
HELPERS_DIR=$PACKAGE_DIR/../..
. $HELPERS_DIR/functions.sh
do_make_bdir
do_http_fetch zlib "http://www.zlib.net/fossils/zlib-${ZLIB_VERSION}.tar.gz" 'tar xzf' "sha256:${ZLIB_SHA256}"
# Enable shared objects
./configure --prefix=$PREFIX --shared
do_make
do_make install
do_clean_bdir
+22
View File
@@ -0,0 +1,22 @@
FROM toolchains/opendingux AS toolchain
m4_include(`paths.m4')m4_dnl
m4_include(`debian-builder-base.m4')m4_dnl
ENV DINGUX_TOOLCHAIN=/opt/dingux-toolchain HOST=mipsel-unknown-linux-uclibc
COPY --from=toolchain ${DINGUX_TOOLCHAIN} ${DINGUX_TOOLCHAIN}/
ENV PREFIX=${DINGUX_TOOLCHAIN}/${HOST}/sysroot/usr
# We add PATH here for *-config and platform specific binaries
ENV \
def_binaries(`${DINGUX_TOOLCHAIN}/bin/${HOST}-', `ar, as, c++filt, ld, nm, objcopy, objdump, ranlib, readelf, strings, strip') \
def_binaries(`${DINGUX_TOOLCHAIN}/bin/${HOST}-', `gcc, cpp, c++') \
CC=${DINGUX_TOOLCHAIN}/bin/$HOST-gcc \
def_aclocal(`${PREFIX}') \
def_pkg_config(`${PREFIX}') \
PATH=$PATH:${PREFIX}/bin
m4_include(`run-buildbot.m4')m4_dnl