Merge pull request #1664 from InuSasha/feature/gcc7

buildsystem: update to gcc (to 7.2), glibc and binutils
This commit is contained in:
MilhouseVH 2017-08-21 18:02:13 +01:00 committed by GitHub
commit 783aebc935
33 changed files with 752 additions and 89 deletions

View File

@ -19,8 +19,8 @@
################################################################################
PKG_NAME="harfbuzz"
PKG_VERSION="1.3.3"
PKG_SHA256="2620987115a4122b47321610dccbcc18f7f121115fd7b88dc8a695c8b66cb3c9"
PKG_VERSION="1.4.5"
PKG_SHA256="d0e05438165884f21658154c709075feaf98c93ee5c694b951533ac425a9a711"
PKG_ARCH="any"
PKG_LICENSE="GPL"
PKG_SITE="http://www.freedesktop.org/wiki/Software/HarfBuzz"

View File

@ -18,16 +18,16 @@
PKG_NAME="bwm-ng"
PKG_VERSION="0.6.1"
PKG_SHA256="027cf3c960cd96fc9ffacdf7713df62d0fc55eeef4a1388289f8a62ae5e50df0"
PKG_SHA256="613e8072b0efc2f5f790143192bca45c3c80b7ad09bff384de9bbaa57aa499b8"
PKG_ARCH="any"
PKG_LICENSE="GPL"
PKG_SITE="http://www.gropp.org/?id=projects&sub=bwm-ng"
PKG_URL="http://www.gropp.org/bwm-ng/bwm-ng-$PKG_VERSION.tar.gz"
PKG_URL="https://github.com/vgropp/bwm-ng/archive/v$PKG_VERSION.tar.gz"
PKG_DEPENDS_TARGET="toolchain netbsd-curses libstatgrab"
PKG_SECTION="network/analyzer"
PKG_SHORTDESC="bwm-ng: small and simple console-based live network and disk io bandwidth monitor"
PKG_LONGDESC="Bandwidth Monitor NG is a small and simple console-based live network and disk io bandwidth monitor for Linux, BSD, Solaris, Mac OS X and others."
PKG_AUTORECONF="no"
PKG_AUTORECONF="yes"
PKG_CONFIGURE_OPTS_TARGET="--with-libstatgrab \
--with-time \

View File

