mirror of
https://github.com/LibreELEC/LibreELEC.tv
synced 2025-09-24 19:46:01 +07:00
Compare commits
331 Commits
5d61b746fa
...
3.95.6
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5b9bb12894 | ||
|
|
4f18d6c536 | ||
|
|
9b8715ec57 | ||
|
|
91785e09fb | ||
|
|
77cf33ca92 | ||
|
|
0eabe8d2ac | ||
|
|
c4d708cb69 | ||
|
|
d9b91c7a1e | ||
|
|
542ec5a67b | ||
|
|
9de0e6f614 | ||
|
|
f6ccd7a44b | ||
|
|
d2fb9ec8ea | ||
|
|
b59a02a51a | ||
|
|
839a03fdcd | ||
|
|
99380b68ae | ||
|
|
c158f374bd | ||
|
|
7b81850c50 | ||
|
|
c4309ed2c7 | ||
|
|
2b9fa76413 | ||
|
|
ce7acbd33e | ||
|
|
58f13d591c | ||
|
|
b9dc833ceb | ||
|
|
982f94d84e | ||
|
|
6727205fce | ||
|
|
ccbab20fbf | ||
|
|
959da55bdf | ||
|
|
a29909a816 | ||
|
|
4c2a944928 | ||
|
|
dee56e767f | ||
|
|
29a02d71e9 | ||
|
|
8f75ede7de | ||
|
|
b653fc80be | ||
|
|
af458da091 | ||
|
|
ff34f71f2c | ||
|
|
dfd2d26ba4 | ||
|
|
e78b94daa7 | ||
|
|
a0206ba829 | ||
|
|
e3a821a1df | ||
|
|
656142fad5 | ||
|
|
2e2705c1f9 | ||
|
|
ffb291cf48 | ||
|
|
ec2a339fce | ||
|
|
6e9e7869ff | ||
|
|
727e267a67 | ||
|
|
5a82523ae1 | ||
|
|
b62d98c82a | ||
|
|
77884ecbcb | ||
|
|
8fa76b050f | ||
|
|
f884e001af | ||
|
|
30b16a37fd | ||
|
|
2abad30bbc | ||
|
|
88e8443d9f | ||
|
|
d59526e9af | ||
|
|
345024e40a | ||
|
|
f7d216ae10 | ||
|
|
02b19de50e | ||
|
|
fa6cd55383 | ||
|
|
35c991c604 | ||
|
|
bee7e1edac | ||
|
|
e6af4972b5 | ||
|
|
87c0aee3f3 | ||
|
|
3e89fa35db | ||
|
|
550add0500 | ||
|
|
3af07bbf04 | ||
|
|
df1ee6ee19 | ||
|
|
dd56a8f658 | ||
|
|
f76cb9a6dd | ||
|
|
37dc490d20 | ||
|
|
a8e9261c81 | ||
|
|
c22581f948 | ||
|
|
01ade933db | ||
|
|
156e6d86d0 | ||
|
|
28430fe379 | ||
|
|
b58d4c2db7 | ||
|
|
7c9945c983 | ||
|
|
efbcdb6087 | ||
|
|
00ab9d1574 | ||
|
|
2ff789c071 | ||
|
|
9df93e241a | ||
|
|
690b76ee7e | ||
|
|
ff6765de16 | ||
|
|
0368c98ae2 | ||
|
|
24c8cea759 | ||
|
|
2dbffe4a67 | ||
|
|
42c6fd2ed9 | ||
|
|
7415fec141 | ||
|
|
d218b9d9b5 | ||
|
|
06c4810f80 | ||
|
|
36d116036c | ||
|
|
ecd9d523a0 | ||
|
|
a54f4f5359 | ||
|
|
586296b91d | ||
|
|
7215b3c422 | ||
|
|
5d62ee13b8 | ||
|
|
02258e9790 | ||
|
|
a566e7421b | ||
|
|
ac2d229eac | ||
|
|
2e2a9e860c | ||
|
|
1ac36de7e1 | ||
|
|
9ced960bd2 | ||
|
|
97230bafa8 | ||
|
|
9eb6834a85 | ||
|
|
67bad75f60 | ||
|
|
edf58f7c3e | ||
|
|
f99f986d5d | ||
|
|
f37e08a901 | ||
|
|
bba617498f | ||
|
|
64de652b3d | ||
|
|
60cd61a353 | ||
|
|
36ad994a85 | ||
|
|
f281210e58 | ||
|
|
ecaed7d472 | ||
|
|
5047cc4149 | ||
|
|
21bddff129 | ||
|
|
33362d37ce | ||
|
|
adfdfa46df | ||
|
|
9c33641014 | ||
|
|
a88fcf772d | ||
|
|
70906c5e5f | ||
|
|
1ace10874c | ||
|
|
453ff1b24f | ||
|
|
73b2c3d75e | ||
|
|
4522348ad4 | ||
|
|
dd163ce00c | ||
|
|
b3b701f004 | ||
|
|
830b010428 | ||
|
|
dbc0cf602d | ||
|
|
0507010679 | ||
|
|
b954755b0e | ||
|
|
a3f36ebd51 | ||
|
|
5d750ffab7 | ||
|
|
809a944f10 | ||
|
|
7e197ad93c | ||
|
|
90ae63264c | ||
|
|
6c678095a0 | ||
|
|
9ac315b339 | ||
|
|
571dd39880 | ||
|
|
f5820f2666 | ||
|
|
73f8b82035 | ||
|
|
99773aa196 | ||
|
|
1ac6856edf | ||
|
|
7f220abfff | ||
|
|
0cdcb24cb3 | ||
|
|
1b251bddc1 | ||
|
|
dd79047240 | ||
|
|
7ec38173c4 | ||
|
|
4bd73b8d06 | ||
|
|
ea5ac087c7 | ||
|
|
af52b93347 | ||
|
|
6be03c99fa | ||
|
|
d8f6a11148 | ||
|
|
b03200f0c9 | ||
|
|
bd746ac207 | ||
|
|
0ace87b1fc | ||
|
|
2153e073e5 | ||
|
|
f9c227201d | ||
|
|
c6bcaeb78d | ||
|
|
45de7e1b30 | ||
|
|
cadfde96f0 | ||
|
|
6ef33e1091 | ||
|
|
a01376b71d | ||
|
|
d74d2dd554 | ||
|
|
62c1750ad4 | ||
|
|
863f66efa7 | ||
|
|
475e0e9959 | ||
|
|
d685ca7bed | ||
|
|
095d2336ed | ||
|
|
c91274c465 | ||
|
|
835a49ff92 | ||
|
|
777241d5dd | ||
|
|
d35f9cd4f8 | ||
|
|
b2d1a5580a | ||
|
|
c1d03046eb | ||
|
|
320230748c | ||
|
|
1dda3a99dd | ||
|
|
d05b5722a1 | ||
|
|
79f8b7fc14 | ||
|
|
a247c895e7 | ||
|
|
add8285e38 | ||
|
|
55232622e3 | ||
|
|
814ce348f0 | ||
|
|
f3eac4364a | ||
|
|
7dc87c3c32 | ||
|
|
bb3a9b335f | ||
|
|
16f05c6ca3 | ||
|
|
3241fae1ce | ||
|
|
cd75c3b449 | ||
|
|
f6fd7d1ee7 | ||
|
|
ed74935322 | ||
|
|
606493827d | ||
|
|
8b96f46ba2 | ||
|
|
6df81f61c8 | ||
|
|
e3ea5ec446 | ||
|
|
2c595ceef9 | ||
|
|
7978fad22f | ||
|
|
0998ffa8f1 | ||
|
|
443a4b8d25 | ||
|
|
e0cae7384d | ||
|
|
6b2573d1dc | ||
|
|
9b1fd2a588 | ||
|
|
007b8b98ad | ||
|
|
a542ecf3de | ||
|
|
f8d3de4001 | ||
|
|
786fed55b3 | ||
|
|
35b70e919a | ||
|
|
3db63ac4c6 | ||
|
|
87dedc2cf8 | ||
|
|
1bfeffafcf | ||
|
|
082202f76b | ||
|
|
14bbc0b3ca | ||
|
|
42b8b360f1 | ||
|
|
cc586cba21 | ||
|
|
46d1f3de49 | ||
|
|
b11556d2aa | ||
|
|
2b4fdf0687 | ||
|
|
7595fbb1af | ||
|
|
7488d7591c | ||
|
|
b2dc78c9af | ||
|
|
0268958fbc | ||
|
|
477b1215ee | ||
|
|
b6a0bb75f1 | ||
|
|
4f8c2af8c9 | ||
|
|
21fb75ef73 | ||
|
|
bc09fd58ea | ||
|
|
ba69934851 | ||
|
|
2f3643a4f6 | ||
|
|
d53cc0896f | ||
|
|
f930c10b86 | ||
|
|
3217abe6fa | ||
|
|
a8ff08ac2b | ||
|
|
0a4df2da0f | ||
|
|
73b2ac73d2 | ||
|
|
1ed97dc19d | ||
|
|
c02f928cb2 | ||
|
|
70391fbdf0 | ||
|
|
b5a9271e03 | ||
|
|
ed6c301e05 | ||
|
|
c1c444db63 | ||
|
|
4d8e2bfd8d | ||
|
|
fda08977bc | ||
|
|
c7923eb55a | ||
|
|
b14da755fd | ||
|
|
e2e0ec3c85 | ||
|
|
31ae25452b | ||
|
|
89911c0f37 | ||
|
|
5e008012f4 | ||
|
|
c464c29fb9 | ||
|
|
13459fd50a | ||
|
|
4834bc1c75 | ||
|
|
a9ecf85da8 | ||
|
|
0fb810cb03 | ||
|
|
49bebdc5fa | ||
|
|
022680f493 | ||
|
|
c95cf9a231 | ||
|
|
359e49626a | ||
|
|
02293ef864 | ||
|
|
c0cf56004c | ||
|
|
d0575271fc | ||
|
|
bd64bbba2f | ||
|
|
391de0a17a | ||
|
|
b646193917 | ||
|
|
d124bd561a | ||
|
|
ec361b5ea3 | ||
|
|
80376d3e6a | ||
|
|
67d84187b0 | ||
|
|
7babb495e3 | ||
|
|
ea1ceaa46f | ||
|
|
68e9c5428f | ||
|
|
540169148a | ||
|
|
913cf458ed | ||
|
|
b6d13595ac | ||
|
|
29bfd8ad51 | ||
|
|
3ec0384725 | ||
|
|
d7612dee66 | ||
|
|
2c80d5d0ed | ||
|
|
f595b4be79 | ||
|
|
39ed3fc17c | ||
|
|
730bffa8c2 | ||
|
|
56f49f178e | ||
|
|
54b3b675c3 | ||
|
|
175f0ca2c9 | ||
|
|
3d49ebd4a3 | ||
|
|
ac3018fd13 | ||
|
|
8015822f52 | ||
|
|
f1314d5d8c | ||
|
|
cb4f8e233e | ||
|
|
5321a58a20 | ||
|
|
4d1a74cede | ||
|
|
1f32acedb8 | ||
|
|
357873e1e6 | ||
|
|
9496c2c80c | ||
|
|
535b0a8cb2 | ||
|
|
fd0b4bd192 | ||
|
|
297db961ba | ||
|
|
9971be4c18 | ||
|
|
087766fe21 | ||
|
|
28d38c295a | ||
|
|
c2f62cfaba | ||
|
|
6c8b869279 | ||
|
|
6fb9f7705c | ||
|
|
5f519dd7f7 | ||
|
|
372a148f60 | ||
|
|
23820c0447 | ||
|
|
ac766edd14 | ||
|
|
a749513c10 | ||
|
|
f00a7d3ba2 | ||
|
|
cdb586ad15 | ||
|
|
e9ff6f4d2d | ||
|
|
15a5ae6ce4 | ||
|
|
07a6125d1e | ||
|
|
3a0b0544d8 | ||
|
|
66c678419d | ||
|
|
670a175206 | ||
|
|
79623f2eb3 | ||
|
|
e43b9b6f75 | ||
|
|
31bc54ef13 | ||
|
|
3db640d681 | ||
|
|
b8d228e228 | ||
|
|
090aa9b441 | ||
|
|
5f5b177c59 | ||
|
|
4add89cab2 | ||
|
|
b1133fc9b8 | ||
|
|
4c9178d948 | ||
|
|
2aa9d968b6 | ||
|
|
4034e52c6d | ||
|
|
406400de43 | ||
|
|
f9fbfc8e62 | ||
|
|
3496da6625 | ||
|
|
31b8ef7afb | ||
|
|
a5d64f255a | ||
|
|
f2e593a8c0 |
23
CHANGELOG
23
CHANGELOG
@@ -1,20 +1,13 @@
|
||||
OpenELEC (Version 2.1)
|
||||
OpenELEC CHANGELOG
|
||||
==================
|
||||
|
||||
Changelog OpenELEC-2.0 to OpenELEC-2.1
|
||||
To view recent changes/commits to the project (master branch) please visit:
|
||||
|
||||
Added packages:
|
||||
- add package 'ppp'
|
||||
- add package 'pptp'
|
||||
https://github.com/OpenELEC/OpenELEC.tv/commits/master
|
||||
|
||||
Package updates:
|
||||
- update linux to linux-3.5
|
||||
- update dialog to dialog-1.1-20120215
|
||||
- update connman to connman-1.4
|
||||
To compare commits between versions use a formatted URL like:
|
||||
|
||||
Added functions:
|
||||
- sshd can be enabled via OpenELEC Settings addon
|
||||
- add PPTP support
|
||||
https://github.com/OpenELEC/OpenELEC.tv/compare/3.2.3...3.2.4
|
||||
|
||||
Changed functions:
|
||||
|
||||
Removed functions:
|
||||
If you have questions on differences between releases please ask them in the
|
||||
OpenELEC website forums or IRC support channel.
|
||||
|
||||
2
Makefile
2
Makefile
@@ -1,6 +1,6 @@
|
||||
BUILD_DIRS=build.*
|
||||
|
||||
all: system
|
||||
all: release
|
||||
|
||||
system:
|
||||
./scripts/image
|
||||
|
||||
1
TODO
1
TODO
@@ -6,4 +6,3 @@ irserver:
|
||||
|
||||
settings addon:
|
||||
- remove ps3 sleep? should be fixed in bluez 5.13/5.14
|
||||
- move LCDd to services
|
||||
|
||||
@@ -193,3 +193,7 @@ BUILD_INDENT_SIZE=4
|
||||
|
||||
# multilib? nah
|
||||
unset CONFIG_SITE
|
||||
|
||||
# meh suse
|
||||
unset PYTHONSTARTUP
|
||||
unset PYTHONPATH
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# VERSION: set full version, use "devel" for development version
|
||||
OPENELEC_VERSION="devel"
|
||||
OPENELEC_VERSION="3.95.6"
|
||||
|
||||
# OS_VERSION: OS Version
|
||||
OS_VERSION="4.0"
|
||||
|
||||
55
packages/3rdparty/multimedia/vdr-dummydevice/package.mk
vendored
Normal file
55
packages/3rdparty/multimedia/vdr-dummydevice/package.mk
vendored
Normal file
@@ -0,0 +1,55 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# OpenELEC is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="vdr-dummydevice"
|
||||
PKG_VERSION="2.0.0"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://www.vdr-wiki.de/wiki/index.php/Dummydevice-plugin"
|
||||
PKG_URL="http://phivdr.dyndns.org/vdr/$PKG_NAME/$PKG_NAME-$PKG_VERSION.tgz"
|
||||
PKG_SOURCE_DIR="dummydevice-${PKG_VERSION}"
|
||||
PKG_DEPENDS_TARGET="toolchain vdr"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="multimedia"
|
||||
PKG_SHORTDESC="vdr dummydevice plugin"
|
||||
PKG_LONGDESC="vdr dummydevice plugin"
|
||||
|
||||
PKG_IS_ADDON="no"
|
||||
PKG_AUTORECONF="no"
|
||||
|
||||
pre_configure_target() {
|
||||
export CFLAGS="$CFLAGS -fPIC"
|
||||
export CXXFLAGS="$CXXFLAGS -fPIC"
|
||||
export LDFLAGS="$LDFLAGS -fPIC"
|
||||
}
|
||||
|
||||
make_target() {
|
||||
VDR_DIR=$(get_build_dir vdr)
|
||||
make VDRDIR=$VDR_DIR \
|
||||
LIBDIR="." \
|
||||
LOCALEDIR="./locale"
|
||||
}
|
||||
|
||||
post_make_target() {
|
||||
$STRIP libvdr-*.so*
|
||||
}
|
||||
|
||||
makeinstall_target() {
|
||||
: # installation not needed, done by create-addon script
|
||||
}
|
||||
46
packages/3rdparty/multimedia/vdr-dummydevice/patches/vdr-dummydevice-01_makefile.patch
vendored
Normal file
46
packages/3rdparty/multimedia/vdr-dummydevice/patches/vdr-dummydevice-01_makefile.patch
vendored
Normal file
@@ -0,0 +1,46 @@
|
||||
diff --git a/Makefile b/Makefile
|
||||
index dc959f1..5cb2315 100644
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -15,22 +15,15 @@ VERSION = $(shell grep 'static const char \*VERSION *=' $(PLUGIN).c | awk '{ pri
|
||||
|
||||
### The directory environment:
|
||||
|
||||
-# Use package data if installed...otherwise assume we're under the VDR source directory:
|
||||
-PKGCFG = $(if $(VDRDIR),$(shell pkg-config --variable=$(1) $(VDRDIR)/vdr.pc),$(shell pkg-config --variable=$(1) vdr || pkg-config --variable=$(1) ../../../vdr.pc))
|
||||
-LIBDIR = $(call PKGCFG,libdir)
|
||||
-LOCDIR = $(call PKGCFG,locdir)
|
||||
-PLGCFG = $(call PKGCFG,plgcfg)
|
||||
-#
|
||||
TMPDIR ?= /tmp
|
||||
|
||||
### The compiler options:
|
||||
|
||||
-export CFLAGS = $(call PKGCFG,cflags)
|
||||
-export CXXFLAGS = $(call PKGCFG,cxxflags)
|
||||
+include $(VDRDIR)/Make.global
|
||||
|
||||
### The version number of VDR's plugin API:
|
||||
|
||||
-APIVERSION = $(call PKGCFG,apiversion)
|
||||
+APIVERSION = $(shell sed -ne '/define APIVERSION/s/^.*"\(.*\)".*$$/\1/p' $(VDRDIR)/config.h)
|
||||
|
||||
### Allow user defined options to overwrite defaults:
|
||||
|
||||
@@ -47,7 +40,7 @@ SOFILE = libvdr-$(PLUGIN).so
|
||||
|
||||
### Includes and Defines (add further entries here):
|
||||
|
||||
-INCLUDES +=
|
||||
+INCLUDES += -I$(VDRDIR)/include
|
||||
|
||||
DEFINES += -DPLUGIN_NAME_I18N='"$(PLUGIN)"'
|
||||
|
||||
@@ -103,6 +96,7 @@ install-i18n: $(I18Nmsgs)
|
||||
|
||||
$(SOFILE): $(OBJS)
|
||||
$(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(OBJS) -o $@
|
||||
+ @cp --remove-destination $@ $(LIBDIR)/$@.$(APIVERSION)
|
||||
|
||||
install-lib: $(SOFILE)
|
||||
install -D $^ $(DESTDIR)$(LIBDIR)/$^.$(APIVERSION)
|
||||
@@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="vdr-iptv"
|
||||
PKG_VERSION="2.1.0"
|
||||
PKG_VERSION="2.1.2"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
diff --git a/Makefile b/Makefile
|
||||
index 74f8b09..db294fc 100644
|
||||
index 48c8b2c..d370f92 100644
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -12,8 +12,6 @@
|
||||
@@ -11,7 +11,7 @@ index 74f8b09..db294fc 100644
|
||||
# The official name of this plugin.
|
||||
# This name will be used in the '-P...' option of VDR to load the plugin.
|
||||
# By default the main source file also carries this name.
|
||||
@@ -27,23 +25,15 @@ GITTAG = $(shell git describe --always 2>/dev/null)
|
||||
@@ -27,24 +25,15 @@ GITTAG = $(shell git describe --always 2>/dev/null)
|
||||
|
||||
### The directory environment:
|
||||
|
||||
@@ -20,6 +20,7 @@ index 74f8b09..db294fc 100644
|
||||
-LIBDIR = $(call PKGCFG,libdir)
|
||||
-LOCDIR = $(call PKGCFG,locdir)
|
||||
-PLGCFG = $(call PKGCFG,plgcfg)
|
||||
-RESDIR = $(call PKGCFG,resdir)
|
||||
-CFGDIR = $(call PKGCFG,configdir)
|
||||
-#
|
||||
TMPDIR ?= /tmp
|
||||
@@ -37,7 +38,7 @@ index 74f8b09..db294fc 100644
|
||||
|
||||
### Allow user defined options to overwrite defaults:
|
||||
|
||||
@@ -64,7 +54,7 @@ LIBS = $(shell curl-config --libs)
|
||||
@@ -65,7 +54,7 @@ LIBS = $(shell curl-config --libs)
|
||||
|
||||
### Includes and Defines (add further entries here):
|
||||
|
||||
@@ -46,7 +47,7 @@ index 74f8b09..db294fc 100644
|
||||
|
||||
DEFINES += -DPLUGIN_NAME_I18N='"$(PLUGIN)"'
|
||||
|
||||
@@ -138,6 +128,7 @@ install-i18n: $(I18Nmsgs)
|
||||
@@ -139,6 +128,7 @@ install-i18n: $(I18Nmsgs)
|
||||
|
||||
$(SOFILE): $(OBJS)
|
||||
$(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(OBJS) $(LIBS) -o $@
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="vdr-plugin-dvbapi"
|
||||
PKG_VERSION="a3b4a5a"
|
||||
PKG_VERSION="bf11f9e"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
||||
@@ -1,8 +1,12 @@
|
||||
diff --git a/Makefile b/Makefile
|
||||
index a49dda6..873e73d 100644
|
||||
index efd124a..ed303fa 100644
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -16,18 +16,11 @@ GITTAG = $(shell git describe --always 2>/dev/null)
|
||||
@@ -12,22 +12,14 @@ PLUGIN = dvbapi
|
||||
### The version number of this plugin (taken from the main source file):
|
||||
|
||||
VERSION = $(shell grep 'static const char \*VERSION *=' DVBAPI.h | awk '{ print $$6 }' | sed -e 's/[";]//g')
|
||||
-GITTAG = $(shell git describe --always 2>/dev/null)
|
||||
|
||||
### The directory environment:
|
||||
|
||||
@@ -22,7 +26,7 @@ index a49dda6..873e73d 100644
|
||||
|
||||
### Allow user defined options to overwrite defaults:
|
||||
|
||||
@@ -35,7 +28,7 @@ export CXXFLAGS = $(call PKGCFG,cxxflags)
|
||||
@@ -35,7 +27,7 @@ export CXXFLAGS = $(call PKGCFG,cxxflags)
|
||||
|
||||
### The version number of VDR's plugin API:
|
||||
|
||||
@@ -31,7 +35,7 @@ index a49dda6..873e73d 100644
|
||||
|
||||
### The name of the distribution archive:
|
||||
|
||||
@@ -48,7 +41,7 @@ SOFILE = libvdr-$(PLUGIN).so
|
||||
@@ -48,7 +40,7 @@ SOFILE = libvdr-$(PLUGIN).so
|
||||
|
||||
### Includes and Defines (add further entries here):
|
||||
|
||||
@@ -40,7 +44,7 @@ index a49dda6..873e73d 100644
|
||||
|
||||
DEFINES += -DPLUGIN_NAME_I18N='"$(PLUGIN)"'
|
||||
|
||||
@@ -122,6 +115,7 @@ install-i18n: $(I18Nmsgs)
|
||||
@@ -122,6 +114,7 @@ install-i18n: $(I18Nmsgs)
|
||||
|
||||
$(SOFILE): $(OBJS) $(FFDECSA)
|
||||
$(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(OBJS) $(DECSALIB) -o $@
|
||||
|
||||
@@ -16,35 +16,27 @@
|
||||
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="vdr-sc"
|
||||
PKG_VERSION="620"
|
||||
PKG_NAME="vdr-plugin-eepg"
|
||||
PKG_VERSION="69b47ba"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://85.17.209.13:6100/"
|
||||
PKG_SITE="http://projects.vdr-developer.org/projects/plg-eepg"
|
||||
PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.xz"
|
||||
PKG_DEPENDS_TARGET="toolchain vdr openssl"
|
||||
PKG_DEPENDS_TARGET="toolchain vdr"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="multimedia"
|
||||
PKG_SHORTDESC="TV"
|
||||
PKG_LONGDESC="TV"
|
||||
PKG_SHORTDESC="vdr-plugin-eepg"
|
||||
PKG_LONGDESC="This plugin parses the Extended (2 to 10 day) EPG data which is send by providers on their portal channels. This EEPG data is transmitted in a non-standard format on a non-standard PID."
|
||||
|
||||
PKG_IS_ADDON="no"
|
||||
|
||||
PKG_AUTORECONF="no"
|
||||
|
||||
pre_make_target() {
|
||||
# dont build parallel
|
||||
MAKEFLAGS=-j1
|
||||
}
|
||||
|
||||
pre_configure_target() {
|
||||
# vdr-sc fails building with LTO support
|
||||
strip_lto
|
||||
export CFLAGS="$CFLAGS -fPIC"
|
||||
export CXXFLAGS="$CXXFLAGS -fPIC"
|
||||
export LDFLAGS="$LDFLAGS -fPIC"
|
||||
export CSAFLAGS="$CFLAGS -Wall -fomit-frame-pointer -fexpensive-optimizations -funroll-loops"
|
||||
}
|
||||
|
||||
make_target() {
|
||||
34
packages/3rdparty/multimedia/vdr-plugin-eepg/patches/vdr-plugin-eepg-01_makefile.patch
vendored
Normal file
34
packages/3rdparty/multimedia/vdr-plugin-eepg/patches/vdr-plugin-eepg-01_makefile.patch
vendored
Normal file
@@ -0,0 +1,34 @@
|
||||
--- vdr-plugin-eepg-master/Makefile 2014-03-11 15:44:36.675368020 +0000
|
||||
+++ vdr-plugin-eepg-master/Makefile 2014-03-11 15:51:02.065495474 +0000
|
||||
@@ -31,21 +31,16 @@
|
||||
### The directory environment:
|
||||
|
||||
# Use package data if installed...otherwise assume we're under the VDR source directory:
|
||||
-PKGCFG = $(if $(VDRDIR),$(shell pkg-config --variable=$(1) $(VDRDIR)/vdr.pc),$(shell PKG_CONFIG_PATH="$$PKG_CONFIG_PATH:../../.." pkg-config --variable=$(1) vdr))
|
||||
-LIBDIR = $(call PKGCFG,libdir)
|
||||
-LOCDIR = $(call PKGCFG,locdir)
|
||||
-PLGCFG = $(call PKGCFG,plgcfg)
|
||||
#
|
||||
TMPDIR ?= /tmp
|
||||
|
||||
### The compiler options:
|
||||
|
||||
-export CFLAGS = $(call PKGCFG,cflags)
|
||||
-export CXXFLAGS = $(call PKGCFG,cxxflags)
|
||||
+include $(VDRDIR)/Make.global
|
||||
|
||||
### The version number of VDR's plugin API:
|
||||
|
||||
-APIVERSION = $(call PKGCFG,apiversion)
|
||||
+APIVERSION = $(shell sed -ne '/define APIVERSION/s/^.*"\(.*\)".*$$/\1/p' $(VDRDIR)/config.h)
|
||||
|
||||
### Allow user defined options to overwrite defaults:
|
||||
|
||||
@@ -119,6 +114,7 @@
|
||||
|
||||
$(SOFILE): $(OBJS)
|
||||
$(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(OBJS) -o $@
|
||||
+ @cp --remove-destination $@ $(LIBDIR)/$@.$(APIVERSION)
|
||||
|
||||
install-lib: $(SOFILE)
|
||||
install -D $^ $(DESTDIR)$(LIBDIR)/$^.$(APIVERSION)
|
||||
@@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="vdr-plugin-vnsiserver"
|
||||
PKG_VERSION="e5f02b6"
|
||||
PKG_VERSION="a3f7ac5"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
||||
@@ -2,15 +2,6 @@ diff --git a/Makefile b/Makefile
|
||||
index 8f37c92..94869aa 100644
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -7,7 +7,7 @@
|
||||
# This name will be used in the '-P...' option of VDR to load the plugin.
|
||||
# By default the main source file also carries this name.
|
||||
|
||||
-PLUGIN = vnsiserver5
|
||||
+PLUGIN = vnsiserver
|
||||
|
||||
### The version number of this plugin (taken from the main source file):
|
||||
|
||||
@@ -16,30 +16,18 @@ VERSION = $(shell grep 'static const char \*VERSION *=' vnsi.h | awk '{ print $$
|
||||
### The directory environment:
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="vdr-plugin-xvdr"
|
||||
PKG_VERSION="7d6ebb7"
|
||||
PKG_VERSION="7f49bfa"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
||||
52
packages/3rdparty/multimedia/vdr-satip/package.mk
vendored
Normal file
52
packages/3rdparty/multimedia/vdr-satip/package.mk
vendored
Normal file
@@ -0,0 +1,52 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# OpenELEC is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="vdr-satip"
|
||||
PKG_VERSION="0.2.0"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://www.saunalahti.fi/~rahrenbe/vdr/satip/"
|
||||
PKG_URL="http://www.saunalahti.fi/~rahrenbe/vdr/satip/files/$PKG_NAME-$PKG_VERSION.tgz"
|
||||
PKG_SOURCE_DIR="satip-${PKG_VERSION}"
|
||||
PKG_DEPENDS_TARGET="toolchain vdr curl tinyxml"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="multimedia"
|
||||
PKG_SHORTDESC="vdr-satip: SAT>IP plugin for VDR"
|
||||
PKG_LONGDESC="vdr-satip is a SAT>IP plugin for VDR"
|
||||
|
||||
PKG_IS_ADDON="no"
|
||||
PKG_AUTORECONF="no"
|
||||
|
||||
pre_configure_target() {
|
||||
export CFLAGS="$CFLAGS -fPIC"
|
||||
export CXXFLAGS="$CXXFLAGS -fPIC"
|
||||
export LDFLAGS="$LDFLAGS -fPIC"
|
||||
}
|
||||
|
||||
make_target() {
|
||||
VDR_DIR=$(get_build_dir vdr)
|
||||
make VDRDIR=$VDR_DIR \
|
||||
SATIP_USE_TINYXML=1 \
|
||||
LIBDIR="." \
|
||||
LOCALEDIR="./locale"
|
||||
}
|
||||
|
||||
makeinstall_target() {
|
||||
: # installation not needed, done by create-addon script
|
||||
}
|
||||
56
packages/3rdparty/multimedia/vdr-satip/patches/vdr-satip-01_makefile.patch
vendored
Normal file
56
packages/3rdparty/multimedia/vdr-satip/patches/vdr-satip-01_makefile.patch
vendored
Normal file
@@ -0,0 +1,56 @@
|
||||
diff --git a/Makefile b/Makefile
|
||||
index 524338c..0569ebe 100644
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -12,8 +12,6 @@
|
||||
|
||||
# Strip debug symbols? Set eg. to /bin/true if not
|
||||
|
||||
-STRIP = strip
|
||||
-
|
||||
# The official name of this plugin.
|
||||
# This name will be used in the '-P...' option of VDR to load the plugin.
|
||||
# By default the main source file also carries this name.
|
||||
@@ -27,23 +25,15 @@ GITTAG = $(shell git describe --always 2>/dev/null)
|
||||
|
||||
### The directory environment:
|
||||
|
||||
-# Use package data if installed...otherwise assume we're under the VDR source directory:
|
||||
-PKGCFG = $(if $(VDRDIR),$(shell pkg-config --variable=$(1) $(VDRDIR)/vdr.pc),$(shell PKG_CONFIG_PATH="$$PKG_CONFIG_PATH:../../.." pkg-config --variable=$(1) vdr))
|
||||
-LIBDIR = $(call PKGCFG,libdir)
|
||||
-LOCDIR = $(call PKGCFG,locdir)
|
||||
-PLGCFG = $(call PKGCFG,plgcfg)
|
||||
-CFGDIR = $(call PKGCFG,configdir)
|
||||
-#
|
||||
TMPDIR ?= /tmp
|
||||
|
||||
### The compiler options:
|
||||
|
||||
-export CFLAGS = $(call PKGCFG,cflags)
|
||||
-export CXXFLAGS = $(call PKGCFG,cxxflags)
|
||||
+include $(VDRDIR)/Make.global
|
||||
|
||||
### The version number of VDR's plugin API:
|
||||
|
||||
-APIVERSION = $(call PKGCFG,apiversion)
|
||||
+APIVERSION = $(shell sed -ne '/define APIVERSION/s/^.*"\(.*\)".*$$/\1/p' $(VDRDIR)/config.h)
|
||||
|
||||
### Allow user defined options to overwrite defaults:
|
||||
|
||||
@@ -64,7 +54,7 @@ LIBS = $(shell curl-config --libs)
|
||||
|
||||
### Includes and Defines (add further entries here):
|
||||
|
||||
-INCLUDES +=
|
||||
+INCLUDES += -I$(VDRDIR)/include
|
||||
|
||||
DEFINES += -DPLUGIN_NAME_I18N='"$(PLUGIN)"'
|
||||
|
||||
@@ -139,6 +129,7 @@ install-i18n: $(I18Nmsgs)
|
||||
|
||||
$(SOFILE): $(OBJS)
|
||||
$(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(OBJS) $(LIBS) -o $@
|
||||
+ @cp --remove-destination $@ $(LIBDIR)/$@.$(APIVERSION)
|
||||
ifndef SATIP_DEBUG
|
||||
@$(STRIP) $@
|
||||
endif
|
||||
@@ -1,12 +0,0 @@
|
||||
diff -Naur vdr-sc-603/Makefile vdr-sc-603.patch/Makefile
|
||||
--- vdr-sc-603/Makefile 2011-12-24 04:02:53.000000000 +0100
|
||||
+++ vdr-sc-603.patch/Makefile 2011-12-29 18:57:21.660586103 +0100
|
||||
@@ -213,7 +213,7 @@
|
||||
@cp -p $< $@
|
||||
|
||||
$(FFDECSA) $(FFDECSATEST): $(FFDECSADIR)/*.c $(FFDECSADIR)/*.h
|
||||
- @$(MAKE) COMPILER="$(CXX)" FLAGS="$(CSAFLAGS) -march=$(CPUOPT)" PARALLEL_MODE=$(PARALLEL) -C $(FFDECSADIR) all
|
||||
+ @$(MAKE) COMPILER="$(CXX)" FLAGS="$(CSAFLAGS)" PARALLEL_MODE=$(PARALLEL) -C $(FFDECSADIR) FFdecsa.o
|
||||
|
||||
$(I18Npot): $(shell grep -rl '\(tr\|trNOOP\)(\".*\")' *.c $(SYSDIR))
|
||||
xgettext -C -cTRANSLATORS --no-wrap --no-location -k -ktr -ktrNOOP --msgid-bugs-address='<noone@nowhere.org>' -o $@ `ls $^`
|
||||
@@ -1,31 +0,0 @@
|
||||
diff --git a/device.c b/device.c
|
||||
index 04bbef1..e6d63aa 100644
|
||||
--- a/device.c
|
||||
+++ b/device.c
|
||||
@@ -357,7 +357,7 @@ bool cScDevices::Initialize(void)
|
||||
*vdr_nci=0; *vdr_ud=vdr_save_ud;
|
||||
|
||||
int i, found=0;
|
||||
- for(i=0; i<MAXDVBDEVICES; i++) {
|
||||
+ for(i=0; i<MAXDEVICES; i++) {
|
||||
if(UseDevice(NextCardIndex())) {
|
||||
char name[128];
|
||||
cScDevices::DvbName(DEV_DVB_FRONTEND,i,0,name,sizeof(name));
|
||||
@@ -382,7 +382,7 @@ bool cScDevices::Initialize(void)
|
||||
}
|
||||
else NextCardIndex(1);
|
||||
}
|
||||
- NextCardIndex(MAXDVBDEVICES-i);
|
||||
+ NextCardIndex(MAXDEVICES-i);
|
||||
if(found>0) PRINTF(L_GEN_INFO,"captured %d video device%s",found,found>1 ? "s" : "");
|
||||
else PRINTF(L_GEN_INFO,"no DVB device captured");
|
||||
return found>0;
|
||||
@@ -411,7 +411,7 @@ void cScDevices::Shutdown(void)
|
||||
|
||||
void cScDevices::SetForceBudget(int n)
|
||||
{
|
||||
- if(n>=0 && n<MAXDVBDEVICES) budget|=(1<<n);
|
||||
+ if(n>=0 && n<MAXDEVICES) budget|=(1<<n);
|
||||
}
|
||||
|
||||
bool cScDevices::ForceBudget(int n)
|
||||
@@ -1,73 +0,0 @@
|
||||
## source: http://overlays.gentoo.org/svn/proj/vdr/vdr-devel/media-plugins/vdr-sc/files/
|
||||
|
||||
diff -r 29b7b5f231c8 cam.c
|
||||
--- a/cam.c Sat Jul 21 20:51:33 2012 +0200
|
||||
+++ b/cam.c Wed Jan 08 16:47:38 2014 +0400
|
||||
@@ -1841,7 +1841,7 @@
|
||||
cScCamSlot(cCam *Cam, const char *DevId, int Slot);
|
||||
void Process(const unsigned char *data, int len);
|
||||
eModuleStatus Status(void);
|
||||
- bool Reset(bool log=true);
|
||||
+ bool ResetSlot(bool log=true);
|
||||
cCiFrame *Frame(void) { return &frame; }
|
||||
};
|
||||
|
||||
@@ -1853,7 +1853,7 @@
|
||||
cam=Cam; devId=DevId; slot=Slot;
|
||||
version=0; caids[0]=0; doReply=false; lastStatus=msReset;
|
||||
frame.SetRb(&rb);
|
||||
- Reset(false);
|
||||
+ ResetSlot(false);
|
||||
}
|
||||
|
||||
eModuleStatus cScCamSlot::Status(void)
|
||||
@@ -1876,7 +1876,7 @@
|
||||
return status;
|
||||
}
|
||||
|
||||
-bool cScCamSlot::Reset(bool log)
|
||||
+bool cScCamSlot::ResetSlot(bool log)
|
||||
{
|
||||
reset=true; resetTimer.Set(SLOT_RESET_TIME);
|
||||
rb.Clear();
|
||||
@@ -1890,7 +1890,7 @@
|
||||
bool dr=cam->IsSoftCSA(false) || ScSetup.ConcurrentFF>0;
|
||||
if(dr!=doReply && !IsDecrypting()) {
|
||||
PRINTF(L_CORE_CI,"%s.%d: doReply changed, reset triggered",devId,slot);
|
||||
- Reset(false);
|
||||
+ ResetSlot(false);
|
||||
doReply=dr;
|
||||
}
|
||||
if(checkTimer.TimedOut()) {
|
||||
@@ -2330,7 +2330,7 @@
|
||||
{
|
||||
cMutexLock lock(&ciMutex);
|
||||
PRINTF(L_CORE_CI,"%s: reset of slot %d requested",devId,Slot);
|
||||
- return slots[Slot] ? slots[Slot]->Reset():false;
|
||||
+ return slots[Slot] ? slots[Slot]->ResetSlot():false;
|
||||
}
|
||||
|
||||
eModuleStatus cCam::ModuleStatus(int Slot)
|
||||
--- a/device-tmpl.c 2012-07-21 20:51:33.000000000 +0200
|
||||
+++ b/device-tmpl.c 2014-01-26 13:51:59.000000000 +0100
|
||||
@@ -41,7 +41,6 @@
|
||||
#endif //!SASC
|
||||
protected:
|
||||
#ifndef SASC
|
||||
- virtual bool Ready(void);
|
||||
virtual bool SetPid(cPidHandle *Handle, int Type, bool On);
|
||||
virtual bool SetChannelDevice(const cChannel *Channel, bool LiveView);
|
||||
virtual bool OpenDvr(void);
|
||||
@@ -164,12 +163,6 @@
|
||||
return cam || hwciadapter;
|
||||
}
|
||||
|
||||
-bool SCDEVICE::Ready(void)
|
||||
-{
|
||||
- return (cam ? cam->Ready():true) &&
|
||||
- (hwciadapter ? hwciadapter->Ready():true);
|
||||
-}
|
||||
-
|
||||
bool SCDEVICE::SetPid(cPidHandle *Handle, int Type, bool On)
|
||||
{
|
||||
if(cam) cam->SetPid(Type,Handle->pid,On);
|
||||
2
packages/3rdparty/multimedia/vdr/package.mk
vendored
2
packages/3rdparty/multimedia/vdr/package.mk
vendored
@@ -18,7 +18,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="vdr"
|
||||
PKG_VERSION="2.1.5"
|
||||
PKG_VERSION="2.1.6"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
||||
@@ -1,27 +0,0 @@
|
||||
From 092b87b7789206f041de68016fb9a900577a6681 Mon Sep 17 00:00:00 2001
|
||||
From: Stefan Saraev <stefan@saraev.ca>
|
||||
Date: Sun, 13 Oct 2013 20:40:36 +0300
|
||||
Subject: [PATCH] no locale support
|
||||
|
||||
---
|
||||
vdr.c | 4 ----
|
||||
1 files changed, 0 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/vdr.c b/vdr.c
|
||||
index ba59f07..c1b0541 100644
|
||||
--- a/vdr.c
|
||||
+++ b/vdr.c
|
||||
@@ -637,10 +637,6 @@ int main(int argc, char *argv[])
|
||||
cCharSetConv::SetSystemCharacterTable(CodeSet);
|
||||
}
|
||||
|
||||
- // Initialize internationalization:
|
||||
-
|
||||
- I18nInitialize(LocaleDirectory);
|
||||
-
|
||||
// Main program loop variables - need to be here to have them initialized before any EXIT():
|
||||
|
||||
cEpgDataReader EpgDataReader;
|
||||
--
|
||||
1.7.2.5
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
4.1.5
|
||||
dont touch /storage/.profile
|
||||
4.1.4
|
||||
enable hw pid filter by default
|
||||
4.1.3
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
|
||||
PKG_NAME="sundtek-mediatv"
|
||||
PKG_VERSION="4.1"
|
||||
PKG_REV="4"
|
||||
PKG_REV="5"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="nonfree"
|
||||
PKG_SITE="http://support.sundtek.com/"
|
||||
@@ -49,6 +49,8 @@ make_target() {
|
||||
esac
|
||||
wget -O installer.tar.gz $INSTALLER_URL
|
||||
tar -xzf installer.tar.gz
|
||||
# we run this via wrapper
|
||||
mv opt/bin/mediaclient opt/bin/mediaclient.bin
|
||||
chmod 755 opt/bin/*
|
||||
}
|
||||
|
||||
|
||||
2
packages/addons/driver/sundtek-mediatv/source/bin/mediaclient
Executable file
2
packages/addons/driver/sundtek-mediatv/source/bin/mediaclient
Executable file
@@ -0,0 +1,2 @@
|
||||
#!/bin/sh
|
||||
LD_PRELOAD=/storage/.xbmc/addons/driver.dvb.sundtek-mediatv/lib/libmediaclient.so exec mediaclient.bin "$@"
|
||||
@@ -73,17 +73,6 @@ mkdir -p /var/config
|
||||
cat "$SUNDTEK_ADDON_SETTINGS" | awk -F\" '{print $2"=\""$4"\""}' | sed '/^=/d' > /var/config/sundtek-addon.conf
|
||||
. /var/config/sundtek-addon.conf
|
||||
|
||||
# add alias for /opt/bin/mediaclient
|
||||
alias_set="$(grep libmediaclient.so /storage/.profile 2>/dev/null)"
|
||||
if [ -z "$alias_set" ]; then
|
||||
echo "" >>/storage/.profile
|
||||
echo "[ -f /storage/.xbmc/addons/driver.dvb.sundtek-mediatv/lib/libmediaclient.so ] && export LD_PRELOAD=/storage/.xbmc/addons/driver.dvb.sundtek-mediatv/lib/libmediaclient.so" >>/storage/.profile
|
||||
echo "" >>/storage/.profile
|
||||
else
|
||||
# fix name
|
||||
sed -i 's|/driver.dvb.sundtek/|/driver.dvb.sundtek-mediatv/|g' /storage/.profile
|
||||
fi
|
||||
|
||||
export LD_PRELOAD=$SUNDTEK_ADDON_DIR/lib/libmediaclient.so
|
||||
|
||||
if [ -z "$(pidof mediasrv)" ]; then
|
||||
@@ -240,7 +229,7 @@ if [ -z "$(pidof mediasrv)" ]; then
|
||||
# save adapter serial number in background
|
||||
sleep 5
|
||||
serial_number_old=$(cat $SUNDTEK_ADDON_HOME/adapters.txt 2>/dev/null)
|
||||
serial_number_new=$(mediaclient -e | awk '/device / {print $0} /ID:/ {print $2}')
|
||||
serial_number_new=$(mediaclient.bin -e | awk '/device / {print $0} /ID:/ {print $2}')
|
||||
if [ "$serial_number_old" != "$serial_number_new" ]; then
|
||||
echo "$serial_number_new" >$SUNDTEK_ADDON_HOME/adapters.txt
|
||||
fi
|
||||
|
||||
@@ -25,7 +25,7 @@ __cwd__ = __settings__.getAddonInfo('path')
|
||||
__resources_lib__ = xbmc.translatePath(os.path.join(__cwd__, 'resources', 'lib'))
|
||||
__settings_xml__ = xbmc.translatePath(os.path.join(__cwd__, 'resources', 'settings.xml'))
|
||||
|
||||
__mediaclient__ = xbmc.translatePath(os.path.join(__cwd__, 'bin', 'mediaclient'))
|
||||
__mediaclient__ = xbmc.translatePath(os.path.join(__cwd__, 'bin', 'mediaclient.bin'))
|
||||
__ld_preload__ = xbmc.translatePath(os.path.join(__cwd__, 'lib', 'libmediaclient.so'))
|
||||
__mediaclient_e__ = 'LD_PRELOAD=' + __ld_preload__ + ' ' + __mediaclient__ + ' -e'
|
||||
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
4.1.2
|
||||
- fix issues with "wait for frontend init". thanks @sraue
|
||||
|
||||
4.1.1
|
||||
- rebuild to fix curl/gnutls/ssl
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
|
||||
PKG_NAME="tvheadend"
|
||||
PKG_VERSION="3.4.27"
|
||||
PKG_REV="1"
|
||||
PKG_REV="2"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://www.lonelycoder.com/hts/tvheadend_overview.html"
|
||||
|
||||
@@ -73,10 +73,13 @@ for driver_dvb in $(find /storage/.xbmc/addons/driver.dvb.*/bin/userspace-driver
|
||||
done
|
||||
|
||||
# (wait for) at least 1 adapter (xbmc allows to set 0)
|
||||
# xbmc allows "numeric" type field to be empty. lets handle thaat
|
||||
[ "$NUM_ADAPTERS" = "" ] && NUM_ADAPTERS=1
|
||||
# 0 does not make sense. should be 1 or more
|
||||
[ $NUM_ADAPTERS -lt 1 ] && NUM_ADAPTERS=1
|
||||
if [ "$WAIT_FOR_FEINIT" == "true" ] ; then
|
||||
while [ true ] ; do
|
||||
if [ -e /dev/dvb/adapter$((NUM_ADAPTERS-1))/frontend* ] ; then
|
||||
if [ -e /dev/dvb/adapter$((NUM_ADAPTERS-1))/frontend0 ] ; then
|
||||
break
|
||||
fi
|
||||
sleep 1
|
||||
|
||||
@@ -1,3 +1,21 @@
|
||||
4.1.6
|
||||
- update to vdr-2.1.6
|
||||
- add plugin 'vdr-dummydevice'
|
||||
- add plugin 'vdr-satip'
|
||||
- remove plugin: 'sc'
|
||||
- update to vdr-iptv-2.1.2
|
||||
- update to vdr-plugin-xvdr-7f49bfa
|
||||
- update to vdr-plugin-vnsiserver-a3f7ac5
|
||||
- update to vdr-plugin-dvbapi-bf11f9e
|
||||
|
||||
4.1.5
|
||||
- fix issues with "wait for frontend init". thanks @sraue
|
||||
|
||||
4.1.4
|
||||
- add plugin 'vdr-plugin-eepg'
|
||||
- update to vdr-plugin-xvdr-4a9d95e
|
||||
- update to vdr-plugin-dvbapi-a9b738e
|
||||
|
||||
4.1.3
|
||||
- update to vdr-2.1.5
|
||||
- update to vdr-iptv-2.1.0
|
||||
|
||||
@@ -19,12 +19,12 @@
|
||||
|
||||
PKG_NAME="vdr-addon"
|
||||
PKG_VERSION="4.1"
|
||||
PKG_REV="3"
|
||||
PKG_REV="6"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://www.openelec.tv"
|
||||
PKG_URL=""
|
||||
PKG_DEPENDS_TARGET="toolchain attr libcap vdr vdr-plugin-xvdr vdr-plugin-vnsiserver vdr-iptv vdr-wirbelscan vdr-wirbelscancontrol vdr-sc vdr-plugin-dvbapi vdr-plugin-streamdev vdr-live vdr-control vdr-epgsearch vdr-plugin-xmltv2vdr"
|
||||
PKG_DEPENDS_TARGET="toolchain attr libcap vdr vdr-plugin-xvdr vdr-plugin-vnsiserver vdr-iptv vdr-wirbelscan vdr-wirbelscancontrol vdr-plugin-dvbapi vdr-plugin-streamdev vdr-live vdr-control vdr-epgsearch vdr-plugin-xmltv2vdr vdr-plugin-eepg vdr-dummydevice vdr-satip"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="service.multimedia"
|
||||
PKG_SHORTDESC="vdr: A powerful DVB TV application"
|
||||
@@ -46,7 +46,6 @@ addon() {
|
||||
VDR_LIVE_DIR="$(get_build_dir vdr-live)"
|
||||
VDR_PLUGIN_XVDR_DIR="$(get_build_dir vdr-plugin-xvdr)"
|
||||
VDR_PLUGIN_VNSISERVER_DIR="$(get_build_dir vdr-plugin-vnsiserver)"
|
||||
VDR_SC_DIR="$(get_build_dir vdr-sc)"
|
||||
VDR_PLUGIN_STREAMVEV_DIR="$(get_build_dir vdr-plugin-streamdev)"
|
||||
VDR_PLUGIN_XMLTV2VDR="$(get_build_dir vdr-plugin-xmltv2vdr)"
|
||||
|
||||
@@ -76,14 +75,17 @@ addon() {
|
||||
cp -PR $(get_build_dir vdr-wirbelscan)/libvdr*.so.* $ADDON_BUILD/$PKG_ADDON_ID/plugin
|
||||
cp -PR $(get_build_dir vdr-wirbelscancontrol)/libvdr*.so.* $ADDON_BUILD/$PKG_ADDON_ID/plugin
|
||||
cp -PR $(get_build_dir vdr-plugin-dvbapi)/libvdr*.so.* $ADDON_BUILD/$PKG_ADDON_ID/plugin
|
||||
cp -PR $VDR_SC_DIR/libvdr*.so.* $ADDON_BUILD/$PKG_ADDON_ID/plugin
|
||||
cp -PR $VDR_SC_DIR/systems/*/libsc*.so.* $ADDON_BUILD/$PKG_ADDON_ID/plugin
|
||||
cp -PR $(get_build_dir vdr-plugin-eepg)/libvdr*.so.* $ADDON_BUILD/$PKG_ADDON_ID/plugin
|
||||
cp -PR $VDR_PLUGIN_STREAMVEV_DIR/server/libvdr*.so.* $ADDON_BUILD/$PKG_ADDON_ID/plugin
|
||||
cp -PR $VDR_PLUGIN_STREAMVEV_DIR/client/libvdr*.so.* $ADDON_BUILD/$PKG_ADDON_ID/plugin
|
||||
cp -PR $VDR_LIVE_DIR/libvdr*.so.* $ADDON_BUILD/$PKG_ADDON_ID/plugin
|
||||
cp -PR $(get_build_dir vdr-control)/libvdr*.so.* $ADDON_BUILD/$PKG_ADDON_ID/plugin
|
||||
cp -PR $(get_build_dir vdr-epgsearch)/libvdr*.so.* $ADDON_BUILD/$PKG_ADDON_ID/plugin
|
||||
cp -PR $VDR_PLUGIN_XMLTV2VDR/libvdr*.so.* $ADDON_BUILD/$PKG_ADDON_ID/plugin
|
||||
cp -PR $(get_build_dir vdr-dummydevice)/libvdr*.so.* $ADDON_BUILD/$PKG_ADDON_ID/plugin
|
||||
cp -PR $(get_build_dir vdr-satip)/libvdr*.so.* $ADDON_BUILD/$PKG_ADDON_ID/plugin
|
||||
|
||||
mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/config/plugins/eepg
|
||||
|
||||
mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/config/plugins/xvdr
|
||||
cp -PR $VDR_PLUGIN_XVDR_DIR/xvdr/allowed_hosts.conf $ADDON_BUILD/$PKG_ADDON_ID/config/plugins/xvdr
|
||||
@@ -97,7 +99,7 @@ addon() {
|
||||
cp -P $VDR_PLUGIN_XMLTV2VDR/dist/epgdata2xmltv/epgdata2xmltv $ADDON_BUILD/$PKG_ADDON_ID/bin
|
||||
|
||||
mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/lib
|
||||
cp -P $(get_build_dir tntnet)/.install_pkg/usr/lib/libtntnet.so* $ADDON_BUILD/$PKG_ADDON_ID/lib
|
||||
cp -PL $(get_build_dir tntnet)/.install_pkg/usr/lib/libtntnet.so.11 $ADDON_BUILD/$PKG_ADDON_ID/lib
|
||||
|
||||
mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/config/plugins/streamdev-server
|
||||
cp -PR $VDR_PLUGIN_STREAMVEV_DIR/streamdev-server/streamdevhosts.conf $ADDON_BUILD/$PKG_ADDON_ID/config/plugins/streamdev-server
|
||||
|
||||
@@ -78,7 +78,7 @@ fi
|
||||
|
||||
# keep softcam first
|
||||
if [ "$ENABLE_SOFTCAM" == "true" ] ; then
|
||||
VDR_ARG="$VDR_ARG -P $SOFTCAM_PLUGIN"
|
||||
VDR_ARG="$VDR_ARG -P dvbapi"
|
||||
fi
|
||||
VDR_ARG="$VDR_ARG -P wirbelscan -P wirbelscancontrol"
|
||||
if [ "$ENABLE_IPTV" == "true" ] ; then
|
||||
@@ -96,9 +96,18 @@ fi
|
||||
if [ "$ENABLE_CONTROL" == "true" ] ; then
|
||||
VDR_ARG="$VDR_ARG -P 'control -p $CONTROL_PORT'"
|
||||
fi
|
||||
if [ "$ENABLE_EEPG" == "true" ] ; then
|
||||
VDR_ARG="$VDR_ARG -P eepg"
|
||||
fi
|
||||
if [ "$ENABLE_EPGSEARCH" == "true" ] ; then
|
||||
VDR_ARG="$VDR_ARG -P epgsearch"
|
||||
fi
|
||||
if [ "$ENABLE_DUMMYDEVICE" == "true" ] ; then
|
||||
VDR_ARG="$VDR_ARG -P dummydevice"
|
||||
fi
|
||||
if [ "$ENABLE_SATIP" == "true" ] ; then
|
||||
VDR_ARG="$VDR_ARG -P satip"
|
||||
fi
|
||||
if [ "$ENABLE_XMLTV2VDR" == "true" ] ; then
|
||||
VDR_ARG="$VDR_ARG -P 'xmltv2vdr --epgfile=$ADDON_CACHE_DIR/epg.db'"
|
||||
# xmltv2vdr needs /var/run/vdr
|
||||
@@ -140,10 +149,13 @@ for driver_dvb in $(find /storage/.xbmc/addons/driver.dvb.*/bin/userspace-driver
|
||||
done
|
||||
|
||||
# (wait for) at least 1 adapter (xbmc allows to set 0)
|
||||
# xbmc allows "numeric" type field to be empty. lets handle thaat
|
||||
[ "$NUM_ADAPTERS" = "" ] && NUM_ADAPTERS=1
|
||||
# 0 does not make sense. should be 1 or more
|
||||
[ $NUM_ADAPTERS -lt 1 ] && NUM_ADAPTERS=1
|
||||
if [ "$WAIT_FOR_FEINIT" == "true" ] ; then
|
||||
while [ true ] ; do
|
||||
if [ -e /dev/dvb/adapter$((NUM_ADAPTERS-1))/frontend* ] ; then
|
||||
if [ -e /dev/dvb/adapter$((NUM_ADAPTERS-1))/frontend0 ] ; then
|
||||
break
|
||||
fi
|
||||
sleep 1
|
||||
|
||||
@@ -11,20 +11,20 @@
|
||||
<string id="1031">Enable plugin: iptv</string>
|
||||
<string id="1032">Enable plugin: streamdev-client</string>
|
||||
<string id="1033">Enable plugin: streamdev-server</string>
|
||||
<string id="1036">Enable softcam</string>
|
||||
<string id="1037">softcam plugin</string>
|
||||
<string id="1036">Enable softcam (dvbapi)</string>
|
||||
<string id="1038">Enable plugin: live</string>
|
||||
<string id="1039">live: listen on ip</string>
|
||||
<string id="1040">live: listen on port</string>
|
||||
<string id="1039">- listen on ip</string>
|
||||
<string id="1040">- listen on port</string>
|
||||
<string id="1042">Enable plugin: control</string>
|
||||
<string id="1043">control: listen on port</string>
|
||||
<string id="1043">- listen on port</string>
|
||||
<string id="1044">Enable plugin: epgsearch</string>
|
||||
<string id="1045">Enable plugin: xmltv2vdr</string>
|
||||
<string id="1046">Enable plugin: extended EPG</string>
|
||||
<string id="1047">Enable plugin: dummydevice</string>
|
||||
<string id="1048">Enable plugin: satip</string>
|
||||
<string id="1051">VDR Configuration</string>
|
||||
<string id="1052">VDR Video Dir</string>
|
||||
<string id="1053">PVR plugin</string>
|
||||
<string id="1054">Enable dvb(sd|hd)device plugin</string>
|
||||
<string id="1055">plugin</string>
|
||||
<string id="1056">Enable external recdmd</string>
|
||||
<string id="1057">External recdmd path</string>
|
||||
</strings>
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
<setting id="VDR_VIDEO_DIR" type="folder" label="1052" value="" default="/storage/videos" />
|
||||
<setting type="sep" />
|
||||
<setting id="ENABLE_EXTERNAL_RECCMD" type="bool" label="1056" default="false" />
|
||||
<setting id="EXTERNAL_RECCMD_PATH" type="file" label="1057" enable="!eq(-1,false)" default="" />
|
||||
<setting id="EXTERNAL_RECCMD_PATH" type="file" label="1057" visible="!eq(-1,false)" default="" />
|
||||
</category>
|
||||
<category label="1001">
|
||||
<setting label="1030" type="lsep"/>
|
||||
@@ -23,14 +23,16 @@
|
||||
<setting id="ENABLE_STREAMDEV_CLIENT" type="bool" label="1032" default="false" />
|
||||
<setting id="ENABLE_STREAMDEV_SERVER" type="bool" label="1033" default="false" />
|
||||
<setting id="ENABLE_LIVE" type="bool" label="1038" default="false" />
|
||||
<setting id="LIVE_IP" type="ipaddress" label="1039" values="" enable="!eq(-1,false)" default="0.0.0.0"/>
|
||||
<setting id="LIVE_PORT" type="number" label="1040" values="" enable="!eq(-2,false)" default="8008"/>
|
||||
<setting id="LIVE_IP" type="ipaddress" label="1039" values="" visible="!eq(-1,false)" default="0.0.0.0"/>
|
||||
<setting id="LIVE_PORT" type="number" label="1040" values="" visible="!eq(-2,false)" default="8008"/>
|
||||
<setting id="ENABLE_CONTROL" type="bool" label="1042" default="false" />
|
||||
<setting id="CONTROL_PORT" type="number" label="1043" values="" enable="!eq(-1,false)" default="2002"/>
|
||||
<setting id="CONTROL_PORT" type="number" label="1043" values="" visible="!eq(-1,false)" default="2002"/>
|
||||
<setting id="ENABLE_EEPG" type="bool" label="1046" default="false" />
|
||||
<setting id="ENABLE_EPGSEARCH" type="bool" label="1044" default="false" />
|
||||
<setting id="ENABLE_XMLTV2VDR" type="bool" label="1045" default="false" />
|
||||
<setting id="ENABLE_DUMMYDEVICE" type="bool" label="1047" default="false" />
|
||||
<setting id="ENABLE_SATIP" type="bool" label="1048" default="false" />
|
||||
<setting type="sep" />
|
||||
<setting id="ENABLE_SOFTCAM" type="bool" label="1036" default="true" />
|
||||
<setting id="SOFTCAM_PLUGIN" type="labelenum" label="1037" values="sc|dvbapi" enable="!eq(-1,false)" default="sc" />
|
||||
</category>
|
||||
</settings>
|
||||
|
||||
@@ -13,9 +13,11 @@
|
||||
<setting id="LIVE_PORT" value="8008" />
|
||||
<setting id="ENABLE_CONTROL" value="false" />
|
||||
<setting id="CONTROL_PORT" value="2002" />
|
||||
<setting id="ENABLE_EEPG" value="false" />
|
||||
<setting id="ENABLE_EPGSEARCH" value="false" />
|
||||
<setting id="ENABLE_XMLTV2VDR" value="false" />
|
||||
<setting id="SOFTCAM_PLUGIN" value="sc" />
|
||||
<setting id="ENABLE_DUMMYDEVICE" value="false" />
|
||||
<setting id="ENABLE_SATIP" value="false" />
|
||||
<setting id="ENABLE_EXTERNAL_RECCMD" value="false" />
|
||||
<setting id="EXTERNAL_RECCMD_PATH" value="" />
|
||||
</settings>
|
||||
|
||||
@@ -46,6 +46,7 @@ post_makeinstall_target() {
|
||||
rm -rf $INSTALL/lib $INSTALL/var
|
||||
rm -rf $INSTALL/usr/share/alsa/speaker-test
|
||||
rm -rf $INSTALL/usr/share/sounds
|
||||
rm -rf $INSTALL/usr/lib/systemd/system
|
||||
|
||||
for i in aconnect alsaucm amidi aplaymidi arecord arecordmidi aseqdump aseqnet iecset; do
|
||||
rm -rf $INSTALL/usr/bin/$i
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
From 180283e2307b07bbd3958d24382aab8271dd4c1d Mon Sep 17 00:00:00 2001
|
||||
From: Anssi Hannula <anssi.hannula@iki.fi>
|
||||
Date: Mon, 30 Sep 2013 23:46:50 +0300
|
||||
Subject: [PATCH 1/1] amixer: actually print all TLVs in a container TLV
|
||||
|
||||
Due to a wrong indexing of tlv[] decode_tlv() always skips to the end of
|
||||
the container TLV since the used tlv[1] contains the container TLV size
|
||||
instead of the intended element size.
|
||||
|
||||
This causes, for example, only the first HDMI channel map TLV to be
|
||||
shown.
|
||||
|
||||
Fix the indexing to actually use the element size.
|
||||
|
||||
Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
|
||||
Signed-off-by: Takashi Iwai <tiwai@suse.de>
|
||||
---
|
||||
amixer/amixer.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/amixer/amixer.c b/amixer/amixer.c
|
||||
index 7727943..b83b0c3 100644
|
||||
--- a/amixer/amixer.c
|
||||
+++ b/amixer/amixer.c
|
||||
@@ -468,7 +468,7 @@ static void decode_tlv(unsigned int spaces, unsigned int *tlv, unsigned int tlv_
|
||||
return;
|
||||
}
|
||||
decode_tlv(spaces + 2, tlv + idx, tlv[idx+1] + 8);
|
||||
- idx += 2 + (tlv[1] + sizeof(unsigned int) - 1) / sizeof(unsigned int);
|
||||
+ idx += 2 + (tlv[idx+1] + sizeof(unsigned int) - 1) / sizeof(unsigned int);
|
||||
}
|
||||
break;
|
||||
case SND_CTL_TLVT_DB_SCALE:
|
||||
--
|
||||
1.7.11.7
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
From f1e991e81350e9388ab6cf04a64ac4b4389a588c Mon Sep 17 00:00:00 2001
|
||||
From: Anssi Hannula <anssi.hannula@iki.fi>
|
||||
Date: Tue, 1 Oct 2013 23:46:53 +0300
|
||||
Subject: [PATCH] amixer: fix indentation when printing container TLV contents
|
||||
|
||||
decode_tlv() adds indentation in the beginning, with the expectation
|
||||
that the TLV will be printed on the line afterwards in a switch-case.
|
||||
|
||||
However, in the case of a container TLV the switch-case simply adds
|
||||
another level of indentation and calls decode_tlv() for the inner TLVs.
|
||||
This causes the first inner TLV to be printed with too much indentation
|
||||
and double '|'.
|
||||
|
||||
Fix that by printing "container" and a newline for container TLVs, so
|
||||
that the result is as follows:
|
||||
: values=0,0,0,0,0,0,0,0
|
||||
| container
|
||||
| chmap-variable=FL,FR
|
||||
| chmap-variable=FL,FR,LFE
|
||||
| chmap-variable=FL,FR,FC
|
||||
|
||||
Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
|
||||
Signed-off-by: Takashi Iwai <tiwai@suse.de>
|
||||
---
|
||||
amixer/amixer.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/amixer/amixer.c b/amixer/amixer.c
|
||||
index b83b0c3..cf82892 100644
|
||||
--- a/amixer/amixer.c
|
||||
+++ b/amixer/amixer.c
|
||||
@@ -460,6 +460,7 @@ static void decode_tlv(unsigned int spaces, unsigned int *tlv, unsigned int tlv_
|
||||
}
|
||||
switch (type) {
|
||||
case SND_CTL_TLVT_CONTAINER:
|
||||
+ printf("container\n");
|
||||
size += sizeof(unsigned int) -1;
|
||||
size /= sizeof(unsigned int);
|
||||
while (idx < size) {
|
||||
--
|
||||
1.7.11.7
|
||||
|
||||
@@ -0,0 +1,232 @@
|
||||
From a1992044d5813371ce71f5252187942f943b198d Mon Sep 17 00:00:00 2001
|
||||
From: Anssi Hannula <anssi.hannula@iki.fi>
|
||||
Date: Tue, 12 Nov 2013 00:04:02 +0200
|
||||
Subject: [PATCH] speaker-test: Fix chmapped channel selection without
|
||||
specified chmap
|
||||
|
||||
The channel selection currently does not work properly when there is a
|
||||
driver-provided non-ALSA-traditional channel map but no manual channel
|
||||
map was explicitely requested with "-m".
|
||||
|
||||
For example, the CEA/HDMI 8ch map is FL,FR,RLC,RRC,FC,LFE,RL,RR. Note
|
||||
that it is otherwise the same as the traditional ALSA channel map,
|
||||
except that the traditional rear speakers are considered
|
||||
rear-center speakers and the traditional side speakers are considered
|
||||
rear speakers.
|
||||
|
||||
Speaker-test tries to play back channels in this following order:
|
||||
0, /* Front Left */
|
||||
4, /* Center */
|
||||
1, /* Front Right */
|
||||
7, /* Side Right */
|
||||
3, /* Rear Right */
|
||||
2, /* Rear Left */
|
||||
6, /* Side Left */
|
||||
5, /* LFE */
|
||||
|
||||
When it is the time to play back Side Left/Right, speaker-test tries to
|
||||
look for SL/SR in the chmap, but doesn't find it, so it just plays back
|
||||
channels 6/7 (which indeed are the side speakers, or RL/RR in this
|
||||
channel map - so the correct channels are selected).
|
||||
|
||||
When it becomes the time to playback Rear Left/Right, speaker-test again
|
||||
tries to find RL/RR in the chmap, and this time it does find them in the
|
||||
chmap positions 6/7.
|
||||
|
||||
So the channels 6/7 are tested twice and 2/3 are never tested.
|
||||
|
||||
To fix this, define a generic playback order channel_order[] to be used
|
||||
when the channel map is present (but not user-defined) and generate a
|
||||
(speaker/playback number => channel number) mapping with the channels
|
||||
ordered in the following order:
|
||||
1. regular channels found in channel_order[] in the defined order,
|
||||
2. channels not found in channel_order[] ordered by channel number.
|
||||
3. UNKNOWN channels ordered by channel number.
|
||||
4. NA channels ordered by channel number.
|
||||
For channels outside the channel map just use their channel numbers (so
|
||||
they will be last after all of the above).
|
||||
|
||||
For example, if the playback device has a fictional default channel map
|
||||
of FR,FL,UNKNOWN1,FOO,BAR,RR,RL,UNKNOWN2, the playback order will be
|
||||
FL,FR,RR,RL,FOO,BAR,UNKNOWN1,UNKNOWN2(,any_extra_channels).
|
||||
|
||||
When the channel mapping is specified manually, the specified order is
|
||||
used for playback as before.
|
||||
|
||||
Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
|
||||
Signed-off-by: Takashi Iwai <tiwai@suse.de>
|
||||
---
|
||||
speaker-test/speaker-test.c | 113 +++++++++++++++++++++++++++++++++++---------
|
||||
1 file changed, 91 insertions(+), 22 deletions(-)
|
||||
|
||||
diff --git a/speaker-test/speaker-test.c b/speaker-test/speaker-test.c
|
||||
index d35065f..25b08dc 100644
|
||||
--- a/speaker-test/speaker-test.c
|
||||
+++ b/speaker-test/speaker-test.c
|
||||
@@ -88,6 +88,8 @@ enum {
|
||||
#define BE_INT(v) (v)
|
||||
#endif
|
||||
|
||||
+#define ARRAY_SIZE(x) (int)(sizeof(x)/sizeof(x[0]))
|
||||
+
|
||||
static char *device = "default"; /* playback device */
|
||||
static snd_pcm_format_t format = SND_PCM_FORMAT_S16; /* sample format */
|
||||
static unsigned int rate = 48000; /* stream rate */
|
||||
@@ -110,6 +112,7 @@ static snd_pcm_t *pcm_handle = NULL;
|
||||
#ifdef CONFIG_SUPPORT_CHMAP
|
||||
static snd_pcm_chmap_t *channel_map;
|
||||
static int channel_map_set;
|
||||
+static unsigned int *ordered_channels;
|
||||
#endif
|
||||
|
||||
static const char *const channel_name[MAX_CHANNELS] = {
|
||||
@@ -156,36 +159,94 @@ static const int channels8[] = {
|
||||
5, /* LFE */
|
||||
};
|
||||
|
||||
-static int get_mapped_channel(int chn)
|
||||
-{
|
||||
#ifdef CONFIG_SUPPORT_CHMAP
|
||||
- static const int maps[MAX_CHANNELS] = {
|
||||
- SND_CHMAP_FL,
|
||||
- SND_CHMAP_FR,
|
||||
- SND_CHMAP_RL,
|
||||
- SND_CHMAP_RR,
|
||||
- SND_CHMAP_FC,
|
||||
- SND_CHMAP_LFE,
|
||||
- SND_CHMAP_SL,
|
||||
- SND_CHMAP_SR,
|
||||
- };
|
||||
+/* circular clockwise and bottom-to-top order */
|
||||
+static const int channel_order[] = {
|
||||
+ [SND_CHMAP_FLW] = 10,
|
||||
+ [SND_CHMAP_FL] = 20,
|
||||
+ [SND_CHMAP_TFL] = 30,
|
||||
+ [SND_CHMAP_FLC] = 40,
|
||||
+ [SND_CHMAP_TFLC] = 50,
|
||||
+ [SND_CHMAP_FC] = 60,
|
||||
+ [SND_CHMAP_TFC] = 70,
|
||||
+ [SND_CHMAP_FRC] = 80,
|
||||
+ [SND_CHMAP_TFRC] = 90,
|
||||
+ [SND_CHMAP_FR] = 100,
|
||||
+ [SND_CHMAP_TFR] = 110,
|
||||
+ [SND_CHMAP_FRW] = 120,
|
||||
+ [SND_CHMAP_SR] = 130,
|
||||
+ [SND_CHMAP_TSR] = 140,
|
||||
+ [SND_CHMAP_RR] = 150,
|
||||
+ [SND_CHMAP_TRR] = 160,
|
||||
+ [SND_CHMAP_RRC] = 170,
|
||||
+ [SND_CHMAP_RC] = 180,
|
||||
+ [SND_CHMAP_TRC] = 190,
|
||||
+ [SND_CHMAP_RLC] = 200,
|
||||
+ [SND_CHMAP_RL] = 210,
|
||||
+ [SND_CHMAP_TRL] = 220,
|
||||
+ [SND_CHMAP_SL] = 230,
|
||||
+ [SND_CHMAP_TSL] = 240,
|
||||
+ [SND_CHMAP_BC] = 250,
|
||||
+ [SND_CHMAP_TC] = 260,
|
||||
+ [SND_CHMAP_LLFE] = 270,
|
||||
+ [SND_CHMAP_LFE] = 280,
|
||||
+ [SND_CHMAP_RLFE] = 290,
|
||||
+ /* not in table = 10000 */
|
||||
+ [SND_CHMAP_UNKNOWN] = 20000,
|
||||
+ [SND_CHMAP_NA] = 30000,
|
||||
+};
|
||||
|
||||
- if (channel_map && maps[chn]) {
|
||||
- int i;
|
||||
- for (i = 0; i < channel_map->channels; i++) {
|
||||
- if (channel_map->pos[i] == maps[chn])
|
||||
- return i;
|
||||
- }
|
||||
+static int chpos_cmp(const void *chnum1p, const void *chnum2p)
|
||||
+{
|
||||
+ int chnum1 = *(int *)chnum1p;
|
||||
+ int chnum2 = *(int *)chnum2p;
|
||||
+ int chpos1 = channel_map->pos[chnum1];
|
||||
+ int chpos2 = channel_map->pos[chnum2];
|
||||
+ int weight1 = 10000;
|
||||
+ int weight2 = 10000;
|
||||
+
|
||||
+ if (chpos1 < ARRAY_SIZE(channel_order) && channel_order[chpos1])
|
||||
+ weight1 = channel_order[chpos1];
|
||||
+ if (chpos2 < ARRAY_SIZE(channel_order) && channel_order[chpos2])
|
||||
+ weight2 = channel_order[chpos2];
|
||||
+
|
||||
+ if (weight1 == weight2) {
|
||||
+ /* order by channel number if both have the same position (e.g. UNKNOWN)
|
||||
+ * or if neither is in channel_order[] */
|
||||
+ return chnum1 - chnum2;
|
||||
}
|
||||
-#endif
|
||||
- return chn;
|
||||
+
|
||||
+ /* order according to channel_order[] */
|
||||
+ return weight1 - weight2;
|
||||
+}
|
||||
+
|
||||
+static int *order_channels(void)
|
||||
+{
|
||||
+ /* create a (playback order => channel number) table with channels ordered
|
||||
+ * according to channel_order[] values */
|
||||
+ int i;
|
||||
+ int *ordered_chs;
|
||||
+
|
||||
+ ordered_chs = calloc(channel_map->channels, sizeof(*ordered_chs));
|
||||
+ if (!ordered_chs)
|
||||
+ return NULL;
|
||||
+
|
||||
+ for (i = 0; i < channel_map->channels; i++)
|
||||
+ ordered_chs[i] = i;
|
||||
+
|
||||
+ qsort(ordered_chs, channel_map->channels, sizeof(*ordered_chs), chpos_cmp);
|
||||
+
|
||||
+ return ordered_chs;
|
||||
}
|
||||
+#endif
|
||||
|
||||
static int get_speaker_channel(int chn)
|
||||
{
|
||||
#ifdef CONFIG_SUPPORT_CHMAP
|
||||
- if (channel_map_set)
|
||||
+ if (channel_map_set || (ordered_channels && chn >= channel_map->channels))
|
||||
return chn;
|
||||
+ if (ordered_channels)
|
||||
+ return ordered_channels[chn];
|
||||
#endif
|
||||
|
||||
switch (channels) {
|
||||
@@ -200,7 +261,7 @@ static int get_speaker_channel(int chn)
|
||||
break;
|
||||
}
|
||||
|
||||
- return get_mapped_channel(chn);
|
||||
+ return chn;
|
||||
}
|
||||
|
||||
static const char *get_channel_name(int chn)
|
||||
@@ -611,6 +672,11 @@ static int config_chmap(snd_pcm_t *handle, const char *mapstr)
|
||||
}
|
||||
|
||||
channel_map = snd_pcm_get_chmap(handle);
|
||||
+
|
||||
+ /* create a channel order table for default layouts */
|
||||
+ if (channel_map)
|
||||
+ ordered_channels = order_channels();
|
||||
+
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
@@ -1230,6 +1296,9 @@ int main(int argc, char *argv[]) {
|
||||
|
||||
|
||||
free(frames);
|
||||
+#ifdef CONFIG_SUPPORT_CHMAP
|
||||
+ free(ordered_channels);
|
||||
+#endif
|
||||
|
||||
return prg_exit(EXIT_SUCCESS);
|
||||
}
|
||||
--
|
||||
1.7.11.7
|
||||
|
||||
@@ -0,0 +1,44 @@
|
||||
From 5b0c6da0d8166cd404379740c5f75fda44ca5806 Mon Sep 17 00:00:00 2001
|
||||
From: Anssi Hannula <anssi.hannula@iki.fi>
|
||||
Date: Sun, 10 Nov 2013 20:29:18 +0200
|
||||
Subject: [PATCH] speaker-test: Always show chmap channel names if available
|
||||
|
||||
Currently speaker-test only uses channel names retrieved by
|
||||
snd_pcm_chmap_long_name() when a channel map has been manually set.
|
||||
|
||||
However, the device may provide a default (or fixed) channel map that
|
||||
differs from the traditional ALSA map, in which case wrong channel names
|
||||
are shown.
|
||||
|
||||
Fix that by always using the name from the channel map when a channel
|
||||
map is present.
|
||||
|
||||
Note that the names retrieved by snd_pcm_chmap_long_name() are not
|
||||
currently localized via gettext.
|
||||
|
||||
Also note that Linux kernel HDMI driver reported wrong default channel
|
||||
maps before 56cac413dd6d43af8355f5d1f90a199b540f73fc ("ALSA: hda - hdmi:
|
||||
Fix reported channel map on common default layouts").
|
||||
|
||||
Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
|
||||
Signed-off-by: Takashi Iwai <tiwai@suse.de>
|
||||
---
|
||||
speaker-test/speaker-test.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/speaker-test/speaker-test.c b/speaker-test/speaker-test.c
|
||||
index 25b08dc..101bb0d 100644
|
||||
--- a/speaker-test/speaker-test.c
|
||||
+++ b/speaker-test/speaker-test.c
|
||||
@@ -267,7 +267,7 @@ static int get_speaker_channel(int chn)
|
||||
static const char *get_channel_name(int chn)
|
||||
{
|
||||
#ifdef CONFIG_SUPPORT_CHMAP
|
||||
- if (channel_map_set && chn < channel_map->channels) {
|
||||
+ if (channel_map && chn < channel_map->channels) {
|
||||
const char *name = snd_pcm_chmap_long_name(channel_map->pos[chn]);
|
||||
return name ? name : "Unknown";
|
||||
}
|
||||
--
|
||||
1.7.11.7
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
From 58752c3ae32e03d676fa225c99c9a8dde9de39ed Mon Sep 17 00:00:00 2001
|
||||
From: Anssi Hannula <anssi.hannula@iki.fi>
|
||||
Date: Sun, 10 Nov 2013 20:29:19 +0200
|
||||
Subject: [PATCH] speaker-test: Show out-of-chmap channels as Unknown
|
||||
|
||||
Currently speaker-test falls back to ALSA default channel names for
|
||||
channels out-of-chmap.
|
||||
|
||||
This causes e.g. the 4th channel of
|
||||
$ speaker-test -c4 -Dhdmi -m "FR,FL,FC"
|
||||
to be shown as "Rear Right".
|
||||
|
||||
Change the code to show such channels as Unknown instead, similar to
|
||||
when snd_pcm_chmap_long_name() does not know the name.
|
||||
|
||||
Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
|
||||
Signed-off-by: Takashi Iwai <tiwai@suse.de>
|
||||
---
|
||||
speaker-test/speaker-test.c | 6 ++++--
|
||||
1 file changed, 4 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/speaker-test/speaker-test.c b/speaker-test/speaker-test.c
|
||||
index 101bb0d..261f399 100644
|
||||
--- a/speaker-test/speaker-test.c
|
||||
+++ b/speaker-test/speaker-test.c
|
||||
@@ -267,8 +267,10 @@ static int get_speaker_channel(int chn)
|
||||
static const char *get_channel_name(int chn)
|
||||
{
|
||||
#ifdef CONFIG_SUPPORT_CHMAP
|
||||
- if (channel_map && chn < channel_map->channels) {
|
||||
- const char *name = snd_pcm_chmap_long_name(channel_map->pos[chn]);
|
||||
+ if (channel_map) {
|
||||
+ const char *name = NULL;
|
||||
+ if (chn < channel_map->channels)
|
||||
+ name = snd_pcm_chmap_long_name(channel_map->pos[chn]);
|
||||
return name ? name : "Unknown";
|
||||
}
|
||||
#endif
|
||||
--
|
||||
1.7.11.7
|
||||
|
||||
53
packages/audio/espeak/package.mk
Normal file
53
packages/audio/espeak/package.mk
Normal file
@@ -0,0 +1,53 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# OpenELEC is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="espeak"
|
||||
PKG_VERSION="1.48.04-source"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://espeak.sourceforge.net/"
|
||||
PKG_URL="http://downloads.sourceforge.net/$PKG_NAME/$PKG_NAME-$PKG_VERSION.zip"
|
||||
PKG_SOURCE_DIR="$PKG_NAME/$PKG_NAME-$PKG_VERSION"
|
||||
PKG_DEPENDS_TARGET="toolchain"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="audio"
|
||||
PKG_SHORTDESC="Text to Speech engine for English, with support for other languages"
|
||||
PKG_LONGDESC="Text to Speech engine for English, with support for other languages"
|
||||
|
||||
PKG_IS_ADDON="no"
|
||||
PKG_AUTORECONF="no"
|
||||
|
||||
pre_make_target() {
|
||||
cp src/portaudio19.h src/portaudio.h
|
||||
}
|
||||
|
||||
make_target() {
|
||||
make -C src \
|
||||
CXXFLAGS="$CXXFLAGS" \
|
||||
LDFLAGS="$LDFLAGS" \
|
||||
AUDIO=""
|
||||
}
|
||||
|
||||
makeinstall_target() {
|
||||
make -C src \
|
||||
CXXFLAGS="$CXXFLAGS" \
|
||||
LDFLAGS="$LDFLAGS" \
|
||||
AUDIO="" \
|
||||
DESTDIR=$INSTALL install
|
||||
}
|
||||
23
packages/audio/espeak/patches/espeak-1.47-ftbs-ld-libm.patch
Normal file
23
packages/audio/espeak/patches/espeak-1.47-ftbs-ld-libm.patch
Normal file
@@ -0,0 +1,23 @@
|
||||
diff --git a/src/Makefile b/src/Makefile
|
||||
index f04b4c4..b8d4b19 100644
|
||||
--- a/src/Makefile
|
||||
+++ b/src/Makefile
|
||||
@@ -83,15 +83,15 @@ libespeak_SOURCES = speak_lib.cpp compiledict.cpp dictionary.cpp intonation.cpp
|
||||
|
||||
SRCS1=$(speak_SOURCES)
|
||||
OBJS1=$(patsubst %.cpp,%.o,$(SRCS1))
|
||||
-LIBS1=-lstdc++ $(LIB_AUDIO) -lpthread $(EXTRA_LIBS)
|
||||
+LIBS1=-lstdc++ -lm $(LIB_AUDIO) -lpthread $(EXTRA_LIBS)
|
||||
|
||||
SRCS2=$(libespeak_SOURCES)
|
||||
OBJS2=$(patsubst %.cpp,x_%.o,$(SRCS2))
|
||||
-LIBS2=-lstdc++ $(LIB_AUDIO) -lpthread
|
||||
+LIBS2=-lstdc++ -lm $(LIB_AUDIO) -lpthread
|
||||
|
||||
SRCS3 = espeak.cpp
|
||||
OBJS3=$(patsubst %.cpp,%.o,$(SRCS3))
|
||||
-LIBS3=-lstdc++ -L . -lespeak
|
||||
+LIBS3=-lstdc++ -lm -L . -lespeak
|
||||
|
||||
CXXFLAGS=-O2
|
||||
|
||||
23
packages/audio/espeak/patches/espeak-1.47-wav-close.patch
Normal file
23
packages/audio/espeak/patches/espeak-1.47-wav-close.patch
Normal file
@@ -0,0 +1,23 @@
|
||||
diff --git a/src/espeak.cpp b/src/espeak.cpp
|
||||
index 00f93c1..4ad42e8 100644
|
||||
--- a/src/espeak.cpp
|
||||
+++ b/src/espeak.cpp
|
||||
@@ -281,10 +281,7 @@ static int SynthCallback(short *wav, int numsamples, espeak_EVENT *events)
|
||||
if(quiet) return(0); // -q quiet mode
|
||||
|
||||
if(wav == NULL)
|
||||
- {
|
||||
- CloseWavFile();
|
||||
return(0);
|
||||
- }
|
||||
|
||||
while(events->type != 0)
|
||||
{
|
||||
@@ -805,5 +802,7 @@ int main (int argc, char **argv)
|
||||
|
||||
if(f_phonemes_out != stdout)
|
||||
fclose(f_phonemes_out); // needed for WinCE
|
||||
+ CloseWavFile();
|
||||
+ espeak_Terminate();
|
||||
return(0);
|
||||
}
|
||||
@@ -17,12 +17,12 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="flac"
|
||||
PKG_VERSION="1.2.1"
|
||||
PKG_VERSION="1.3.0"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="LGPL"
|
||||
PKG_SITE="http://flac.sourceforge.net/"
|
||||
PKG_URL="http://downloads.xiph.org/releases/flac/$PKG_NAME-$PKG_VERSION.tar.gz"
|
||||
PKG_URL="http://downloads.xiph.org/releases/flac/$PKG_NAME-$PKG_VERSION.tar.xz"
|
||||
PKG_DEPENDS_TARGET="toolchain libogg"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="audio"
|
||||
@@ -43,9 +43,15 @@ PKG_CONFIGURE_OPTS_TARGET="--disable-rpath \
|
||||
--with-ogg=$SYSROOT_PREFIX/usr \
|
||||
--with-gnu-ld"
|
||||
|
||||
pre_make_target() {
|
||||
# hack
|
||||
cp -R ../doc/* ./doc
|
||||
if [ $TARGET_ARCH = "i386" -o $TARGET_ARCH = "x86_64" ]; then
|
||||
PKG_CONFIGURE_OPTS_TARGET="$PKG_CONFIGURE_OPTS_TARGET --enable-sse"
|
||||
else
|
||||
PKG_CONFIGURE_OPTS_TARGET="$PKG_CONFIGURE_OPTS_TARGET --disable-sse"
|
||||
fi
|
||||
|
||||
pre_configure_target() {
|
||||
# flac-1.3.0 fails to build with LTO support
|
||||
strip_lto
|
||||
}
|
||||
|
||||
post_makeinstall_target() {
|
||||
|
||||
@@ -1,12 +0,0 @@
|
||||
diff -Naur flac-1.2.1-old/configure.in flac-1.2.1-new/configure.in
|
||||
--- flac-1.2.1-old/configure.in 2007-09-13 08:48:42.000000000 -0700
|
||||
+++ flac-1.2.1-new/configure.in 2013-01-03 19:54:10.000000000 -0800
|
||||
@@ -44,7 +44,7 @@
|
||||
AC_CHECK_SIZEOF(void*,0)
|
||||
|
||||
#@@@ new name is AC_CONFIG_HEADERS
|
||||
-AM_CONFIG_HEADER(config.h)
|
||||
+AC_CONFIG_HEADERS(config.h)
|
||||
|
||||
AC_C_BIGENDIAN
|
||||
|
||||
@@ -1,24 +0,0 @@
|
||||
diff -Naur flac-1.2.1-old/configure.in flac-1.2.1-new/configure.in
|
||||
--- flac-1.2.1-old/configure.in 2007-09-13 08:48:42.000000000 -0700
|
||||
+++ flac-1.2.1-new/configure.in 2010-08-17 20:51:01.000000000 -0700
|
||||
@@ -21,6 +21,8 @@
|
||||
AC_INIT(src/flac/main.c)
|
||||
AM_INIT_AUTOMAKE(flac, 1.2.1)
|
||||
|
||||
+AC_CONFIG_MACRO_DIR([m4])
|
||||
+
|
||||
# Don't automagically regenerate autoconf/automake generated files unless
|
||||
# explicitly requested. Eases autobuilding -mdz
|
||||
AM_MAINTAINER_MODE
|
||||
diff -Naur flac-1.2.1-old/Makefile.am flac-1.2.1-new/Makefile.am
|
||||
--- flac-1.2.1-old/Makefile.am 2007-09-16 12:29:29.000000000 -0700
|
||||
+++ flac-1.2.1-new/Makefile.am 2010-08-17 20:51:27.000000000 -0700
|
||||
@@ -30,6 +30,8 @@
|
||||
|
||||
AUTOMAKE_OPTIONS = foreign 1.7
|
||||
|
||||
+ACLOCAL_AMFLAGS = -I m4
|
||||
+
|
||||
SUBDIRS = doc include m4 man src examples test build obj
|
||||
|
||||
DISTCLEANFILES = libtool-disable-static
|
||||
@@ -1,17 +0,0 @@
|
||||
diff -Naur flac-1.2.1-old/configure.in flac-1.2.1-new/configure.in
|
||||
--- flac-1.2.1-old/configure.in 2007-09-13 08:48:42.000000000 -0700
|
||||
+++ flac-1.2.1-new/configure.in 2010-07-04 17:16:02.000000000 -0700
|
||||
@@ -297,11 +297,13 @@
|
||||
if test "x$debug" = xtrue; then
|
||||
CPPFLAGS="-DDEBUG $CPPFLAGS"
|
||||
CFLAGS="-g $CFLAGS"
|
||||
+ CXXFLAGS="-g $CXXFLAGS"
|
||||
else
|
||||
CPPFLAGS="-DNDEBUG $CPPFLAGS"
|
||||
if test "x$GCC" = xyes; then
|
||||
CPPFLAGS="-DFLaC__INLINE=__inline__ $CPPFLAGS"
|
||||
CFLAGS="-O3 -funroll-loops -finline-functions -Wall -W -Winline $CFLAGS"
|
||||
+ CXXFLAGS="-O3 -funroll-loops -finline-functions -Wall -W -Winline $CXXFLAGS"
|
||||
fi
|
||||
fi
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
diff -Naur flac-1.2.1-old/examples/cpp/encode/file/main.cpp flac-1.2.1-new/examples/cpp/encode/file/main.cpp
|
||||
--- flac-1.2.1-old/examples/cpp/encode/file/main.cpp 2007-09-13 08:58:03.000000000 -0700
|
||||
+++ flac-1.2.1-new/examples/cpp/encode/file/main.cpp 2008-01-08 17:25:20.000000000 -0800
|
||||
@@ -30,6 +30,7 @@
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
+#include <string.h>
|
||||
#include "FLAC++/metadata.h"
|
||||
#include "FLAC++/encoder.h"
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="libcdio"
|
||||
PKG_VERSION="0.90"
|
||||
PKG_VERSION="0.92"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
||||
@@ -1,12 +0,0 @@
|
||||
diff -Naur libcdio-0.90-old/configure.ac libcdio-0.90-new/configure.ac
|
||||
--- libcdio-0.90-old/configure.ac 2012-10-27 08:07:45.000000000 -0700
|
||||
+++ libcdio-0.90-new/configure.ac 2012-12-30 14:12:26.000000000 -0800
|
||||
@@ -26,7 +26,7 @@
|
||||
AM_INIT_AUTOMAKE([foreign])
|
||||
|
||||
AC_CANONICAL_HOST
|
||||
-AM_CONFIG_HEADER(config.h)
|
||||
+AC_CONFIG_HEADERS(config.h)
|
||||
AC_CONFIG_MACRO_DIR([m4])
|
||||
|
||||
# Enable silent build rules by default (Automake v1.11 or later).
|
||||
@@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="libmodplug"
|
||||
PKG_VERSION="0.8.8.4"
|
||||
PKG_VERSION="0.8.8.5"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="libogg"
|
||||
PKG_VERSION="1.3.0"
|
||||
PKG_VERSION="1.3.1"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="BSD"
|
||||
|
||||
@@ -1,12 +0,0 @@
|
||||
diff -Naur libogg-1.3.0-old/configure.in libogg-1.3.0-new/configure.in
|
||||
--- libogg-1.3.0-old/configure.in 2011-08-04 10:11:08.000000000 -0700
|
||||
+++ libogg-1.3.0-new/configure.in 2013-01-03 19:50:49.000000000 -0800
|
||||
@@ -19,7 +19,7 @@
|
||||
AM_PROG_CC_C_O
|
||||
|
||||
dnl config.h
|
||||
-AM_CONFIG_HEADER(config.h)
|
||||
+AC_CONFIG_HEADERS(config.h)
|
||||
|
||||
dnl Set some options based on environment
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="libvorbis"
|
||||
PKG_VERSION="1.3.3"
|
||||
PKG_VERSION="1.3.4"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="BSD"
|
||||
|
||||
@@ -1,12 +0,0 @@
|
||||
diff -Naur libvorbis-1.3.3-old/configure.ac libvorbis-1.3.3-new/configure.ac
|
||||
--- libvorbis-1.3.3-old/configure.ac 2012-02-03 14:00:34.000000000 -0800
|
||||
+++ libvorbis-1.3.3-new/configure.ac 2013-01-03 20:10:21.000000000 -0800
|
||||
@@ -13,7 +13,7 @@
|
||||
|
||||
AM_INIT_AUTOMAKE($PACKAGE_NAME,$PACKAGE_VERSION)
|
||||
AM_MAINTAINER_MODE
|
||||
-AM_CONFIG_HEADER([config.h])
|
||||
+AC_CONFIG_HEADERS([config.h])
|
||||
|
||||
dnl Add parameters for aclocal
|
||||
AC_SUBST(ACLOCAL_AMFLAGS, "-I m4")
|
||||
@@ -19,12 +19,12 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="pulseaudio"
|
||||
PKG_VERSION="4.99.3"
|
||||
PKG_VERSION="5.0"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://pulseaudio.org/"
|
||||
PKG_URL="http://cgit.freedesktop.org/pulseaudio/pulseaudio/snapshot/$PKG_NAME-$PKG_VERSION.tar.gz"
|
||||
PKG_URL="http://www.freedesktop.org/software/pulseaudio/releases/$PKG_NAME-$PKG_VERSION.tar.xz"
|
||||
PKG_DEPENDS_TARGET="toolchain libtool json-c alsa-lib libsndfile libsamplerate speex dbus systemd openssl libcap"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="audio"
|
||||
@@ -41,8 +41,6 @@ else
|
||||
PULSEAUDIO_BLUETOOTH="--disable-bluez5"
|
||||
fi
|
||||
|
||||
export GIT_DESCRIBE_FOR_BUILD="4.0"
|
||||
|
||||
# package specific configure options
|
||||
PKG_CONFIGURE_OPTS_TARGET="--disable-silent-rules \
|
||||
--disable-nls \
|
||||
|
||||
@@ -17,12 +17,12 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="taglib"
|
||||
PKG_VERSION="1.8"
|
||||
PKG_VERSION="1.9.1"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="LGPL"
|
||||
PKG_SITE="http://taglib.github.com/"
|
||||
PKG_URL="https://github.com/downloads/taglib/$PKG_NAME/$PKG_NAME-$PKG_VERSION.tar.gz"
|
||||
PKG_URL="https://github.com/taglib/taglib/releases/download/v$PKG_VERSION/$PKG_NAME-$PKG_VERSION.tar.gz"
|
||||
PKG_DEPENDS_TARGET="toolchain cmake:host zlib"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="audio"
|
||||
@@ -39,4 +39,5 @@ configure_target() {
|
||||
|
||||
post_makeinstall_target() {
|
||||
rm -rf $INSTALL/usr/bin
|
||||
$SED "s:\(['=\" ]\)/usr:\\1$SYSROOT_PREFIX/usr:g" $SYSROOT_PREFIX/usr/bin/taglib-config
|
||||
}
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="mysql"
|
||||
PKG_VERSION="5.1.70"
|
||||
PKG_VERSION="5.1.73"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="LGPL"
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
From 161d55d84441bd3b66eba9eafd85782eeb168cdd Mon Sep 17 00:00:00 2001
|
||||
From: Stefan Saraev <stefan@saraev.ca>
|
||||
Date: Fri, 28 Mar 2014 13:12:50 +0200
|
||||
Subject: [PATCH] mysql_config: dont include LDFLAGS in --libs output
|
||||
|
||||
---
|
||||
scripts/mysql_config.sh | 6 +++---
|
||||
1 files changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/scripts/mysql_config.sh b/scripts/mysql_config.sh
|
||||
index 7dc9beb..eb188b6 100644
|
||||
--- a/scripts/mysql_config.sh
|
||||
+++ b/scripts/mysql_config.sh
|
||||
@@ -105,10 +105,10 @@ fi
|
||||
|
||||
# Create options
|
||||
# We intentionally add a space to the beginning and end of lib strings, simplifies replace later
|
||||
-libs=" $ldflags -L$pkglibdir -lmysqlclient @ZLIB_DEPS@ @NON_THREADED_LIBS@"
|
||||
+libs=" -L$pkglibdir -lmysqlclient @ZLIB_DEPS@ @NON_THREADED_LIBS@"
|
||||
libs="$libs @openssl_libs@ @STATIC_NSS_FLAGS@ "
|
||||
-libs_r=" $ldflags -L$pkglibdir -lmysqlclient_r @ZLIB_DEPS@ @LIBS@ @openssl_libs@ "
|
||||
-embedded_libs=" $ldflags -L$pkglibdir -lmysqld @LIBDL@ @ZLIB_DEPS@ @LIBS@ @WRAPLIBS@ @innodb_system_libs@ @openssl_libs@ "
|
||||
+libs_r=" -L$pkglibdir -lmysqlclient_r @ZLIB_DEPS@ @LIBS@ @openssl_libs@ "
|
||||
+embedded_libs=" -L$pkglibdir -lmysqld @LIBDL@ @ZLIB_DEPS@ @LIBS@ @WRAPLIBS@ @innodb_system_libs@ @openssl_libs@ "
|
||||
|
||||
if [ -r "$pkglibdir/libmygcc.a" ]; then
|
||||
# When linking against the static library with a different version of GCC
|
||||
--
|
||||
1.7.2.5
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="sqlite"
|
||||
PKG_VERSION="autoconf-3080301"
|
||||
PKG_VERSION="autoconf-3080403"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="PublicDomain"
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="vdpauinfo"
|
||||
PKG_VERSION="0.0.6"
|
||||
PKG_VERSION="0.1"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
||||
@@ -1,67 +0,0 @@
|
||||
dnl -*- mode: autoconf -*-
|
||||
|
||||
# serial 1
|
||||
|
||||
dnl Usage:
|
||||
dnl GTK_DOC_CHECK([minimum-gtk-doc-version])
|
||||
AC_DEFUN([GTK_DOC_CHECK],
|
||||
[
|
||||
AC_REQUIRE([PKG_PROG_PKG_CONFIG])
|
||||
AC_BEFORE([AC_PROG_LIBTOOL],[$0])dnl setup libtool first
|
||||
AC_BEFORE([AM_PROG_LIBTOOL],[$0])dnl setup libtool first
|
||||
|
||||
dnl check for tools we added during development
|
||||
AC_PATH_PROG([GTKDOC_CHECK],[gtkdoc-check])
|
||||
AC_PATH_PROGS([GTKDOC_REBASE],[gtkdoc-rebase],[true])
|
||||
AC_PATH_PROG([GTKDOC_MKPDF],[gtkdoc-mkpdf])
|
||||
|
||||
dnl for overriding the documentation installation directory
|
||||
AC_ARG_WITH([html-dir],
|
||||
AS_HELP_STRING([--with-html-dir=PATH], [path to installed docs]),,
|
||||
[with_html_dir='${datadir}/gtk-doc/html'])
|
||||
HTML_DIR="$with_html_dir"
|
||||
AC_SUBST([HTML_DIR])
|
||||
|
||||
dnl enable/disable documentation building
|
||||
AC_ARG_ENABLE([gtk-doc],
|
||||
AS_HELP_STRING([--enable-gtk-doc],
|
||||
[use gtk-doc to build documentation [[default=no]]]),,
|
||||
[enable_gtk_doc=no])
|
||||
|
||||
if test x$enable_gtk_doc = xyes; then
|
||||
ifelse([$1],[],
|
||||
[PKG_CHECK_EXISTS([gtk-doc],,
|
||||
AC_MSG_ERROR([gtk-doc not installed and --enable-gtk-doc requested]))],
|
||||
[PKG_CHECK_EXISTS([gtk-doc >= $1],,
|
||||
AC_MSG_ERROR([You need to have gtk-doc >= $1 installed to build $PACKAGE_NAME]))])
|
||||
dnl don't check for glib if we build glib
|
||||
if test "x$PACKAGE_NAME" != "xglib"; then
|
||||
dnl don't fail if someone does not have glib
|
||||
PKG_CHECK_MODULES(GTKDOC_DEPS, glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0,,)
|
||||
fi
|
||||
fi
|
||||
|
||||
AC_MSG_CHECKING([whether to build gtk-doc documentation])
|
||||
AC_MSG_RESULT($enable_gtk_doc)
|
||||
|
||||
dnl enable/disable output formats
|
||||
AC_ARG_ENABLE([gtk-doc-html],
|
||||
AS_HELP_STRING([--enable-gtk-doc-html],
|
||||
[build documentation in html format [[default=yes]]]),,
|
||||
[enable_gtk_doc_html=yes])
|
||||
AC_ARG_ENABLE([gtk-doc-pdf],
|
||||
AS_HELP_STRING([--enable-gtk-doc-pdf],
|
||||
[build documentation in pdf format [[default=no]]]),,
|
||||
[enable_gtk_doc_pdf=no])
|
||||
|
||||
if test -z "$GTKDOC_MKPDF"; then
|
||||
enable_gtk_doc_pdf=no
|
||||
fi
|
||||
|
||||
|
||||
AM_CONDITIONAL([ENABLE_GTK_DOC], [test x$enable_gtk_doc = xyes])
|
||||
AM_CONDITIONAL([GTK_DOC_BUILD_HTML], [test x$enable_gtk_doc_html = xyes])
|
||||
AM_CONDITIONAL([GTK_DOC_BUILD_PDF], [test x$enable_gtk_doc_pdf = xyes])
|
||||
AM_CONDITIONAL([GTK_DOC_USE_LIBTOOL], [test -n "$LIBTOOL"])
|
||||
AM_CONDITIONAL([GTK_DOC_USE_REBASE], [test -n "$GTKDOC_REBASE"])
|
||||
])
|
||||
@@ -1,96 +0,0 @@
|
||||
dnl -*- mode: autoconf -*-
|
||||
dnl Copyright 2009 Johan Dahlin
|
||||
dnl
|
||||
dnl This file is free software; the author(s) gives unlimited
|
||||
dnl permission to copy and/or distribute it, with or without
|
||||
dnl modifications, as long as this notice is preserved.
|
||||
dnl
|
||||
|
||||
# serial 1
|
||||
|
||||
m4_define([_GOBJECT_INTROSPECTION_CHECK_INTERNAL],
|
||||
[
|
||||
AC_BEFORE([AC_PROG_LIBTOOL],[$0])dnl setup libtool first
|
||||
AC_BEFORE([AM_PROG_LIBTOOL],[$0])dnl setup libtool first
|
||||
AC_BEFORE([LT_INIT],[$0])dnl setup libtool first
|
||||
|
||||
dnl enable/disable introspection
|
||||
m4_if([$2], [require],
|
||||
[dnl
|
||||
enable_introspection=yes
|
||||
],[dnl
|
||||
AC_ARG_ENABLE(introspection,
|
||||
AS_HELP_STRING([--enable-introspection[=@<:@no/auto/yes@:>@]],
|
||||
[Enable introspection for this build]),,
|
||||
[enable_introspection=auto])
|
||||
])dnl
|
||||
|
||||
AC_MSG_CHECKING([for gobject-introspection])
|
||||
|
||||
dnl presence/version checking
|
||||
AS_CASE([$enable_introspection],
|
||||
[no], [dnl
|
||||
found_introspection="no (disabled, use --enable-introspection to enable)"
|
||||
],dnl
|
||||
[yes],[dnl
|
||||
PKG_CHECK_EXISTS([gobject-introspection-1.0],,
|
||||
AC_MSG_ERROR([gobject-introspection-1.0 is not installed]))
|
||||
PKG_CHECK_EXISTS([gobject-introspection-1.0 >= $1],
|
||||
found_introspection=yes,
|
||||
AC_MSG_ERROR([You need to have gobject-introspection >= $1 installed to build AC_PACKAGE_NAME]))
|
||||
],dnl
|
||||
[auto],[dnl
|
||||
PKG_CHECK_EXISTS([gobject-introspection-1.0 >= $1], found_introspection=yes, found_introspection=no)
|
||||
dnl Canonicalize enable_introspection
|
||||
enable_introspection=$found_introspection
|
||||
],dnl
|
||||
[dnl
|
||||
AC_MSG_ERROR([invalid argument passed to --enable-introspection, should be one of @<:@no/auto/yes@:>@])
|
||||
])dnl
|
||||
|
||||
AC_MSG_RESULT([$found_introspection])
|
||||
|
||||
INTROSPECTION_SCANNER=
|
||||
INTROSPECTION_COMPILER=
|
||||
INTROSPECTION_GENERATE=
|
||||
INTROSPECTION_GIRDIR=
|
||||
INTROSPECTION_TYPELIBDIR=
|
||||
if test "x$found_introspection" = "xyes"; then
|
||||
INTROSPECTION_SCANNER=`$PKG_CONFIG --variable=g_ir_scanner gobject-introspection-1.0`
|
||||
INTROSPECTION_COMPILER=`$PKG_CONFIG --variable=g_ir_compiler gobject-introspection-1.0`
|
||||
INTROSPECTION_GENERATE=`$PKG_CONFIG --variable=g_ir_generate gobject-introspection-1.0`
|
||||
INTROSPECTION_GIRDIR=`$PKG_CONFIG --variable=girdir gobject-introspection-1.0`
|
||||
INTROSPECTION_TYPELIBDIR="$($PKG_CONFIG --variable=typelibdir gobject-introspection-1.0)"
|
||||
INTROSPECTION_CFLAGS=`$PKG_CONFIG --cflags gobject-introspection-1.0`
|
||||
INTROSPECTION_LIBS=`$PKG_CONFIG --libs gobject-introspection-1.0`
|
||||
INTROSPECTION_MAKEFILE=`$PKG_CONFIG --variable=datadir gobject-introspection-1.0`/gobject-introspection-1.0/Makefile.introspection
|
||||
fi
|
||||
AC_SUBST(INTROSPECTION_SCANNER)
|
||||
AC_SUBST(INTROSPECTION_COMPILER)
|
||||
AC_SUBST(INTROSPECTION_GENERATE)
|
||||
AC_SUBST(INTROSPECTION_GIRDIR)
|
||||
AC_SUBST(INTROSPECTION_TYPELIBDIR)
|
||||
AC_SUBST(INTROSPECTION_CFLAGS)
|
||||
AC_SUBST(INTROSPECTION_LIBS)
|
||||
AC_SUBST(INTROSPECTION_MAKEFILE)
|
||||
|
||||
AM_CONDITIONAL(HAVE_INTROSPECTION, test "x$found_introspection" = "xyes")
|
||||
])
|
||||
|
||||
|
||||
dnl Usage:
|
||||
dnl GOBJECT_INTROSPECTION_CHECK([minimum-g-i-version])
|
||||
|
||||
AC_DEFUN([GOBJECT_INTROSPECTION_CHECK],
|
||||
[
|
||||
_GOBJECT_INTROSPECTION_CHECK_INTERNAL([$1])
|
||||
])
|
||||
|
||||
dnl Usage:
|
||||
dnl GOBJECT_INTROSPECTION_REQUIRE([minimum-g-i-version])
|
||||
|
||||
|
||||
AC_DEFUN([GOBJECT_INTROSPECTION_REQUIRE],
|
||||
[
|
||||
_GOBJECT_INTROSPECTION_CHECK_INTERNAL([$1], [require])
|
||||
])
|
||||
@@ -36,5 +36,4 @@ PKG_CONFIGURE_OPTS_HOST="--target=$TARGET_NAME --disable-silent-rules"
|
||||
|
||||
post_makeinstall_host() {
|
||||
make prefix=$SYSROOT_PREFIX/usr install
|
||||
cp -P $PKG_DIR/files/*.m4 $SYSROOT_PREFIX/usr/share/aclocal
|
||||
}
|
||||
|
||||
@@ -28,7 +28,7 @@ PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://www.gnu.org/software/binutils/binutils.html"
|
||||
PKG_URL="http://ftp.gnu.org/gnu/binutils/$PKG_NAME-$PKG_VERSION.tar.gz"
|
||||
PKG_DEPENDS_HOST="ccache:host bison:host flex:flex linux:host gmp:host mpfr:host cloog:host ppl:host"
|
||||
PKG_DEPENDS_HOST="ccache:host bison:host flex:host linux:host gmp:host mpfr:host cloog:host ppl:host"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="toolchain/devel"
|
||||
PKG_SHORTDESC="binutils: A GNU collection of binary utilities"
|
||||
|
||||
@@ -33,7 +33,7 @@ PKG_IS_ADDON="no"
|
||||
PKG_AUTORECONF="no"
|
||||
|
||||
configure_host() {
|
||||
../configure --no-qt-gui
|
||||
../configure --no-qt-gui -- -DBUILD_CursesDialog=0
|
||||
}
|
||||
|
||||
makeinstall_host() {
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="elfutils"
|
||||
PKG_VERSION="0.155"
|
||||
PKG_VERSION="0.158"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
@@ -32,7 +32,8 @@ PKG_LONGDESC="Elfutils is a collection of utilities, including eu-ld (a linker),
|
||||
PKG_IS_ADDON="no"
|
||||
PKG_AUTORECONF="yes"
|
||||
|
||||
PKG_CONFIGURE_OPTS_TARGET="--disable-werror \
|
||||
PKG_CONFIGURE_OPTS_TARGET="utrace_cv_cc_biarch=false \
|
||||
--disable-werror \
|
||||
--disable-progs \
|
||||
--with-zlib \
|
||||
--without-bzlib \
|
||||
|
||||
@@ -1,92 +0,0 @@
|
||||
Allow the usage of an external implementation of the argp functions
|
||||
|
||||
uClibc lack the argp family of functions that glibc has. Therefore, we
|
||||
add a check in the configure script to see if argp_parse is available
|
||||
in the C library. If not, we look if it is available in the additional
|
||||
'argp' library. If so, we link against that library. If not, we error
|
||||
out.
|
||||
|
||||
This allows to build elfutils against uClibc with an external argp
|
||||
library.
|
||||
|
||||
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
|
||||
Index: b/configure.ac
|
||||
===================================================================
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -269,6 +269,13 @@
|
||||
enable_progs=yes)
|
||||
AM_CONDITIONAL(ENABLE_PROGS, test "$enable_progs" = yes)
|
||||
|
||||
+AC_CHECK_FUNC([argp_parse])
|
||||
+if test "$ac_cv_func_argp_parse" != yes; then
|
||||
+ AC_CHECK_LIB([argp],[argp_parse],ARGP_LIBS=-largp,
|
||||
+ AC_MSG_ERROR([No argp_parse function available.]))
|
||||
+fi
|
||||
+AC_SUBST(ARGP_LIBS)
|
||||
+
|
||||
dnl Test for zlib and bzlib, gives ZLIB/BZLIB .am
|
||||
dnl conditional and config.h USE_ZLIB/USE_BZLIB #define.
|
||||
save_LIBS="$LIBS"
|
||||
Index: b/src/Makefile.am
|
||||
===================================================================
|
||||
--- a/src/Makefile.am
|
||||
+++ b/src/Makefile.am
|
||||
@@ -98,26 +98,29 @@
|
||||
# Buggy old compilers.
|
||||
readelf_no_Werror = yes
|
||||
|
||||
-readelf_LDADD = $(libdw) $(libebl) $(libelf) $(libeu) $(libmudflap) -ldl
|
||||
+readelf_LDADD = $(libdw) $(libebl) $(libelf) $(libeu) $(libmudflap) -ldl \
|
||||
+ $(ARGP_LIBS)
|
||||
nm_LDADD = $(libdw) $(libebl) $(libelf) $(libeu) $(libmudflap) -ldl \
|
||||
- $(demanglelib)
|
||||
-size_LDADD = $(libelf) $(libeu) $(libmudflap)
|
||||
-strip_LDADD = $(libebl) $(libelf) $(libeu) $(libmudflap) -ldl
|
||||
-ld_LDADD = $(libebl) $(libelf) $(libeu) $(libmudflap) -ldl
|
||||
+ $(demanglelib) $(ARGP_LIBS)
|
||||
+size_LDADD = $(libelf) $(libeu) $(libmudflap) $(ARGP_LIBS)
|
||||
+strip_LDADD = $(libebl) $(libelf) $(libeu) $(libmudflap) -ldl $(ARGP_LIBS)
|
||||
+ld_LDADD = $(libebl) $(libelf) $(libeu) $(libmudflap) -ldl $(ARGP_LIBS)
|
||||
if NATIVE_LD
|
||||
# -ldl is always needed for libebl.
|
||||
ld_LDADD += libld_elf.a
|
||||
endif
|
||||
ld_LDFLAGS = -rdynamic
|
||||
-elflint_LDADD = $(libebl) $(libelf) $(libeu) $(libmudflap) -ldl
|
||||
-findtextrel_LDADD = $(libdw) $(libelf) $(libmudflap)
|
||||
-addr2line_LDADD = $(libdw) $(libelf) $(libmudflap)
|
||||
-elfcmp_LDADD = $(libebl) $(libelf) $(libmudflap) -ldl
|
||||
-objdump_LDADD = $(libasm) $(libebl) $(libelf) $(libeu) $(libmudflap) -ldl
|
||||
-ranlib_LDADD = libar.a $(libelf) $(libeu) $(libmudflap)
|
||||
-strings_LDADD = $(libelf) $(libeu) $(libmudflap)
|
||||
-ar_LDADD = libar.a $(libelf) $(libeu) $(libmudflap)
|
||||
-unstrip_LDADD = $(libebl) $(libelf) $(libdw) $(libeu) $(libmudflap) -ldl
|
||||
+elflint_LDADD = $(libebl) $(libelf) $(libeu) $(libmudflap) -ldl $(ARGP_LIBS)
|
||||
+findtextrel_LDADD = $(libdw) $(libelf) $(libmudflap) $(ARGP_LIBS)
|
||||
+addr2line_LDADD = $(libdw) $(libelf) $(libmudflap) $(ARGP_LIBS)
|
||||
+elfcmp_LDADD = $(libebl) $(libelf) $(libmudflap) -ldl $(ARGP_LIBS)
|
||||
+objdump_LDADD = $(libasm) $(libebl) $(libelf) $(libeu) $(libmudflap) -ldl \
|
||||
+ $(ARGP_LIBS)
|
||||
+ranlib_LDADD = libar.a $(libelf) $(libeu) $(libmudflap) $(ARGP_LIBS)
|
||||
+strings_LDADD = $(libelf) $(libeu) $(libmudflap) $(ARGP_LIBS)
|
||||
+ar_LDADD = libar.a $(libelf) $(libeu) $(libmudflap) $(ARGP_LIBS)
|
||||
+unstrip_LDADD = $(libebl) $(libelf) $(libdw) $(libeu) $(libmudflap) -ldl \
|
||||
+ $(ARGP_LIBS)
|
||||
|
||||
ldlex.o: ldscript.c
|
||||
ldlex_no_Werror = yes
|
||||
Index: b/libdw/Makefile.am
|
||||
===================================================================
|
||||
--- a/libdw/Makefile.am
|
||||
+++ b/libdw/Makefile.am
|
||||
@@ -111,7 +111,7 @@
|
||||
-Wl,--enable-new-dtags,-rpath,$(pkglibdir) \
|
||||
-Wl,--version-script,$<,--no-undefined \
|
||||
-Wl,--whole-archive $(filter-out $<,$^) -Wl,--no-whole-archive\
|
||||
- -ldl $(zip_LIBS)
|
||||
+ -ldl $(zip_LIBS) $(ARGP_LIBS)
|
||||
if readelf -d $@ | fgrep -q TEXTREL; then exit 1; fi
|
||||
ln -fs $@ $@.$(VERSION)
|
||||
|
||||
@@ -1,24 +0,0 @@
|
||||
Provide a compatibility alias __memcpy
|
||||
|
||||
For some reason, libelf uses the internal glibc alias __memcpy, which
|
||||
doesn't exist in uClibc. Add a manual alias so that the build can
|
||||
proceed with uClibc.
|
||||
|
||||
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
|
||||
Index: b/libelf/libelf.h
|
||||
===================================================================
|
||||
--- a/libelf/libelf.h
|
||||
+++ b/libelf/libelf.h
|
||||
@@ -34,6 +34,11 @@
|
||||
/* Get the ELF types. */
|
||||
#include <elf.h>
|
||||
|
||||
+#ifndef _LIBC
|
||||
+#ifndef __mempcpy
|
||||
+#define __mempcpy mempcpy
|
||||
+#endif
|
||||
+#endif
|
||||
|
||||
/* Known translation types. */
|
||||
typedef enum
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,28 @@
|
||||
commit 7f1eec317db79627b473c5b149a22a1b20d1f68f
|
||||
Author: Mark Wielaard <mjw@redhat.com>
|
||||
Date: Wed Apr 9 11:33:23 2014 +0200
|
||||
|
||||
CVE-2014-0172 Check for overflow before calling malloc to uncompress data.
|
||||
|
||||
https://bugzilla.redhat.com/show_bug.cgi?id=1085663
|
||||
|
||||
Reported-by: Florian Weimer <fweimer@redhat.com>
|
||||
Signed-off-by: Mark Wielaard <mjw@redhat.com>
|
||||
|
||||
diff --git a/libdw/dwarf_begin_elf.c b/libdw/dwarf_begin_elf.c
|
||||
index 79daeac..34ea373 100644
|
||||
--- a/libdw/dwarf_begin_elf.c
|
||||
+++ b/libdw/dwarf_begin_elf.c
|
||||
@@ -282,6 +282,12 @@ check_section (Dwarf *result, GElf_Ehdr *ehdr, Elf_Scn *scn, bool inscngrp)
|
||||
memcpy (&size, data->d_buf + 4, sizeof size);
|
||||
size = be64toh (size);
|
||||
|
||||
+ /* Check for unsigned overflow so malloc always allocated
|
||||
+ enough memory for both the Elf_Data header and the
|
||||
+ uncompressed section data. */
|
||||
+ if (unlikely (sizeof (Elf_Data) + size < size))
|
||||
+ break;
|
||||
+
|
||||
Elf_Data *zdata = malloc (sizeof (Elf_Data) + size);
|
||||
if (unlikely (zdata == NULL))
|
||||
break;
|
||||
@@ -0,0 +1,62 @@
|
||||
commit 65cefbd0793c0f9e90a326d7bebf0a47c93294ad
|
||||
Author: Josh Stone <jistone@redhat.com>
|
||||
Date: Tue Mar 11 10:19:28 2014 -0700
|
||||
|
||||
libdwfl: dwfl_module_getdwarf.c (open_elf) only (re)set mod->e_type once.
|
||||
|
||||
As noted in https://sourceware.org/bugzilla/show_bug.cgi?id=16676#c2 for
|
||||
systemtap, the heuristic used by open_elf to set the kernel Dwfl_Module
|
||||
type to ET_DYN, even if the underlying ELF file e_type was set to
|
||||
ET_EXEC, could trigger erroneously for non-kernel/non-main (debug or
|
||||
aux) files. Make sure we only set the e_type of the module once when
|
||||
processing the main file (when the phdrs can be trusted).
|
||||
|
||||
diff --git a/libdwfl/dwfl_module_getdwarf.c b/libdwfl/dwfl_module_getdwarf.c
|
||||
index c4bd739..f8de80b 100644
|
||||
--- a/libdwfl/dwfl_module_getdwarf.c
|
||||
+++ b/libdwfl/dwfl_module_getdwarf.c
|
||||
@@ -1,5 +1,5 @@
|
||||
/* Find debugging and symbol information for a module in libdwfl.
|
||||
- Copyright (C) 2005-2012 Red Hat, Inc.
|
||||
+ Copyright (C) 2005-2012, 2014 Red Hat, Inc.
|
||||
This file is part of elfutils.
|
||||
|
||||
This file is free software; you can redistribute it and/or modify
|
||||
@@ -77,7 +77,7 @@ open_elf (Dwfl_Module *mod, struct dwfl_file *file)
|
||||
return DWFL_E (LIBELF, elf_errno ());
|
||||
}
|
||||
|
||||
- if (mod->e_type != ET_REL)
|
||||
+ if (ehdr->e_type != ET_REL)
|
||||
{
|
||||
/* In any non-ET_REL file, we compute the "synchronization address".
|
||||
|
||||
@@ -131,11 +131,24 @@ open_elf (Dwfl_Module *mod, struct dwfl_file *file)
|
||||
}
|
||||
}
|
||||
|
||||
- mod->e_type = ehdr->e_type;
|
||||
+ /* We only want to set the module e_type explictly once, derived from
|
||||
+ the main ELF file. (It might be changed for the kernel, because
|
||||
+ that is special - see below.) open_elf is always called first for
|
||||
+ the main ELF file, because both find_dw and find_symtab call
|
||||
+ __libdwfl_getelf first to open the main file. So don't let debug
|
||||
+ or aux files override the module e_type. The kernel heuristic
|
||||
+ below could otherwise trigger for non-kernel/non-main files, since
|
||||
+ their phdrs might not match the actual load addresses. */
|
||||
+ if (file == &mod->main)
|
||||
+ {
|
||||
+ mod->e_type = ehdr->e_type;
|
||||
|
||||
- /* Relocatable Linux kernels are ET_EXEC but act like ET_DYN. */
|
||||
- if (mod->e_type == ET_EXEC && file->vaddr != mod->low_addr)
|
||||
- mod->e_type = ET_DYN;
|
||||
+ /* Relocatable Linux kernels are ET_EXEC but act like ET_DYN. */
|
||||
+ if (mod->e_type == ET_EXEC && file->vaddr != mod->low_addr)
|
||||
+ mod->e_type = ET_DYN;
|
||||
+ }
|
||||
+ else
|
||||
+ assert (mod->main.elf != NULL);
|
||||
|
||||
return DWFL_E_NOERROR;
|
||||
}
|
||||
@@ -1,77 +0,0 @@
|
||||
diff -Naur elfutils-0.155/libasm/Makefile.am elfutils-0.155.patch/libasm/Makefile.am
|
||||
--- elfutils-0.155/libasm/Makefile.am 2012-08-27 20:27:31.000000000 +0200
|
||||
+++ elfutils-0.155.patch/libasm/Makefile.am 2013-03-05 18:11:43.841545009 +0100
|
||||
@@ -69,7 +69,6 @@
|
||||
-Wl,--version-script,$(srcdir)/libasm.map,--no-undefined \
|
||||
-Wl,--soname,$@.$(VERSION) \
|
||||
../libebl/libebl.a ../libelf/libelf.so $(libasm_so_LDLIBS)
|
||||
- if readelf -d $@ | fgrep -q TEXTREL; then exit 1; fi
|
||||
ln -fs $@ $@.$(VERSION)
|
||||
|
||||
install: install-am libasm.so
|
||||
diff -Naur elfutils-0.155/libasm/Makefile.in elfutils-0.155.patch/libasm/Makefile.in
|
||||
--- elfutils-0.155/libasm/Makefile.in 2012-08-27 20:29:45.000000000 +0200
|
||||
+++ elfutils-0.155.patch/libasm/Makefile.in 2013-03-05 18:12:05.604432305 +0100
|
||||
@@ -654,7 +654,6 @@
|
||||
@MUDFLAP_FALSE@ -Wl,--version-script,$(srcdir)/libasm.map,--no-undefined \
|
||||
@MUDFLAP_FALSE@ -Wl,--soname,$@.$(VERSION) \
|
||||
@MUDFLAP_FALSE@ ../libebl/libebl.a ../libelf/libelf.so $(libasm_so_LDLIBS)
|
||||
-@MUDFLAP_FALSE@ if readelf -d $@ | fgrep -q TEXTREL; then exit 1; fi
|
||||
@MUDFLAP_FALSE@ ln -fs $@ $@.$(VERSION)
|
||||
|
||||
@MUDFLAP_FALSE@install: install-am libasm.so
|
||||
diff -Naur elfutils-0.155/libdw/Makefile.am elfutils-0.155.patch/libdw/Makefile.am
|
||||
--- elfutils-0.155/libdw/Makefile.am 2012-08-27 20:27:31.000000000 +0200
|
||||
+++ elfutils-0.155.patch/libdw/Makefile.am 2013-03-05 18:12:26.753322780 +0100
|
||||
@@ -112,7 +112,6 @@
|
||||
-Wl,--version-script,$<,--no-undefined \
|
||||
-Wl,--whole-archive $(filter-out $<,$^) -Wl,--no-whole-archive\
|
||||
-ldl $(zip_LIBS)
|
||||
- if readelf -d $@ | fgrep -q TEXTREL; then exit 1; fi
|
||||
ln -fs $@ $@.$(VERSION)
|
||||
|
||||
install: install-am libdw.so
|
||||
diff -Naur elfutils-0.155/libdw/Makefile.in elfutils-0.155.patch/libdw/Makefile.in
|
||||
--- elfutils-0.155/libdw/Makefile.in 2012-08-27 20:29:45.000000000 +0200
|
||||
+++ elfutils-0.155.patch/libdw/Makefile.in 2013-03-05 18:12:41.272246520 +0100
|
||||
@@ -844,7 +844,6 @@
|
||||
@MUDFLAP_FALSE@ -Wl,--version-script,$<,--no-undefined \
|
||||
@MUDFLAP_FALSE@ -Wl,--whole-archive $(filter-out $<,$^) -Wl,--no-whole-archive\
|
||||
@MUDFLAP_FALSE@ -ldl $(zip_LIBS)
|
||||
-@MUDFLAP_FALSE@ if readelf -d $@ | fgrep -q TEXTREL; then exit 1; fi
|
||||
@MUDFLAP_FALSE@ ln -fs $@ $@.$(VERSION)
|
||||
|
||||
@MUDFLAP_FALSE@install: install-am libdw.so
|
||||
diff -Naur elfutils-0.155/libelf/Makefile.am elfutils-0.155.patch/libelf/Makefile.am
|
||||
--- elfutils-0.155/libelf/Makefile.am 2012-08-27 20:27:31.000000000 +0200
|
||||
+++ elfutils-0.155.patch/libelf/Makefile.am 2013-03-05 18:13:23.328024851 +0100
|
||||
@@ -106,7 +106,6 @@
|
||||
$(LINK) -shared -o $@ -Wl,--whole-archive,$<,--no-whole-archive \
|
||||
-Wl,--version-script,$(srcdir)/libelf.map,--no-undefined \
|
||||
-Wl,--soname,$@.$(VERSION),-z,defs,-z,relro $(libelf_so_LDLIBS)
|
||||
- if readelf -d $@ | fgrep -q TEXTREL; then exit 1; fi
|
||||
ln -fs $@ $@.$(VERSION)
|
||||
|
||||
install: install-am libelf.so
|
||||
diff -Naur elfutils-0.155/libelf/Makefile.in elfutils-0.155.patch/libelf/Makefile.in
|
||||
--- elfutils-0.155/libelf/Makefile.in 2012-08-27 20:29:45.000000000 +0200
|
||||
+++ elfutils-0.155.patch/libelf/Makefile.in 2013-03-05 18:13:37.270951393 +0100
|
||||
@@ -830,7 +830,6 @@
|
||||
@MUDFLAP_FALSE@ $(LINK) -shared -o $@ -Wl,--whole-archive,$<,--no-whole-archive \
|
||||
@MUDFLAP_FALSE@ -Wl,--version-script,$(srcdir)/libelf.map,--no-undefined \
|
||||
@MUDFLAP_FALSE@ -Wl,--soname,$@.$(VERSION),-z,defs,-z,relro $(libelf_so_LDLIBS)
|
||||
-@MUDFLAP_FALSE@ if readelf -d $@ | fgrep -q TEXTREL; then exit 1; fi
|
||||
@MUDFLAP_FALSE@ ln -fs $@ $@.$(VERSION)
|
||||
|
||||
@MUDFLAP_FALSE@install: install-am libelf.so
|
||||
diff -Naur elfutils-0.155/src/Makefile.in elfutils-0.155.patch/src/Makefile.in
|
||||
--- elfutils-0.155/src/Makefile.in 2012-08-27 20:29:46.000000000 +0200
|
||||
+++ elfutils-0.155.patch/src/Makefile.in 2013-03-05 18:14:22.361713943 +0100
|
||||
@@ -867,7 +867,6 @@
|
||||
@NATIVE_LD_FALSE@ $(LINK) -shared -o $@ -Wl,--whole-archive,$<,--no-whole-archive \
|
||||
@NATIVE_LD_FALSE@ $(libelf) $(libeu) \
|
||||
@NATIVE_LD_FALSE@ -Wl,--version-script,$(srcdir)/libld_elf_i386.map
|
||||
-@NATIVE_LD_FALSE@ $(textrel_check)
|
||||
|
||||
# Special rule to make it possible to define libld_elf_a_SOURCES as we do.
|
||||
# Otherwise make would complain.
|
||||
@@ -1,26 +0,0 @@
|
||||
diff -Naur elfutils-0.155/Makefile.am elfutils-0.155.patch/Makefile.am
|
||||
--- elfutils-0.155/Makefile.am 2012-08-27 20:27:31.000000000 +0200
|
||||
+++ elfutils-0.155.patch/Makefile.am 2013-03-05 18:38:47.565095550 +0100
|
||||
@@ -23,8 +23,7 @@
|
||||
pkginclude_HEADERS = version.h
|
||||
|
||||
# Add doc back when we have some real content.
|
||||
-SUBDIRS = config m4 lib libelf libebl libdwfl libdw libcpu libasm backends \
|
||||
- src po tests
|
||||
+SUBDIRS = config m4 lib libelf libebl libdwfl libdw
|
||||
|
||||
EXTRA_DIST = elfutils.spec GPG-KEY NOTES CONTRIBUTING \
|
||||
COPYING COPYING-GPLV2 COPYING-LGPLV3
|
||||
diff -Naur elfutils-0.155/Makefile.in elfutils-0.155.patch/Makefile.in
|
||||
--- elfutils-0.155/Makefile.in 2012-08-27 20:29:45.000000000 +0200
|
||||
+++ elfutils-0.155.patch/Makefile.in 2013-03-05 18:39:11.176974119 +0100
|
||||
@@ -256,8 +256,7 @@
|
||||
pkginclude_HEADERS = version.h
|
||||
|
||||
# Add doc back when we have some real content.
|
||||
-SUBDIRS = config m4 lib libelf libebl libdwfl libdw libcpu libasm backends \
|
||||
- src po tests
|
||||
+SUBDIRS = config m4 lib libelf libebl libdwfl libdw
|
||||
|
||||
EXTRA_DIST = elfutils.spec GPG-KEY NOTES CONTRIBUTING \
|
||||
COPYING COPYING-GPLV2 COPYING-LGPLV3
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,6 +1,6 @@
|
||||
--- elfutils/libdwfl/ChangeLog
|
||||
+++ elfutils/libdwfl/ChangeLog
|
||||
@@ -52,6 +52,11 @@
|
||||
@@ -680,6 +680,11 @@
|
||||
* dwfl_module_getdwarf.c (open_elf): Clear errno before CBFAIL.
|
||||
Reported by Kurt Roeckx <kurt@roeckx.be>.
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
This file is part of elfutils.
|
||||
|
||||
This file is free software; you can redistribute it and/or modify
|
||||
@@ -457,7 +457,10 @@ relocate_section (Dwfl_Module *mod, Elf
|
||||
@@ -456,7 +456,10 @@ relocate_section (Dwfl_Module *mod, Elf
|
||||
}
|
||||
}
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
size_t complete = 0;
|
||||
if (shdr->sh_type == SHT_REL)
|
||||
for (size_t relidx = 0; !result && relidx < nrels; ++relidx)
|
||||
@@ -559,7 +562,7 @@ relocate_section (Dwfl_Module *mod, Elf
|
||||
@@ -558,7 +561,7 @@ relocate_section (Dwfl_Module *mod, Elf
|
||||
nrels = next;
|
||||
}
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
|
||||
--- elfutils/libelf/ChangeLog
|
||||
+++ elfutils/libelf/ChangeLog
|
||||
@@ -703,10 +703,53 @@
|
||||
@@ -754,10 +754,53 @@
|
||||
If section content hasn't been read yet, do it before looking for the
|
||||
block size. If no section data present, infer size of section header.
|
||||
|
||||
@@ -253,7 +253,7 @@
|
||||
|
||||
--- elfutils/libelf/elf_getarsym.c
|
||||
+++ elfutils/libelf/elf_getarsym.c
|
||||
@@ -181,6 +181,9 @@ elf_getarsym (elf, ptr)
|
||||
@@ -183,6 +183,9 @@ elf_getarsym (elf, ptr)
|
||||
size_t index_size = atol (tmpbuf);
|
||||
|
||||
if (SARMAG + sizeof (struct ar_hdr) + index_size > elf->maximum_size
|
||||
@@ -902,7 +902,7 @@
|
||||
#endif /* libelfP.h */
|
||||
--- elfutils/src/ChangeLog
|
||||
+++ elfutils/src/ChangeLog
|
||||
@@ -344,6 +344,12 @@
|
||||
@@ -702,6 +702,12 @@
|
||||
|
||||
* readelf.c (dwarf_attr_string): Grok DW_AT_GNU_odr_signature.
|
||||
|
||||
@@ -915,7 +915,7 @@
|
||||
2011-02-11 Roland McGrath <roland@redhat.com>
|
||||
|
||||
* elfcmp.c (verbose): New variable.
|
||||
@@ -2056,6 +2062,16 @@
|
||||
@@ -2414,6 +2420,16 @@
|
||||
object symbols or symbols with unknown type.
|
||||
(check_rel): Likewise.
|
||||
|
||||
@@ -932,7 +932,7 @@
|
||||
2005-06-08 Roland McGrath <roland@redhat.com>
|
||||
|
||||
* readelf.c (print_ops): Add consts.
|
||||
@@ -2101,6 +2117,19 @@
|
||||
@@ -2459,6 +2475,19 @@
|
||||
|
||||
* readelf.c (dwarf_tag_string): Add new tags.
|
||||
|
||||
@@ -1027,7 +1027,7 @@
|
||||
}
|
||||
|
||||
if (sym->st_shndx == SHN_XINDEX)
|
||||
@@ -1032,9 +1042,11 @@ is_rel_dyn (Ebl *ebl, const GElf_Ehdr *e
|
||||
@@ -1040,9 +1050,11 @@ is_rel_dyn (Ebl *ebl, const GElf_Ehdr *e
|
||||
{
|
||||
GElf_Shdr rcshdr_mem;
|
||||
const GElf_Shdr *rcshdr = gelf_getshdr (scn, &rcshdr_mem);
|
||||
@@ -1041,7 +1041,7 @@
|
||||
{
|
||||
/* Found the dynamic section. Look through it. */
|
||||
Elf_Data *d = elf_getdata (scn, NULL);
|
||||
@@ -1044,7 +1056,9 @@ is_rel_dyn (Ebl *ebl, const GElf_Ehdr *e
|
||||
@@ -1052,7 +1064,9 @@ is_rel_dyn (Ebl *ebl, const GElf_Ehdr *e
|
||||
{
|
||||
GElf_Dyn dyn_mem;
|
||||
GElf_Dyn *dyn = gelf_getdyn (d, cnt, &dyn_mem);
|
||||
@@ -1052,7 +1052,7 @@
|
||||
|
||||
if (dyn->d_tag == DT_RELCOUNT)
|
||||
{
|
||||
@@ -1058,7 +1072,9 @@ section [%2d] '%s': DT_RELCOUNT used for
|
||||
@@ -1066,7 +1080,9 @@ section [%2d] '%s': DT_RELCOUNT used for
|
||||
/* Does the number specified number of relative
|
||||
relocations exceed the total number of
|
||||
relocations? */
|
||||
@@ -1063,7 +1063,7 @@
|
||||
ERROR (gettext ("\
|
||||
section [%2d] '%s': DT_RELCOUNT value %d too high for this section\n"),
|
||||
idx, section_name (ebl, idx),
|
||||
@@ -1218,7 +1234,8 @@ section [%2d] '%s': no relocations for m
|
||||
@@ -1226,7 +1242,8 @@ section [%2d] '%s': no relocations for m
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1073,7 +1073,7 @@
|
||||
ERROR (gettext (reltype == ELF_T_RELA ? "\
|
||||
section [%2d] '%s': section entry size does not match ElfXX_Rela\n" : "\
|
||||
section [%2d] '%s': section entry size does not match ElfXX_Rel\n"),
|
||||
@@ -1441,7 +1458,8 @@ check_rela (Ebl *ebl, GElf_Ehdr *ehdr, G
|
||||
@@ -1449,7 +1466,8 @@ check_rela (Ebl *ebl, GElf_Ehdr *ehdr, G
|
||||
Elf_Data *symdata = elf_getdata (symscn, NULL);
|
||||
enum load_state state = state_undecided;
|
||||
|
||||
@@ -1083,7 +1083,7 @@
|
||||
{
|
||||
GElf_Rela rela_mem;
|
||||
GElf_Rela *rela = gelf_getrela (data, cnt, &rela_mem);
|
||||
@@ -1491,7 +1509,8 @@ check_rel (Ebl *ebl, GElf_Ehdr *ehdr, GE
|
||||
@@ -1499,7 +1517,8 @@ check_rel (Ebl *ebl, GElf_Ehdr *ehdr, GE
|
||||
Elf_Data *symdata = elf_getdata (symscn, NULL);
|
||||
enum load_state state = state_undecided;
|
||||
|
||||
@@ -1093,7 +1093,7 @@
|
||||
{
|
||||
GElf_Rel rel_mem;
|
||||
GElf_Rel *rel = gelf_getrel (data, cnt, &rel_mem);
|
||||
@@ -1590,7 +1609,8 @@ section [%2d] '%s': referenced as string
|
||||
@@ -1598,7 +1617,8 @@ section [%2d] '%s': referenced as string
|
||||
shdr->sh_link, section_name (ebl, shdr->sh_link),
|
||||
idx, section_name (ebl, idx));
|
||||
|
||||
@@ -1103,7 +1103,7 @@
|
||||
ERROR (gettext ("\
|
||||
section [%2d] '%s': section entry size does not match ElfXX_Dyn\n"),
|
||||
idx, section_name (ebl, idx));
|
||||
@@ -1600,7 +1620,7 @@ section [%2d] '%s': section entry size d
|
||||
@@ -1608,7 +1628,7 @@ section [%2d] '%s': section entry size d
|
||||
idx, section_name (ebl, idx));
|
||||
|
||||
bool non_null_warned = false;
|
||||
@@ -1112,7 +1112,7 @@
|
||||
{
|
||||
GElf_Dyn dyn_mem;
|
||||
GElf_Dyn *dyn = gelf_getdyn (data, cnt, &dyn_mem);
|
||||
@@ -1872,6 +1892,8 @@ section [%2d] '%s': entry size does not
|
||||
@@ -1880,6 +1900,8 @@ section [%2d] '%s': entry size does not
|
||||
idx, section_name (ebl, idx));
|
||||
|
||||
if (symshdr != NULL
|
||||
@@ -1121,7 +1121,7 @@
|
||||
&& (shdr->sh_size / shdr->sh_entsize
|
||||
< symshdr->sh_size / symshdr->sh_entsize))
|
||||
ERROR (gettext ("\
|
||||
@@ -1898,6 +1920,12 @@ section [%2d] '%s': extended section ind
|
||||
@@ -1906,6 +1928,12 @@ section [%2d] '%s': extended section ind
|
||||
}
|
||||
|
||||
Elf_Data *data = elf_getdata (elf_getscn (ebl->elf, idx), NULL);
|
||||
@@ -1134,7 +1134,7 @@
|
||||
|
||||
if (*((Elf32_Word *) data->d_buf) != 0)
|
||||
ERROR (gettext ("symbol 0 should have zero extended section index\n"));
|
||||
@@ -1940,7 +1968,7 @@ section [%2d] '%s': hash table section i
|
||||
@@ -1948,7 +1976,7 @@ section [%2d] '%s': hash table section i
|
||||
|
||||
size_t maxidx = nchain;
|
||||
|
||||
@@ -1143,7 +1143,7 @@
|
||||
{
|
||||
size_t symsize = symshdr->sh_size / symshdr->sh_entsize;
|
||||
|
||||
@@ -1951,18 +1979,28 @@ section [%2d] '%s': hash table section i
|
||||
@@ -1959,18 +1987,28 @@ section [%2d] '%s': hash table section i
|
||||
maxidx = symsize;
|
||||
}
|
||||
|
||||
@@ -1174,7 +1174,7 @@
|
||||
}
|
||||
|
||||
|
||||
@@ -1992,18 +2030,28 @@ section [%2d] '%s': hash table section i
|
||||
@@ -2000,18 +2038,28 @@ section [%2d] '%s': hash table section i
|
||||
maxidx = symsize;
|
||||
}
|
||||
|
||||
@@ -1206,7 +1206,7 @@
|
||||
}
|
||||
|
||||
|
||||
@@ -2028,7 +2076,7 @@ section [%2d] '%s': bitmask size not pow
|
||||
@@ -2036,7 +2084,7 @@ section [%2d] '%s': bitmask size not pow
|
||||
if (shdr->sh_size < (4 + bitmask_words + nbuckets) * sizeof (Elf32_Word))
|
||||
{
|
||||
ERROR (gettext ("\
|
||||
@@ -1215,7 +1215,7 @@
|
||||
idx, section_name (ebl, idx), (long int) shdr->sh_size,
|
||||
(long int) ((4 + bitmask_words + nbuckets) * sizeof (Elf32_Word)));
|
||||
return;
|
||||
@@ -2700,8 +2748,9 @@ section [%2d] '%s' refers in sh_link to
|
||||
@@ -2708,8 +2756,9 @@ section [%2d] '%s' refers in sh_link to
|
||||
|
||||
/* The number of elements in the version symbol table must be the
|
||||
same as the number of symbols. */
|
||||
@@ -1229,7 +1229,7 @@
|
||||
idx, section_name (ebl, idx),
|
||||
--- elfutils/src/readelf.c
|
||||
+++ elfutils/src/readelf.c
|
||||
@@ -1189,6 +1189,8 @@ handle_scngrp (Ebl *ebl, Elf_Scn *scn, G
|
||||
@@ -1364,6 +1364,8 @@ handle_scngrp (Ebl *ebl, Elf_Scn *scn, G
|
||||
Elf32_Word *grpref = (Elf32_Word *) data->d_buf;
|
||||
|
||||
GElf_Sym sym_mem;
|
||||
@@ -1238,7 +1238,7 @@
|
||||
printf ((grpref[0] & GRP_COMDAT)
|
||||
? ngettext ("\
|
||||
\nCOMDAT section group [%2zu] '%s' with signature '%s' contains %zu entry:\n",
|
||||
@@ -1201,8 +1203,8 @@ handle_scngrp (Ebl *ebl, Elf_Scn *scn, G
|
||||
@@ -1376,8 +1378,8 @@ handle_scngrp (Ebl *ebl, Elf_Scn *scn, G
|
||||
data->d_size / sizeof (Elf32_Word) - 1),
|
||||
elf_ndxscn (scn),
|
||||
elf_strptr (ebl->elf, shstrndx, shdr->sh_name),
|
||||
@@ -1249,7 +1249,7 @@
|
||||
?: gettext ("<INVALID SYMBOL>"),
|
||||
data->d_size / sizeof (Elf32_Word) - 1);
|
||||
|
||||
@@ -1353,10 +1355,12 @@ static void
|
||||
@@ -1528,10 +1530,12 @@ static void
|
||||
handle_dynamic (Ebl *ebl, Elf_Scn *scn, GElf_Shdr *shdr)
|
||||
{
|
||||
int class = gelf_getclass (ebl->elf);
|
||||
@@ -1263,7 +1263,7 @@
|
||||
|
||||
/* Get the data of the section. */
|
||||
data = elf_getdata (scn, NULL);
|
||||
@@ -1368,21 +1372,26 @@ handle_dynamic (Ebl *ebl, Elf_Scn *scn,
|
||||
@@ -1543,21 +1547,26 @@ handle_dynamic (Ebl *ebl, Elf_Scn *scn,
|
||||
error (EXIT_FAILURE, 0,
|
||||
gettext ("cannot get section header string table index"));
|
||||
|
||||
@@ -1296,7 +1296,7 @@
|
||||
{
|
||||
GElf_Dyn dynmem;
|
||||
GElf_Dyn *dyn = gelf_getdyn (data, cnt, &dynmem);
|
||||
@@ -1531,7 +1540,8 @@ static void
|
||||
@@ -1706,7 +1715,8 @@ static void
|
||||
handle_relocs_rel (Ebl *ebl, GElf_Ehdr *ehdr, Elf_Scn *scn, GElf_Shdr *shdr)
|
||||
{
|
||||
int class = gelf_getclass (ebl->elf);
|
||||
@@ -1306,7 +1306,7 @@
|
||||
|
||||
/* Get the data of the section. */
|
||||
Elf_Data *data = elf_getdata (scn, NULL);
|
||||
@@ -1717,7 +1727,8 @@ static void
|
||||
@@ -1892,7 +1902,8 @@ static void
|
||||
handle_relocs_rela (Ebl *ebl, GElf_Ehdr *ehdr, Elf_Scn *scn, GElf_Shdr *shdr)
|
||||
{
|
||||
int class = gelf_getclass (ebl->elf);
|
||||
@@ -1316,7 +1316,7 @@
|
||||
|
||||
/* Get the data of the section. */
|
||||
Elf_Data *data = elf_getdata (scn, NULL);
|
||||
@@ -1964,6 +1975,13 @@ handle_symtab (Ebl *ebl, Elf_Scn *scn, G
|
||||
@@ -2139,6 +2150,13 @@ handle_symtab (Ebl *ebl, Elf_Scn *scn, G
|
||||
error (EXIT_FAILURE, 0,
|
||||
gettext ("cannot get section header string table index"));
|
||||
|
||||
@@ -1330,7 +1330,7 @@
|
||||
/* Now we can compute the number of entries in the section. */
|
||||
unsigned int nsyms = data->d_size / (class == ELFCLASS32
|
||||
? sizeof (Elf32_Sym)
|
||||
@@ -1974,15 +1992,12 @@ handle_symtab (Ebl *ebl, Elf_Scn *scn, G
|
||||
@@ -2149,15 +2167,12 @@ handle_symtab (Ebl *ebl, Elf_Scn *scn, G
|
||||
nsyms),
|
||||
(unsigned int) elf_ndxscn (scn),
|
||||
elf_strptr (ebl->elf, shstrndx, shdr->sh_name), nsyms);
|
||||
@@ -1347,7 +1347,7 @@
|
||||
|
||||
fputs_unlocked (class == ELFCLASS32
|
||||
? gettext ("\
|
||||
@@ -2218,7 +2233,13 @@ handle_verneed (Ebl *ebl, Elf_Scn *scn,
|
||||
@@ -2393,7 +2408,13 @@ handle_verneed (Ebl *ebl, Elf_Scn *scn,
|
||||
error (EXIT_FAILURE, 0,
|
||||
gettext ("cannot get section header string table index"));
|
||||
|
||||
@@ -1362,7 +1362,7 @@
|
||||
printf (ngettext ("\
|
||||
\nVersion needs section [%2u] '%s' contains %d entry:\n Addr: %#0*" PRIx64 " Offset: %#08" PRIx64 " Link to section: [%2u] '%s'\n",
|
||||
"\
|
||||
@@ -2229,9 +2250,7 @@ handle_verneed (Ebl *ebl, Elf_Scn *scn,
|
||||
@@ -2404,9 +2425,7 @@ handle_verneed (Ebl *ebl, Elf_Scn *scn,
|
||||
class == ELFCLASS32 ? 10 : 18, shdr->sh_addr,
|
||||
shdr->sh_offset,
|
||||
(unsigned int) shdr->sh_link,
|
||||
@@ -1373,7 +1373,7 @@
|
||||
|
||||
unsigned int offset = 0;
|
||||
for (int cnt = shdr->sh_info; --cnt >= 0; )
|
||||
@@ -2284,8 +2303,14 @@ handle_verdef (Ebl *ebl, Elf_Scn *scn, G
|
||||
@@ -2459,8 +2478,14 @@ handle_verdef (Ebl *ebl, Elf_Scn *scn, G
|
||||
error (EXIT_FAILURE, 0,
|
||||
gettext ("cannot get section header string table index"));
|
||||
|
||||
@@ -1389,7 +1389,7 @@
|
||||
printf (ngettext ("\
|
||||
\nVersion definition section [%2u] '%s' contains %d entry:\n Addr: %#0*" PRIx64 " Offset: %#08" PRIx64 " Link to section: [%2u] '%s'\n",
|
||||
"\
|
||||
@@ -2297,9 +2322,7 @@ handle_verdef (Ebl *ebl, Elf_Scn *scn, G
|
||||
@@ -2472,9 +2497,7 @@ handle_verdef (Ebl *ebl, Elf_Scn *scn, G
|
||||
class == ELFCLASS32 ? 10 : 18, shdr->sh_addr,
|
||||
shdr->sh_offset,
|
||||
(unsigned int) shdr->sh_link,
|
||||
@@ -1400,7 +1400,7 @@
|
||||
|
||||
unsigned int offset = 0;
|
||||
for (int cnt = shdr->sh_info; --cnt >= 0; )
|
||||
@@ -2561,25 +2584,30 @@ handle_versym (Ebl *ebl, Elf_Scn *scn, G
|
||||
@@ -2736,25 +2759,30 @@ handle_versym (Ebl *ebl, Elf_Scn *scn, G
|
||||
filename = NULL;
|
||||
}
|
||||
|
||||
@@ -1438,7 +1438,7 @@
|
||||
{
|
||||
if (cnt % 2 == 0)
|
||||
printf ("\n %4d:", cnt);
|
||||
@@ -2628,7 +2656,17 @@ print_hash_info (Ebl *ebl, Elf_Scn *scn,
|
||||
@@ -2803,7 +2831,17 @@ print_hash_info (Ebl *ebl, Elf_Scn *scn,
|
||||
for (Elf32_Word cnt = 0; cnt < nbucket; ++cnt)
|
||||
++counts[lengths[cnt]];
|
||||
|
||||
@@ -1457,7 +1457,7 @@
|
||||
printf (ngettext ("\
|
||||
\nHistogram for bucket list length in section [%2u] '%s' (total of %d bucket):\n Addr: %#0*" PRIx64 " Offset: %#08" PRIx64 " Link to section: [%2u] '%s'\n",
|
||||
"\
|
||||
@@ -2641,9 +2679,7 @@ print_hash_info (Ebl *ebl, Elf_Scn *scn,
|
||||
@@ -2816,9 +2854,7 @@ print_hash_info (Ebl *ebl, Elf_Scn *scn,
|
||||
shdr->sh_addr,
|
||||
shdr->sh_offset,
|
||||
(unsigned int) shdr->sh_link,
|
||||
@@ -1468,7 +1468,7 @@
|
||||
|
||||
if (extrastr != NULL)
|
||||
fputs (extrastr, stdout);
|
||||
@@ -2903,7 +2939,8 @@ print_liblist (Ebl *ebl)
|
||||
@@ -3078,7 +3114,8 @@ print_liblist (Ebl *ebl)
|
||||
|
||||
if (shdr != NULL && shdr->sh_type == SHT_GNU_LIBLIST)
|
||||
{
|
||||
@@ -1478,7 +1478,7 @@
|
||||
printf (ngettext ("\
|
||||
\nLibrary list section [%2zu] '%s' at offset %#0" PRIx64 " contains %d entry:\n",
|
||||
"\
|
||||
@@ -4164,6 +4201,16 @@ print_debug_aranges_section (Dwfl_Module
|
||||
@@ -4398,6 +4435,16 @@ print_decoded_aranges_section (Ebl *ebl,
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -1497,7 +1497,7 @@
|
||||
"\
|
||||
--- elfutils/src/strip.c
|
||||
+++ elfutils/src/strip.c
|
||||
@@ -564,6 +564,11 @@ handle_elf (int fd, Elf *elf, const char
|
||||
@@ -565,6 +565,11 @@ handle_elf (int fd, Elf *elf, const char
|
||||
goto fail_close;
|
||||
}
|
||||
|
||||
@@ -1509,7 +1509,7 @@
|
||||
/* Storage for section information. We leave room for two more
|
||||
entries since we unconditionally create a section header string
|
||||
table. Maybe some weird tool created an ELF file without one.
|
||||
@@ -585,7 +590,7 @@ handle_elf (int fd, Elf *elf, const char
|
||||
@@ -586,7 +591,7 @@ handle_elf (int fd, Elf *elf, const char
|
||||
{
|
||||
/* This should always be true (i.e., there should not be any
|
||||
holes in the numbering). */
|
||||
@@ -1518,7 +1518,7 @@
|
||||
|
||||
shdr_info[cnt].scn = scn;
|
||||
|
||||
@@ -598,6 +603,7 @@ handle_elf (int fd, Elf *elf, const char
|
||||
@@ -599,6 +604,7 @@ handle_elf (int fd, Elf *elf, const char
|
||||
shdr_info[cnt].shdr.sh_name);
|
||||
if (shdr_info[cnt].name == NULL)
|
||||
{
|
||||
@@ -1526,7 +1526,7 @@
|
||||
error (0, 0, gettext ("illformed file '%s'"), fname);
|
||||
goto fail_close;
|
||||
}
|
||||
@@ -607,6 +613,8 @@ handle_elf (int fd, Elf *elf, const char
|
||||
@@ -608,6 +614,8 @@ handle_elf (int fd, Elf *elf, const char
|
||||
|
||||
/* Remember the shdr.sh_link value. */
|
||||
shdr_info[cnt].old_sh_link = shdr_info[cnt].shdr.sh_link;
|
||||
@@ -1535,7 +1535,7 @@
|
||||
|
||||
/* Sections in files other than relocatable object files which
|
||||
are not loaded can be freely moved by us. In relocatable
|
||||
@@ -619,7 +627,7 @@ handle_elf (int fd, Elf *elf, const char
|
||||
@@ -620,7 +628,7 @@ handle_elf (int fd, Elf *elf, const char
|
||||
appropriate reference. */
|
||||
if (unlikely (shdr_info[cnt].shdr.sh_type == SHT_SYMTAB_SHNDX))
|
||||
{
|
||||
@@ -1544,7 +1544,7 @@
|
||||
shdr_info[shdr_info[cnt].shdr.sh_link].symtab_idx = cnt;
|
||||
}
|
||||
else if (unlikely (shdr_info[cnt].shdr.sh_type == SHT_GROUP))
|
||||
@@ -636,7 +644,12 @@ handle_elf (int fd, Elf *elf, const char
|
||||
@@ -637,7 +645,12 @@ handle_elf (int fd, Elf *elf, const char
|
||||
for (inner = 1;
|
||||
inner < shdr_info[cnt].data->d_size / sizeof (Elf32_Word);
|
||||
++inner)
|
||||
@@ -1557,7 +1557,7 @@
|
||||
|
||||
if (inner == 1 || (inner == 2 && (grpref[0] & GRP_COMDAT) == 0))
|
||||
/* If the section group contains only one element and this
|
||||
@@ -647,7 +660,7 @@ handle_elf (int fd, Elf *elf, const char
|
||||
@@ -648,7 +661,7 @@ handle_elf (int fd, Elf *elf, const char
|
||||
}
|
||||
else if (unlikely (shdr_info[cnt].shdr.sh_type == SHT_GNU_versym))
|
||||
{
|
||||
@@ -1566,7 +1566,7 @@
|
||||
shdr_info[shdr_info[cnt].shdr.sh_link].version_idx = cnt;
|
||||
}
|
||||
|
||||
@@ -655,7 +668,7 @@ handle_elf (int fd, Elf *elf, const char
|
||||
@@ -656,7 +669,7 @@ handle_elf (int fd, Elf *elf, const char
|
||||
discarded right away. */
|
||||
if ((shdr_info[cnt].shdr.sh_flags & SHF_GROUP) != 0)
|
||||
{
|
||||
@@ -1575,7 +1575,7 @@
|
||||
|
||||
if (shdr_info[shdr_info[cnt].group_idx].idx == 0)
|
||||
{
|
||||
@@ -731,10 +744,14 @@ handle_elf (int fd, Elf *elf, const char
|
||||
@@ -732,10 +745,14 @@ handle_elf (int fd, Elf *elf, const char
|
||||
{
|
||||
/* If a relocation section is marked as being removed make
|
||||
sure the section it is relocating is removed, too. */
|
||||
@@ -1593,7 +1593,7 @@
|
||||
|
||||
/* If a group section is marked as being removed make
|
||||
sure all the sections it contains are being removed, too. */
|
||||
@@ -778,7 +795,7 @@ handle_elf (int fd, Elf *elf, const char
|
||||
@@ -779,7 +796,7 @@ handle_elf (int fd, Elf *elf, const char
|
||||
if (shdr_info[cnt].symtab_idx != 0
|
||||
&& shdr_info[shdr_info[cnt].symtab_idx].data == NULL)
|
||||
{
|
||||
@@ -1602,7 +1602,7 @@
|
||||
|
||||
shdr_info[shdr_info[cnt].symtab_idx].data
|
||||
= elf_getdata (shdr_info[shdr_info[cnt].symtab_idx].scn,
|
||||
@@ -818,6 +835,9 @@ handle_elf (int fd, Elf *elf, const char
|
||||
@@ -819,6 +836,9 @@ handle_elf (int fd, Elf *elf, const char
|
||||
else if (scnidx == SHN_XINDEX)
|
||||
scnidx = xndx;
|
||||
|
||||
@@ -1612,7 +1612,7 @@
|
||||
if (shdr_info[scnidx].idx == 0)
|
||||
/* This symbol table has a real symbol in
|
||||
a discarded section. So preserve the
|
||||
@@ -848,12 +868,16 @@ handle_elf (int fd, Elf *elf, const char
|
||||
@@ -849,12 +869,16 @@ handle_elf (int fd, Elf *elf, const char
|
||||
}
|
||||
|
||||
/* Handle references through sh_info. */
|
||||
@@ -1631,7 +1631,7 @@
|
||||
|
||||
/* Mark the section as investigated. */
|
||||
shdr_info[cnt].idx = 2;
|
||||
@@ -994,7 +1018,7 @@ handle_elf (int fd, Elf *elf, const char
|
||||
@@ -995,7 +1019,7 @@ handle_elf (int fd, Elf *elf, const char
|
||||
error (EXIT_FAILURE, 0, gettext ("while generating output file: %s"),
|
||||
elf_errmsg (-1));
|
||||
|
||||
@@ -1640,7 +1640,7 @@
|
||||
|
||||
/* Add this name to the section header string table. */
|
||||
shdr_info[cnt].se = ebl_strtabadd (shst, shdr_info[cnt].name, 0);
|
||||
@@ -1031,7 +1055,7 @@ handle_elf (int fd, Elf *elf, const char
|
||||
@@ -1032,7 +1056,7 @@ handle_elf (int fd, Elf *elf, const char
|
||||
error (EXIT_FAILURE, 0,
|
||||
gettext ("while create section header section: %s"),
|
||||
elf_errmsg (-1));
|
||||
@@ -1649,7 +1649,7 @@
|
||||
|
||||
shdr_info[cnt].data = elf_newdata (shdr_info[cnt].newscn);
|
||||
if (shdr_info[cnt].data == NULL)
|
||||
@@ -1087,7 +1111,7 @@ handle_elf (int fd, Elf *elf, const char
|
||||
@@ -1089,7 +1113,7 @@ handle_elf (int fd, Elf *elf, const char
|
||||
error (EXIT_FAILURE, 0,
|
||||
gettext ("while create section header section: %s"),
|
||||
elf_errmsg (-1));
|
||||
@@ -1658,7 +1658,7 @@
|
||||
|
||||
/* Finalize the string table and fill in the correct indices in the
|
||||
section headers. */
|
||||
@@ -1177,20 +1201,20 @@ handle_elf (int fd, Elf *elf, const char
|
||||
@@ -1179,20 +1203,20 @@ handle_elf (int fd, Elf *elf, const char
|
||||
shndxdata = elf_getdata (shdr_info[shdr_info[cnt].symtab_idx].scn,
|
||||
NULL);
|
||||
|
||||
@@ -1682,7 +1682,7 @@
|
||||
>= shdr_info[cnt].data->d_size / elsize);
|
||||
}
|
||||
|
||||
@@ -1245,7 +1269,7 @@ handle_elf (int fd, Elf *elf, const char
|
||||
@@ -1247,7 +1271,7 @@ handle_elf (int fd, Elf *elf, const char
|
||||
sec = shdr_info[sym->st_shndx].idx;
|
||||
else
|
||||
{
|
||||
@@ -1691,7 +1691,7 @@
|
||||
|
||||
sec = shdr_info[xshndx].idx;
|
||||
}
|
||||
@@ -1266,7 +1290,7 @@ handle_elf (int fd, Elf *elf, const char
|
||||
@@ -1268,7 +1292,7 @@ handle_elf (int fd, Elf *elf, const char
|
||||
nxshndx = sec;
|
||||
}
|
||||
|
||||
@@ -1700,7 +1700,7 @@
|
||||
|
||||
if ((inner != destidx || nshndx != sym->st_shndx
|
||||
|| (shndxdata != NULL && nxshndx != xshndx))
|
||||
@@ -1293,9 +1317,11 @@ handle_elf (int fd, Elf *elf, const char
|
||||
@@ -1295,9 +1319,11 @@ handle_elf (int fd, Elf *elf, const char
|
||||
{
|
||||
size_t sidx = (sym->st_shndx != SHN_XINDEX
|
||||
? sym->st_shndx : xshndx);
|
||||
@@ -1715,7 +1715,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1483,11 +1509,11 @@ handle_elf (int fd, Elf *elf, const char
|
||||
@@ -1485,11 +1511,11 @@ handle_elf (int fd, Elf *elf, const char
|
||||
{
|
||||
GElf_Sym sym_mem;
|
||||
GElf_Sym *sym = gelf_getsym (symd, inner, &sym_mem);
|
||||
@@ -1729,7 +1729,7 @@
|
||||
size_t hidx = elf_hash (name) % nbucket;
|
||||
|
||||
if (bucket[hidx] == 0)
|
||||
@@ -1506,8 +1532,8 @@ handle_elf (int fd, Elf *elf, const char
|
||||
@@ -1508,8 +1534,8 @@ handle_elf (int fd, Elf *elf, const char
|
||||
else
|
||||
{
|
||||
/* Alpha and S390 64-bit use 64-bit SHT_HASH entries. */
|
||||
@@ -1740,7 +1740,7 @@
|
||||
|
||||
Elf64_Xword *bucket = (Elf64_Xword *) hashd->d_buf;
|
||||
|
||||
@@ -1537,11 +1563,11 @@ handle_elf (int fd, Elf *elf, const char
|
||||
@@ -1539,11 +1565,11 @@ handle_elf (int fd, Elf *elf, const char
|
||||
{
|
||||
GElf_Sym sym_mem;
|
||||
GElf_Sym *sym = gelf_getsym (symd, inner, &sym_mem);
|
||||
@@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="file"
|
||||
PKG_VERSION="5.16"
|
||||
PKG_VERSION="5.18"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="BSD"
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="flex"
|
||||
PKG_VERSION="2.5.37"
|
||||
PKG_VERSION="2.5.39"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
||||
@@ -17,12 +17,13 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="gmp"
|
||||
PKG_VERSION="5.1.3"
|
||||
PKG_VERSION="6.0.0a"
|
||||
PKG_SOURCE_DIR="$PKG_NAME-6.0.0"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="LGPL"
|
||||
PKG_LICENSE="LGPLv3+"
|
||||
PKG_SITE="http://gmplib.org/"
|
||||
PKG_URL="ftp://ftp.gmplib.org/pub/$PKG_NAME-$PKG_VERSION/$PKG_NAME-$PKG_VERSION.tar.xz"
|
||||
PKG_URL="https://gmplib.org/download/gmp/$PKG_NAME-$PKG_VERSION.tar.xz"
|
||||
PKG_DEPENDS_HOST="ccache:host"
|
||||
PKG_DEPENDS_TARGET="toolchain"
|
||||
PKG_PRIORITY="optional"
|
||||
|
||||
21
packages/devel/gmp/patches/gmp-__thumb__-fix-1.patch
Normal file
21
packages/devel/gmp/patches/gmp-__thumb__-fix-1.patch
Normal file
@@ -0,0 +1,21 @@
|
||||
|
||||
# HG changeset patch
|
||||
# User Torbjorn Granlund <tege@gmplib.org>
|
||||
# Date 1396035313 -3600
|
||||
# Node ID c56ea318eb6435bdd28dbfef657b2fe372134f1f
|
||||
# Parent c6fe20ab62acc266ff5ad3629bef447bc43dcd1b
|
||||
Conditionalise ARM asm on !__thumb__.
|
||||
|
||||
diff -r c6fe20ab62ac -r c56ea318eb64 mpn/generic/mod_1_1.c
|
||||
--- a/mpn/generic/mod_1_1.c Wed Mar 26 12:58:33 2014 +0100
|
||||
+++ b/mpn/generic/mod_1_1.c Fri Mar 28 20:35:13 2014 +0100
|
||||
@@ -129,7 +129,7 @@
|
||||
"%2" ((UDItype)(a0)), "r" ((UDItype)(b0)) __CLOBBER_CC)
|
||||
#endif
|
||||
|
||||
-#if defined (__arm__) && W_TYPE_SIZE == 32
|
||||
+#if defined (__arm__) && !defined (__thumb__) && W_TYPE_SIZE == 32
|
||||
#define add_mssaaaa(m, sh, sl, ah, al, bh, bl) \
|
||||
__asm__ ( "adds %2, %5, %6\n\t" \
|
||||
"adcs %1, %3, %4\n\t" \
|
||||
|
||||
21
packages/devel/gmp/patches/gmp-__thumb__-fix-2.patch
Normal file
21
packages/devel/gmp/patches/gmp-__thumb__-fix-2.patch
Normal file
@@ -0,0 +1,21 @@
|
||||
|
||||
# HG changeset patch
|
||||
# User Torbjorn Granlund <tege@gmplib.org>
|
||||
# Date 1396602422 -7200
|
||||
# Node ID 676e2d0f0e4dd301a7066079d2c9326c25c34a40
|
||||
# Parent 0194a75b56b21a9196626430af86c5bd9110c42d
|
||||
Conditionalise ARM asm on !__thumb__.
|
||||
|
||||
diff -r 0194a75b56b2 -r 676e2d0f0e4d mpn/generic/div_qr_1n_pi1.c
|
||||
--- a/mpn/generic/div_qr_1n_pi1.c Thu Apr 03 23:58:51 2014 +0200
|
||||
+++ b/mpn/generic/div_qr_1n_pi1.c Fri Apr 04 11:07:02 2014 +0200
|
||||
@@ -130,7 +130,7 @@
|
||||
"%2" ((UDItype)(a0)), "r" ((UDItype)(b0)) __CLOBBER_CC)
|
||||
#endif
|
||||
|
||||
-#if defined (__arm__) && W_TYPE_SIZE == 32
|
||||
+#if defined (__arm__) && !defined (__thumb__) && W_TYPE_SIZE == 32
|
||||
#define add_mssaaaa(m, sh, sl, ah, al, bh, bl) \
|
||||
__asm__ ( "adds %2, %5, %6\n\t" \
|
||||
"adcs %1, %3, %4\n\t" \
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="make"
|
||||
PKG_VERSION="3.82"
|
||||
PKG_VERSION="4.0"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
||||
@@ -1,26 +0,0 @@
|
||||
diff -up make-3.82/main.c\~ make-3.82/main.c
|
||||
--- make-3.82/main.c~ 2010-07-19 09:10:53.000000000 +0200
|
||||
+++ make-3.82/main.c 2010-08-11 15:12:09.000000000 +0200
|
||||
@@ -1765,6 +1765,20 @@ main (int argc, char **argv, char **envp
|
||||
}
|
||||
}
|
||||
|
||||
+#ifdef PIPE_BUF
|
||||
+ if (job_slots > PIPE_BUF)
|
||||
+#elif defined _POSIX_PIPE_BUF
|
||||
+ if (job_slots > _POSIX_PIPE_BUF)
|
||||
+#else
|
||||
+ if (job_slots > 512)
|
||||
+#endif
|
||||
+ {
|
||||
+ error (NILF,
|
||||
+ _("More parallel jobs (-jN) than this platform can handle requested."));
|
||||
+ error (NILF, _("Resetting to single job (-j1) mode."));
|
||||
+ job_slots = 1;
|
||||
+ }
|
||||
+
|
||||
/* If we have >1 slot but no jobserver-fds, then we're a top-level make.
|
||||
Set up the pipe and install the fds option for our children. */
|
||||
|
||||
|
||||
Diff finished. Wed Aug 11 15:12:32 2010
|
||||
@@ -1,14 +0,0 @@
|
||||
diff -up make-3.82/make.h\~ make-3.82/make.h
|
||||
--- make-3.82/make.h~ 2010-07-20 15:12:06.000000000 +0200
|
||||
+++ make-3.82/make.h 2010-08-11 15:19:09.000000000 +0200
|
||||
@@ -472,7 +472,7 @@ long int lseek ();
|
||||
#endif /* Not GNU C library or POSIX. */
|
||||
|
||||
#ifdef HAVE_GETCWD
|
||||
-# if !defined(VMS) && !defined(__DECC)
|
||||
+# if !defined(VMS) && !defined(__DECC) && !defined(getcwd)
|
||||
char *getcwd ();
|
||||
# endif
|
||||
#else
|
||||
|
||||
Diff finished. Wed Aug 11 15:19:12 2010
|
||||
@@ -1,157 +0,0 @@
|
||||
diff -urp make-3.82/misc.c make-3.82-pm/misc.c
|
||||
--- make-3.82/misc.c 2010-07-19 09:10:54.000000000 +0200
|
||||
+++ make-3.82-pm/misc.c 2010-08-11 15:26:45.000000000 +0200
|
||||
@@ -342,17 +342,31 @@ strerror (int errnum)
|
||||
/* Print an error message from errno. */
|
||||
|
||||
void
|
||||
+perror_with_name_err (const char *str, const char *name, int errnum)
|
||||
+{
|
||||
+ error (NILF, _("%s%s: %s"), str, name, strerror (errnum));
|
||||
+}
|
||||
+
|
||||
+void
|
||||
perror_with_name (const char *str, const char *name)
|
||||
{
|
||||
- error (NILF, _("%s%s: %s"), str, name, strerror (errno));
|
||||
+ perror_with_name_err (str, name, errno);
|
||||
}
|
||||
|
||||
/* Print an error message from errno and exit. */
|
||||
|
||||
void
|
||||
+pfatal_with_name_err (const char *name, int errnum)
|
||||
+{
|
||||
+ fatal (NILF, _("%s: %s"), name, strerror (errnum));
|
||||
+
|
||||
+ /* NOTREACHED */
|
||||
+}
|
||||
+
|
||||
+void
|
||||
pfatal_with_name (const char *name)
|
||||
{
|
||||
- fatal (NILF, _("%s: %s"), name, strerror (errno));
|
||||
+ pfatal_with_name_err (name, errno);
|
||||
|
||||
/* NOTREACHED */
|
||||
}
|
||||
diff -urp make-3.82/main.c make-3.82-pm/main.c
|
||||
--- make-3.82/main.c 2010-08-11 15:34:12.000000000 +0200
|
||||
+++ make-3.82-pm/main.c 2010-08-11 15:30:11.000000000 +0200
|
||||
@@ -1536,13 +1536,13 @@ main (int argc, char **argv, char **envp
|
||||
strcat (template, DEFAULT_TMPFILE);
|
||||
outfile = open_tmpfile (&stdin_nm, template);
|
||||
if (outfile == 0)
|
||||
- pfatal_with_name (_("fopen (temporary file)"));
|
||||
+ pfatal_with_name_err (_("fopen (temporary file)"), errno);
|
||||
while (!feof (stdin) && ! ferror (stdin))
|
||||
{
|
||||
char buf[2048];
|
||||
unsigned int n = fread (buf, 1, sizeof (buf), stdin);
|
||||
if (n > 0 && fwrite (buf, 1, n, outfile) != n)
|
||||
- pfatal_with_name (_("fwrite (temporary file)"));
|
||||
+ pfatal_with_name_err (_("fwrite (temporary file)"), errno);
|
||||
}
|
||||
fclose (outfile);
|
||||
|
||||
@@ -1747,7 +1747,7 @@ main (int argc, char **argv, char **envp
|
||||
else if ((job_rfd = dup (job_fds[0])) < 0)
|
||||
{
|
||||
if (errno != EBADF)
|
||||
- pfatal_with_name (_("dup jobserver"));
|
||||
+ pfatal_with_name_err (_("dup jobserver"), errno);
|
||||
|
||||
error (NILF,
|
||||
_("warning: jobserver unavailable: using -j1. Add `+' to parent make rule."));
|
||||
@@ -1788,7 +1788,7 @@ main (int argc, char **argv, char **envp
|
||||
char c = '+';
|
||||
|
||||
if (pipe (job_fds) < 0 || (job_rfd = dup (job_fds[0])) < 0)
|
||||
- pfatal_with_name (_("creating jobs pipe"));
|
||||
+ pfatal_with_name_err (_("creating jobs pipe"), errno);
|
||||
|
||||
/* Every make assumes that it always has one job it can run. For the
|
||||
submakes it's the token they were given by their parent. For the
|
||||
@@ -1803,7 +1803,7 @@ main (int argc, char **argv, char **envp
|
||||
|
||||
EINTRLOOP (r, write (job_fds[1], &c, 1));
|
||||
if (r != 1)
|
||||
- pfatal_with_name (_("init jobserver pipe"));
|
||||
+ pfatal_with_name_err (_("init jobserver pipe"), errno);
|
||||
}
|
||||
|
||||
/* Fill in the jobserver_fds struct for our children. */
|
||||
@@ -2226,7 +2226,7 @@ main (int argc, char **argv, char **envp
|
||||
/* If there is a temp file from reading a makefile from stdin, get rid of
|
||||
it now. */
|
||||
if (stdin_nm && unlink (stdin_nm) < 0 && errno != ENOENT)
|
||||
- perror_with_name (_("unlink (temporary file): "), stdin_nm);
|
||||
+ perror_with_name_err (_("unlink (temporary file): "), stdin_nm, errno);
|
||||
|
||||
/* If there were no command-line goals, use the default. */
|
||||
if (goals == 0)
|
||||
Только в make-3.82-pm: job.c~
|
||||
Только в make-3.82-pm: main.c~
|
||||
diff -urp make-3.82/make.h make-3.82-pm/make.h
|
||||
--- make-3.82/make.h 2010-08-11 15:34:12.000000000 +0200
|
||||
+++ make-3.82-pm/make.h 2010-08-11 15:31:26.000000000 +0200
|
||||
@@ -385,6 +385,8 @@ void die (int) __attribute__ ((noreturn)
|
||||
void log_working_directory (int);
|
||||
void pfatal_with_name (const char *) __attribute__ ((noreturn));
|
||||
void perror_with_name (const char *, const char *);
|
||||
+void pfatal_with_name_err (const char *, int errnum) __attribute__ ((noreturn));
|
||||
+void perror_with_name_err (const char *, const char *, int errnum);
|
||||
void *xmalloc (unsigned int);
|
||||
void *xcalloc (unsigned int);
|
||||
void *xrealloc (void *, unsigned int);
|
||||
diff -urp make-3.82/job.c make-3.82-pm/job.c
|
||||
--- make-3.82/job.c 2010-07-24 10:27:50.000000000 +0200
|
||||
+++ make-3.82-pm/job.c 2010-08-11 15:33:54.000000000 +0200
|
||||
@@ -917,7 +917,7 @@ free_child (struct child *child)
|
||||
|
||||
EINTRLOOP (r, write (job_fds[1], &token, 1));
|
||||
if (r != 1)
|
||||
- pfatal_with_name (_("write jobserver"));
|
||||
+ pfatal_with_name_err (_("write jobserver"), errno);
|
||||
|
||||
DB (DB_JOBS, (_("Released token for child %p (%s).\n"),
|
||||
child, child->file->name));
|
||||
@@ -1768,6 +1768,7 @@ new_job (struct file *file)
|
||||
|
||||
/* Set interruptible system calls, and read() for a job token. */
|
||||
set_child_handler_action_flags (1, waiting_jobs != NULL);
|
||||
+ errno = 0;
|
||||
got_token = read (job_rfd, &token, 1);
|
||||
saved_errno = errno;
|
||||
set_child_handler_action_flags (0, waiting_jobs != NULL);
|
||||
@@ -1782,10 +1783,14 @@ new_job (struct file *file)
|
||||
|
||||
/* If the error _wasn't_ expected (EINTR or EBADF), punt. Otherwise,
|
||||
go back and reap_children(), and try again. */
|
||||
- errno = saved_errno;
|
||||
- if (errno != EINTR && errno != EBADF)
|
||||
- pfatal_with_name (_("read jobs pipe"));
|
||||
- if (errno == EBADF)
|
||||
+ if (saved_errno != EINTR && saved_errno != EBADF)
|
||||
+ {
|
||||
+ if (got_token == 0)
|
||||
+ fatal (NILF, _("read jobs pipe EOF"));
|
||||
+ else
|
||||
+ pfatal_with_name_err (_("read jobs pipe"), saved_errno);
|
||||
+ }
|
||||
+ if (saved_errno == EBADF)
|
||||
DB (DB_JOBS, ("Read returned EBADF.\n"));
|
||||
}
|
||||
#endif
|
||||
@@ -1909,7 +1914,8 @@ load_too_high (void)
|
||||
error (NILF,
|
||||
_("cannot enforce load limits on this operating system"));
|
||||
else
|
||||
- perror_with_name (_("cannot enforce load limit: "), "getloadavg");
|
||||
+ perror_with_name_err (_("cannot enforce load limit: "),
|
||||
+ "getloadavg", errno);
|
||||
}
|
||||
lossage = errno;
|
||||
load = 0;
|
||||
Только в make-3.82-pm: make.h~
|
||||
Только в make-3.82-pm: misc.c.orig
|
||||
@@ -1,30 +0,0 @@
|
||||
diff -up make-3.82/job.c\~ make-3.82/job.c
|
||||
--- make-3.82/job.c~ 2010-08-12 14:57:15.000000000 +0200
|
||||
+++ make-3.82/job.c 2010-08-12 14:58:23.000000000 +0200
|
||||
@@ -2876,7 +2876,7 @@ construct_command_argv_internal (char *l
|
||||
}
|
||||
|
||||
new_line = alloca (shell_len + 1 + sflags_len + 1
|
||||
- + (line_len*2) + 1);
|
||||
+ + (line_len*4) + 1);
|
||||
ap = new_line;
|
||||
memcpy (ap, shell, shell_len);
|
||||
ap += shell_len;
|
||||
@@ -2904,13 +2904,14 @@ construct_command_argv_internal (char *l
|
||||
#endif
|
||||
if (PRESERVE_BSNL)
|
||||
{
|
||||
- *(ap++) = '\\';
|
||||
+ *(ap++) = '\'';
|
||||
/* Only non-batch execution needs another backslash,
|
||||
because it will be passed through a recursive
|
||||
invocation of this function. */
|
||||
if (!batch_mode_shell)
|
||||
*(ap++) = '\\';
|
||||
*(ap++) = '\n';
|
||||
+ *(ap++) = '\'';
|
||||
}
|
||||
++p;
|
||||
continue;
|
||||
|
||||
Diff finished. Thu Aug 12 14:58:34 2010
|
||||
@@ -1,19 +0,0 @@
|
||||
diff -up make-3.82/main.c\~ make-3.82/main.c
|
||||
--- make-3.82/main.c~ 2010-08-12 14:59:20.000000000 +0200
|
||||
+++ make-3.82/main.c 2010-08-12 15:00:07.000000000 +0200
|
||||
@@ -1756,8 +1756,11 @@ main (int argc, char **argv, char **envp
|
||||
|
||||
if (job_slots > 0)
|
||||
{
|
||||
- close (job_fds[0]);
|
||||
- close (job_fds[1]);
|
||||
+ if (restarts == 0)
|
||||
+ {
|
||||
+ close (job_fds[0]);
|
||||
+ close (job_fds[1]);
|
||||
+ }
|
||||
job_fds[0] = job_fds[1] = -1;
|
||||
free (jobserver_fds->list);
|
||||
free (jobserver_fds);
|
||||
|
||||
Diff finished. Thu Aug 12 15:00:22 2010
|
||||
@@ -1,250 +0,0 @@
|
||||
diff -urpN make/ChangeLog make-new/ChangeLog
|
||||
--- make/ChangeLog 2010-09-13 13:42:35.000000000 +0200
|
||||
+++ make-new/ChangeLog 2010-09-13 13:42:09.000000000 +0200
|
||||
@@ -1,3 +1,22 @@
|
||||
+2010-08-13 Paul Smith <psmith@gnu.org>
|
||||
+
|
||||
+ * NEWS: Accidentally forgot to back out the sorted wildcard
|
||||
+ enhancement in 3.82, so update NEWS.
|
||||
+ Also add NEWS about the error check for explicit and pattern
|
||||
+ targets in the same rule, added to 3.82.
|
||||
+
|
||||
+ * main.c (main): Add "oneshell" to $(.FEATURES) (forgot to add
|
||||
+ this in 3.82!)
|
||||
+
|
||||
+ * read.c (parse_file_seq): Fix various errors parsing archives
|
||||
+ with multiple objects in the parenthesis, as well as wildcards.
|
||||
+ Fixes Savannah bug #30612.
|
||||
+
|
||||
+2010-08-10 Paul Smith <psmith@gnu.org>
|
||||
+
|
||||
+ * main.c (main): Expand MAKEFLAGS before adding it to the
|
||||
+ environment when re-exec'ing. Fixes Savannah bug #30723.
|
||||
+
|
||||
2010-07-28 Paul Smith <psmith@gnu.org>
|
||||
|
||||
Version 3.82 released.
|
||||
diff -urpN make/main.c make-new/main.c
|
||||
--- make/main.c 2010-09-13 13:42:35.000000000 +0200
|
||||
+++ make-new/main.c 2010-09-13 13:42:12.000000000 +0200
|
||||
@@ -1138,7 +1138,7 @@ main (int argc, char **argv, char **envp
|
||||
a macro and some compilers (MSVC) don't like conditionals in macros. */
|
||||
{
|
||||
const char *features = "target-specific order-only second-expansion"
|
||||
- " else-if shortest-stem undefine"
|
||||
+ " else-if shortest-stem undefine oneshell"
|
||||
#ifndef NO_ARCHIVES
|
||||
" archives"
|
||||
#endif
|
||||
@@ -2093,7 +2093,7 @@ main (int argc, char **argv, char **envp
|
||||
const char *pv = define_makeflags (1, 1);
|
||||
char *p = alloca (sizeof ("MAKEFLAGS=") + strlen (pv) + 1);
|
||||
sprintf (p, "MAKEFLAGS=%s", pv);
|
||||
- putenv (p);
|
||||
+ putenv (allocated_variable_expand (p));
|
||||
}
|
||||
|
||||
if (ISDB (DB_BASIC))
|
||||
diff -urpN make/NEWS make-new/NEWS
|
||||
--- make/NEWS 2010-09-13 13:42:35.000000000 +0200
|
||||
+++ make-new/NEWS 2010-09-13 13:42:11.000000000 +0200
|
||||
@@ -18,14 +18,6 @@ http://sv.gnu.org/bugs/index.php?group=m
|
||||
* Compiling GNU make now requires a conforming ISO C 1989 compiler and
|
||||
standard runtime library.
|
||||
|
||||
-* WARNING: Future backward-incompatibility!
|
||||
- Wildcards are not documented as returning sorted values, but up to and
|
||||
- including this release the results have been sorted and some makefiles are
|
||||
- apparently depending on that. In the next release of GNU make, for
|
||||
- performance reasons, we may remove that sorting. If your makefiles
|
||||
- require sorted results from wildcard expansions, use the $(sort ...)
|
||||
- function to request it explicitly.
|
||||
-
|
||||
* WARNING: Backward-incompatibility!
|
||||
The POSIX standard for make was changed in the 2008 version in a
|
||||
fundamentally incompatible way: make is required to invoke the shell as if
|
||||
@@ -42,6 +34,21 @@ http://sv.gnu.org/bugs/index.php?group=m
|
||||
existing targets were provided in $?).
|
||||
|
||||
* WARNING: Backward-incompatibility!
|
||||
+ Wildcards were not documented as returning sorted values, but the results
|
||||
+ have been sorted up until this release.. If your makefiles require sorted
|
||||
+ results from wildcard expansions, use the $(sort ...) function to request
|
||||
+ it explicitly.
|
||||
+
|
||||
+* WARNING: Backward-incompatibility!
|
||||
+ In previous versions of make it was acceptable to list one or more explicit
|
||||
+ targets followed by one or more pattern targets in the same rule and it
|
||||
+ worked "as expected". However, this was not documented as acceptable and if
|
||||
+ you listed any explicit targets AFTER the pattern targets, the entire rule
|
||||
+ would be mis-parsed. This release removes this ability completely: make
|
||||
+ will generate an error message if you mix explicit and pattern targets in
|
||||
+ the same rule.
|
||||
+
|
||||
+* WARNING: Backward-incompatibility!
|
||||
As a result of parser enhancements, three backward-compatibility issues
|
||||
exist: first, a prerequisite containing an "=" cannot be escaped with a
|
||||
backslash any longer. You must create a variable containing an "=" and
|
||||
diff -urpN make/read.c make-new/read.c
|
||||
--- make/read.c 2010-09-13 13:42:35.000000000 +0200
|
||||
+++ make-new/read.c 2010-09-13 13:42:11.000000000 +0200
|
||||
@@ -3028,7 +3028,7 @@ parse_file_seq (char **stringp, unsigned
|
||||
{
|
||||
/* This looks like the first element in an open archive group.
|
||||
A valid group MUST have ')' as the last character. */
|
||||
- const char *e = p + nlen;
|
||||
+ const char *e = p;
|
||||
do
|
||||
{
|
||||
e = next_token (e);
|
||||
@@ -3084,19 +3084,19 @@ parse_file_seq (char **stringp, unsigned
|
||||
Go to the next item in the string. */
|
||||
if (flags & PARSEFS_NOGLOB)
|
||||
{
|
||||
- NEWELT (concat (2, prefix, tp));
|
||||
+ NEWELT (concat (2, prefix, tmpbuf));
|
||||
continue;
|
||||
}
|
||||
|
||||
/* If we get here we know we're doing glob expansion.
|
||||
TP is a string in tmpbuf. NLEN is no longer used.
|
||||
We may need to do more work: after this NAME will be set. */
|
||||
- name = tp;
|
||||
+ name = tmpbuf;
|
||||
|
||||
/* Expand tilde if applicable. */
|
||||
- if (tp[0] == '~')
|
||||
+ if (tmpbuf[0] == '~')
|
||||
{
|
||||
- tildep = tilde_expand (tp);
|
||||
+ tildep = tilde_expand (tmpbuf);
|
||||
if (tildep != 0)
|
||||
name = tildep;
|
||||
}
|
||||
@@ -3152,7 +3152,10 @@ parse_file_seq (char **stringp, unsigned
|
||||
else
|
||||
{
|
||||
/* We got a chain of items. Attach them. */
|
||||
- (*newp)->next = found;
|
||||
+ if (*newp)
|
||||
+ (*newp)->next = found;
|
||||
+ else
|
||||
+ *newp = found;
|
||||
|
||||
/* Find and set the new end. Massage names if necessary. */
|
||||
while (1)
|
||||
diff -urpN make/tests/ChangeLog make-new/tests/ChangeLog
|
||||
--- make/tests/ChangeLog 2010-09-13 13:42:35.000000000 +0200
|
||||
+++ make-new/tests/ChangeLog 2010-09-13 13:42:10.000000000 +0200
|
||||
@@ -1,3 +1,16 @@
|
||||
+2010-08-13 Paul Smith <psmith@gnu.org>
|
||||
+
|
||||
+ * scripts/features/archives: New regression tests for archive
|
||||
+ support. Test for fix to Savannah bug #30612.
|
||||
+
|
||||
+ * run_make_tests.pl (set_more_defaults): Set a %FEATURES hash to
|
||||
+ the features available in $(.FEATURES).
|
||||
+
|
||||
+2010-08-10 Paul Smith <psmith@gnu.org>
|
||||
+
|
||||
+ * scripts/features/reinvoke: Ensure command line variable settings
|
||||
+ are preserved across make re-exec. Tests Savannah bug #30723.
|
||||
+
|
||||
2010-07-28 Paul Smith <psmith@gnu.org>
|
||||
|
||||
* scripts/targets/POSIX: Compatibility issues with Solaris (and
|
||||
diff -urpN make/tests/run_make_tests.pl make-new/tests/run_make_tests.pl
|
||||
--- make/tests/run_make_tests.pl 2010-09-13 13:42:35.000000000 +0200
|
||||
+++ make-new/tests/run_make_tests.pl 2010-09-13 13:42:10.000000000 +0200
|
||||
@@ -29,6 +29,7 @@
|
||||
# You should have received a copy of the GNU General Public License along with
|
||||
# this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
+%FEATURES = ();
|
||||
|
||||
$valgrind = 0; # invoke make with valgrind
|
||||
$valgrind_args = '';
|
||||
@@ -367,6 +368,8 @@ sub set_more_defaults
|
||||
$parallel_jobs = 1;
|
||||
}
|
||||
|
||||
+ %FEATURES = map { $_ => 1 } split /\s+/, `sh -c "echo '\\\$(info \\\$(.FEATURES))' | $make_path -f- 2>/dev/null"`;
|
||||
+
|
||||
# Set up for valgrind, if requested.
|
||||
|
||||
if ($valgrind) {
|
||||
diff -urpN make/tests/scripts/features/archives make-new/tests/scripts/features/archives
|
||||
--- make/tests/scripts/features/archives 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ make-new/tests/scripts/features/archives 2010-09-13 13:42:10.000000000 +0200
|
||||
@@ -0,0 +1,42 @@
|
||||
+# -*-mode: perl-*-
|
||||
+
|
||||
+$description = "Test GNU make's archive management features.";
|
||||
+
|
||||
+$details = "\
|
||||
+This only works on systems that support it.";
|
||||
+
|
||||
+# If this instance of make doesn't support archives, skip it
|
||||
+exists $FEATURES{archives} or return -1;
|
||||
+
|
||||
+# Create some .o files to work with
|
||||
+utouch(-60, qw(a1.o a2.o a3.o));
|
||||
+
|
||||
+# Very simple
|
||||
+run_make_test('all: libxx.a(a1.o)',
|
||||
+ '', "ar rv libxx.a a1.o\nar: creating libxx.a\na - a1.o\n");
|
||||
+
|
||||
+# Multiple .o's. Add a new one to the existing library
|
||||
+run_make_test('all: libxx.a(a1.o a2.o)',
|
||||
+ '', "ar rv libxx.a a2.o\na - a2.o\n");
|
||||
+
|
||||
+# Touch one of the .o's so it's rebuilt
|
||||
+utouch(-40, 'a1.o');
|
||||
+run_make_test(undef, '', "ar rv libxx.a a1.o\nr - a1.o\n");
|
||||
+
|
||||
+# Use wildcards
|
||||
+run_make_test('all: libxx.a(*.o)',
|
||||
+ '', "#MAKE#: Nothing to be done for `all'.\n");
|
||||
+
|
||||
+# Touch one of the .o's so it's rebuilt
|
||||
+utouch(-30, 'a1.o');
|
||||
+run_make_test(undef, '', "ar rv libxx.a a1.o\nr - a1.o\n");
|
||||
+
|
||||
+# Use both wildcards and simple names
|
||||
+utouch(-50, 'a2.o');
|
||||
+run_make_test('all: libxx.a(a3.o *.o)', '',
|
||||
+ "ar rv libxx.a a3.o\na - a3.o\nar rv libxx.a a2.o\nr - a2.o\n");
|
||||
+
|
||||
+rmfiles(qw(a1.o a2.o a3.o libxx.a));
|
||||
+
|
||||
+# This tells the test driver that the perl test script executed properly.
|
||||
+1;
|
||||
diff -urpN make/tests/scripts/features/reinvoke make-new/tests/scripts/features/reinvoke
|
||||
--- make/tests/scripts/features/reinvoke 2010-09-13 13:42:35.000000000 +0200
|
||||
+++ make-new/tests/scripts/features/reinvoke 2010-09-13 13:42:10.000000000 +0200
|
||||
@@ -57,9 +57,24 @@ include $(F)',
|
||||
# Now try with the file we're not updating being the actual file we're
|
||||
# including: this and the previous one test different parts of the code.
|
||||
|
||||
-run_make_test(undef, "F=b", "[ -f b ] || echo >> b\nhello\n")
|
||||
+run_make_test(undef, 'F=b', "[ -f b ] || echo >> b\nhello\n")
|
||||
|
||||
&rmfiles('a','b','c');
|
||||
|
||||
+# Ensure command line variables are preserved properly across re-exec
|
||||
+# Tests for Savannah bug #30723
|
||||
+
|
||||
+run_make_test('
|
||||
+ifdef RECURSE
|
||||
+-include foo30723
|
||||
+endif
|
||||
+recurse: ; @$(MAKE) -f $(MAKEFILE_LIST) RECURSE=1 test
|
||||
+test: ; @echo F.O=$(F.O)
|
||||
+foo30723: ; @touch $@
|
||||
+',
|
||||
+ '--no-print-directory F.O=bar', "F.O=bar\n");
|
||||
+
|
||||
+unlink('foo30723');
|
||||
+
|
||||
# This tells the test driver that the perl test script executed properly.
|
||||
1;
|
||||
@@ -1,22 +0,0 @@
|
||||
diff -urp make-3.82/function.c make-3.82-pm/function.c
|
||||
--- make-3.82/function.c 2010-07-13 03:20:39.000000000 +0200
|
||||
+++ make-3.82-pm/function.c 2010-10-27 01:43:27.000000000 +0200
|
||||
@@ -1138,12 +1138,12 @@ func_sort (char *o, char **argv, const c
|
||||
{
|
||||
char c = *(t++);
|
||||
|
||||
- if (! isspace ((unsigned char)c))
|
||||
+ if (! isblank ((unsigned char)c))
|
||||
continue;
|
||||
|
||||
++wordi;
|
||||
|
||||
- while (isspace ((unsigned char)*t))
|
||||
+ while (isblank ((unsigned char)*t))
|
||||
++t;
|
||||
}
|
||||
|
||||
Только в make-3.82-pm: function.c~
|
||||
Двоичные файлы make-3.82/function.o и make-3.82-pm/function.o различаются
|
||||
Двоичные файлы make-3.82/make и make-3.82-pm/make различаются
|
||||
Только в make-3.82-pm: misc.c~
|
||||
@@ -1,77 +0,0 @@
|
||||
From 2f661dc20617ba6fdeb2d7e243dc898653faafea Mon Sep 17 00:00:00 2001
|
||||
From: Lubomir Rintel <lkundrak@v3.sk>
|
||||
Date: Tue, 26 Apr 2011 21:50:26 +0200
|
||||
Subject: [PATCH] Always copy the string before expanding it
|
||||
|
||||
It might get freed during expansion, e.g. with eval function.
|
||||
A simple reproducer:
|
||||
|
||||
TRUE = $(eval TRUE := true)
|
||||
all:
|
||||
$(TRUE)
|
||||
---
|
||||
ChangeLog | 5 +++++
|
||||
expand.c | 18 +++++++++---------
|
||||
2 files changed, 14 insertions(+), 9 deletions(-)
|
||||
|
||||
diff --git a/ChangeLog b/ChangeLog
|
||||
index 91878fb..7519164 100644
|
||||
--- a/ChangeLog
|
||||
+++ b/ChangeLog
|
||||
@@ -1,3 +1,8 @@
|
||||
+2011-04-26 Lubomir Rintel <lkundrak@v3.sk>
|
||||
+
|
||||
+ * expand.c (variable_expand_string): Always copy the string
|
||||
+ to expand.
|
||||
+
|
||||
2010-08-13 Paul Smith <psmith@gnu.org>
|
||||
|
||||
* NEWS: Accidentally forgot to back out the sorted wildcard
|
||||
diff --git a/expand.c b/expand.c
|
||||
index 2315b06..3e6e346 100644
|
||||
--- a/expand.c
|
||||
+++ b/expand.c
|
||||
@@ -197,7 +197,7 @@ variable_expand_string (char *line, const char *string, long length)
|
||||
{
|
||||
struct variable *v;
|
||||
const char *p, *p1;
|
||||
- char *abuf = NULL;
|
||||
+ char *abuf;
|
||||
char *o;
|
||||
unsigned int line_offset;
|
||||
|
||||
@@ -214,14 +214,15 @@ variable_expand_string (char *line, const char *string, long length)
|
||||
|
||||
/* If we want a subset of the string, allocate a temporary buffer for it.
|
||||
Most of the functions we use here don't work with length limits. */
|
||||
- if (length > 0 && string[length] != '\0')
|
||||
+ if (length == -1)
|
||||
{
|
||||
- abuf = xmalloc(length+1);
|
||||
- memcpy(abuf, string, length);
|
||||
- abuf[length] = '\0';
|
||||
- string = abuf;
|
||||
+ length = strlen (string);
|
||||
}
|
||||
- p = string;
|
||||
+
|
||||
+ abuf = xmalloc(length+1);
|
||||
+ memcpy(abuf, string, length);
|
||||
+ abuf[length] = '\0';
|
||||
+ p = abuf;
|
||||
|
||||
while (1)
|
||||
{
|
||||
@@ -411,8 +412,7 @@ variable_expand_string (char *line, const char *string, long length)
|
||||
++p;
|
||||
}
|
||||
|
||||
- if (abuf)
|
||||
- free (abuf);
|
||||
+ free (abuf);
|
||||
|
||||
variable_buffer_output (o, "", 1);
|
||||
return (variable_buffer + line_offset);
|
||||
--
|
||||
1.7.4.1
|
||||
|
||||
@@ -1,30 +0,0 @@
|
||||
Index: main.c
|
||||
===================================================================
|
||||
RCS file: /sources/make/make/main.c,v
|
||||
retrieving revision 1.247
|
||||
retrieving revision 1.246
|
||||
diff -u -r1.247 -r1.246
|
||||
--- a/main.c 18 Sep 2011 23:39:26 -0000 1.247
|
||||
+++ b/main.c 29 Aug 2010 23:05:27 -0000 1.246
|
||||
@@ -2089,6 +2089,11 @@
|
||||
|
||||
++restarts;
|
||||
|
||||
+ /* If we're re-exec'ing the first make, put back the number of
|
||||
+ job slots so define_makefiles() will get it right. */
|
||||
+ if (master_job_slots)
|
||||
+ job_slots = master_job_slots;
|
||||
+
|
||||
/* Reset makeflags in case they were changed. */
|
||||
{
|
||||
const char *pv = define_makeflags (1, 1);
|
||||
@@ -2830,9 +2825,6 @@
|
||||
&& (*(unsigned int *) cs->value_ptr ==
|
||||
*(unsigned int *) cs->noarg_value))
|
||||
ADD_FLAG ("", 0); /* Optional value omitted; see below. */
|
||||
- else if (cs->c == 'j')
|
||||
- /* Special case for `-j'. */
|
||||
- ADD_FLAG ("1", 1);
|
||||
else
|
||||
{
|
||||
char *buf = alloca (30);
|
||||
@@ -1,84 +0,0 @@
|
||||
diff --git a/function.c b/function.c
|
||||
index e2f6c8c..ff0527f 100644
|
||||
--- a/function.c
|
||||
+++ b/function.c
|
||||
@@ -2333,8 +2333,10 @@ func_call (char *o, char **argv, const char *funcname UNUSED)
|
||||
v = lookup_variable (fname, flen);
|
||||
|
||||
if (v == 0)
|
||||
- warn_undefined (fname, flen);
|
||||
-
|
||||
+ {
|
||||
+ warn_undefined (fname, flen);
|
||||
+ warn_undefined_function (fname, flen);
|
||||
+ }
|
||||
if (v == 0 || *v->value == '\0')
|
||||
return o;
|
||||
|
||||
diff --git a/main.c b/main.c
|
||||
index c6989e3..2f545a7 100644
|
||||
--- a/main.c
|
||||
+++ b/main.c
|
||||
@@ -275,6 +275,11 @@ static int print_usage_flag = 0;
|
||||
|
||||
int warn_undefined_variables_flag;
|
||||
|
||||
+/* If nonzero, we should print a warning message
|
||||
+ for each attemtp to call an undefined user function. */
|
||||
+
|
||||
+int warn_undefined_functions_flag;
|
||||
+
|
||||
/* If nonzero, always build all targets, regardless of whether
|
||||
they appear out of date or not. */
|
||||
|
||||
@@ -368,6 +373,8 @@ static const char *const usage[] =
|
||||
Consider FILE to be infinitely new.\n"),
|
||||
N_("\
|
||||
--warn-undefined-variables Warn when an undefined variable is referenced.\n"),
|
||||
+ N_("\
|
||||
+ --warn-undefined-functions Warn when an undefined user function is called.\n"),
|
||||
NULL
|
||||
};
|
||||
|
||||
@@ -424,6 +431,8 @@ static const struct command_switch switches[] =
|
||||
{ CHAR_MAX+5, flag, &warn_undefined_variables_flag, 1, 1, 0, 0, 0,
|
||||
"warn-undefined-variables" },
|
||||
{ CHAR_MAX+6, string, &eval_strings, 1, 0, 0, 0, 0, "eval" },
|
||||
+ { CHAR_MAX+7, flag, &warn_undefined_functions_flag, 1, 1, 0, 0, 0,
|
||||
+ "warn-undefined-functions" },
|
||||
{ 0, 0, 0, 0, 0, 0, 0, 0, 0 }
|
||||
};
|
||||
|
||||
diff --git a/make.h b/make.h
|
||||
index 60ade4c..f2ebb56 100644
|
||||
--- a/make.h
|
||||
+++ b/make.h
|
||||
@@ -513,7 +513,7 @@ extern int env_overrides, no_builtin_rules_flag, no_builtin_variables_flag;
|
||||
extern int print_version_flag, print_directory_flag, check_symlink_flag;
|
||||
extern int warn_undefined_variables_flag, posix_pedantic, not_parallel;
|
||||
extern int second_expansion, clock_skew_detected, rebuilding_makefiles;
|
||||
-extern int one_shell;
|
||||
+extern int one_shell, warn_undefined_functions_flag;
|
||||
|
||||
/* can we run commands via 'sh -c xxx' or must we use batch files? */
|
||||
extern int batch_mode_shell;
|
||||
diff --git a/variable.h b/variable.h
|
||||
index c215867..02713c1 100644
|
||||
--- a/variable.h
|
||||
+++ b/variable.h
|
||||
@@ -220,6 +220,13 @@ void undefine_variable_in_set (const char *name, unsigned int length,
|
||||
(int)(l), (n)); \
|
||||
}while(0)
|
||||
|
||||
+#define warn_undefined_function(n,l) do{\
|
||||
+ if (warn_undefined_functions_flag) \
|
||||
+ error (reading_file, \
|
||||
+ _("warning: undefined function `%.*s'"), \
|
||||
+ (int)(l), (n)); \
|
||||
+ }while(0)
|
||||
+
|
||||
char **target_environment (struct file *file);
|
||||
|
||||
struct pattern_var *create_pattern_var (const char *target,
|
||||
--
|
||||
cgit v0.9.0.2-2-gbebe
|
||||
@@ -1,111 +0,0 @@
|
||||
|
||||
This patch add the support for --debug=c and --debug=e to make
|
||||
this option when activated will trace in stdout the activity of $(call and $(eval in the Makefile
|
||||
|
||||
The trace use the format:
|
||||
### xxx -->
|
||||
### xxx <--
|
||||
the number of space before ### is at least 1 and increase with the nesting of eval/call
|
||||
|
||||
usage: make --debug=c,e
|
||||
|
||||
diff -r -u make-3.82/debug.h make-3.82-lo_trace/debug.h
|
||||
--- make-3.82/debug.h 2010-07-12 20:20:38.000000000 -0500
|
||||
+++ make-3.82-lo_trace/debug.h 2011-06-22 12:06:37.000000000 -0500
|
||||
@@ -21,6 +21,8 @@
|
||||
#define DB_JOBS (0x004)
|
||||
#define DB_IMPLICIT (0x008)
|
||||
#define DB_MAKEFILES (0x100)
|
||||
+#define DB_CALL (0x01000)
|
||||
+#define DB_EVAL (0x02000)
|
||||
|
||||
#define DB_ALL (0xfff)
|
||||
|
||||
diff -r -u make-3.82/function.c make-3.82-lo_trace/function.c
|
||||
--- make-3.82/function.c 2011-06-23 01:01:35.000000000 -0500
|
||||
+++ make-3.82-lo_trace/function.c 2011-06-23 01:40:05.000000000 -0500
|
||||
@@ -28,6 +28,8 @@
|
||||
#include "amiga.h"
|
||||
#endif
|
||||
|
||||
+static int depth = 0;
|
||||
+
|
||||
|
||||
struct function_table_entry
|
||||
{
|
||||
@@ -1371,7 +1373,12 @@
|
||||
|
||||
install_variable_buffer (&buf, &len);
|
||||
|
||||
+ depth += 1;
|
||||
+ DBS( DB_EVAL, ("### eval -->\n"));
|
||||
+ DB( DB_EVAL, ("%s\n", argv[0]));
|
||||
eval_buffer (argv[0]);
|
||||
+ DBS( DB_EVAL, ("### eval <--\n"));
|
||||
+ depth -= 1;
|
||||
|
||||
restore_variable_buffer (buf, len);
|
||||
|
||||
@@ -2338,6 +2345,7 @@
|
||||
if (v == 0 || *v->value == '\0')
|
||||
return o;
|
||||
|
||||
+ depth += 1;
|
||||
body = alloca (flen + 4);
|
||||
body[0] = '$';
|
||||
body[1] = '(';
|
||||
@@ -2345,6 +2353,7 @@
|
||||
body[flen+2] = ')';
|
||||
body[flen+3] = '\0';
|
||||
|
||||
+ DBS(DB_CALL, ("### call %s -->\n", body));
|
||||
/* Set up arguments $(1) .. $(N). $(0) is the function name. */
|
||||
|
||||
push_new_variable_scope ();
|
||||
@@ -2354,6 +2363,7 @@
|
||||
char num[11];
|
||||
|
||||
sprintf (num, "%d", i);
|
||||
+ DBS(DB_CALL, ("### arg %i for call %s is '%s'\n", i, body, *argv));
|
||||
define_variable (num, strlen (num), *argv, o_automatic, 0);
|
||||
}
|
||||
|
||||
@@ -2367,6 +2377,7 @@
|
||||
char num[11];
|
||||
|
||||
sprintf (num, "%d", i);
|
||||
+ DBS(DB_CALL, ("### arg %i for call %s is implicit\n", i, body));
|
||||
define_variable (num, strlen (num), "", o_automatic, 0);
|
||||
}
|
||||
|
||||
@@ -2377,7 +2388,14 @@
|
||||
|
||||
saved_args = max_args;
|
||||
max_args = i;
|
||||
+
|
||||
o = variable_expand_string (o, body, flen+3);
|
||||
+ DBS(DB_CALL, ("### call to %s expended into\n", body));
|
||||
+ DB(DB_CALL, ("%s\n", o));
|
||||
+ DBS(DB_CALL, ("### call %s <--\n", body));
|
||||
+
|
||||
+ depth -= 1;
|
||||
+
|
||||
max_args = saved_args;
|
||||
|
||||
v->exp_count = 0;
|
||||
diff -r -u make-3.82/main.c make-3.82-lo_trace/main.c
|
||||
--- make-3.82/main.c 2010-07-19 02:10:53.000000000 -0500
|
||||
+++ make-3.82-lo_trace/main.c 2011-06-22 11:46:39.000000000 -0500
|
||||
@@ -634,6 +634,12 @@
|
||||
case 'b':
|
||||
db_level |= DB_BASIC;
|
||||
break;
|
||||
+ case 'c':
|
||||
+ db_level |= DB_CALL;
|
||||
+ break;
|
||||
+ case 'e':
|
||||
+ db_level |= DB_EVAL;
|
||||
+ break;
|
||||
case 'i':
|
||||
db_level |= DB_BASIC | DB_IMPLICIT;
|
||||
break;
|
||||
@@ -1,116 +0,0 @@
|
||||
Index: read.c
|
||||
===================================================================
|
||||
RCS file: /sources/make/make/read.c,v
|
||||
retrieving revision 1.198
|
||||
retrieving revision 1.200
|
||||
diff -u -r1.198 -r1.200
|
||||
--- a/read.c 29 Apr 2011 15:27:39 -0000 1.198
|
||||
+++ b/read.c 7 May 2011 14:36:12 -0000 1.200
|
||||
@@ -2901,6 +2901,7 @@
|
||||
const char *name;
|
||||
const char **nlist = 0;
|
||||
char *tildep = 0;
|
||||
+ int globme = 1;
|
||||
#ifndef NO_ARCHIVES
|
||||
char *arname = 0;
|
||||
char *memname = 0;
|
||||
@@ -3109,32 +3110,40 @@
|
||||
}
|
||||
#endif /* !NO_ARCHIVES */
|
||||
|
||||
- switch (glob (name, GLOB_NOSORT|GLOB_ALTDIRFUNC, NULL, &gl))
|
||||
- {
|
||||
- case GLOB_NOSPACE:
|
||||
- fatal (NILF, _("virtual memory exhausted"));
|
||||
-
|
||||
- case 0:
|
||||
- /* Success. */
|
||||
- i = gl.gl_pathc;
|
||||
- nlist = (const char **)gl.gl_pathv;
|
||||
- break;
|
||||
-
|
||||
- case GLOB_NOMATCH:
|
||||
- /* If we want only existing items, skip this one. */
|
||||
- if (flags & PARSEFS_EXISTS)
|
||||
- {
|
||||
- i = 0;
|
||||
- break;
|
||||
- }
|
||||
- /* FALLTHROUGH */
|
||||
-
|
||||
- default:
|
||||
- /* By default keep this name. */
|
||||
+ /* glob() is expensive: don't call it unless we need to. */
|
||||
+ if (!(flags & PARSEFS_EXISTS) && strpbrk (name, "?*[") == NULL)
|
||||
+ {
|
||||
+ globme = 0;
|
||||
i = 1;
|
||||
nlist = &name;
|
||||
- break;
|
||||
- }
|
||||
+ }
|
||||
+ else
|
||||
+ switch (glob (name, GLOB_NOSORT|GLOB_ALTDIRFUNC, NULL, &gl))
|
||||
+ {
|
||||
+ case GLOB_NOSPACE:
|
||||
+ fatal (NILF, _("virtual memory exhausted"));
|
||||
+
|
||||
+ case 0:
|
||||
+ /* Success. */
|
||||
+ i = gl.gl_pathc;
|
||||
+ nlist = (const char **)gl.gl_pathv;
|
||||
+ break;
|
||||
+
|
||||
+ case GLOB_NOMATCH:
|
||||
+ /* If we want only existing items, skip this one. */
|
||||
+ if (flags & PARSEFS_EXISTS)
|
||||
+ {
|
||||
+ i = 0;
|
||||
+ break;
|
||||
+ }
|
||||
+ /* FALLTHROUGH */
|
||||
+
|
||||
+ default:
|
||||
+ /* By default keep this name. */
|
||||
+ i = 1;
|
||||
+ nlist = &name;
|
||||
+ break;
|
||||
+ }
|
||||
|
||||
/* For each matched element, add it to the list. */
|
||||
while (i-- > 0)
|
||||
@@ -3174,7 +3183,8 @@
|
||||
#endif /* !NO_ARCHIVES */
|
||||
NEWELT (concat (2, prefix, nlist[i]));
|
||||
|
||||
- globfree (&gl);
|
||||
+ if (globme)
|
||||
+ globfree (&gl);
|
||||
|
||||
#ifndef NO_ARCHIVES
|
||||
if (arname)
|
||||
Index: tests/scripts/functions/wildcard
|
||||
===================================================================
|
||||
RCS file: /sources/make/make/tests/scripts/functions/wildcard,v
|
||||
retrieving revision 1.6
|
||||
retrieving revision 1.7
|
||||
diff -u -r1.6 -r1.7
|
||||
--- a/tests/scripts/functions/wildcard 13 Jun 2009 21:21:49 -0000 1.6
|
||||
+++ b/tests/scripts/functions/wildcard 7 May 2011 14:36:11 -0000 1.7
|
||||
@@ -88,4 +88,16 @@
|
||||
!,
|
||||
'', "\n");
|
||||
|
||||
+# TEST #5: wildcard used to verify file existence
|
||||
+
|
||||
+touch('xxx.yyy');
|
||||
+
|
||||
+run_make_test(q!exists: ; @echo file=$(wildcard xxx.yyy)!,
|
||||
+ '', "file=xxx.yyy\n");
|
||||
+
|
||||
+unlink('xxx.yyy');
|
||||
+
|
||||
+run_make_test(q!exists: ; @echo file=$(wildcard xxx.yyy)!,
|
||||
+ '', "file=\n");
|
||||
+
|
||||
1;
|
||||
@@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="pcre"
|
||||
PKG_VERSION="8.33"
|
||||
PKG_VERSION="8.35"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="OSS"
|
||||
|
||||
@@ -23,7 +23,7 @@ PKG_ARCH="any"
|
||||
PKG_LICENSE="OSS"
|
||||
PKG_SITE="http://www.mesa3d.org/"
|
||||
PKG_URL="ftp://freedesktop.org/pub/mesa/10.1/MesaLib-$PKG_VERSION.tar.bz2"
|
||||
PKG_DEPENDS_TARGET="toolchain Python:host makedepend:host libxml2:host expat glproto dri2proto libdrm libXext libXdamage libXfixes libXxf86vm libxcb libX11 systemd dri3proto libxshmfence"
|
||||
PKG_DEPENDS_TARGET="toolchain Python:host makedepend:host libxml2:host expat glproto dri2proto presentproto libdrm libXext libXdamage libXfixes libXxf86vm libxcb libX11 systemd dri3proto libxshmfence"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="graphics"
|
||||
PKG_SHORTDESC="mesa: 3-D graphics library with OpenGL API"
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
From 92e543c45da4581b1940178a94e6f2d66c749367 Mon Sep 17 00:00:00 2001
|
||||
From: Christian König <christian.koenig@amd.com>
|
||||
Date: Sat, 22 Mar 2014 20:30:07 +0000
|
||||
Subject: st/mesa: recreate sampler view on context change v3
|
||||
|
||||
With shared glx contexts it is possible that a texture is create and used
|
||||
in one context and then used in another one resulting in incorrect
|
||||
sampler view usage.
|
||||
|
||||
v2: avoid template copy
|
||||
v3: add XXX comment
|
||||
|
||||
Signed-off-by: Christian König <christian.koenig@amd.com>
|
||||
Cc: "10.0 10.1" <mesa-stable@lists.freedesktop.org>
|
||||
Reviewed-by: Brian Paul <brianp@vmware.com>
|
||||
---
|
||||
diff --git a/src/mesa/state_tracker/st_atom_texture.c b/src/mesa/state_tracker/st_atom_texture.c
|
||||
index 3557a3f..75e6fac 100644
|
||||
--- a/src/mesa/state_tracker/st_atom_texture.c
|
||||
+++ b/src/mesa/state_tracker/st_atom_texture.c
|
||||
@@ -198,6 +198,16 @@ st_get_texture_sampler_view_from_stobj(struct st_texture_object *stObj,
|
||||
if (!stObj->sampler_view) {
|
||||
stObj->sampler_view =
|
||||
st_create_texture_sampler_view_from_stobj(pipe, stObj, samp, format);
|
||||
+
|
||||
+ } else if (stObj->sampler_view->context != pipe) {
|
||||
+ /* Recreate view in correct context, use existing view as template */
|
||||
+ /* XXX: This isn't optimal, we should try to use more than one view.
|
||||
+ Otherwise we create/destroy the view all the time
|
||||
+ */
|
||||
+ struct pipe_sampler_view *sv =
|
||||
+ pipe->create_sampler_view(pipe, stObj->pt, stObj->sampler_view);
|
||||
+ pipe_sampler_view_reference(&stObj->sampler_view, NULL);
|
||||
+ stObj->sampler_view = sv;
|
||||
}
|
||||
|
||||
return stObj->sampler_view;
|
||||
--
|
||||
cgit v0.9.0.2-2-gbebe
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user