@ -0,0 +1,286 @@
From d5daf15c2098040b8b01753d3cdce8c1c79fc528 Mon Sep 17 00:00:00 2001
From: David Seifert <soap@gentoo.org>
Date: Fri, 10 Feb 2017 21:30:49 +0100
Subject: [PATCH] Use `static inline` instead of `inline`
`inline` by itself is not portably guaranteed to emit
an external definition when needed in C99. The current
code base implicitly relies on GNU89 inline semantics,
which _always_ emit an external definition. More recent
versions of GCC and Clang switch to C99/C11 inline semantics
by default, which fails with undefined references.
See also:
* http://www.greenend.org.uk/rjk/tech/inline.html
* https://clang.llvm.org/compatibility.html#inline
* http://blahg.josefsipek.net/?p=529
---
src/bwm-ng.c | 4 ++--
src/help.c | 4 ++--
src/options.c | 16 ++++++++--------
src/output.c | 22 +++++++++++-----------
src/process.c | 28 ++++++++++++++--------------
5 files changed, 37 insertions(+), 37 deletions(-)
diff --git a/src/bwm-ng.c b/src/bwm-ng.c
index ad94ccd..c2ab0db 100644
--- a/src/bwm-ng.c
+++ b/src/bwm-ng.c
@@ -26,7 +26,7 @@
/* handle interrupt signal */
void sigint(int sig) FUNCATTR_NORETURN;
-inline void init(void);
+static inline void init(void);
/* clear stuff and exit */
#ifdef __STDC__
@@ -98,7 +98,7 @@ void sigint(int sig) {
deinit(0, NULL);
}
-inline void init(void) {
+static inline void init(void) {
if_count=0;
delay=500;
#if EXTENDED_STATS
diff --git a/src/help.c b/src/help.c
index 7fd9ca4..4853297 100644
--- a/src/help.c
+++ b/src/help.c
@@ -24,9 +24,9 @@
#include "global_vars.h"
#include "help.h"
-inline void print_help_line(const char *short_c,const char * long_c,const char *descr);
+static inline void print_help_line(const char *short_c,const char * long_c,const char *descr);
-inline void print_help_line(const char *short_c,const char * long_c,const char *descr) {
+static inline void print_help_line(const char *short_c,const char * long_c,const char *descr) {
#ifdef LONG_OPTIONS
printf(" %-23s",long_c);
#else
diff --git a/src/options.c b/src/options.c
index 1b65eeb..30dccb4 100644
--- a/src/options.c
+++ b/src/options.c
@@ -30,12 +30,12 @@ static char* getToken(char** str, const char* delims);
char *trim_whitespace(char *str);
int read_config(const char *config_file);
#endif
-inline int str2output_unit(char *optarg);
+static inline int str2output_unit(char *optarg);
#if EXTENDED_STATS
-inline int str2output_type(char *optarg);
+static inline int str2output_type(char *optarg);
#endif
-inline int str2out_method(char *optarg);
-inline int str2in_method(char *optarg);
+static inline int str2out_method(char *optarg);
+static inline int str2in_method(char *optarg);
#ifdef CONFIG_FILE
/******************************************************************************
@@ -65,7 +65,7 @@ static char* getToken(char** str, const char* delims) {
/******************************************************************************/
#endif
-inline int str2output_unit(char *optarg) {
+static inline int str2output_unit(char *optarg) {
if (optarg) {
if (!strcasecmp(optarg,"bytes")) return BYTES_OUT;
if (!strcasecmp(optarg,"bits")) return BITS_OUT;
@@ -76,7 +76,7 @@ inline int str2output_unit(char *optarg) {
}
#if EXTENDED_STATS
-inline int str2output_type(char *optarg) {
+static inline int str2output_type(char *optarg) {
if (optarg) {
if (!strcasecmp(optarg,"rate")) return RATE_OUT;
if (!strcasecmp(optarg,"max")) return MAX_OUT;
@@ -87,7 +87,7 @@ inline int str2output_type(char *optarg) {
}
#endif
-inline int str2out_method(char *optarg) {
+static inline int str2out_method(char *optarg) {
if (optarg) {
if (!strcasecmp(optarg,"plain")) return PLAIN_OUT;
#ifdef HAVE_CURSES
@@ -109,7 +109,7 @@ inline int str2out_method(char *optarg) {
}
-inline int str2in_method(char *optarg) {
+static inline int str2in_method(char *optarg) {
if (optarg) {
#ifdef PROC_NET_DEV
if (!strcasecmp(optarg,"proc")) return PROC_IN;
diff --git a/src/output.c b/src/output.c
index 653e444..1425b3c 100644
--- a/src/output.c
+++ b/src/output.c
@@ -25,13 +25,13 @@
#include "output.h"
inline static const char *output_type2str(void);
-inline const char *input2str(void);
-inline const char *show_all_if2str(void);
-inline ullong direction2value(char mode,struct inout_long stats);
+static inline const char *input2str(void);
+static inline const char *show_all_if2str(void);
+static inline ullong direction2value(char mode,struct inout_long stats);
#if EXTENDED_STATS
-inline double direction_max2value(char mode,struct inouttotal_double stats,int items);
+static inline double direction_max2value(char mode,struct inouttotal_double stats,int items);
#endif
-inline char *dyn_byte_value2str(double value,char *str,int buf_size);
+static inline char *dyn_byte_value2str(double value,char *str,int buf_size);
char *values2str(char mode,t_iface_speed_stats stats,t_iface_stats full_stats,float multiplier,char *str,int buf_size);
inline static const char *output_type2str(void) {
@@ -59,7 +59,7 @@ inline static const char *output_type2str(void) {
}
-inline const char *input2str(void) {
+static inline const char *input2str(void) {
switch (input_method) {
#ifdef SYSCTL
case SYSCTL_IN:
@@ -121,7 +121,7 @@ inline const char *input2str(void) {
return "";
}
-inline const char *show_all_if2str(void) {
+static inline const char *show_all_if2str(void) {
switch (show_all_if) {
case 1:
return " (all)";
@@ -262,7 +262,7 @@ int print_header(int option) {
}
-inline ullong direction2value(char mode,struct inout_long stats) {
+static inline ullong direction2value(char mode,struct inout_long stats) {
switch (mode) {
case 0:
return stats.in;
@@ -275,7 +275,7 @@ inline ullong direction2value(char mode,struct inout_long stats) {
}
#if EXTENDED_STATS
-inline double direction_max2value(char mode,struct inouttotal_double stats,int items) {
+static inline double direction_max2value(char mode,struct inouttotal_double stats,int items) {
switch (mode) {
case 0:
return (double)(stats.in/items);
@@ -288,7 +288,7 @@ inline double direction_max2value(char mode,struct inouttotal_double stats,int i
}
#endif
-inline char *dyn_byte_value2str(double value,char *str,int buf_size) {
+static inline char *dyn_byte_value2str(double value,char *str,int buf_size) {
if (dynamic) {
if (value<1024)
snprintf(str,buf_size,"%15.2f ",value);
@@ -306,7 +306,7 @@ inline char *dyn_byte_value2str(double value,char *str,int buf_size) {
return str;
}
-inline char *dyn_bit_value2str(double value,char *str,int buf_size) {
+static inline char *dyn_bit_value2str(double value,char *str,int buf_size) {
if (dynamic) {
if (value<1000)
snprintf(str,buf_size,"%15.2f ",value);
diff --git a/src/process.c b/src/process.c
index 59eccf0..d06c6dd 100644
--- a/src/process.c
+++ b/src/process.c
@@ -26,19 +26,19 @@
short show_iface(char *instr, char *searchstr,char iface_is_up);
#if HAVE_GETTIMEOFDAY
-inline long tvdiff(struct timeval newer, struct timeval older);
+static inline long tvdiff(struct timeval newer, struct timeval older);
float get_time_delay(int iface_num);
#endif
-inline ullong calc_new_values(ullong new, ullong old);
+static inline ullong calc_new_values(ullong new, ullong old);
t_iface_speed_stats convert2calced_values(t_iface_speed_stats new, t_iface_speed_stats old);
t_iface_speed_stats convert2calced_disk_values(t_iface_speed_stats new, t_iface_speed_stats old);
#if EXTENDED_STATS
-inline void sub_avg_values(struct inouttotal_double *values,struct inouttotal_double data);
-inline void add_avg_values(struct inouttotal_double *values,struct inouttotal_double data);
-inline void save_avg_values(struct inouttotal_double *values,struct inouttotal_double *data,struct inout_long calced_stats,float multiplier);
+static inline void sub_avg_values(struct inouttotal_double *values,struct inouttotal_double data);
+static inline void add_avg_values(struct inouttotal_double *values,struct inouttotal_double data);
+static inline void save_avg_values(struct inouttotal_double *values,struct inouttotal_double *data,struct inout_long calced_stats,float multiplier);
void save_avg(struct t_avg *avg,struct iface_speed_stats calced_stats,float multiplier);
-inline void save_sum(struct inout_long *stats,struct inout_long new_stats_values);
-inline void save_max(struct inouttotal_double *stats,struct inout_long calced_stats,float multiplier);
+static inline void save_sum(struct inout_long *stats,struct inout_long new_stats_values);
+static inline void save_max(struct inouttotal_double *stats,struct inout_long calced_stats,float multiplier);
#endif
/* returns the whether to show the iface or not
@@ -74,7 +74,7 @@ short show_iface(char *instr, char *searchstr,char iface_is_up) {
#if HAVE_GETTIMEOFDAY
/* Returns: the time difference in milliseconds. */
-inline long tvdiff(struct timeval newer, struct timeval older) {
+static inline long tvdiff(struct timeval newer, struct timeval older) {
return labs((newer.tv_sec-older.tv_sec)*1000+
(newer.tv_usec-older.tv_usec)/1000);
}
@@ -95,7 +95,7 @@ float get_time_delay(int iface_num) {
#endif
/* basically new-old, but handles "overflow" of source aswell */
-inline ullong calc_new_values(ullong new, ullong old) {
+static inline ullong calc_new_values(ullong new, ullong old) {
/* FIXME: WRAP_AROUND _might_ be wrong for libstatgrab, where the type is always long long */
return (new>=old) ? (ullong)(new-old) : (ullong)((
#ifdef HAVE_LIBKSTAT
@@ -136,13 +136,13 @@ t_iface_speed_stats convert2calced_disk_values(t_iface_speed_stats new, t_iface_
#if EXTENDED_STATS
/* sub old values from cached for avg stats */
-inline void sub_avg_values(struct inouttotal_double *values,struct inouttotal_double data) {
+static inline void sub_avg_values(struct inouttotal_double *values,struct inouttotal_double data) {
values->in-=data.in;
values->out-=data.out;
values->total-=data.total;
}
-inline void add_avg_values(struct inouttotal_double *values,struct inouttotal_double data) {
+static inline void add_avg_values(struct inouttotal_double *values,struct inouttotal_double data) {
values->in+=data.in;
values->out+=data.out;
values->total+=data.total;
@@ -151,7 +151,7 @@ inline void add_avg_values(struct inouttotal_double *values,struct inouttotal_do
/* put new-old bytes in inout_long struct into a inouttotal_double struct
* and add values to cached .value struct */
-inline void save_avg_values(struct inouttotal_double *values,struct inouttotal_double *data,struct inout_long calced_stats,float multiplier) {
+static inline void save_avg_values(struct inouttotal_double *values,struct inouttotal_double *data,struct inout_long calced_stats,float multiplier) {
data->in=calced_stats.in*multiplier;
data->out=calced_stats.out*multiplier;
data->total=(calced_stats.in+calced_stats.out)*multiplier;
@@ -201,13 +201,13 @@ void save_avg(struct t_avg *avg,struct iface_speed_stats calced_stats,float mult
}
/* add current in and out bytes to totals struct */
-inline void save_sum(struct inout_long *stats,struct inout_long new_stats_values) {
+static inline void save_sum(struct inout_long *stats,struct inout_long new_stats_values) {
stats->in+=new_stats_values.in;
stats->out+=new_stats_values.out;
}
/* lookup old max values and save new if higher */
-inline void save_max(struct inouttotal_double *stats,struct inout_long calced_stats,float multiplier) {
+static inline void save_max(struct inouttotal_double *stats,struct inout_long calced_stats,float multiplier) {
if (multiplier*calced_stats.in > stats->in)
stats->in=multiplier*calced_stats.in;
if (multiplier*calced_stats.out>stats->out)

View File

@ -17,12 +17,12 @@
################################################################################
PKG_NAME="udpxy"
PKG_VERSION="1.0.23-0"
PKG_SHA256="b5b3523f20c82b0249acced317daa65ec1791ceed4e5f8f582ecf79067f41a18"
PKG_VERSION="1.0.23-9"
PKG_SHA256="6ce33b1d14a1aeab4bd2566aca112e41943df4d002a7678d9a715108e6b714bd"
PKG_ARCH="any"
PKG_LICENSE="GPL"
PKG_SITE="http://www.udpxy.com/download-en.html"
PKG_URL="$SOURCEFORGE_SRC/project/udpxy/udpxy/Chipmunk-1.0/${PKG_NAME}.${PKG_VERSION}-prod.tar.gz"
PKG_URL="http://www.udpxy.com/download/1_23/${PKG_NAME}.${PKG_VERSION}-prod.tar.gz"
PKG_DEPENDS_TARGET="toolchain"
PKG_SECTION="tools"
PKG_SHORTDESC="udpxy is a UDP-to-HTTP multicast traffic relay daemon"

View File

@ -19,7 +19,7 @@
################################################################################
PKG_NAME="nspr"
PKG_VERSION="4.13"
PKG_VERSION="4.13.1"
PKG_ARCH="any"
PKG_LICENSE="Mozilla Public License"
PKG_SITE="http://www.linuxfromscratch.org/blfs/view/svn/general/nspr.html"

View File

@ -19,12 +19,12 @@
################################################################################
PKG_NAME="nss"
PKG_VERSION="3.27.1"
PKG_SHA256="a3368812d7a9714115e76eae8b3f4b062d8407834d374691f4a297a0e54a737a"
PKG_VERSION="3.29.5"
PKG_SHA256="8cb8624147737d1b4587c50bf058afbb6effc0f3c205d69b5ef4077b3bfed0e4"
PKG_ARCH="any"
PKG_LICENSE="Mozilla Public License"
PKG_SITE="http://ftp.mozilla.org/"
PKG_URL="http://ftp.mozilla.org/pub/security/nss/releases/NSS_3_27_1_RTM/src/nss-3.27.1-with-nspr-4.13.tar.gz"
PKG_URL="http://ftp.mozilla.org/pub/security/nss/releases/NSS_3_29_5_RTM/src/nss-3.29.5-with-nspr-4.13.1.tar.gz"
PKG_DEPENDS_TARGET="toolchain nss:host nspr zlib"
PKG_SECTION="security"
PKG_SHORTDESC="The Network Security Services (NSS) package is a set of libraries designed to support cross-platform development of security-enabled client and server applications"

View File

@ -222,12 +222,12 @@ Description: Adds auto-generated nss.pc and nss-config script, and a
+
--- a/nss/Makefile 2013-05-28 23:43:24.000000000 +0200
+++ b/nss/Makefile 2013-07-02 14:52:58.328084334 +0200
@@ -44,7 +44,7 @@
@@ -46,7 +46,7 @@
# (7) Execute "local" rules. (OPTIONAL). #
#######################################################################
-nss_build_all: build_nspr all
+nss_build_all: all
-nss_build_all: build_nspr all latest
+nss_build_all: all latest
nss_clean_all: clobber_nspr clobber
@ -237,5 +237,5 @@ Description: Adds auto-generated nss.pc and nss-config script, and a
RELEASE = nss
-DIRS = coreconf lib cmd external_tests
-DIRS = coreconf lib cmd gtests
+DIRS = coreconf lib cmd config

View File

@ -0,0 +1,42 @@
From a1d2ef6a8e1bc721e44640bdb85747deaf8edcca Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Wed, 19 Apr 2017 10:50:37 -0700
Subject: [PATCH] Fix warnings found with gcc7
GCC7 finds more type conversion issues
| pkix_pl_ocsprequest.c: In function 'pkix_pl_OcspRequest_Hashcode':
| pkix_pl_ocsprequest.c:92:60: error: '<<' in boolean context, did you mean '<' ? [-Werror=int-in-bool-context]
| *pHashcode = (((((extensionHash << 8) || certHash) << 8) ||
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~
| pkix_pl_ocsprequest.c:93:27: error: '<<' in boolean context, did you mean '<' ? [-Werror=int-in-bool-context]
| *pHashcode = (((((extensionHash << 8) || certHash) << 8) ||
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| dateHash) << 8) || signerHash;
| ~~~~~~~~~~^~~~~
| cc1: all warnings being treated as errors
Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocsprequest.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocsprequest.c b/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocsprequest.c
index 171a3d2..d5eef88 100644
--- a/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocsprequest.c
+++ b/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocsprequest.c
@@ -89,7 +89,7 @@ pkix_pl_OcspRequest_Hashcode(
PKIX_HASHCODE(ocspRq->signerCert, &signerHash, plContext,
PKIX_CERTHASHCODEFAILED);
- *pHashcode = (((((extensionHash << 8) || certHash) << 8) ||
+ *pHashcode = ((PKIX_UInt32)(((PKIX_UInt32)((extensionHash << 8) || certHash) << 8) ||
dateHash) << 8) || signerHash;
cleanup:
--
2.12.2

View File

@ -19,8 +19,8 @@
################################################################################
PKG_NAME="pango"
PKG_VERSION="1.40.3"
PKG_SHA256="abba8b5ce728520c3a0f1535eab19eac3c14aeef7faa5aded90017ceac2711d3"
PKG_VERSION="1.40.6"
PKG_SHA256="ca152b7383a1e9f7fd74ae96023dc6770dc5043414793bfe768ff06b6759e573"
PKG_ARCH="any"
PKG_LICENSE="GPL"
PKG_SITE="http://www.pango.org/"

View File

@ -31,8 +31,8 @@ diff -Naur pango-1.38.1/Makefile.am pango-1.38.1.patch/Makefile.am
@@ -1,6 +1,6 @@
## Process this file with automake to create Makefile.in.
-SUBDIRS= pango pango-view examples docs tools tests build
+SUBDIRS= pango pango-view examples tools tests build
-SUBDIRS= pango pango-view examples docs tools tests win32
+SUBDIRS= pango pango-view examples tools tests win32
EXTRA_DIST = \
autogen.sh \

View File

@ -4,8 +4,8 @@ diff -Naur pango-1.38.1/Makefile.am pango-1.38.1.patch/Makefile.am
@@ -1,6 +1,6 @@
## Process this file with automake to create Makefile.in.
-SUBDIRS= pango pango-view examples tools tests build
+SUBDIRS= pango build
-SUBDIRS= pango pango-view examples tools tests win32
+SUBDIRS= pango win32
EXTRA_DIST = \
autogen.sh \

View File

@ -27,7 +27,7 @@ PKG_DEPENDS_TARGET="toolchain"
PKG_SECTION="tools"
PKG_SHORTDESC="GNU Diffutils"
PKG_LONGDESC="GNU Diffutils is a package of several programs related to finding differences between files."
PKG_AUTORECONF="no"
PKG_AUTORECONF="yes"
PKG_CONFIGURE_OPTS_TARGET="--disable-nls \
--without-libsigsegv-prefix \

View File

@ -0,0 +1,11 @@
--- diffutils-3.5/Makefile.am.org 2017-05-24 18:54:09.404508347 +0200
+++ diffutils-3.5/Makefile.am 2017-05-24 18:46:25.238456499 +0200
@@ -19,7 +19,7 @@
ALL_RECURSIVE_TARGETS =
EXTRA_DIST = bootstrap exgettext ChangeLog-2008 cfg.mk dist-check.mk
-SUBDIRS = lib src tests doc man po gnulib-tests
+SUBDIRS = lib src tests doc po gnulib-tests
ACLOCAL_AMFLAGS = -I m4
AM_CFLAGS = $(WARN_CFLAGS) $(WERROR_CFLAGS)

View File

@ -0,0 +1,14 @@
part of patch from Jasmin Jessich <jasmin@anw.at>
https://github.com/jasmin-j/vdr-plugin-live/commit/b86560030911208be738163ecd0e48790c9317a1
--- a/pages/multischedule.ecpp 2017-05-11 18:13:21.359696377 +0200
+++ b/pages/multischedule.ecpp 2017-05-11 18:15:13.777869558 +0200
@@ -295,7 +295,7 @@
cChannel* Channel = Channels.GetByNumber( chan );
if ( ! Channel )
continue;
- if ( Channel->GroupSep() || Channel->Name() == '\0' )
+ if ( Channel->GroupSep() || !Channel->Name() || !*Channel->Name() )
continue;
channel_names[ j ] = Channel->Name();
channel_IDs[ j ] = Channel->GetChannelID();

View File

@ -17,8 +17,8 @@
################################################################################
PKG_NAME="vdr-plugin-satip"
PKG_VERSION="ed99cfb"
PKG_SHA256="279a31fb7550280afdb7508e463dbc750751aa03213aeeb6a27e96869ec68337"
PKG_VERSION="ee88aad"
PKG_SHA256="340fa7366b63ec6760f41c204a993df336e2f571c2ff6b8cb5517ceccbc0e249"
PKG_ARCH="any"
PKG_LICENSE="GPL"
PKG_SITE="http://www.saunalahti.fi/~rahrenbe/vdr/satip/"

View File

@ -0,0 +1,108 @@
Backport from 2.3.3
diff -Naur vdr-2.2.0/diseqc.c vdr-2.2.0.fixed/diseqc.c
--- vdr-2.2.0/diseqc.c 2015-01-26 13:02:14.000000000 +0100
+++ vdr-2.2.0.fixed/diseqc.c 2017-05-11 17:47:26.770740387 +0200
@@ -253,10 +253,10 @@
return result;
}
-uint cDiseqc::SetScrFrequency(uint SatFrequency, const cScr *Scr, uint8_t *Codes) const
+int cDiseqc::SetScrFrequency(int SatFrequency, const cScr *Scr, uint8_t *Codes) const
{
if ((Codes[0] & 0xF0) == 0x70 ) { // EN50607 aka JESS
- uint t = SatFrequency == 0 ? 0 : (SatFrequency - 100);
+ int t = SatFrequency == 0 ? 0 : (SatFrequency - 100);
if (t < 2048 && Scr->Channel() >= 0 && Scr->Channel() < 32) {
Codes[1] = t >> 8 | Scr->Channel() << 3;
Codes[2] = t;
@@ -266,7 +266,7 @@
}
}
else { // EN50494 aka Unicable
- uint t = SatFrequency == 0 ? 0 : (SatFrequency + Scr->UserBand() + 2) / 4 - 350; // '+ 2' together with '/ 4' results in rounding!
+ int t = SatFrequency == 0 ? 0 : (SatFrequency + Scr->UserBand() + 2) / 4 - 350; // '+ 2' together with '/ 4' results in rounding!
if (t < 1024 && Scr->Channel() >= 0 && Scr->Channel() < 8) {
Codes[3] = t >> 8 | (t == 0 ? 0 : scrBank << 2) | Scr->Channel() << 5;
Codes[4] = t;
@@ -399,7 +399,7 @@
return NULL;
}
-cDiseqc::eDiseqcActions cDiseqc::Execute(const char **CurrentAction, uchar *Codes, uint8_t *MaxCodes, const cScr *Scr, uint *Frequency) const
+cDiseqc::eDiseqcActions cDiseqc::Execute(const char **CurrentAction, uchar *Codes, uint8_t *MaxCodes, const cScr *Scr, int *Frequency) const
{
if (!*CurrentAction)
*CurrentAction = commands;
diff -Naur vdr-2.2.0/diseqc.h vdr-2.2.0.fixed/diseqc.h
--- vdr-2.2.0/diseqc.h 2013-06-12 13:52:17.000000000 +0200
+++ vdr-2.2.0.fixed/diseqc.h 2017-05-11 17:46:02.381565779 +0200
@@ -86,7 +86,7 @@
mutable int scrBank;
char *commands;
bool parsing;
- uint SetScrFrequency(uint SatFrequency, const cScr *Scr, uint8_t *Codes) const;
+ int SetScrFrequency(int SatFrequency, const cScr *Scr, uint8_t *Codes) const;
int SetScrPin(const cScr *Scr, uint8_t *Codes) const;
const char *Wait(const char *s) const;
const char *GetPosition(const char *s) const;
@@ -96,7 +96,7 @@
cDiseqc(void);
~cDiseqc();
bool Parse(const char *s);
- eDiseqcActions Execute(const char **CurrentAction, uchar *Codes, uint8_t *MaxCodes, const cScr *Scr, uint *Frequency) const;
+ eDiseqcActions Execute(const char **CurrentAction, uchar *Codes, uint8_t *MaxCodes, const cScr *Scr, int *Frequency) const;
///< Parses the DiSEqC commands and returns the appropriate action code
///< with every call. CurrentAction must be the address of a character pointer,
///< which is initialized to NULL. This pointer is used internally while parsing
diff -Naur vdr-2.2.0/dvbdevice.c vdr-2.2.0.fixed/dvbdevice.c
--- vdr-2.2.0/dvbdevice.c 2017-05-11 17:49:21.744005466 +0200
+++ vdr-2.2.0.fixed/dvbdevice.c 2017-05-11 17:40:40.052025008 +0200
@@ -329,7 +329,7 @@
void ClearEventQueue(void) const;
bool GetFrontendStatus(fe_status_t &Status) const;
cPositioner *GetPositioner(void);
- void ExecuteDiseqc(const cDiseqc *Diseqc, unsigned int *Frequency);
+ void ExecuteDiseqc(const cDiseqc *Diseqc, int *Frequency);
void ResetToneAndVoltage(void);
bool SetFrontend(void);
virtual void Action(void);
@@ -696,7 +696,7 @@
return positioner;
}
-void cDvbTuner::ExecuteDiseqc(const cDiseqc *Diseqc, unsigned int *Frequency)
+void cDvbTuner::ExecuteDiseqc(const cDiseqc *Diseqc, int *Frequency)
{
if (!lnbPowerTurnedOn) {
CHECK(ioctl(fd_frontend, FE_SET_VOLTAGE, SEC_VOLTAGE_13)); // must explicitly turn on LNB power
@@ -806,7 +806,7 @@
SETCMD(DTV_DELIVERY_SYSTEM, frontendType);
if (frontendType == SYS_DVBS || frontendType == SYS_DVBS2) {
- unsigned int frequency = channel.Frequency();
+ int frequency = channel.Frequency();
if (Setup.DiSEqC) {
if (const cDiseqc *diseqc = Diseqcs.Get(device->CardIndex() + 1, channel.Source(), frequency, dtp.Polarization(), &scr)) {
frequency -= diseqc->Lof();
@@ -829,7 +829,7 @@
}
else {
int tone = SEC_TONE_OFF;
- if (frequency < (unsigned int)Setup.LnbSLOF) {
+ if (frequency < Setup.LnbSLOF) {
frequency -= Setup.LnbFrequLo;
tone = SEC_TONE_OFF;
}
diff -Naur vdr-2.2.0/remux.c vdr-2.2.0.fixed/remux.c
--- vdr-2.2.0/remux.c 2017-05-11 17:49:21.740005437 +0200
+++ vdr-2.2.0.fixed/remux.c 2017-05-11 17:38:29.322690063 +0200
@@ -1627,7 +1627,7 @@
Div += parser->IFrameTemporalReferenceOffset();
if (Div <= 0)
Div = 1;
- uint32_t Delta = ptsValues[0] / Div;
+ int Delta = ptsValues[0] / Div;
// determine frame info:
if (isVideo) {
if (abs(Delta - 3600) <= 1)

View File

@ -0,0 +1,11 @@
diff -Naur build.LibreELEC-Generic.x86_64-9.0-devel/org_hyperion-355a324/include/utils/Image.h build.LibreELEC-Generic.x86_64-9.0-devel/hyperion-355a324/include/utils/Image.h
--- org_hyperion-355a324/include/utils/Image.h 2016-09-06 22:58:55.000000000 +0200
+++ hyperion-355a324/include/utils/Image.h 2017-05-30 18:18:06.043345976 +0200
@@ -2,6 +2,7 @@
// STL includes
#include <vector>
+#include <cassert>
#include <cstdint>
#include <cstring>
#include <algorithm>

View File

@ -0,0 +1,11 @@
--- a/sql-common/client_authentication.cc 2017-05-06 16:38:34.349486565 +0200
+++ b/sql-common/client_authentication.cc 2017-05-06 16:41:32.286431336 +0200
@@ -84,7 +84,7 @@
if (mysql->options.extension != NULL &&
mysql->options.extension->server_public_key_path != NULL &&
- mysql->options.extension->server_public_key_path != '\0')
+ *(mysql->options.extension->server_public_key_path) != '\0')
{
pub_key_file= fopen(mysql->options.extension->server_public_key_path,
"r");

View File

@ -17,8 +17,8 @@
################################################################################
PKG_NAME="binutils"
PKG_VERSION="2.28"
PKG_SHA256="cd717966fc761d840d451dbd58d44e1e5b92949d2073d75b73fccb476d772fcf"
PKG_VERSION="2.29"
PKG_SHA256="172e8c89472cf52712fd23a9f14e9bca6182727fb45b0f8f482652a83d5a11b4"
PKG_ARCH="any"
PKG_LICENSE="GPL"
PKG_SITE="http://www.gnu.org/software/binutils/"

View File

@ -18,14 +18,14 @@
################################################################################
PKG_NAME="glib"
PKG_VERSION="2.46.2"
PKG_SHA256="5031722e37036719c1a09163cc6cf7c326e4c4f1f1e074b433c156862bd733db"
PKG_VERSION="2.53.5"
PKG_SHA256="991421f41a4ed4cc1637e5f9db0d03fd236d2cbd19f3c5b097a343bec5126602"
PKG_ARCH="any"
PKG_LICENSE="LGPL"
PKG_SITE="http://www.gtk.org/"
PKG_URL="http://ftp.gnome.org/pub/gnome/sources/glib/2.46/$PKG_NAME-$PKG_VERSION.tar.xz"
PKG_DEPENDS_TARGET="toolchain zlib libffi Python:host"
PKG_DEPENDS_HOST="libffi:host"
PKG_URL="http://ftp.gnome.org/pub/gnome/sources/glib/${PKG_VERSION%.*}/$PKG_NAME-$PKG_VERSION.tar.xz"
PKG_DEPENDS_TARGET="toolchain zlib libffi Python:host util-linux"
PKG_DEPENDS_HOST="libffi:host pcre:host"
PKG_SECTION="devel"
PKG_SHORTDESC="glib: C support library"
PKG_LONGDESC="GLib is a library which includes support routines for C such as lists, trees, hashes, memory allocation, and many other things."
@ -33,12 +33,12 @@ PKG_LONGDESC="GLib is a library which includes support routines for C such as li
PKG_IS_ADDON="no"
PKG_AUTORECONF="yes"
PKG_CONFIGURE_OPTS_HOST="--enable-static --disable-shared"
PKG_CONFIGURE_OPTS_TARGET="ac_cv_func_mmap_fixed_mapped=yes \
ac_cv_func_posix_getpwuid_r=yes \
ac_cv_func_posix_getgrgid_r=yes \
ac_cv_func_printf_unix98=yes \
ac_cv_func_snprintf_c99=yes \
PKG_CONFIGURE_OPTS_HOST="PCRE_LIBS=-l:libpcre.a \
--enable-static \
--disable-shared \
--disable-libmount \
--with-python=python"
PKG_CONFIGURE_OPTS_TARGET="ac_cv_func_snprintf_c99=yes \
ac_cv_func_vsnprintf_c99=yes \
glib_cv_stack_grows=no \
glib_cv_uscore=no \
@ -48,13 +48,15 @@ PKG_CONFIGURE_OPTS_TARGET="ac_cv_func_mmap_fixed_mapped=yes \
--enable-xattr \
--disable-libelf \
--disable-gtk-doc \
--disable-gtk-doc-html \
--disable-man \
--disable-dtrace \
--disable-systemtap \
--enable-Bsymbolic \
--with-gnu-ld \
--with-threads=posix \
--with-pcre=internal"
--with-pcre=internal \
--with-python=python"
post_makeinstall_target() {
mkdir -p $SYSROOT_PREFIX/usr/lib/pkgconfig

View File

@ -17,8 +17,8 @@
################################################################################
PKG_NAME="glibc"
PKG_VERSION="2.25"
PKG_SHA256="067bd9bb3390e79aa45911537d13c3721f1d9d3769931a30c2681bfee66f23a0"
PKG_VERSION="2.26"
PKG_SHA256="e54e0a934cd2bc94429be79da5e9385898d2306b9eaf3c92d5a77af96190f6bd"
PKG_ARCH="any"
PKG_LICENSE="GPL"
PKG_SITE="http://www.gnu.org/software/libc/"
@ -50,6 +50,7 @@ PKG_CONFIGURE_OPTS_TARGET="BASH_SHELL=/bin/sh \
--without-cvs \
--without-gd \
--enable-obsolete-rpc \
--enable-obsolete-nsl \
--disable-build-nscd \
--disable-nscd \
--enable-lock-elision \

View File

@ -34,6 +34,7 @@ PKG_USE_CMAKE="no"
PKG_AUTORECONF="no"
PKG_CONFIGURE_OPTS_HOST="--prefix=$TOOLCHAIN \
--enable-static \
--enable-utf8 \
--enable-unicode-properties \
--with-gnu-ld"

View File

@ -0,0 +1,10 @@
--- libretro-dinothawr-02821dd/utils.hpp 2017-06-02 15:32:28.527780477 +0200
+++ libretro-dinothawr-02821dd/utils.hpp 2017-06-02 15:24:23.781305524 +0200
@@ -15,6 +15,7 @@
#include <limits>
#include <memory>
#include <errno.h>
+#include <functional>
#include <pugixml/pugixml.hpp>

View File

@ -17,12 +17,12 @@
################################################################################
PKG_NAME="gcc"
PKG_VERSION="6.2.0"
PKG_SHA256="9944589fc722d3e66308c0ce5257788ebd7872982a718aa2516123940671b7c5"
PKG_VERSION="7.2.0"
PKG_SHA256="1cf7adf8ff4b5aa49041c8734bbcf1ad18cc4c94d0029aae0f4e48841088479a"
PKG_ARCH="any"
PKG_LICENSE="GPL"
PKG_SITE="http://gcc.gnu.org/"
PKG_URL="http://ftpmirror.gnu.org/gcc/$PKG_NAME-$PKG_VERSION/$PKG_NAME-$PKG_VERSION.tar.bz2"
PKG_URL="http://ftpmirror.gnu.org/gcc/$PKG_NAME-$PKG_VERSION/$PKG_NAME-$PKG_VERSION.tar.xz"
PKG_DEPENDS_BOOTSTRAP="ccache:host autoconf:host binutils:host gmp:host mpfr:host mpc:host"
PKG_DEPENDS_TARGET="gcc:host"
PKG_DEPENDS_HOST="ccache:host autoconf:host binutils:host gmp:host mpfr:host mpc:host glibc"

View File

@ -1,42 +0,0 @@
--- trunk/gcc/config/arm/cortex-a8-neon.md 2016/08/26 10:22:08 239771
+++ trunk/gcc/config/arm/cortex-a8-neon.md 2016/08/26 10:23:20 239772
@@ -357,30 +357,34 @@
(eq_attr "type" "fmuls"))
"cortex_a8_vfp,cortex_a8_vfplite*11")
+;; Don't model a reservation for more than 15 cycles as this explodes the
+;; state space of the automaton for little gain. It is unlikely that the
+;; scheduler will find enough instructions to hide the full latency of the
+;; instructions.
(define_insn_reservation "cortex_a8_vfp_muld" 17
(and (eq_attr "tune" "cortexa8")
(eq_attr "type" "fmuld"))
- "cortex_a8_vfp,cortex_a8_vfplite*16")
+ "cortex_a8_vfp,cortex_a8_vfplite*15")
(define_insn_reservation "cortex_a8_vfp_macs" 21
(and (eq_attr "tune" "cortexa8")
(eq_attr "type" "fmacs,ffmas"))
- "cortex_a8_vfp,cortex_a8_vfplite*20")
+ "cortex_a8_vfp,cortex_a8_vfplite*15")
(define_insn_reservation "cortex_a8_vfp_macd" 26
(and (eq_attr "tune" "cortexa8")
(eq_attr "type" "fmacd,ffmad"))
- "cortex_a8_vfp,cortex_a8_vfplite*25")
+ "cortex_a8_vfp,cortex_a8_vfplite*15")
(define_insn_reservation "cortex_a8_vfp_divs" 37
(and (eq_attr "tune" "cortexa8")
(eq_attr "type" "fdivs, fsqrts"))
- "cortex_a8_vfp,cortex_a8_vfplite*36")
+ "cortex_a8_vfp,cortex_a8_vfplite*15")
(define_insn_reservation "cortex_a8_vfp_divd" 65
(and (eq_attr "tune" "cortexa8")
(eq_attr "type" "fdivd, fsqrtd"))
- "cortex_a8_vfp,cortex_a8_vfplite*64")
+ "cortex_a8_vfp,cortex_a8_vfplite*15")
;; Comparisons can actually take 7 cycles sometimes instead of four,
;; but given all the other instructions lumped into type=ffarith that

View File

@ -34,5 +34,5 @@ PKG_IS_ADDON="yes"
PKG_ADDON_TYPE="xbmc.pvrclient"
pre_configure_target() {
CXXFLAGS="$CXXFLAGS -Wno-narrowing"
CXXFLAGS="$CXXFLAGS -Wno-narrowing -DXLOCALE_NOT_USED"
}

View File

@ -0,0 +1,11 @@
--- pvr.stalker-151e3d3/src/CWatchdog.h 2017-05-22 13:38:16.000000000 +0200
+++ pvr.stalker-151e3d3/src/CWatchdog.h 2017-06-02 09:24:34.357505179 +0200
@@ -20,7 +20,7 @@
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
*
*/
-
+#include <functional>
#include <thread>
#include "SAPI.h"

View File

@ -17,8 +17,8 @@
################################################################################
PKG_NAME="libtirpc"
PKG_VERSION="1.0.1"
PKG_SHA256="5156974f31be7ccbc8ab1de37c4739af6d9d42c87b1d5caf4835dda75fcbb89e"
PKG_VERSION="1.0.2"
PKG_SHA256="723c5ce92706cbb601a8db09110df1b4b69391643158f20ff587e20e7c5f90f5"
PKG_ARCH="any"
PKG_LICENSE="GPL"
PKG_SITE="https://sourceforge.net/projects/libtirpc/"

View File

@ -0,0 +1,11 @@
diff -Naur a/src/xdr_sizeof.c b/src/xdr_sizeof.c
--- a/src/xdr_sizeof.c 2017-07-05 08:02:23.000000000 -0700
+++ b/src/xdr_sizeof.c 2017-08-02 16:37:31.839143976 -0700
@@ -39,6 +39,7 @@
#include <rpc/xdr.h>
#include <sys/types.h>
#include <stdlib.h>
+#include <stdint.h>
#include "un-namespace.h"
/* ARGSUSED */

View File

@ -0,0 +1,21 @@
From aae3b1193025ccec332da4165d46502f9685aea4 Mon Sep 17 00:00:00 2001
From: "Sascha Kuehndel (InuSasha)" <dev@inusasha.de>
Date: Sat, 6 May 2017 16:08:14 +0200
Subject: [PATCH] make fallthru explicit, fixes compile error in gcc7
---
src/main.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/main.c b/src/main.c
index f6c50fa..d0fb25a 100644
--- a/src/main.c
+++ b/src/main.c
@@ -105,6 +105,7 @@ int main(int argc,char **argv)
{
syslog(LOG_WARNING, "the highest verbosity level is -vvv\n");
}
+ /* FALLTHRU */
case 'f':
foreground = true;
break;

View File

@ -0,0 +1,27 @@
From 0c50b8332092178378257c2de800fb6b6b4a8706 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Mon, 3 Jul 2017 08:45:04 -0700
Subject: [PATCH] parse-util: Do not include unneeded xlocale.h
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
Upstream-Status: Backport [ partial https://github.com/systemd/systemd/commit/284d1cd0a12cad96a5ea61d1afb0dd677dbd147e]
src/basic/parse-util.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/src/basic/parse-util.c b/src/basic/parse-util.c
index c98815b9b..a0eb45805 100644
--- a/src/basic/parse-util.c
b/src/basic/parse-util.c
@@ -23,7 +23,6 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
-#include <xlocale.h>
#include "alloc-util.h"
#include "extract-word.h"
--
2.13.2

View File

@ -0,0 +1,69 @@
diff -Naur u-boot-imx6-ad02f49.org/include/linux/compiler-gcc7.h u-boot-imx6-ad02f49/include/linux/compiler-gcc7.h
--- u-boot-imx6-ad02f49.org/include/linux/compiler-gcc7.h 1970-01-01 01:00:00.000000000 +0100
+++ u-boot-imx6-ad02f49/include/linux/compiler-gcc7.h 2017-05-23 10:31:00.177476141 +0200
@@ -0,0 +1,65 @@
+#ifndef __LINUX_COMPILER_H
+#error "Please don't include <linux/compiler-gcc5.h> directly, include <linux/compiler.h> instead."
+#endif
+
+#define __used __attribute__((__used__))
+#define __must_check __attribute__((warn_unused_result))
+#define __compiler_offsetof(a, b) __builtin_offsetof(a, b)
+
+/* Mark functions as cold. gcc will assume any path leading to a call
+ to them will be unlikely. This means a lot of manual unlikely()s
+ are unnecessary now for any paths leading to the usual suspects
+ like BUG(), printk(), panic() etc. [but let's keep them for now for
+ older compilers]
+
+ Early snapshots of gcc 4.3 don't support this and we can't detect this
+ in the preprocessor, but we can live with this because they're unreleased.
+ Maketime probing would be overkill here.
+
+ gcc also has a __attribute__((__hot__)) to move hot functions into
+ a special section, but I don't see any sense in this right now in
+ the kernel context */
+#define __cold __attribute__((__cold__))
+
+#define __UNIQUE_ID(prefix) __PASTE(__PASTE(__UNIQUE_ID_, prefix), __COUNTER__)
+
+#ifndef __CHECKER__
+# define __compiletime_warning(message) __attribute__((warning(message)))
+# define __compiletime_error(message) __attribute__((error(message)))
+#endif /* __CHECKER__ */
+
+/*
+ * Mark a position in code as unreachable. This can be used to
+ * suppress control flow warnings after asm blocks that transfer
+ * control elsewhere.
+ *
+ * Early snapshots of gcc 4.5 don't support this and we can't detect
+ * this in the preprocessor, but we can live with this because they're
+ * unreleased. Really, we need to have autoconf for the kernel.
+ */
+#define unreachable() __builtin_unreachable()
+
+/* Mark a function definition as prohibited from being cloned. */
+#define __noclone __attribute__((__noclone__))
+
+/*
+ * Tell the optimizer that something else uses this function or variable.
+ */
+#define __visible __attribute__((externally_visible))
+
+/*
+ * GCC 'asm goto' miscompiles certain code sequences:
+ *
+ * http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58670
+ *
+ * Work it around via a compiler barrier quirk suggested by Jakub Jelinek.
+ *
+ * (asm goto is automatically volatile - the naming reflects this.)
+ */
+#define asm_volatile_goto(x...) do { asm goto(x); asm (""); } while (0)
+
+#ifdef CONFIG_ARCH_USE_BUILTIN_BSWAP
+#define __HAVE_BUILTIN_BSWAP32__
+#define __HAVE_BUILTIN_BSWAP64__
+#define __HAVE_BUILTIN_BSWAP16__
+#endif /* CONFIG_ARCH_USE_BUILTIN_BSWAP */

View File

@ -0,0 +1,69 @@
diff -Naur u-boot-imx6-ad02f49.org/include/linux/compiler-gcc7.h u-boot-imx6-ad02f49/include/linux/compiler-gcc7.h
--- u-boot-imx6-ad02f49.org/include/linux/compiler-gcc7.h 1970-01-01 01:00:00.000000000 +0100
+++ u-boot-imx6-ad02f49/include/linux/compiler-gcc7.h 2017-05-23 10:31:00.177476141 +0200
@@ -0,0 +1,65 @@
+#ifndef __LINUX_COMPILER_H
+#error "Please don't include <linux/compiler-gcc5.h> directly, include <linux/compiler.h> instead."
+#endif
+
+#define __used __attribute__((__used__))
+#define __must_check __attribute__((warn_unused_result))
+#define __compiler_offsetof(a, b) __builtin_offsetof(a, b)
+
+/* Mark functions as cold. gcc will assume any path leading to a call
+ to them will be unlikely. This means a lot of manual unlikely()s
+ are unnecessary now for any paths leading to the usual suspects
+ like BUG(), printk(), panic() etc. [but let's keep them for now for
+ older compilers]
+
+ Early snapshots of gcc 4.3 don't support this and we can't detect this
+ in the preprocessor, but we can live with this because they're unreleased.
+ Maketime probing would be overkill here.
+
+ gcc also has a __attribute__((__hot__)) to move hot functions into
+ a special section, but I don't see any sense in this right now in
+ the kernel context */
+#define __cold __attribute__((__cold__))
+
+#define __UNIQUE_ID(prefix) __PASTE(__PASTE(__UNIQUE_ID_, prefix), __COUNTER__)
+
+#ifndef __CHECKER__
+# define __compiletime_warning(message) __attribute__((warning(message)))
+# define __compiletime_error(message) __attribute__((error(message)))
+#endif /* __CHECKER__ */
+
+/*
+ * Mark a position in code as unreachable. This can be used to
+ * suppress control flow warnings after asm blocks that transfer
+ * control elsewhere.
+ *
+ * Early snapshots of gcc 4.5 don't support this and we can't detect
+ * this in the preprocessor, but we can live with this because they're
+ * unreleased. Really, we need to have autoconf for the kernel.
+ */
+#define unreachable() __builtin_unreachable()
+
+/* Mark a function definition as prohibited from being cloned. */
+#define __noclone __attribute__((__noclone__))
+
+/*
+ * Tell the optimizer that something else uses this function or variable.
+ */
+#define __visible __attribute__((externally_visible))
+
+/*
+ * GCC 'asm goto' miscompiles certain code sequences:
+ *
+ * http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58670
+ *
+ * Work it around via a compiler barrier quirk suggested by Jakub Jelinek.
+ *
+ * (asm goto is automatically volatile - the naming reflects this.)
+ */
+#define asm_volatile_goto(x...) do { asm goto(x); asm (""); } while (0)
+
+#ifdef CONFIG_ARCH_USE_BUILTIN_BSWAP
+#define __HAVE_BUILTIN_BSWAP32__
+#define __HAVE_BUILTIN_BSWAP64__
+#define __HAVE_BUILTIN_BSWAP16__
+#endif /* CONFIG_ARCH_USE_BUILTIN_BSWAP */