Compare commits
44 Commits
2010.08_rc
...
2010.08_rc
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
dc3a7ebc26 | ||
|
|
fb67a2dc3a | ||
|
|
2ab8ec9e26 | ||
|
|
d6d6ff6a9c | ||
|
|
eba7132f3a | ||
|
|
78c67b6ce4 | ||
|
|
1c4dbb5fa7 | ||
|
|
8e32ec9a1f | ||
|
|
c4cdcc3680 | ||
|
|
de846f6e04 | ||
|
|
b6207627b4 | ||
|
|
6c51938781 | ||
|
|
6ef440ba0d | ||
|
|
c06b3891ff | ||
|
|
96c607c93a | ||
|
|
e8fdc08dc3 | ||
|
|
62b4c67b09 | ||
|
|
0b415edef3 | ||
|
|
b680672ad1 | ||
|
|
1ed2e4fffd | ||
|
|
9ed8308d58 | ||
|
|
2e7ab32c97 | ||
|
|
a99b1bb24f | ||
|
|
311e0a6fc4 | ||
|
|
d3de556d28 | ||
|
|
8305f6ffbc | ||
|
|
e6c4ce6cef | ||
|
|
66ab676616 | ||
|
|
0b876d3977 | ||
|
|
c56087e65c | ||
|
|
a022ab5e01 | ||
|
|
03ff807803 | ||
|
|
7fe50869fb | ||
|
|
0ec4298153 | ||
|
|
30887f616a | ||
|
|
a22d4082ea | ||
|
|
f4ffc04bbd | ||
|
|
e5621b427c | ||
|
|
0fa2a04417 | ||
|
|
01c1279f9f | ||
|
|
9088b71f45 | ||
|
|
e0f441a234 | ||
|
|
55f70939b8 | ||
|
|
2c31d745ac |
40
CHANGES
40
CHANGES
@@ -1,3 +1,39 @@
|
||||
2010.08-rc2, Released August 30th, 2010:
|
||||
|
||||
Fixes all over the tree.
|
||||
|
||||
Mark the combination of uClibc 0.9.31, gcc 4.2.x, C++ and
|
||||
locale support as broken. Remove deprecated GCC 4.2.[1-3]
|
||||
versions.
|
||||
|
||||
Mark CRIS architecture as deprecated, as it is discontinued
|
||||
upstream.
|
||||
|
||||
Marked shared config.cache as experimental and disabled by
|
||||
default as it is known to break with certain package
|
||||
combinations.
|
||||
|
||||
Toolchain: fixed gcc 4.2.x build after uClibc NPTL support got
|
||||
added.
|
||||
|
||||
fs: old-style squashfs for big endian archs fixed.
|
||||
|
||||
Updated/fixed packages: busybox, gst-plugins-base,
|
||||
imagemagick, kismet, libgail, libglib2, libgtk2, lua,
|
||||
luafilesystem, lzo, ncurses, netcat, pango, php, pppd,
|
||||
proftpd, qt, samba, startup-notification, swfdec, sysvinit,
|
||||
util-linux
|
||||
|
||||
Removed packages: stunnel
|
||||
|
||||
Issues resolved (http://bugs.uclibc.org):
|
||||
|
||||
#635: util-linux fails to build in 2009.08
|
||||
#2239: netcat package installs its binary to target as avr32-linux...
|
||||
#2395: libglib2-2.24.1 and libxml2-2.7.7 fails build on MIPS because...
|
||||
#2443: Initramfs: Don't overwrite $(TARGET_DIR)/init if it exists
|
||||
#2449: Minor fixes for squashfs makefile and correct PowerPC e500 ...
|
||||
|
||||
2010.08-rc1, Released July 30th, 2010:
|
||||
|
||||
Fixes all over the tree and new features.
|
||||
@@ -24,7 +60,7 @@
|
||||
during the 2010.11 development cycle.
|
||||
|
||||
New packages: cgilua, copas, coxpcall, ffmpeg, libsvgtiny,
|
||||
luafilesystem, luasocket, rings, wsapi, xavante, xterm
|
||||
libgail, luafilesystem, luasocket, rings, wsapi, xavante, xterm
|
||||
|
||||
Updated/fixed packages: alsa-lib, alsamixergui, at, atk,
|
||||
avahi, berkeleydb, bash, blackbox, busybox, bzip2, cairo,
|
||||
@@ -43,7 +79,7 @@
|
||||
usbutils, webif, webkit, wireless_tools, xerces,
|
||||
xkeyboard-config, xserver_xorg-server, xvkbd, zlib
|
||||
|
||||
Removed packages: libgail, modutils, portage, rxvt
|
||||
Removed packages: modutils, portage, rxvt
|
||||
|
||||
Deprecated packages: dillo, libglib12, libgtk12, microwin, pcmcia
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ config BR2_HAVE_DOT_CONFIG
|
||||
|
||||
config BR2_VERSION
|
||||
string
|
||||
default "2010.08-rc1"
|
||||
default "2010.08-rc2"
|
||||
|
||||
source "target/Config.in.arch"
|
||||
source "target/device/Config.in"
|
||||
@@ -267,9 +267,11 @@ config BR2_HAVE_DEVFILES
|
||||
menu "Advanced"
|
||||
|
||||
config BR2_CONFIG_CACHE
|
||||
bool "Use a central configure cache file"
|
||||
default y
|
||||
bool "Use a central configure cache file (EXPERIMENTAL)"
|
||||
help
|
||||
Notice: This is experimental and known to break with certain
|
||||
package combinations.
|
||||
|
||||
This determines if a central config cache is used by
|
||||
packages, reducing the configure time for packages as each
|
||||
one caches its findings.
|
||||
|
||||
14
Makefile
14
Makefile
@@ -59,6 +59,8 @@ MAKEOVERRIDES =
|
||||
# To really make O go away, we have to override it.
|
||||
override O:=$(O)
|
||||
CONFIG_DIR:=$(O)
|
||||
# we need to pass O= everywhere we call back into the toplevel makefile
|
||||
EXTRAMAKEARGS = O=$(O)
|
||||
endif
|
||||
|
||||
# $(shell find . -name *_defconfig |sed 's/.*\///')
|
||||
@@ -432,11 +434,11 @@ endif
|
||||
source: $(TARGETS_SOURCE) $(HOST_SOURCE)
|
||||
|
||||
_source-check:
|
||||
$(MAKE) SPIDER=--spider source
|
||||
$(MAKE) $(EXTRAMAKEARGS) SPIDER=--spider source
|
||||
|
||||
external-deps:
|
||||
@$(MAKE) -Bs BR2_WGET=$(TOPDIR)/toolchain/wget-show-external-deps.sh \
|
||||
SPIDER=--spider source
|
||||
$(EXTRAMAKEARGS) SPIDER=--spider source
|
||||
|
||||
show-targets:
|
||||
@echo $(TARGETS)
|
||||
@@ -558,7 +560,7 @@ defconfig: $(BUILD_DIR)/buildroot-config/conf
|
||||
|
||||
# check if download URLs are outdated
|
||||
source-check: allyesconfig
|
||||
$(MAKE) _source-check
|
||||
$(MAKE) $(EXTRAMAKEARGS) _source-check
|
||||
|
||||
endif # ifeq ($(BR2_HAVE_DOT_CONFIG),y)
|
||||
|
||||
@@ -585,11 +587,7 @@ flush:
|
||||
|
||||
%_defconfig: $(TOPDIR)/configs/%_defconfig
|
||||
cp $^ $(CONFIG_DIR)/.config
|
||||
ifeq ($(O),output)
|
||||
@$(MAKE) oldconfig
|
||||
else
|
||||
@$(MAKE) O=$(O) oldconfig
|
||||
endif
|
||||
@$(MAKE) $(EXTRAMAKEARGS) oldconfig
|
||||
|
||||
configured: dirs host-sed kernel-headers uclibc-config busybox-config linux26-config
|
||||
|
||||
|
||||
@@ -155,7 +155,7 @@ BR2_OPTIMIZE_2=y
|
||||
#
|
||||
# Advanced
|
||||
#
|
||||
BR2_CONFIG_CACHE=y
|
||||
# BR2_CONFIG_CACHE is not set
|
||||
|
||||
#
|
||||
# Toolchain
|
||||
|
||||
@@ -161,7 +161,7 @@ BR2_TOPDIR_SUFFIX=""
|
||||
BR2_ROOTFS_PREFIX="rootfs"
|
||||
BR2_JLEVEL=2
|
||||
# BR2_DEPRECATED is not set
|
||||
BR2_CONFIG_CACHE=y
|
||||
# BR2_CONFIG_CACHE is not set
|
||||
# BR2_ENABLE_DEBUG is not set
|
||||
BR2_STRIP_strip=y
|
||||
# BR2_STRIP_sstrip is not set
|
||||
|
||||
@@ -182,7 +182,7 @@ BR2_TOPDIR_SUFFIX=""
|
||||
BR2_ROOTFS_PREFIX="at91sam9261ek-NAND"
|
||||
BR2_JLEVEL=2
|
||||
# BR2_DEPRECATED is not set
|
||||
BR2_CONFIG_CACHE=y
|
||||
# BR2_CONFIG_CACHE is not set
|
||||
# BR2_ENABLE_DEBUG is not set
|
||||
BR2_STRIP_strip=y
|
||||
# BR2_STRIP_sstrip is not set
|
||||
|
||||
@@ -183,7 +183,7 @@ BR2_TOPDIR_SUFFIX=""
|
||||
BR2_ROOTFS_PREFIX="at91sam9261ek-NAND"
|
||||
BR2_JLEVEL=2
|
||||
# BR2_DEPRECATED is not set
|
||||
BR2_CONFIG_CACHE=y
|
||||
# BR2_CONFIG_CACHE is not set
|
||||
# BR2_ENABLE_DEBUG is not set
|
||||
BR2_STRIP_strip=y
|
||||
# BR2_STRIP_sstrip is not set
|
||||
|
||||
@@ -180,7 +180,7 @@ BR2_TOPDIR_SUFFIX=""
|
||||
BR2_ROOTFS_PREFIX="at91sam9263ek-NAND"
|
||||
BR2_JLEVEL=2
|
||||
# BR2_DEPRECATED is not set
|
||||
BR2_CONFIG_CACHE=y
|
||||
# BR2_CONFIG_CACHE is not set
|
||||
# BR2_ENABLE_DEBUG is not set
|
||||
BR2_STRIP_strip=y
|
||||
# BR2_STRIP_sstrip is not set
|
||||
|
||||
@@ -182,7 +182,7 @@ BR2_TOPDIR_SUFFIX=""
|
||||
BR2_ROOTFS_PREFIX="at91sam9263ek-NAND"
|
||||
BR2_JLEVEL=2
|
||||
# BR2_DEPRECATED is not set
|
||||
BR2_CONFIG_CACHE=y
|
||||
# BR2_CONFIG_CACHE is not set
|
||||
# BR2_ENABLE_DEBUG is not set
|
||||
BR2_STRIP_strip=y
|
||||
# BR2_STRIP_sstrip is not set
|
||||
|
||||
@@ -109,7 +109,7 @@ BR2_OPTIMIZE_S=y
|
||||
#
|
||||
# Advanced
|
||||
#
|
||||
BR2_CONFIG_CACHE=y
|
||||
# BR2_CONFIG_CACHE is not set
|
||||
|
||||
#
|
||||
# Toolchain
|
||||
|
||||
@@ -14,12 +14,12 @@ or
|
||||
<a href="/downloads/buildroot-2010.05.tar.bz2">buildroot-2010.05.tar.bz2</a>.
|
||||
<p>
|
||||
|
||||
The latest release candidate is <b>2010.08-rc1</b>, which can be
|
||||
The latest release candidate is <b>2010.08-rc2</b>, which can be
|
||||
downloaded here:<p>
|
||||
|
||||
<a href="/downloads/buildroot-2010.08-rc1.tar.gz">buildroot-2010.08-rc1.tar.gz</a>
|
||||
<a href="/downloads/buildroot-2010.08-rc2.tar.gz">buildroot-2010.08-rc2.tar.gz</a>
|
||||
or
|
||||
<a href="/downloads/buildroot-2010.08-rc1.tar.bz2">buildroot-2010.08-rc1.tar.bz2</a>.
|
||||
<a href="/downloads/buildroot-2010.08-rc2.tar.bz2">buildroot-2010.08-rc2.tar.bz2</a>.
|
||||
<p>
|
||||
|
||||
This and earlier releases can always be downloaded from
|
||||
|
||||
@@ -6,6 +6,22 @@
|
||||
|
||||
<ul>
|
||||
|
||||
<li><b>30 August 2010 -- 2010.08-rc2 released</b>
|
||||
|
||||
<p>RC2 is out with more cleanups and bugfixes, see the <a
|
||||
href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2010.08_rc2">CHANGES</a>
|
||||
file for details.
|
||||
|
||||
<p>Head to the <a href="/downloads/">downloads page</a> to pick up the
|
||||
<a href="/downloads/buildroot-2010.08-rc2.tar.bz2">2010.08-rc2
|
||||
release candidate</a>, and report any problems found to the <a
|
||||
href="lists.html">mailing list</a> or <a
|
||||
href="https://bugs.uclibc.org">bug tracker</a>.</p>
|
||||
|
||||
This is very much expected to be the final release
|
||||
candidate, so give it a good test and expect a final 2010.08
|
||||
release before September unless critical issues are found.</p>
|
||||
|
||||
<li><b>30 July 2010 -- 2010.08-rc1 released</b>
|
||||
|
||||
<p>We have a new release candidate! Lots of changes all over the
|
||||
|
||||
@@ -13,8 +13,9 @@ INITRAMFS_TARGET:= #nothing
|
||||
endif
|
||||
|
||||
define ROOTFS_INITRAMFS_INIT_SYMLINK
|
||||
rm -f $(TARGET_DIR)/init
|
||||
ln -s sbin/init $(TARGET_DIR)/init
|
||||
if [ ! -e $(TARGET_DIR)/init ]; then \
|
||||
ln -s sbin/init $(TARGET_DIR)/init; \
|
||||
fi
|
||||
endef
|
||||
|
||||
ROOTFS_INITRAMFS_PRE_GEN_HOOKS += ROOTFS_INITRAMFS_INIT_SYMLINK
|
||||
|
||||
@@ -10,7 +10,7 @@ else
|
||||
ROOTFS_SQUASHFS_DEPENDENCIES = host-squashfs3
|
||||
|
||||
ifeq ($(BR2_ENDIAN),"BIG")
|
||||
ROOTFS_SQUASHF_ARGS=-be
|
||||
ROOTFS_SQUASHFS_ARGS=-be
|
||||
else
|
||||
ROOTFS_SQUASHFS_ARGS=-le
|
||||
endif
|
||||
|
||||
@@ -420,7 +420,6 @@ source "package/ser2net/Config.in"
|
||||
source "package/socat/Config.in"
|
||||
source "package/spawn-fcgi/Config.in"
|
||||
source "package/squid/Config.in"
|
||||
source "package/stunnel/Config.in"
|
||||
source "package/tcpdump/Config.in"
|
||||
source "package/tcpreplay/Config.in"
|
||||
if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
|
||||
|
||||
39
package/busybox/busybox-1.17.1/busybox-1.17.1-grep.patch
Normal file
39
package/busybox/busybox-1.17.1/busybox-1.17.1-grep.patch
Normal file
@@ -0,0 +1,39 @@
|
||||
diff -urpN busybox-1.17.1/findutils/grep.c busybox-1.17.1-grep/findutils/grep.c
|
||||
--- busybox-1.17.1/findutils/grep.c 2010-07-06 04:25:54.000000000 +0200
|
||||
+++ busybox-1.17.1-grep/findutils/grep.c 2010-08-23 02:37:08.000000000 +0200
|
||||
@@ -461,15 +461,19 @@ static int grep_file(FILE *file)
|
||||
if (found)
|
||||
print_line(gl->pattern, strlen(gl->pattern), linenum, ':');
|
||||
} else while (1) {
|
||||
+ unsigned start = gl->matched_range.rm_so;
|
||||
unsigned end = gl->matched_range.rm_eo;
|
||||
+ unsigned len = end - start;
|
||||
char old = line[end];
|
||||
line[end] = '\0';
|
||||
- print_line(line + gl->matched_range.rm_so,
|
||||
- end - gl->matched_range.rm_so,
|
||||
- linenum, ':');
|
||||
+ /* Empty match is not printed: try "echo test | grep -o ''" */
|
||||
+ if (len != 0)
|
||||
+ print_line(line + start, len, linenum, ':');
|
||||
if (old == '\0')
|
||||
break;
|
||||
line[end] = old;
|
||||
+ if (len == 0)
|
||||
+ end++;
|
||||
#if !ENABLE_EXTRA_COMPAT
|
||||
if (regexec(&gl->compiled_regex, line + end,
|
||||
1, &gl->matched_range, REG_NOTBOL) != 0)
|
||||
diff -urpN busybox-1.17.1/testsuite/grep.tests busybox-1.17.1-grep/testsuite/grep.tests
|
||||
--- busybox-1.17.1/testsuite/grep.tests 2010-07-06 04:25:54.000000000 +0200
|
||||
+++ busybox-1.17.1-grep/testsuite/grep.tests 2010-08-23 02:37:08.000000000 +0200
|
||||
@@ -98,5 +98,9 @@ testing "grep -o does not loop forever"
|
||||
'grep -o "[^/]*$"' \
|
||||
"test\n" \
|
||||
"" "/var/test\n"
|
||||
+testing "grep -o does not loop forever on zero-length match" \
|
||||
+ 'grep -o "" | head -n1' \
|
||||
+ "" \
|
||||
+ "" "test\n"
|
||||
|
||||
exit $FAILCOUNT
|
||||
32
package/busybox/busybox-1.17.1/busybox-1.17.1-make.patch
Normal file
32
package/busybox/busybox-1.17.1/busybox-1.17.1-make.patch
Normal file
@@ -0,0 +1,32 @@
|
||||
diff -urpN busybox-1.17.1/Makefile busybox-1.17.1-make/Makefile
|
||||
--- busybox-1.17.1/Makefile 2010-07-25 00:13:44.000000000 +0200
|
||||
+++ busybox-1.17.1-make/Makefile 2010-08-22 09:30:33.000000000 +0200
|
||||
@@ -433,7 +433,12 @@ ifeq ($(config-targets),1)
|
||||
-include $(srctree)/arch/$(ARCH)/Makefile
|
||||
export KBUILD_DEFCONFIG
|
||||
|
||||
-config %config: scripts_basic outputmakefile gen_build_files FORCE
|
||||
+config: scripts_basic outputmakefile gen_build_files FORCE
|
||||
+ $(Q)mkdir -p include
|
||||
+ $(Q)$(MAKE) $(build)=scripts/kconfig $@
|
||||
+ $(Q)$(MAKE) -C $(srctree) KBUILD_SRC= .kernelrelease
|
||||
+
|
||||
+%config: scripts_basic outputmakefile gen_build_files FORCE
|
||||
$(Q)mkdir -p include
|
||||
$(Q)$(MAKE) $(build)=scripts/kconfig $@
|
||||
$(Q)$(MAKE) -C $(srctree) KBUILD_SRC= .kernelrelease
|
||||
@@ -1285,9 +1290,13 @@ endif
|
||||
$(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
|
||||
|
||||
# Modules
|
||||
-/ %/: prepare scripts FORCE
|
||||
+%/: prepare scripts FORCE
|
||||
$(Q)$(MAKE) KBUILD_MODULES=$(if $(CONFIG_MODULES),1) \
|
||||
$(build)=$(build-dir)
|
||||
+/: prepare scripts FORCE
|
||||
+ $(Q)$(MAKE) KBUILD_MODULES=$(if $(CONFIG_MODULES),1) \
|
||||
+ $(build)=$(build-dir)
|
||||
+
|
||||
%.ko: prepare scripts FORCE
|
||||
$(Q)$(MAKE) KBUILD_MODULES=$(if $(CONFIG_MODULES),1) \
|
||||
$(build)=$(build-dir) $(@:.ko=.o)
|
||||
49
package/busybox/busybox-1.17.1/busybox-1.17.1-mdev.patch
Normal file
49
package/busybox/busybox-1.17.1/busybox-1.17.1-mdev.patch
Normal file
@@ -0,0 +1,49 @@
|
||||
diff -urpN busybox-1.17.1/testsuite/mdev.tests busybox-1.17.1-mdev/testsuite/mdev.tests
|
||||
--- busybox-1.17.1/testsuite/mdev.tests 2010-07-06 04:25:54.000000000 +0200
|
||||
+++ busybox-1.17.1-mdev/testsuite/mdev.tests 2010-08-23 02:38:21.000000000 +0200
|
||||
@@ -38,6 +38,16 @@ brw-rw---- 1 0 0 8,0 sda
|
||||
SKIP=
|
||||
|
||||
# continuing to use directory structure from prev test
|
||||
+optional STATIC FEATURE_MDEV_CONF FEATURE_LS_TIMESTAMPS FEATURE_LS_USERNAME
|
||||
+testing "mdev deletes /block/sda" \
|
||||
+ "env - PATH=$PATH ACTION=remove DEVPATH=/block/sda chroot mdev.testdir /mdev 2>&1;
|
||||
+ ls -ln mdev.testdir/dev | $FILTER_LS" \
|
||||
+"\
|
||||
+" \
|
||||
+ "" ""
|
||||
+SKIP=
|
||||
+
|
||||
+# continuing to use directory structure from prev test
|
||||
rm -rf mdev.testdir/dev/*
|
||||
echo ".* 1:1 666" >mdev.testdir/etc/mdev.conf
|
||||
echo "sda 2:2 444" >>mdev.testdir/etc/mdev.conf
|
||||
diff -urpN busybox-1.17.1/util-linux/mdev.c busybox-1.17.1-mdev/util-linux/mdev.c
|
||||
--- busybox-1.17.1/util-linux/mdev.c 2010-07-06 04:25:54.000000000 +0200
|
||||
+++ busybox-1.17.1-mdev/util-linux/mdev.c 2010-08-23 02:38:21.000000000 +0200
|
||||
@@ -132,6 +132,7 @@ static void make_device(char *path, int
|
||||
major = -1;
|
||||
}
|
||||
}
|
||||
+ /* else: for delete, -1 still deletes the node, but < -1 suppresses that */
|
||||
|
||||
/* Determine device name, type, major and minor */
|
||||
device_name = (char*) bb_basename(path);
|
||||
@@ -279,7 +280,7 @@ static void make_device(char *path, int
|
||||
if (aliaslink == '!' && s == a+1) {
|
||||
val = st;
|
||||
/* "!": suppress node creation/deletion */
|
||||
- major = -1;
|
||||
+ major = -2;
|
||||
}
|
||||
else if (aliaslink == '>' || aliaslink == '=') {
|
||||
val = st;
|
||||
@@ -379,7 +380,7 @@ static void make_device(char *path, int
|
||||
free(command);
|
||||
}
|
||||
|
||||
- if (delete && major >= 0) {
|
||||
+ if (delete && major >= -1) {
|
||||
if (ENABLE_FEATURE_MDEV_RENAME && alias) {
|
||||
if (aliaslink == '>')
|
||||
unlink(device_name);
|
||||
117
package/busybox/busybox-1.17.1/busybox-1.17.1-sed.patch
Normal file
117
package/busybox/busybox-1.17.1/busybox-1.17.1-sed.patch
Normal file
@@ -0,0 +1,117 @@
|
||||
diff -urpN busybox-1.17.1/editors/sed.c busybox-1.17.1-sed/editors/sed.c
|
||||
--- busybox-1.17.1/editors/sed.c 2010-07-06 04:25:53.000000000 +0200
|
||||
+++ busybox-1.17.1-sed/editors/sed.c 2010-08-17 02:05:27.000000000 +0200
|
||||
@@ -61,6 +61,10 @@
|
||||
#include "libbb.h"
|
||||
#include "xregex.h"
|
||||
|
||||
+enum {
|
||||
+ OPT_in_place = 1 << 0,
|
||||
+};
|
||||
+
|
||||
/* Each sed command turns into one of these structures. */
|
||||
typedef struct sed_cmd_s {
|
||||
/* Ordered by alignment requirements: currently 36 bytes on x86 */
|
||||
@@ -938,8 +942,11 @@ static void process_files(void)
|
||||
|
||||
if (matched) {
|
||||
/* once matched, "n,xxx" range is dead, disabling it */
|
||||
- if (sed_cmd->beg_line > 0)
|
||||
+ if (sed_cmd->beg_line > 0
|
||||
+ && !(option_mask32 & OPT_in_place) /* but not for -i */
|
||||
+ ) {
|
||||
sed_cmd->beg_line = -2;
|
||||
+ }
|
||||
sed_cmd->in_match = !(
|
||||
/* has the ending line come, or is this a single address command? */
|
||||
(sed_cmd->end_line ?
|
||||
@@ -985,6 +992,8 @@ static void process_files(void)
|
||||
}
|
||||
|
||||
/* actual sedding */
|
||||
+ //bb_error_msg("pattern_space:'%s' next_line:'%s' cmd:%c",
|
||||
+ //pattern_space, next_line, sed_cmd->cmd);
|
||||
switch (sed_cmd->cmd) {
|
||||
|
||||
/* Print line number */
|
||||
@@ -1111,10 +1120,16 @@ static void process_files(void)
|
||||
{
|
||||
int len;
|
||||
/* If no next line, jump to end of script and exit. */
|
||||
+ /* http://www.gnu.org/software/sed/manual/sed.html:
|
||||
+ * "Most versions of sed exit without printing anything
|
||||
+ * when the N command is issued on the last line of
|
||||
+ * a file. GNU sed prints pattern space before exiting
|
||||
+ * unless of course the -n command switch has been
|
||||
+ * specified. This choice is by design."
|
||||
+ */
|
||||
if (next_line == NULL) {
|
||||
- free(next_line);
|
||||
- next_line = NULL;
|
||||
- goto discard_line;
|
||||
+ //goto discard_line;
|
||||
+ goto discard_commands; /* GNU behavior */
|
||||
}
|
||||
/* Append next_line, read new next_line. */
|
||||
len = strlen(pattern_space);
|
||||
@@ -1270,9 +1285,6 @@ static void add_cmd_block(char *cmdstr)
|
||||
int sed_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
|
||||
int sed_main(int argc UNUSED_PARAM, char **argv)
|
||||
{
|
||||
- enum {
|
||||
- OPT_in_place = 1 << 0,
|
||||
- };
|
||||
unsigned opt;
|
||||
llist_t *opt_e, *opt_f;
|
||||
int status = EXIT_SUCCESS;
|
||||
@@ -1292,6 +1304,7 @@ int sed_main(int argc UNUSED_PARAM, char
|
||||
opt_e = opt_f = NULL;
|
||||
opt_complementary = "e::f::" /* can occur multiple times */
|
||||
"nn"; /* count -n */
|
||||
+ /* -i must be first, to match OPT_in_place definition */
|
||||
opt = getopt32(argv, "irne:f:", &opt_e, &opt_f,
|
||||
&G.be_quiet); /* counter for -n */
|
||||
//argc -= optind;
|
||||
diff -urpN busybox-1.17.1/testsuite/sed.tests busybox-1.17.1-sed/testsuite/sed.tests
|
||||
--- busybox-1.17.1/testsuite/sed.tests 2010-07-06 04:25:54.000000000 +0200
|
||||
+++ busybox-1.17.1-sed/testsuite/sed.tests 2010-08-17 02:05:27.000000000 +0200
|
||||
@@ -80,10 +80,18 @@ test x"$SKIP_KNOWN_BUGS" = x"" && {
|
||||
# Query: how does this interact with no newline at EOF?
|
||||
testing "sed n (flushes pattern space, terminates early)" "sed -e 'n;p'" \
|
||||
"a\nb\nb\nc\n" "" "a\nb\nc\n"
|
||||
-# N does _not_ flush pattern space, therefore c is still in there @ script end.
|
||||
-testing "sed N (doesn't flush pattern space when terminating)" "sed -e 'N;p'" \
|
||||
- "a\nb\na\nb\nc\n" "" "a\nb\nc\n"
|
||||
}
|
||||
+# non-GNU sed: N does _not_ flush pattern space, therefore c is eaten @ script end
|
||||
+# GNU sed: N flushes pattern space, therefore c is printed too @ script end
|
||||
+testing "sed N (flushes pattern space (GNU behavior))" "sed -e 'N;p'" \
|
||||
+ "a\nb\na\nb\nc\n" "" "a\nb\nc\n"
|
||||
+
|
||||
+testing "sed N test2" "sed ':a;N;s/\n/ /;ta'" \
|
||||
+ "a b c\n" "" "a\nb\nc\n"
|
||||
+
|
||||
+testing "sed N test3" "sed 'N;s/\n/ /'" \
|
||||
+ "a b\nc\n" "" "a\nb\nc\n"
|
||||
+
|
||||
testing "sed address match newline" 'sed "/b/N;/b\\nc/i woo"' \
|
||||
"a\nwoo\nb\nc\nd\n" "" "a\nb\nc\nd\n"
|
||||
|
||||
@@ -270,11 +278,16 @@ testing "sed a cmd ended by double backs
|
||||
| two \\
|
||||
'
|
||||
|
||||
-# fisrt three lines are deleted; 4th line is matched and printed by "2,3" and by "4" ranges
|
||||
+# first three lines are deleted; 4th line is matched and printed by "2,3" and by "4" ranges
|
||||
testing "sed with N skipping lines past ranges on next cmds" \
|
||||
"sed -n '1{N;N;d};1p;2,3p;3p;4p'" \
|
||||
"4\n4\n" "" "1\n2\n3\n4\n"
|
||||
|
||||
+testing "sed -i with address modifies all files, not only first" \
|
||||
+ "cp input input2; sed -i -e '1s/foo/bar/' input input2 && cat input input2; rm input2" \
|
||||
+ "bar\nbar\n" "foo\n" ""
|
||||
+
|
||||
+
|
||||
# testing "description" "arguments" "result" "infile" "stdin"
|
||||
|
||||
exit $FAILCOUNT
|
||||
@@ -84,3 +84,22 @@ diff -urpN busybox-1.17.1/shell/hush_test/hush-trap/signal7.tests busybox-1.17.1
|
||||
+&& test x"$REAL_CHILD" = x"$PARENTS_IDEA_OF_CHILD"
|
||||
+echo "Bug detected: $?"
|
||||
+}
|
||||
diff -urpN busybox-1.17.1/shell/shell_common.c busybox-1.17.1-shell/shell/shell_common.c
|
||||
--- busybox-1.17.1/shell/shell_common.c 2010-07-06 04:25:54.000000000 +0200
|
||||
+++ busybox-1.17.1-shell/shell/shell_common.c 2010-07-27 08:41:43.000000000 +0200
|
||||
@@ -428,9 +428,14 @@ shell_builtin_ulimit(char **argv)
|
||||
val <<= l->factor_shift;
|
||||
}
|
||||
//bb_error_msg("opt %c val_str:'%s' val:%lld", opt_char, val_str, (long long)val);
|
||||
+ /* from man bash: "If neither -H nor -S
|
||||
+ * is specified, both the soft and hard
|
||||
+ * limits are set. */
|
||||
+ if (!opts)
|
||||
+ opts = OPT_hard + OPT_soft;
|
||||
if (opts & OPT_hard)
|
||||
limit.rlim_max = val;
|
||||
- if ((opts & OPT_soft) || opts == 0)
|
||||
+ if (opts & OPT_soft)
|
||||
limit.rlim_cur = val;
|
||||
//bb_error_msg("setrlimit(%d, %lld, %lld)", l->cmd, (long long)limit.rlim_cur, (long long)limit.rlim_max);
|
||||
if (setrlimit(l->cmd, &limit) < 0) {
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
config BR2_PACKAGE_CGILUA
|
||||
bool "cgilua"
|
||||
depends on BR2_LARGEFILE
|
||||
select BR2_PACKAGE_LUA_SHARED_LIBRARY
|
||||
select BR2_PACKAGE_LUAFILESYSTEM
|
||||
help
|
||||
@@ -8,6 +7,3 @@ config BR2_PACKAGE_CGILUA
|
||||
and manipulating input data from Web forms.
|
||||
|
||||
http://luaforge.net/projects/cgilua/
|
||||
|
||||
comment "cgilua requires a toolchain with LARGEFILE support"
|
||||
depends on !BR2_LARGEFILE
|
||||
|
||||
@@ -88,7 +88,6 @@ $(IMAGEMAGICK_DIR)/.libinstall: $(IMAGEMAGICK_LIB)
|
||||
touch $@
|
||||
|
||||
$(TARGET_DIR)/usr/bin/animate: $(IMAGEMAGICK_LIB)
|
||||
ls -l $(IMAGEMAGICK_LIB) >> datefile
|
||||
$(IMAGEMAGICK_COPY) $(STAGING_DIR)/usr/bin/$(GNU_TARGET_NAME)-animate $(TARGET_DIR)/usr/bin/animate
|
||||
-$(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $(TARGET_DIR)/usr/bin/animate
|
||||
touch $@
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
config BR2_PACKAGE_INTLTOOL
|
||||
bool "intltool"
|
||||
# Hide from configuration as we only support the host package
|
||||
# for the moment
|
||||
depends on BR2_HOST_ONLY
|
||||
help
|
||||
Utility scripts for internationalizing XML
|
||||
|
||||
|
||||
@@ -33,18 +33,19 @@ $(eval $(call AUTOTARGETS,package,kismet))
|
||||
|
||||
$(KISMET_TARGET_INSTALL_TARGET):
|
||||
$(call MESSAGE,"Installing")
|
||||
ifdef KISMET_TARGET_BINARIES
|
||||
$(INSTALL) -m 755 $(addprefix $(KISMET_DIR)/, $(KISMET_TARGET_BINARIES)) $(TARGET_DIR)/usr/bin
|
||||
endif
|
||||
ifdef KISMET_TARGET_CONFIGS
|
||||
$(INSTALL) -m 644 $(addprefix $(KISMET_DIR)/conf/, $(KISMET_TARGET_CONFIGS)) $(TARGET_DIR)/etc
|
||||
endif
|
||||
ifeq ($(BR2_ENABLE_DEBUG),)
|
||||
$(STRIPCMD) $(STRIP_STRIP_ALL) $(addprefix $(TARGET_DIR)/usr/bin/, $(KISMET_TARGET_BINARIES))
|
||||
endif
|
||||
touch $@
|
||||
|
||||
$(KISMET_TARGET_UNINSTALL):
|
||||
$(call MESSAGE,"Uninstalling")
|
||||
ifdef KISMET_TARGET_BINARIES
|
||||
rm -f $(addprefix $(TARGET_DIR)/usr/bin/, $(KISMET_TARGET_BINARIES))
|
||||
endif
|
||||
ifdef KISMET_TARGET_CONFIGS
|
||||
rm -f $(addprefix $(TARGET_DIR)/etc/, $(KISMET_TARGET_CONFIGS))
|
||||
endif
|
||||
|
||||
51
package/libglib2/libglib2-fix-clock-gettime-check.patch
Normal file
51
package/libglib2/libglib2-fix-clock-gettime-check.patch
Normal file
@@ -0,0 +1,51 @@
|
||||
Rework clock_gettime() test
|
||||
|
||||
The test for clock_gettime() in configure.in doesn't work properly
|
||||
when a previous package has loaded the shared configuration cache with
|
||||
informations about the availability of clock_gettime. A package such
|
||||
as ctorrent does so, which means that compiling ctorrent *then*
|
||||
libglib2 currently fails.
|
||||
|
||||
According to people on the Autoconf mailing list, the libglib2 test is
|
||||
likely the one that needs to be fixed. The problem is that the
|
||||
AC_CHECK_FUNCS() test assumes that if it finds clock_gettime() it
|
||||
means that there's no need to add any -lrt flag to the
|
||||
build. Unfortunately, due to the shared configuration cache, this test
|
||||
is already done with -lrt, so the test succeeds, and libglib2 does not
|
||||
know that it needs to add -lrt to G_THREAD_LIBS and
|
||||
G_THREAD_LIBS_FOR_GTHREAD.
|
||||
|
||||
So instead, we remplace the test with an AC_SEARCH_LIBS() test,
|
||||
followed by a test on the result of this AC_SEARCH_LIBS() test to add
|
||||
the necessary -lrt to G_THREAD_LIBS and
|
||||
G_THREAD_LIBS_FOR_GTHREAD. Therefore, even if the result for the
|
||||
AC_SEARCH_LIBS() test is cached due to the prior execution ctorrent
|
||||
./configure script, libglib2 ./configure will properly add -lrt to the
|
||||
appropriate variables.
|
||||
|
||||
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
|
||||
Index: glib-2.24.1/configure.in
|
||||
===================================================================
|
||||
--- glib-2.24.1.orig/configure.in 2010-08-11 19:29:20.530916023 +0200
|
||||
+++ glib-2.24.1/configure.in 2010-08-11 19:46:41.308866269 +0200
|
||||
@@ -2392,13 +2392,14 @@
|
||||
LIBS="$glib_save_LIBS"
|
||||
fi
|
||||
|
||||
-AC_CHECK_FUNCS(clock_gettime, [], [
|
||||
- AC_CHECK_LIB(rt, clock_gettime, [
|
||||
- AC_DEFINE(HAVE_CLOCK_GETTIME, 1)
|
||||
+AC_SEARCH_LIBS([clock_gettime], [rt], [
|
||||
+ AC_DEFINE(HAVE_CLOCK_GETTIME, 1,[Have clock_gettime])
|
||||
+])
|
||||
+
|
||||
+if test "$ac_cv_search_clock_gettime" = "-lrt"; then
|
||||
G_THREAD_LIBS="$G_THREAD_LIBS -lrt"
|
||||
G_THREAD_LIBS_FOR_GTHREAD="$G_THREAD_LIBS_FOR_GTHREAD -lrt"
|
||||
- ])
|
||||
-])
|
||||
+fi
|
||||
|
||||
AC_CACHE_CHECK(for monotonic clocks,
|
||||
glib_cv_monotonic_clock,AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
|
||||
@@ -9,7 +9,7 @@ LIBGLIB2_VERSION = $(LIBGLIB2_VERSION_MAJOR).$(LIBGLIB2_VERSION_MINOR)
|
||||
LIBGLIB2_SOURCE = glib-$(LIBGLIB2_VERSION).tar.bz2
|
||||
LIBGLIB2_SITE = http://ftp.gnome.org/pub/gnome/sources/glib/$(LIBGLIB2_VERSION_MAJOR)
|
||||
|
||||
LIBGLIB2_AUTORECONF = NO
|
||||
LIBGLIB2_AUTORECONF = YES
|
||||
LIBGLIB2_LIBTOOL_PATCH = NO
|
||||
LIBGLIB2_INSTALL_STAGING = YES
|
||||
LIBGLIB2_INSTALL_TARGET = YES
|
||||
|
||||
@@ -13,10 +13,11 @@ config BR2_PACKAGE_LIBGTK2
|
||||
# time.
|
||||
depends on BR2_PACKAGE_XORG7||(BR2_PACKAGE_DIRECTFB && BR2_DEPRECATED)
|
||||
depends on BR2_USE_WCHAR # glib2
|
||||
depends on BR2_INSTALL_LIBSTDCPP # pango
|
||||
help
|
||||
The GTK+ version 2 graphical user interface library
|
||||
|
||||
http://www.gtk.org/
|
||||
|
||||
comment "libgtk2 requires a toolchain with WCHAR support"
|
||||
depends on !BR2_USE_WCHAR
|
||||
comment "libgtk2 requires a toolchain with WCHAR and C++ support"
|
||||
depends on !BR2_USE_WCHAR || !BR2_INSTALL_LIBSTDCPP
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
config BR2_PACKAGE_LIBXML_PARSER_PERL
|
||||
bool "libxml-parser-perl"
|
||||
select BR2_PACKAGE_EXPAT
|
||||
# Hide from configuration as we only support the host package
|
||||
# for the moment
|
||||
depends on BR2_HOST_ONLY
|
||||
help
|
||||
The Perl XML::Parser module.
|
||||
|
||||
|
||||
20
package/lua/lua-bug7-string_format.patch
Normal file
20
package/lua/lua-bug7-string_format.patch
Normal file
@@ -0,0 +1,20 @@
|
||||
--- lua-5.1.4.orig/src/lstrlib.c 2008/07/11 17:27:21 1.132.1.4
|
||||
+++ lua-5.1.4/src/lstrlib.c 2010/05/14 15:12:53
|
||||
@@ -754,6 +754,7 @@
|
||||
|
||||
|
||||
static int str_format (lua_State *L) {
|
||||
+ int top = lua_gettop(L);
|
||||
int arg = 1;
|
||||
size_t sfl;
|
||||
const char *strfrmt = luaL_checklstring(L, arg, &sfl);
|
||||
@@ -768,7 +769,8 @@
|
||||
else { /* format item */
|
||||
char form[MAX_FORMAT]; /* to store the format (`%...') */
|
||||
char buff[MAX_ITEM]; /* to store the formatted item */
|
||||
- arg++;
|
||||
+ if (++arg > top)
|
||||
+ luaL_argerror(L, arg, "no value");
|
||||
strfrmt = scanformat(L, strfrmt, form);
|
||||
switch (*strfrmt++) {
|
||||
case 'c': {
|
||||
14
package/lua/lua-bug8-io_read.patch
Normal file
14
package/lua/lua-bug8-io_read.patch
Normal file
@@ -0,0 +1,14 @@
|
||||
--- lua-5.1.4.orig/src/liolib.c 2008/01/18 17:47:43 2.73.1.3
|
||||
+++ lua-5.1.4.orig/src/liolib.c 2010/05/14 15:29:29
|
||||
@@ -276,7 +276,10 @@
|
||||
lua_pushnumber(L, d);
|
||||
return 1;
|
||||
}
|
||||
- else return 0; /* read fails */
|
||||
+ else {
|
||||
+ lua_pushnil(L); /* "result" to be removed */
|
||||
+ return 0; /* read fails */
|
||||
+ }
|
||||
}
|
||||
|
||||
|
||||
@@ -24,7 +24,9 @@ endif
|
||||
define LUA_BUILD_CMDS
|
||||
sed -i -e 's/-O2//' $(@D)/src/Makefile
|
||||
sed -i -e 's/\/usr\/local/\/usr/' $(@D)/etc/lua.pc
|
||||
$(MAKE) $(TARGET_CONFIGURE_OPTS) MYCFLAGS="$(LUA_MYCFLAGS)" \
|
||||
$(MAKE) \
|
||||
CC="$(TARGET_CC)" RANLIB="$(TARGET_RANLIB)" \
|
||||
MYCFLAGS="$(TARGET_CFLAGS) $(LUA_MYCFLAGS)" \
|
||||
MYLIBS="$(LUA_MYLIBS)" AR="$(TARGET_CROSS)ar rcu" \
|
||||
PKG_VERSION=$(LUA_VERSION) -C $(@D)/src all
|
||||
endef
|
||||
|
||||
@@ -1,12 +1,8 @@
|
||||
config BR2_PACKAGE_LUAFILESYSTEM
|
||||
bool "luafilesystem"
|
||||
depends on BR2_LARGEFILE
|
||||
select BR2_PACKAGE_LUA_SHARED_LIBRARY
|
||||
help
|
||||
LuaFileSystem offers a portable way to access
|
||||
the underlying directory structure and file attributes.
|
||||
|
||||
http://luaforge.net/projects/luafilesystem/
|
||||
|
||||
comment "luafilesystem requires a toolchain with LARGEFILE support"
|
||||
depends on !BR2_LARGEFILE
|
||||
http://keplerproject.github.com/luafilesystem/
|
||||
|
||||
20
package/luafilesystem/luafilesystem-without_large_file.patch
Normal file
20
package/luafilesystem/luafilesystem-without_large_file.patch
Normal file
@@ -0,0 +1,20 @@
|
||||
diff --git a/src/lfs.c b/src/lfs.c
|
||||
index 85f01e3..ed49f50 100644
|
||||
--- a/src/lfs.c
|
||||
+++ b/src/lfs.c
|
||||
@@ -22,13 +22,13 @@
|
||||
|
||||
#ifndef _WIN32
|
||||
#ifndef _AIX
|
||||
-#define _FILE_OFFSET_BITS 64 /* Linux, Solaris and HP-UX */
|
||||
+//#define _FILE_OFFSET_BITS 64 /* Linux, Solaris and HP-UX */
|
||||
#else
|
||||
#define _LARGE_FILES 1 /* AIX */
|
||||
#endif
|
||||
#endif
|
||||
|
||||
-#define _LARGEFILE64_SOURCE
|
||||
+//#define _LARGEFILE64_SOURCE
|
||||
|
||||
#include <errno.h>
|
||||
#include <stdio.h>
|
||||
@@ -8,8 +8,12 @@ LUAFILESYSTEM_VERSION = 1.5.0
|
||||
LUAFILESYSTEM_SITE = http://github.com/downloads/keplerproject/luafilesystem
|
||||
LUAFILESYSTEM_DEPENDENCIES = lua
|
||||
|
||||
ifeq ($(BR2_LARGEFILE),y)
|
||||
LFS_CFLAGS = -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE
|
||||
endif
|
||||
|
||||
define LUAFILESYSTEM_BUILD_CMDS
|
||||
$(MAKE) -C $(@D) CC="$(TARGET_CC)" CFLAGS="$(TARGET_CFLAGS) -fPIC"
|
||||
$(MAKE) -C $(@D) CC="$(TARGET_CC)" CFLAGS="$(TARGET_CFLAGS) $(LFS_CFLAGS) -fPIC"
|
||||
endef
|
||||
|
||||
define LUAFILESYSTEM_INSTALL_TARGET_CMDS
|
||||
|
||||
377
package/lzo/lzo-2.03-acinclude-m4.patch
Normal file
377
package/lzo/lzo-2.03-acinclude-m4.patch
Normal file
@@ -0,0 +1,377 @@
|
||||
The lzo tarball only contains an aclocal.m4, which is the result from
|
||||
running aclocal. Unfortunately, it lacks the acinclude.m4 file which
|
||||
would allow us to do an autoreconf of the package. Therefore, this
|
||||
patch extracts from aclocal.m4 the parts that are specific to this lzo
|
||||
package, and put them into an acinclude.m4 so that autoreconf on this
|
||||
package will work.
|
||||
|
||||
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
---
|
||||
acinclude.m4 | 360 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
1 file changed, 360 insertions(+)
|
||||
|
||||
Index: lzo-2.03/acinclude.m4
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ lzo-2.03/acinclude.m4
|
||||
@@ -0,0 +1,360 @@
|
||||
+# /***********************************************************************
|
||||
+# // standard ACC macros
|
||||
+# ************************************************************************/
|
||||
+
|
||||
+AC_DEFUN([mfx_ACC_CHECK_ENDIAN], [
|
||||
+AC_C_BIGENDIAN([AC_DEFINE(ACC_ABI_BIG_ENDIAN,1,[Define to 1 if your machine is big endian.])],[AC_DEFINE(ACC_ABI_LITTLE_ENDIAN,1,[Define to 1 if your machine is little endian.])])
|
||||
+])#
|
||||
+
|
||||
+AC_DEFUN([mfx_ACC_CHECK_HEADERS], [
|
||||
+AC_HEADER_TIME
|
||||
+AC_CHECK_HEADERS([assert.h ctype.h dirent.h errno.h fcntl.h float.h limits.h malloc.h memory.h setjmp.h signal.h stdarg.h stddef.h stdint.h stdio.h stdlib.h string.h strings.h time.h unistd.h utime.h sys/mman.h sys/resource.h sys/stat.h sys/time.h sys/types.h sys/wait.h])
|
||||
+])#
|
||||
+
|
||||
+AC_DEFUN([mfx_ACC_CHECK_FUNCS], [
|
||||
+AC_CHECK_FUNCS(access alloca atexit atoi atol chmod chown clock_getcpuclockid clock_getres clock_gettime ctime difftime fstat getenv getpagesize getrusage gettimeofday gmtime isatty localtime longjmp lstat memcmp memcpy memmove memset mkdir mktime mmap mprotect munmap qsort raise rmdir setjmp signal snprintf strcasecmp strchr strdup strerror strftime stricmp strncasecmp strnicmp strrchr strstr time umask utime vsnprintf)
|
||||
+])#
|
||||
+
|
||||
+
|
||||
+AC_DEFUN([mfx_ACC_CHECK_SIZEOF], [
|
||||
+AC_CHECK_SIZEOF(short)
|
||||
+AC_CHECK_SIZEOF(int)
|
||||
+AC_CHECK_SIZEOF(long)
|
||||
+
|
||||
+AC_CHECK_SIZEOF(long long)
|
||||
+AC_CHECK_SIZEOF(__int16)
|
||||
+AC_CHECK_SIZEOF(__int32)
|
||||
+AC_CHECK_SIZEOF(__int64)
|
||||
+
|
||||
+AC_CHECK_SIZEOF(void *)
|
||||
+AC_CHECK_SIZEOF(size_t)
|
||||
+AC_CHECK_SIZEOF(ptrdiff_t)
|
||||
+])#
|
||||
+
|
||||
+
|
||||
+# /***********************************************************************
|
||||
+# // Check for ACC_conformance
|
||||
+# ************************************************************************/
|
||||
+
|
||||
+AC_DEFUN([mfx_ACC_ACCCHK], [
|
||||
+mfx_tmp=$1
|
||||
+mfx_save_CPPFLAGS=$CPPFLAGS
|
||||
+dnl in Makefile.in $(INCLUDES) will be before $(CPPFLAGS), so we mimic this here
|
||||
+test "X$mfx_tmp" = "X" || CPPFLAGS="$mfx_tmp $CPPFLAGS"
|
||||
+
|
||||
+AC_MSG_CHECKING([whether your compiler passes the ACC conformance test])
|
||||
+
|
||||
+AC_LANG_CONFTEST([AC_LANG_PROGRAM(
|
||||
+[[#define ACC_CONFIG_NO_HEADER 1
|
||||
+#include "acc/acc.h"
|
||||
+#include "acc/acc_incd.h"
|
||||
+#undef ACCCHK_ASSERT
|
||||
+#define ACCCHK_ASSERT(expr) ACC_COMPILE_TIME_ASSERT_HEADER(expr)
|
||||
+#include "acc/acc_chk.ch"
|
||||
+#undef ACCCHK_ASSERT
|
||||
+static void test_acc_compile_time_assert(void) {
|
||||
+#define ACCCHK_ASSERT(expr) ACC_COMPILE_TIME_ASSERT(expr)
|
||||
+#include "acc/acc_chk.ch"
|
||||
+#undef ACCCHK_ASSERT
|
||||
+}
|
||||
+#undef NDEBUG
|
||||
+#include <assert.h>
|
||||
+static int test_acc_run_time_assert(int r) {
|
||||
+#define ACCCHK_ASSERT(expr) assert(expr);
|
||||
+#include "acc/acc_chk.ch"
|
||||
+#undef ACCCHK_ASSERT
|
||||
+return r;
|
||||
+}
|
||||
+]], [[
|
||||
+test_acc_compile_time_assert();
|
||||
+if (test_acc_run_time_assert(1) != 1) return 1;
|
||||
+]]
|
||||
+)])
|
||||
+
|
||||
+mfx_tmp=FAILED
|
||||
+_AC_COMPILE_IFELSE([], [mfx_tmp=yes])
|
||||
+rm -f conftest.$ac_ext conftest.$ac_objext
|
||||
+
|
||||
+CPPFLAGS=$mfx_save_CPPFLAGS
|
||||
+
|
||||
+AC_MSG_RESULT([$mfx_tmp])
|
||||
+case x$mfx_tmp in
|
||||
+ xpassed | xyes) ;;
|
||||
+ *)
|
||||
+ AC_MSG_NOTICE([])
|
||||
+ AC_MSG_NOTICE([Your compiler failed the ACC conformance test - for details see ])
|
||||
+ AC_MSG_NOTICE([`config.log'. Please check that log file and consider sending])
|
||||
+ AC_MSG_NOTICE([a patch or bug-report to <${PACKAGE_BUGREPORT}>.])
|
||||
+ AC_MSG_NOTICE([Thanks for your support.])
|
||||
+ AC_MSG_NOTICE([])
|
||||
+ AC_MSG_ERROR([ACC conformance test failed. Stop.])
|
||||
+dnl AS_EXIT
|
||||
+ ;;
|
||||
+esac
|
||||
+])# mfx_ACC_ACCCHK
|
||||
+
|
||||
+
|
||||
+# /***********************************************************************
|
||||
+# // Check for ACC_conformance
|
||||
+# ************************************************************************/
|
||||
+
|
||||
+AC_DEFUN([mfx_MINIACC_ACCCHK], [
|
||||
+mfx_tmp=$1
|
||||
+mfx_save_CPPFLAGS=$CPPFLAGS
|
||||
+dnl in Makefile.in $(INCLUDES) will be before $(CPPFLAGS), so we mimic this here
|
||||
+test "X$mfx_tmp" = "X" || CPPFLAGS="$mfx_tmp $CPPFLAGS"
|
||||
+
|
||||
+AC_MSG_CHECKING([whether your compiler passes the ACC conformance test])
|
||||
+
|
||||
+AC_LANG_CONFTEST([AC_LANG_PROGRAM(
|
||||
+[[#define ACC_CONFIG_NO_HEADER 1
|
||||
+#define ACC_WANT_ACC_INCD_H 1
|
||||
+#include $2
|
||||
+
|
||||
+#define ACC_WANT_ACC_CHK_CH 1
|
||||
+#undef ACCCHK_ASSERT
|
||||
+#define ACCCHK_ASSERT(expr) ACC_COMPILE_TIME_ASSERT_HEADER(expr)
|
||||
+#include $2
|
||||
+
|
||||
+#define ACC_WANT_ACC_CHK_CH 1
|
||||
+#undef ACCCHK_ASSERT
|
||||
+#define ACCCHK_ASSERT(expr) ACC_COMPILE_TIME_ASSERT(expr)
|
||||
+static void test_acc_compile_time_assert(void) {
|
||||
+#include $2
|
||||
+}
|
||||
+
|
||||
+#undef NDEBUG
|
||||
+#include <assert.h>
|
||||
+#define ACC_WANT_ACC_CHK_CH 1
|
||||
+#undef ACCCHK_ASSERT
|
||||
+#define ACCCHK_ASSERT(expr) assert(expr);
|
||||
+static int test_acc_run_time_assert(int r) {
|
||||
+#include $2
|
||||
+return r;
|
||||
+}
|
||||
+]], [[
|
||||
+test_acc_compile_time_assert();
|
||||
+if (test_acc_run_time_assert(1) != 1) return 1;
|
||||
+]]
|
||||
+)])
|
||||
+
|
||||
+mfx_tmp=FAILED
|
||||
+_AC_COMPILE_IFELSE([], [mfx_tmp=yes])
|
||||
+rm -f conftest.$ac_ext conftest.$ac_objext
|
||||
+
|
||||
+CPPFLAGS=$mfx_save_CPPFLAGS
|
||||
+
|
||||
+AC_MSG_RESULT([$mfx_tmp])
|
||||
+case x$mfx_tmp in
|
||||
+ xpassed | xyes) ;;
|
||||
+ *)
|
||||
+ AC_MSG_NOTICE([])
|
||||
+ AC_MSG_NOTICE([Your compiler failed the ACC conformance test - for details see ])
|
||||
+ AC_MSG_NOTICE([`config.log'. Please check that log file and consider sending])
|
||||
+ AC_MSG_NOTICE([a patch or bug-report to <${PACKAGE_BUGREPORT}>.])
|
||||
+ AC_MSG_NOTICE([Thanks for your support.])
|
||||
+ AC_MSG_NOTICE([])
|
||||
+ AC_MSG_ERROR([ACC conformance test failed. Stop.])
|
||||
+dnl AS_EXIT
|
||||
+ ;;
|
||||
+esac
|
||||
+])# mfx_MINIACC_ACCCHK
|
||||
+
|
||||
+
|
||||
+
|
||||
+# serial 1
|
||||
+
|
||||
+AC_DEFUN([mfx_PROG_CPPFLAGS], [
|
||||
+AC_MSG_CHECKING([whether the C preprocessor needs special flags])
|
||||
+
|
||||
+AC_LANG_CONFTEST([AC_LANG_PROGRAM(
|
||||
+[[#include <limits.h>
|
||||
+#if (32767 >= 4294967295ul) || (65535u >= 4294967295ul)
|
||||
+# include "your C preprocessor is broken 1"
|
||||
+#elif (0xffffu == 0xfffffffful)
|
||||
+# include "your C preprocessor is broken 2"
|
||||
+#elif (32767 >= ULONG_MAX) || (65535u >= ULONG_MAX)
|
||||
+# include "your C preprocessor is broken 3"
|
||||
+#endif
|
||||
+]], [[ ]]
|
||||
+)])
|
||||
+
|
||||
+mfx_save_CPPFLAGS=$CPPFLAGS
|
||||
+mfx_tmp=ERROR
|
||||
+for mfx_arg in "" -no-cpp-precomp
|
||||
+do
|
||||
+ CPPFLAGS="$mfx_arg $mfx_save_CPPFLAGS"
|
||||
+ _AC_COMPILE_IFELSE([],
|
||||
+[mfx_tmp=$mfx_arg
|
||||
+break])
|
||||
+done
|
||||
+CPPFLAGS=$mfx_save_CPPFLAGS
|
||||
+rm -f conftest.$ac_ext conftest.$ac_objext
|
||||
+case x$mfx_tmp in
|
||||
+ x)
|
||||
+ AC_MSG_RESULT([none needed]) ;;
|
||||
+ xERROR)
|
||||
+ AC_MSG_RESULT([ERROR])
|
||||
+ AC_MSG_ERROR([your C preprocessor is broken - for details see config.log])
|
||||
+ ;;
|
||||
+ *)
|
||||
+ AC_MSG_RESULT([$mfx_tmp])
|
||||
+ CPPFLAGS="$mfx_tmp $CPPFLAGS"
|
||||
+ ;;
|
||||
+esac
|
||||
+])# mfx_PROG_CPPFLAGS
|
||||
+
|
||||
+# serial 3
|
||||
+
|
||||
+AC_DEFUN([mfx_CHECK_HEADER_SANE_LIMITS_H], [
|
||||
+AC_CACHE_CHECK([whether limits.h is sane],
|
||||
+mfx_cv_header_sane_limits_h,
|
||||
+[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <limits.h>
|
||||
+#if (32767 >= 4294967295ul) || (65535u >= 4294967295ul)
|
||||
+# if defined(__APPLE__) && defined(__GNUC__)
|
||||
+# error "your preprocessor is broken - use compiler option -no-cpp-precomp"
|
||||
+# else
|
||||
+# include "your preprocessor is broken"
|
||||
+# endif
|
||||
+#endif
|
||||
+#define MFX_0xffff 0xffff
|
||||
+#define MFX_0xffffffffL 4294967295ul
|
||||
+#if !defined(CHAR_BIT) || (CHAR_BIT != 8)
|
||||
+# include "error CHAR_BIT"
|
||||
+#endif
|
||||
+#if !defined(UCHAR_MAX)
|
||||
+# include "error UCHAR_MAX 1"
|
||||
+#endif
|
||||
+#if !defined(USHRT_MAX)
|
||||
+# include "error USHRT_MAX 1"
|
||||
+#endif
|
||||
+#if !defined(UINT_MAX)
|
||||
+# include "error UINT_MAX 1"
|
||||
+#endif
|
||||
+#if !defined(ULONG_MAX)
|
||||
+# include "error ULONG_MAX 1"
|
||||
+#endif
|
||||
+#if !defined(SHRT_MAX)
|
||||
+# include "error SHRT_MAX 1"
|
||||
+#endif
|
||||
+#if !defined(INT_MAX)
|
||||
+# include "error INT_MAX 1"
|
||||
+#endif
|
||||
+#if !defined(LONG_MAX)
|
||||
+# include "error LONG_MAX 1"
|
||||
+#endif
|
||||
+#if (UCHAR_MAX < 1)
|
||||
+# include "error UCHAR_MAX 2"
|
||||
+#endif
|
||||
+#if (USHRT_MAX < 1)
|
||||
+# include "error USHRT_MAX 2"
|
||||
+#endif
|
||||
+#if (UINT_MAX < 1)
|
||||
+# include "error UINT_MAX 2"
|
||||
+#endif
|
||||
+#if (ULONG_MAX < 1)
|
||||
+# include "error ULONG_MAX 2"
|
||||
+#endif
|
||||
+#if (UCHAR_MAX < 0xff)
|
||||
+# include "error UCHAR_MAX 3"
|
||||
+#endif
|
||||
+#if (USHRT_MAX < MFX_0xffff)
|
||||
+# include "error USHRT_MAX 3"
|
||||
+#endif
|
||||
+#if (UINT_MAX < MFX_0xffff)
|
||||
+# include "error UINT_MAX 3"
|
||||
+#endif
|
||||
+#if (ULONG_MAX < MFX_0xffffffffL)
|
||||
+# include "error ULONG_MAX 3"
|
||||
+#endif
|
||||
+#if (USHRT_MAX > UINT_MAX)
|
||||
+# include "error USHRT_MAX vs UINT_MAX"
|
||||
+#endif
|
||||
+#if (UINT_MAX > ULONG_MAX)
|
||||
+# include "error UINT_MAX vs ULONG_MAX"
|
||||
+#endif
|
||||
+]], [[
|
||||
+#if (USHRT_MAX == MFX_0xffff)
|
||||
+{ typedef char a_short2a[1 - 2 * !(sizeof(short) == 2)]; }
|
||||
+#elif (USHRT_MAX >= MFX_0xffff)
|
||||
+{ typedef char a_short2b[1 - 2 * !(sizeof(short) > 2)]; }
|
||||
+#endif
|
||||
+#if (UINT_MAX == MFX_0xffff)
|
||||
+{ typedef char a_int2a[1 - 2 * !(sizeof(int) == 2)]; }
|
||||
+#elif (UINT_MAX >= MFX_0xffff)
|
||||
+{ typedef char a_int2b[1 - 2 * !(sizeof(int) > 2)]; }
|
||||
+#endif
|
||||
+#if (ULONG_MAX == MFX_0xffff)
|
||||
+{ typedef char a_long2a[1 - 2 * !(sizeof(long) == 2)]; }
|
||||
+#elif (ULONG_MAX >= MFX_0xffff)
|
||||
+{ typedef char a_long2b[1 - 2 * !(sizeof(long) > 2)]; }
|
||||
+#endif
|
||||
+#if !defined(_CRAY1) /* CRAY PVP systems */
|
||||
+#if (USHRT_MAX == MFX_0xffffffffL)
|
||||
+{ typedef char a_short4a[1 - 2 * !(sizeof(short) == 4)]; }
|
||||
+#elif (USHRT_MAX >= MFX_0xffffffffL)
|
||||
+{ typedef char a_short4b[1 - 2 * !(sizeof(short) > 4)]; }
|
||||
+#endif
|
||||
+#endif /* _CRAY1 */
|
||||
+#if (UINT_MAX == MFX_0xffffffffL)
|
||||
+{ typedef char a_int4a[1 - 2 * !(sizeof(int) == 4)]; }
|
||||
+#elif (UINT_MAX >= MFX_0xffffffffL)
|
||||
+{ typedef char a_int4b[1 - 2 * !(sizeof(int) > 4)]; }
|
||||
+#endif
|
||||
+#if (ULONG_MAX == MFX_0xffffffffL)
|
||||
+{ typedef char a_long4a[1 - 2 * !(sizeof(long) == 4)]; }
|
||||
+#elif (ULONG_MAX >= MFX_0xffffffffL)
|
||||
+{ typedef char a_long4b[1 - 2 * !(sizeof(long) > 4)]; }
|
||||
+#endif
|
||||
+]])],
|
||||
+[mfx_cv_header_sane_limits_h=yes],
|
||||
+[mfx_cv_header_sane_limits_h=no])])
|
||||
+])
|
||||
+
|
||||
+# /***********************************************************************
|
||||
+# // standard
|
||||
+# ************************************************************************/
|
||||
+
|
||||
+AC_DEFUN([mfx_LZO_CHECK_ENDIAN], [
|
||||
+AC_C_BIGENDIAN([AC_DEFINE(LZO_ABI_BIG_ENDIAN,1,[Define to 1 if your machine is big endian.])],[AC_DEFINE(LZO_ABI_LITTLE_ENDIAN,1,[Define to 1 if your machine is little endian.])])
|
||||
+])#
|
||||
+
|
||||
+
|
||||
+# /***********************************************************************
|
||||
+# //
|
||||
+# ************************************************************************/
|
||||
+
|
||||
+dnl more types which are not yet covered by ACC
|
||||
+
|
||||
+AC_DEFUN([mfx_CHECK_SIZEOF], [
|
||||
+AC_CHECK_SIZEOF(__int32)
|
||||
+AC_CHECK_SIZEOF(intmax_t)
|
||||
+AC_CHECK_SIZEOF(uintmax_t)
|
||||
+AC_CHECK_SIZEOF(intptr_t)
|
||||
+AC_CHECK_SIZEOF(uintptr_t)
|
||||
+
|
||||
+AC_CHECK_SIZEOF(float)
|
||||
+AC_CHECK_SIZEOF(double)
|
||||
+AC_CHECK_SIZEOF(long double)
|
||||
+
|
||||
+AC_CHECK_SIZEOF(dev_t)
|
||||
+AC_CHECK_SIZEOF(fpos_t)
|
||||
+AC_CHECK_SIZEOF(mode_t)
|
||||
+AC_CHECK_SIZEOF(off_t)
|
||||
+AC_CHECK_SIZEOF(ssize_t)
|
||||
+AC_CHECK_SIZEOF(time_t)
|
||||
+])#
|
||||
+
|
||||
+
|
||||
+
|
||||
+AC_DEFUN([mfx_CHECK_LIB_WINMM], [
|
||||
+if test "X$GCC" = Xyes; then
|
||||
+case $host_os in
|
||||
+cygwin* | mingw* | pw32*)
|
||||
+ test "X$LIBS" != "X" && LIBS="$LIBS "
|
||||
+ LIBS="${LIBS}-lwinmm" ;;
|
||||
+*)
|
||||
+ ;;
|
||||
+esac
|
||||
+fi
|
||||
+])#
|
||||
21
package/lzo/lzo-2.03-fix-configure-ac.patch
Normal file
21
package/lzo/lzo-2.03-fix-configure-ac.patch
Normal file
@@ -0,0 +1,21 @@
|
||||
_AC_SRCPATHS doesn't exist in autoconf, _AC_SRCDIRS should be used
|
||||
instead according to many reports found by Google.
|
||||
|
||||
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
---
|
||||
configure.ac | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
Index: lzo-2.03/configure.ac
|
||||
===================================================================
|
||||
--- lzo-2.03.orig/configure.ac
|
||||
+++ lzo-2.03/configure.ac
|
||||
@@ -48,7 +48,7 @@
|
||||
AM_MAINTAINER_MODE
|
||||
|
||||
if test -z "$ac_abs_top_srcdir"; then
|
||||
- _AC_SRCPATHS(.)
|
||||
+ _AC_SRCDIRS(.)
|
||||
fi
|
||||
if test -r .Conf.settings1; then
|
||||
. ./.Conf.settings1
|
||||
24
package/lzo/lzo-2.03-fix-makefile-am.patch
Normal file
24
package/lzo/lzo-2.03-fix-makefile-am.patch
Normal file
@@ -0,0 +1,24 @@
|
||||
Makefile.am is not allowed to override CFLAGS/CPPFLAGS, it must use
|
||||
AM_CFLAGS and AM_CPPFLAGS. This is needed in order for autoreconf to
|
||||
work on this package.
|
||||
|
||||
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
---
|
||||
src/Makefile.am | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
Index: lzo-2.03/src/Makefile.am
|
||||
===================================================================
|
||||
--- lzo-2.03.orig/src/Makefile.am
|
||||
+++ lzo-2.03/src/Makefile.am
|
||||
@@ -7,8 +7,8 @@
|
||||
SUFFIXES = .S
|
||||
|
||||
INCLUDES = -I$(top_srcdir)/include -I$(top_srcdir)
|
||||
-CPPFLAGS = $(LZO_CPPFLAGS) $(configure_CPPFLAGS) $(LZO_EXTRA_CPPFLAGS)
|
||||
-CFLAGS = $(LZO_CFLAGS) $(configure_CFLAGS) $(LZO_EXTRA_CFLAGS)
|
||||
+AM_CPPFLAGS = $(LZO_CPPFLAGS) $(configure_CPPFLAGS) $(LZO_EXTRA_CPPFLAGS)
|
||||
+AM_CFLAGS = $(LZO_CFLAGS) $(configure_CFLAGS) $(LZO_EXTRA_CFLAGS)
|
||||
|
||||
lib_LTLIBRARIES = liblzo2.la
|
||||
|
||||
@@ -7,6 +7,12 @@ LZO_VERSION:=2.03
|
||||
LZO_SOURCE:=lzo-$(LZO_VERSION).tar.gz
|
||||
LZO_SITE:=http://www.oberhumer.com/opensource/lzo/download
|
||||
LZO_AUTORECONF = NO
|
||||
|
||||
# lzo's configure was generated by an old autoconf, and the
|
||||
# AC_CANONICAL_TARGET check fails in host-lzo when the cache has been
|
||||
# filled with ac_cv_build and ac_cv_host.
|
||||
HOST_LZO_AUTORECONF = YES
|
||||
|
||||
LZO_INSTALL_STAGING = YES
|
||||
LZO_INSTALL_TARGET = YES
|
||||
LZO_INSTALL_STAGING_OPT = CC="$(TARGET_CC)" DESTDIR=$(STAGING_DIR) install
|
||||
|
||||
@@ -74,8 +74,12 @@ config BR2_PACKAGE_GST_PLUGINS_BASE_PLUGIN_OGG
|
||||
|
||||
config BR2_PACKAGE_GST_PLUGINS_BASE_PLUGIN_PANGO
|
||||
bool "pango font renderer"
|
||||
depends on BR2_INSTALL_LIBSTDCPP
|
||||
select BR2_PACKAGE_PANGO
|
||||
|
||||
comment "pango plugin requires a toolchain with C++ support"
|
||||
depends on !BR2_INSTALL_LIBSTDCPP
|
||||
|
||||
config BR2_PACKAGE_GST_PLUGINS_BASE_PLUGIN_THEORA
|
||||
bool "theora (*.ogg video)"
|
||||
select BR2_PACKAGE_LIBTHEORA
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
config BR2_PACKAGE_SWFDEC
|
||||
bool "swfdec"
|
||||
depends on BR2_USE_WCHAR # glib2
|
||||
depends on BR2_INSTALL_LIBSTDCPP # pango
|
||||
select BR2_PACKAGE_LIBOIL
|
||||
select BR2_PACKAGE_ALSA_LIB
|
||||
select BR2_PACKAGE_PANGO
|
||||
@@ -30,5 +31,5 @@ config BR2_PACKAGE_SWFDEC_GSTREAMER
|
||||
help
|
||||
Enables GStreamer support
|
||||
|
||||
comment "swfdec requires a toolchain with WCHAR support"
|
||||
depends on !BR2_USE_WCHAR
|
||||
comment "swfdec requires a toolchain with WCHAR and C++ support"
|
||||
depends on !BR2_USE_WCHAR || !BR2_INSTALL_LIBSTDCPP
|
||||
|
||||
@@ -40,11 +40,8 @@ NCURSES_CONF_OPT = \
|
||||
--enable-echo \
|
||||
--enable-const \
|
||||
--enable-overwrite \
|
||||
--enable-broken_linker
|
||||
|
||||
ifneq ($(BR2_PACKAGE_NCURSES_TARGET_HEADERS),y)
|
||||
NCURSES_CONF_OPT += --disable-static
|
||||
endif
|
||||
--enable-broken_linker \
|
||||
--disable-static
|
||||
|
||||
ifneq ($(BR2_ENABLE_DEBUG),y)
|
||||
NCURSES_CONF_OPT += --without-debug
|
||||
|
||||
@@ -10,5 +10,6 @@ NETCAT_SITE=http://$(BR2_SOURCEFORGE_MIRROR).dl.sourceforge.net/sourceforge/netc
|
||||
NETCAT_AUTORECONF:=NO
|
||||
NETCAT_INSTALL_STAGING:=NO
|
||||
NETCAT_INSTALL_TARGET:=YES
|
||||
NETCAT_CONF_OPT = --program-prefix=''
|
||||
|
||||
$(eval $(call AUTOTARGETS,package,netcat))
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
config BR2_PACKAGE_PANGO
|
||||
bool "pango"
|
||||
depends on BR2_USE_WCHAR # glib2
|
||||
depends on BR2_INSTALL_LIBSTDCPP # freetype support
|
||||
select BR2_PACKAGE_LIBGLIB2
|
||||
select BR2_PACKAGE_EXPAT
|
||||
select BR2_PACKAGE_CAIRO
|
||||
@@ -15,5 +16,5 @@ config BR2_PACKAGE_PANGO
|
||||
|
||||
http://www.pango.org/
|
||||
|
||||
comment "pango requires a toolchain with WCHAR support"
|
||||
depends on !BR2_USE_WCHAR
|
||||
comment "pango requires a toolchain with WCHAR and C++ support"
|
||||
depends on !BR2_USE_WCHAR || !BR2_INSTALL_LIBSTDCPP
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
#
|
||||
#############################################################
|
||||
|
||||
PHP_VERSION = 5.2.13
|
||||
PHP_VERSION = 5.2.14
|
||||
PHP_SOURCE = php-$(PHP_VERSION).tar.bz2
|
||||
PHP_SITE = http://www.php.net/distributions
|
||||
PHP_INSTALL_STAGING = YES
|
||||
|
||||
@@ -55,8 +55,8 @@ $(PPPD_TARGET_INSTALL_TARGET):
|
||||
$(TARGET_DIR)/usr/lib/pppd/$(PPPD_VERSION)/radattr.so
|
||||
$(INSTALL) -D $(PPPD_DIR)/pppd/plugins/radius/radius.so \
|
||||
$(TARGET_DIR)/usr/lib/pppd/$(PPPD_VERSION)/radius.so
|
||||
$(INSTALL) -D $(PPPD_DIR)/pppd/plugins/radius/radattr.so \
|
||||
$(TARGET_DIR)/usr/lib/pppd/$(PPPD_VERSION)/radattr.so
|
||||
$(INSTALL) -D $(PPPD_DIR)/pppd/plugins/radius/radrealms.so \
|
||||
$(TARGET_DIR)/usr/lib/pppd/$(PPPD_VERSION)/radrealms.so
|
||||
for m in $(PPPD_MANPAGES); do \
|
||||
$(INSTALL) -m 644 -D $(PPPD_DIR)/$$m/$$m.8 \
|
||||
$(TARGET_DIR)/usr/share/man/man8/$$m.8; \
|
||||
|
||||
@@ -52,9 +52,9 @@ $(PROFTPD_DIR)/.configured: $(PROFTPD_DIR)/.unpacked
|
||||
touch $@
|
||||
|
||||
$(PROFTPD_DIR)/$(PROFTPD_BINARY): $(PROFTPD_DIR)/.configured
|
||||
$(MAKE) CC="$(HOSTCC)" CFLAGS="" LDFLAGS="" \
|
||||
$(MAKE1) CC="$(HOSTCC)" CFLAGS="" LDFLAGS="" \
|
||||
-C $(PROFTPD_DIR)/lib/libcap _makenames
|
||||
$(MAKE) -C $(PROFTPD_DIR)
|
||||
$(MAKE1) -C $(PROFTPD_DIR)
|
||||
|
||||
$(TARGET_DIR)/$(PROFTPD_TARGET_BINARY): $(PROFTPD_DIR)/$(PROFTPD_BINARY)
|
||||
cp -dpf $(PROFTPD_DIR)/$(PROFTPD_BINARY) \
|
||||
|
||||
@@ -483,16 +483,16 @@ ifneq ($(BR2_INET_IPV6),y)
|
||||
$(SED) 's/^CFG_IPV6IFNAME=auto/CFG_IPV6IFNAME=no/' $(QT_TARGET_DIR)/configure
|
||||
endif
|
||||
# Fix compiler path
|
||||
$(call QT_QMAKE_SET,CC,$(TARGET_CC))
|
||||
$(call QT_QMAKE_SET,CXX,$(TARGET_CXX))
|
||||
$(call QT_QMAKE_SET,CC,$(filter-out --sysroot=%,$(TARGET_CC)))
|
||||
$(call QT_QMAKE_SET,CXX,$(filter-out --sysroot=%,$(TARGET_CXX)))
|
||||
$(call QT_QMAKE_SET,LINK,$(TARGET_CXX))
|
||||
$(call QT_QMAKE_SET,LINK_SHLIB,$(TARGET_CXX))
|
||||
$(call QT_QMAKE_SET,AR,$(TARGET_AR) cqs)
|
||||
$(call QT_QMAKE_SET,OBJCOPY,$(TARGET_OBJCOPY))
|
||||
$(call QT_QMAKE_SET,RANLIB,$(TARGET_RANLIB))
|
||||
$(call QT_QMAKE_SET,STRIP,$(TARGET_STRIP))
|
||||
$(call QT_QMAKE_SET,CFLAGS,$(TARGET_CFLAGS))
|
||||
$(call QT_QMAKE_SET,CXXFLAGS,$(TARGET_CXXFLAGS))
|
||||
$(call QT_QMAKE_SET,CFLAGS,$(TARGET_SYSROOT_OPT) $(TARGET_CFLAGS))
|
||||
$(call QT_QMAKE_SET,CXXFLAGS,$(TARGET_SYSROOT_OPT) $(TARGET_CXXFLAGS))
|
||||
$(call QT_QMAKE_SET,LFLAGS,$(TARGET_LDFLAGS))
|
||||
-[ -f $(QT_QCONFIG_FILE) ] && cp $(QT_QCONFIG_FILE) \
|
||||
$(QT_TARGET_DIR)/$(QT_QCONFIG_FILE_LOCATION)
|
||||
|
||||
@@ -241,12 +241,13 @@ config BR2_PACKAGE_SAMBA_AVAHI
|
||||
bool "support avahi"
|
||||
default y
|
||||
depends on BR2_PACKAGE_SAMBA
|
||||
depends on BR2_PACKAGE_AVAHI
|
||||
depends on BR2_PACKAGE_AVAHI_DAEMON
|
||||
depends on BR2_PACKAGE_DBUS
|
||||
help
|
||||
Include support for avahi
|
||||
|
||||
comment "support avahi - disabled (requires avahi)"
|
||||
depends on !BR2_PACKAGE_AVAHI
|
||||
comment "support avahi - disabled (requires avahi-daemon/dbus)"
|
||||
depends on !BR2_PACKAGE_AVAHI_DAEMON || !BR2_PACKAGE_DBUS
|
||||
|
||||
config BR2_PACKAGE_SAMBA_GAMIN
|
||||
bool "support gamin"
|
||||
|
||||
@@ -9,7 +9,7 @@ STARTUP_NOTIFICATION_SITE = http://freedesktop.org/software/startup-notification
|
||||
STARTUP_NOTIFICATION_AUTORECONF = NO
|
||||
STARTUP_NOTIFICATION_INSTALL_STAGING = YES
|
||||
STARTUP_NOTIFICATION_INSTALL_TARGET = YES
|
||||
STARTUP_NOTIFICATION = xlib_libX11
|
||||
STARTUP_NOTIFICATION_DEPENDENCIES = xlib_libX11
|
||||
|
||||
STARTUP_NOTIFICATION_CONF_ENV = lf_cv_sane_realloc=yes
|
||||
|
||||
|
||||
@@ -1,12 +0,0 @@
|
||||
comment "stunnel has no inherent support for AVR32"
|
||||
depends on BR2_avr32 && BR2_PACKAGE_STUNNEL
|
||||
|
||||
config BR2_PACKAGE_STUNNEL
|
||||
bool "stunnel"
|
||||
help
|
||||
Stunnel is a utility that utilised OpenSSL to wrap plaintext
|
||||
TCP communications with SSL. Can be used to secure a
|
||||
programmes insecure network communications.
|
||||
|
||||
http://www.stunnel.org/
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
--- stunnel-4.16/configure.ac.orig 2006-08-20 04:28:14.000000000 +0800
|
||||
+++ stunnel-4.16/configure.ac 2006-11-24 10:17:01.053905560 +0800
|
||||
@@ -45,8 +45,10 @@
|
||||
AC_DEFINE(socklen_t, int))
|
||||
|
||||
AC_MSG_NOTICE([**************************************** PTY device files])
|
||||
-AC_CHECK_FILE("/dev/ptmx", AC_DEFINE(HAVE_DEV_PTMX))
|
||||
-AC_CHECK_FILE("/dev/ptc", AC_DEFINE(HAVE_DEV_PTS_AND_PTC))
|
||||
+#AC_CHECK_FILE("/dev/ptmx", AC_DEFINE(HAVE_DEV_PTMX))
|
||||
+#AC_CHECK_FILE("/dev/ptc", AC_DEFINE(HAVE_DEV_PTS_AND_PTC))
|
||||
+AC_DEFINE(HAVE_DEV_PTMX)
|
||||
+AC_DEFINE(HAVE_DEV_PTS_AND_PTC)
|
||||
|
||||
AC_MSG_NOTICE([**************************************** entropy])
|
||||
|
||||
@@ -1,82 +0,0 @@
|
||||
#############################################################
|
||||
#
|
||||
# stunnel
|
||||
#
|
||||
#############################################################
|
||||
STUNNEL_VERSION:=4.16
|
||||
STUNNEL_SOURCE:=stunnel-$(STUNNEL_VERSION).tar.gz
|
||||
STUNNEL_SITE:=http://www.stunnel.org/download/stunnel/src
|
||||
STUNNEL_CAT:=$(ZCAT)
|
||||
STUNNEL_DIR:=$(BUILD_DIR)/stunnel-$(STUNNEL_VERSION)
|
||||
|
||||
$(DL_DIR)/$(STUNNEL_SOURCE):
|
||||
$(call DOWNLOAD,$(STUNNEL_SITE),$(STUNNEL_SOURCE))
|
||||
|
||||
stunnel-source: $(DL_DIR)/$(STUNNEL_SOURCE)
|
||||
|
||||
$(STUNNEL_DIR)/.unpacked: $(DL_DIR)/$(STUNNEL_SOURCE)
|
||||
$(STUNNEL_CAT) $(DL_DIR)/$(STUNNEL_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
|
||||
$(CONFIG_UPDATE) $(STUNNEL_DIR)
|
||||
toolchain/patch-kernel.sh $(STUNNEL_DIR) package/stunnel stunnel\*.patch
|
||||
touch $(STUNNEL_DIR)/*
|
||||
touch $(STUNNEL_DIR)/.unpacked
|
||||
|
||||
$(STUNNEL_DIR)/.configured: $(STUNNEL_DIR)/.unpacked
|
||||
(cd $(STUNNEL_DIR); rm -rf config.cache; \
|
||||
$(TARGET_CONFIGURE_OPTS) \
|
||||
$(TARGET_CONFIGURE_ARGS) \
|
||||
ac_cv_file___dev_ptmx_=yes \
|
||||
ac_cv_file___dev_ptc_=no \
|
||||
./configure $(QUIET) \
|
||||
--target=$(GNU_TARGET_NAME) \
|
||||
--host=$(GNU_TARGET_NAME) \
|
||||
--build=$(GNU_HOST_NAME) \
|
||||
--prefix=/usr \
|
||||
--exec-prefix=/usr \
|
||||
--bindir=/usr/bin \
|
||||
--sbindir=/usr/sbin \
|
||||
--libdir=/lib \
|
||||
--libexecdir=/usr/lib \
|
||||
--sysconfdir=/etc \
|
||||
--datadir=/usr/share \
|
||||
--localstatedir=/var \
|
||||
--mandir=/usr/man \
|
||||
--infodir=/usr/info \
|
||||
--with-random=/dev/urandom \
|
||||
--disable-libwrap \
|
||||
--with-ssl=$(STAGING_DIR)/usr/ \
|
||||
$(DISABLE_NLS) \
|
||||
$(DISABLE_LARGEFILE) \
|
||||
)
|
||||
touch $(STUNNEL_DIR)/.configured
|
||||
|
||||
$(STUNNEL_DIR)/src/stunnel: $(STUNNEL_DIR)/.configured
|
||||
$(MAKE) CC="$(TARGET_CC)" -C $(STUNNEL_DIR)
|
||||
|
||||
$(TARGET_DIR)/usr/bin/stunnel: $(STUNNEL_DIR)/src/stunnel
|
||||
install -c $(STUNNEL_DIR)/src/stunnel $(TARGET_DIR)/usr/bin/stunnel
|
||||
$(STRIPCMD) $(TARGET_DIR)/usr/bin/stunnel > /dev/null 2>&1
|
||||
ifeq ($(BR2_CROSS_TOOLCHAIN_TARGET_UTILS),y)
|
||||
mkdir -p $(STAGING_DIR)/usr/$(REAL_GNU_TARGET_NAME)/target_utils
|
||||
install -c $(TARGET_DIR)/usr/bin/stunnel \
|
||||
$(STAGING_DIR)/usr/$(REAL_GNU_TARGET_NAME)/target_utils/stunnel
|
||||
endif
|
||||
|
||||
stunnel: $(TARGET_DIR)/usr/bin/stunnel
|
||||
|
||||
stunnel-clean:
|
||||
-$(MAKE) -C $(STUNNEL_DIR) clean
|
||||
rm -f $(TARGET_DIR)/usr/bin/stunnel
|
||||
|
||||
stunnel-dirclean:
|
||||
rm -rf $(STUNNEL_DIR)
|
||||
|
||||
|
||||
#############################################################
|
||||
#
|
||||
# Toplevel Makefile options
|
||||
#
|
||||
#############################################################
|
||||
ifeq ($(BR2_PACKAGE_STUNNEL),y)
|
||||
TARGETS+=stunnel
|
||||
endif
|
||||
@@ -1,6 +1,5 @@
|
||||
config BR2_PACKAGE_SYSVINIT
|
||||
bool "sysvinit"
|
||||
select BR2_PACKAGE_NCURSES
|
||||
help
|
||||
/sbin/init - parent of all processes
|
||||
|
||||
|
||||
@@ -21,14 +21,16 @@ $(SYSVINIT_DIR)/.unpacked: $(DL_DIR)/$(SYSVINIT_SOURCE)
|
||||
touch $@
|
||||
|
||||
$(SYSVINIT_DIR)/$(SYSVINIT_BINARY): $(SYSVINIT_DIR)/.unpacked
|
||||
CFLAGS="$(TARGET_CFLAGS)" $(MAKE) CC="$(TARGET_CC)" -C $(SYSVINIT_DIR)/src
|
||||
# Force sysvinit to link against libcrypt as it otherwise
|
||||
# use an incorrect test to see if it's available
|
||||
CFLAGS="$(TARGET_CFLAGS)" $(MAKE) CC="$(TARGET_CC)" LCRYPT="-lcrypt" -C $(SYSVINIT_DIR)/src
|
||||
|
||||
$(TARGET_DIR)/$(SYSVINIT_TARGET_BINARY): $(SYSVINIT_DIR)/$(SYSVINIT_BINARY)
|
||||
for x in halt init shutdown; do \
|
||||
install -D $(SYSVINIT_DIR)/src/$$x $(TARGET_DIR)/sbin/$$x || exit 1; \
|
||||
done
|
||||
|
||||
sysvinit: ncurses $(TARGET_DIR)/$(SYSVINIT_TARGET_BINARY)
|
||||
sysvinit: $(TARGET_DIR)/$(SYSVINIT_TARGET_BINARY)
|
||||
|
||||
sysvinit-source: $(DL_DIR)/$(SYSVINIT_SOURCE)
|
||||
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
Hardcode a.out related constants
|
||||
|
||||
The OMAGIC, NMAGIC and ZMAGIC constants, related to the legacy a.out
|
||||
binary format, are no longer available in the headers of all
|
||||
architectures, due to this binary format being deprecated. For that
|
||||
reason, util-linux fails to build.
|
||||
|
||||
We therefore take the approach used in newer versions of
|
||||
util-linux-ng: hardcoding those values. See
|
||||
http://git.kernel.org/?p=utils/util-linux-ng/util-linux-ng.git;a=commitdiff;h=e9eb4dad0ece03914f67f6d1ded74cfbbe694ba4
|
||||
|
||||
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
---
|
||||
text-utils/more.c | 7 +++----
|
||||
1 file changed, 3 insertions(+), 4 deletions(-)
|
||||
|
||||
Index: util-linux-2.13-pre7/text-utils/more.c
|
||||
===================================================================
|
||||
--- util-linux-2.13-pre7.orig/text-utils/more.c
|
||||
+++ util-linux-2.13-pre7/text-utils/more.c
|
||||
@@ -53,7 +53,6 @@
|
||||
#include <sys/stat.h>
|
||||
#include <sys/file.h>
|
||||
#include <sys/wait.h>
|
||||
-#include <a.out.h>
|
||||
#include <locale.h>
|
||||
#include "xstrncpy.h"
|
||||
#include "nls.h"
|
||||
@@ -504,9 +503,9 @@
|
||||
|
||||
if (fread(twobytes, 2, 1, f) == 1) {
|
||||
switch(twobytes[0] + (twobytes[1]<<8)) {
|
||||
- case OMAGIC: /* 0407 */
|
||||
- case NMAGIC: /* 0410 */
|
||||
- case ZMAGIC: /* 0413 */
|
||||
+ case 0407: /* a.out obj */
|
||||
+ case 0410: /* a.out exec */
|
||||
+ case 0413: /* a.out demand exec */
|
||||
case 0405:
|
||||
case 0411:
|
||||
case 0177545:
|
||||
@@ -23,6 +23,10 @@ UTIL-LINUX_DEPENDENCIES += gettext libintl
|
||||
UTIL-LINUX_MAKE_OPT = LIBS=-lintl
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_PACKAGE_NCURSES),y)
|
||||
UTIL-LINUX_DEPENDENCIES += ncurses
|
||||
endif
|
||||
|
||||
$(DL_DIR)/$(UTIL-LINUX_SOURCE):
|
||||
$(call DOWNLOAD,$(UTIL-LINUX_SITE),$(UTIL-LINUX_SOURCE))
|
||||
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
config BR2_PACKAGE_WSAPI
|
||||
bool "wsapi"
|
||||
depends on BR2_LARGEFILE # luafilesystem
|
||||
select BR2_PACKAGE_COXPCALL
|
||||
select BR2_PACKAGE_LUAFILESYSTEM
|
||||
select BR2_PACKAGE_RINGS
|
||||
@@ -8,6 +7,3 @@ config BR2_PACKAGE_WSAPI
|
||||
API that abstracts the web server from Lua web applications.
|
||||
|
||||
http://keplerproject.github.com/wsapi/
|
||||
|
||||
comment "wsapi requires a toolchain with LARGEFILE support"
|
||||
depends on !BR2_LARGEFILE
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
config BR2_PACKAGE_XAVANTE
|
||||
bool "xavante"
|
||||
depends on BR2_LARGEFILE # luafilesystem
|
||||
select BR2_PACKAGE_LUA_SHARED_LIBRARY
|
||||
select BR2_PACKAGE_CGILUA
|
||||
select BR2_PACKAGE_COPAS
|
||||
@@ -13,6 +12,3 @@ config BR2_PACKAGE_XAVANTE
|
||||
architecture based on URI mapped handlers.
|
||||
|
||||
http://keplerproject.github.com/xavante/
|
||||
|
||||
comment "xavante requires a toolchain with LARGEFILE support"
|
||||
depends on !BR2_LARGEFILE
|
||||
|
||||
@@ -22,6 +22,11 @@ config BR2_avr32
|
||||
select BR2_SOFT_FLOAT
|
||||
config BR2_cris
|
||||
bool "cris"
|
||||
# The CRIS architecture from Axis has been deprecated by the
|
||||
# manufacturer. No units are sold after July 2010, and support
|
||||
# will end in July 2011. Moreover, CRIS support in Buildroot
|
||||
# has not been updated since a long time.
|
||||
depends on BR2_DEPRECATED
|
||||
config BR2_ia64
|
||||
bool "ia64"
|
||||
# IA64 almost does not exist anymore and has never been used
|
||||
|
||||
@@ -16,6 +16,7 @@ endif
|
||||
dependencies: host-sed $(DEPENDENCIES_HOST_PREREQ)
|
||||
@HOSTCC="$(firstword $(HOSTCC))" MAKE="$(MAKE)" \
|
||||
HOST_SED_DIR="$(HOST_SED_DIR)" \
|
||||
CONFIG_FILE="$(CONFIG_DIR)/.config" \
|
||||
$(TOPDIR)/toolchain/dependencies/dependencies.sh
|
||||
|
||||
dependencies-source:
|
||||
|
||||
@@ -152,3 +152,15 @@ for prog in awk bison flex msgfmt makeinfo patch gzip bzip2 perl tar wget cpio p
|
||||
exit 1;
|
||||
fi
|
||||
done
|
||||
|
||||
if grep ^BR2_TOOLCHAIN_BUILDROOT=y $CONFIG_FILE > /dev/null && \
|
||||
grep ^BR2_ENABLE_LOCALE=y $CONFIG_FILE > /dev/null ; then
|
||||
if ! which locale > /dev/null ; then
|
||||
/bin/echo -e "\nYou need locale support on your build machine to build a toolchain supporting locales\n"
|
||||
exit 1 ;
|
||||
fi
|
||||
if ! locale -a | grep -i utf8$ ; then
|
||||
/bin/echo -e "\nYou need at least one UTF8 locale to build a toolchain supporting locales\n"
|
||||
exit 1 ;
|
||||
fi
|
||||
fi
|
||||
|
||||
@@ -1,200 +0,0 @@
|
||||
--- gcc/libgomp/configure
|
||||
+++ gcc/libgomp/configure
|
||||
@@ -3771,7 +3771,7 @@
|
||||
;;
|
||||
|
||||
# This must be Linux ELF.
|
||||
-linux-gnu*)
|
||||
+linux*)
|
||||
lt_cv_deplibs_check_method=pass_all
|
||||
;;
|
||||
|
||||
--- gcc/gcc/config/cris/linux.h
|
||||
+++ gcc/gcc/config/cris/linux.h
|
||||
@@ -74,7 +74,11 @@
|
||||
#define CRIS_DEFAULT_CPU_VERSION CRIS_CPU_NG
|
||||
|
||||
#undef CRIS_SUBTARGET_VERSION
|
||||
-#define CRIS_SUBTARGET_VERSION " - cris-axis-linux-gnu"
|
||||
+#if UCLIBC_DEFAULT
|
||||
+# define CRIS_SUBTARGET_VERSION " - cris-axis-linux-uclibc"
|
||||
+#else
|
||||
+# define CRIS_SUBTARGET_VERSION " - cris-axis-linux-gnu"
|
||||
+#endif
|
||||
|
||||
#define GLIBC_DYNAMIC_LINKER "/lib/ld.so.1"
|
||||
|
||||
--- gcc/libstdc++-v3/configure
|
||||
+++ gcc/libstdc++-v3/configure
|
||||
@@ -4276,7 +4276,7 @@
|
||||
;;
|
||||
|
||||
# This must be Linux ELF.
|
||||
-linux-gnu*)
|
||||
+linux*)
|
||||
lt_cv_deplibs_check_method=pass_all
|
||||
;;
|
||||
|
||||
--- gcc/zlib/configure
|
||||
+++ gcc/zlib/configure
|
||||
@@ -3422,7 +3422,7 @@
|
||||
;;
|
||||
|
||||
# This must be Linux ELF.
|
||||
-linux-gnu*)
|
||||
+linux*)
|
||||
lt_cv_deplibs_check_method=pass_all
|
||||
;;
|
||||
|
||||
--- gcc/libobjc/configure
|
||||
+++ gcc/libobjc/configure
|
||||
@@ -3309,7 +3309,7 @@
|
||||
;;
|
||||
|
||||
# This must be Linux ELF.
|
||||
-linux-gnu*)
|
||||
+linux*)
|
||||
lt_cv_deplibs_check_method=pass_all
|
||||
;;
|
||||
|
||||
--- gcc/libgfortran/configure
|
||||
+++ gcc/libgfortran/configure
|
||||
@@ -3695,7 +3695,7 @@
|
||||
;;
|
||||
|
||||
# This must be Linux ELF.
|
||||
-linux-gnu*)
|
||||
+linux*)
|
||||
lt_cv_deplibs_check_method=pass_all
|
||||
;;
|
||||
|
||||
--- gcc/libmudflap/configure
|
||||
+++ gcc/libmudflap/configure
|
||||
@@ -5378,7 +5378,7 @@
|
||||
;;
|
||||
|
||||
# This must be Linux ELF.
|
||||
-linux-gnu*)
|
||||
+linux*)
|
||||
lt_cv_deplibs_check_method=pass_all
|
||||
;;
|
||||
|
||||
--- gcc/boehm-gc/configure
|
||||
+++ gcc/boehm-gc/configure
|
||||
@@ -4316,7 +4316,7 @@
|
||||
;;
|
||||
|
||||
# This must be Linux ELF.
|
||||
-linux-gnu*)
|
||||
+linux*)
|
||||
lt_cv_deplibs_check_method=pass_all
|
||||
;;
|
||||
|
||||
--- gcc/libffi/configure
|
||||
+++ gcc/libffi/configure
|
||||
@@ -3453,7 +3453,7 @@
|
||||
;;
|
||||
|
||||
# This must be Linux ELF.
|
||||
-linux-gnu*)
|
||||
+linux*)
|
||||
lt_cv_deplibs_check_method=pass_all
|
||||
;;
|
||||
|
||||
--- gcc/libssp/configure
|
||||
+++ gcc/libssp/configure
|
||||
@@ -4409,7 +4409,7 @@
|
||||
;;
|
||||
|
||||
# This must be Linux ELF.
|
||||
-linux-gnu*)
|
||||
+linux*)
|
||||
lt_cv_deplibs_check_method=pass_all
|
||||
;;
|
||||
|
||||
--- gcc/contrib/regression/objs-gcc.sh
|
||||
+++ gcc/contrib/regression/objs-gcc.sh
|
||||
@@ -105,6 +105,10 @@
|
||||
then
|
||||
make all-gdb all-dejagnu all-ld || exit 1
|
||||
make install-gdb install-dejagnu install-ld || exit 1
|
||||
+elif [ $H_REAL_TARGET = $H_REAL_HOST -a $H_REAL_TARGET = i686-pc-linux-uclibc ]
|
||||
+ then
|
||||
+ make all-gdb all-dejagnu all-ld || exit 1
|
||||
+ make install-gdb install-dejagnu install-ld || exit 1
|
||||
elif [ $H_REAL_TARGET = $H_REAL_HOST ] ; then
|
||||
make bootstrap || exit 1
|
||||
make install || exit 1
|
||||
--- gcc/libjava/classpath/ltconfig
|
||||
+++ gcc/libjava/classpath/ltconfig
|
||||
@@ -603,7 +603,7 @@
|
||||
|
||||
# Transform linux* to *-*-linux-gnu*, to support old configure scripts.
|
||||
case $host_os in
|
||||
-linux-gnu*) ;;
|
||||
+linux-gnu*|linux-uclibc*) ;;
|
||||
linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'`
|
||||
esac
|
||||
|
||||
@@ -1251,7 +1251,7 @@
|
||||
;;
|
||||
|
||||
# This must be Linux ELF.
|
||||
-linux-gnu*)
|
||||
+linux*)
|
||||
version_type=linux
|
||||
need_lib_prefix=no
|
||||
need_version=no
|
||||
--- gcc/libjava/classpath/configure
|
||||
+++ gcc/libjava/classpath/configure
|
||||
@@ -4665,7 +4665,7 @@
|
||||
;;
|
||||
|
||||
# This must be Linux ELF.
|
||||
-linux-gnu*)
|
||||
+linux*)
|
||||
lt_cv_deplibs_check_method=pass_all
|
||||
;;
|
||||
|
||||
--- gcc/libjava/configure
|
||||
+++ gcc/libjava/configure
|
||||
@@ -5212,7 +5212,7 @@
|
||||
;;
|
||||
|
||||
# This must be Linux ELF.
|
||||
-linux-gnu*)
|
||||
+linux*)
|
||||
lt_cv_deplibs_check_method=pass_all
|
||||
;;
|
||||
|
||||
--- gcc/libtool.m4
|
||||
+++ gcc/libtool.m4
|
||||
@@ -739,7 +739,7 @@
|
||||
;;
|
||||
|
||||
# This must be Linux ELF.
|
||||
-linux-gnu*)
|
||||
+linux*)
|
||||
lt_cv_deplibs_check_method=pass_all
|
||||
;;
|
||||
|
||||
--- gcc/ltconfig
|
||||
+++ gcc/ltconfig
|
||||
@@ -603,7 +603,7 @@
|
||||
|
||||
# Transform linux* to *-*-linux-gnu*, to support old configure scripts.
|
||||
case $host_os in
|
||||
-linux-gnu*) ;;
|
||||
+linux-gnu*|linux-uclibc*) ;;
|
||||
linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'`
|
||||
esac
|
||||
|
||||
@@ -1251,7 +1251,7 @@
|
||||
;;
|
||||
|
||||
# This must be Linux ELF.
|
||||
-linux-gnu*)
|
||||
+linux*)
|
||||
version_type=linux
|
||||
need_lib_prefix=no
|
||||
need_version=no
|
||||
@@ -1,11 +0,0 @@
|
||||
--- gcc/gcc/config.gcc.uclibc100-sh~ 2006-03-06 20:46:56 +0100
|
||||
+++ gcc/gcc/config.gcc 2006-03-10 15:02:41 +0100
|
||||
@@ -1905,7 +1905,7 @@
|
||||
;;
|
||||
sh-*-elf* | sh[12346l]*-*-elf* | sh*-*-kaos* | \
|
||||
sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | \
|
||||
- sh-*-linux* | sh[346lbe]*-*-linux* | \
|
||||
+ sh*-*-linux* | sh[346lbe]*-*-linux* | \
|
||||
sh-*-netbsdelf* | shl*-*-netbsdelf* | sh5-*-netbsd* | sh5l*-*-netbsd* | \
|
||||
sh64-*-netbsd* | sh64l*-*-netbsd*)
|
||||
tmake_file="${tmake_file} sh/t-sh sh/t-elf"
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,213 +0,0 @@
|
||||
--- gcc/libstdc++-v3/config/locale/uclibc/c++locale_internal.h.uclibc200no__x~ 2006-03-10 15:06:17 +0100
|
||||
+++ gcc/libstdc++-v3/config/locale/uclibc/c++locale_internal.h 2006-03-10 15:32:37 +0100
|
||||
@@ -60,4 +60,49 @@
|
||||
extern "C" __typeof(wctype_l) __wctype_l;
|
||||
#endif
|
||||
|
||||
+# define __nl_langinfo_l nl_langinfo_l
|
||||
+# define __strcoll_l strcoll_l
|
||||
+# define __strftime_l strftime_l
|
||||
+# define __strtod_l strtod_l
|
||||
+# define __strtof_l strtof_l
|
||||
+# define __strtold_l strtold_l
|
||||
+# define __strxfrm_l strxfrm_l
|
||||
+# define __newlocale newlocale
|
||||
+# define __freelocale freelocale
|
||||
+# define __duplocale duplocale
|
||||
+# define __uselocale uselocale
|
||||
+
|
||||
+# ifdef _GLIBCXX_USE_WCHAR_T
|
||||
+# define __iswctype_l iswctype_l
|
||||
+# define __towlower_l towlower_l
|
||||
+# define __towupper_l towupper_l
|
||||
+# define __wcscoll_l wcscoll_l
|
||||
+# define __wcsftime_l wcsftime_l
|
||||
+# define __wcsxfrm_l wcsxfrm_l
|
||||
+# define __wctype_l wctype_l
|
||||
+# endif
|
||||
+
|
||||
+#else
|
||||
+# define __nl_langinfo_l(N, L) nl_langinfo((N))
|
||||
+# define __strcoll_l(S1, S2, L) strcoll((S1), (S2))
|
||||
+# define __strtod_l(S, E, L) strtod((S), (E))
|
||||
+# define __strtof_l(S, E, L) strtof((S), (E))
|
||||
+# define __strtold_l(S, E, L) strtold((S), (E))
|
||||
+# define __strxfrm_l(S1, S2, N, L) strxfrm((S1), (S2), (N))
|
||||
+# warning should dummy __newlocale check for C|POSIX ?
|
||||
+# define __newlocale(a, b, c) NULL
|
||||
+# define __freelocale(a) ((void)0)
|
||||
+# define __duplocale(a) __c_locale()
|
||||
+//# define __uselocale ?
|
||||
+//
|
||||
+# ifdef _GLIBCXX_USE_WCHAR_T
|
||||
+# define __iswctype_l(C, M, L) iswctype((C), (M))
|
||||
+# define __towlower_l(C, L) towlower((C))
|
||||
+# define __towupper_l(C, L) towupper((C))
|
||||
+# define __wcscoll_l(S1, S2, L) wcscoll((S1), (S2))
|
||||
+//# define __wcsftime_l(S, M, F, T, L) wcsftime((S), (M), (F), (T))
|
||||
+# define __wcsxfrm_l(S1, S2, N, L) wcsxfrm((S1), (S2), (N))
|
||||
+# define __wctype_l(S, L) wctype((S))
|
||||
+# endif
|
||||
+
|
||||
#endif // GLIBC 2.3 and later
|
||||
--- gcc/libstdc++-v3/config/locale/uclibc/c_locale.cc.uclibc200no__x~ 2006-03-10 15:06:17 +0100
|
||||
+++ gcc/libstdc++-v3/config/locale/uclibc/c_locale.cc 2006-03-10 15:32:37 +0100
|
||||
@@ -39,20 +39,6 @@
|
||||
#include <langinfo.h>
|
||||
#include <bits/c++locale_internal.h>
|
||||
|
||||
-#ifndef __UCLIBC_HAS_XLOCALE__
|
||||
-#define __strtol_l(S, E, B, L) strtol((S), (E), (B))
|
||||
-#define __strtoul_l(S, E, B, L) strtoul((S), (E), (B))
|
||||
-#define __strtoll_l(S, E, B, L) strtoll((S), (E), (B))
|
||||
-#define __strtoull_l(S, E, B, L) strtoull((S), (E), (B))
|
||||
-#define __strtof_l(S, E, L) strtof((S), (E))
|
||||
-#define __strtod_l(S, E, L) strtod((S), (E))
|
||||
-#define __strtold_l(S, E, L) strtold((S), (E))
|
||||
-#warning should dummy __newlocale check for C|POSIX ?
|
||||
-#define __newlocale(a, b, c) NULL
|
||||
-#define __freelocale(a) ((void)0)
|
||||
-#define __duplocale(a) __c_locale()
|
||||
-#endif
|
||||
-
|
||||
namespace std
|
||||
{
|
||||
template<>
|
||||
--- gcc/libstdc++-v3/config/locale/uclibc/collate_members.cc.uclibc200no__x~ 2006-03-10 15:06:17 +0100
|
||||
+++ gcc/libstdc++-v3/config/locale/uclibc/collate_members.cc 2006-03-10 15:32:37 +0100
|
||||
@@ -36,13 +36,6 @@
|
||||
#include <locale>
|
||||
#include <bits/c++locale_internal.h>
|
||||
|
||||
-#ifndef __UCLIBC_HAS_XLOCALE__
|
||||
-#define __strcoll_l(S1, S2, L) strcoll((S1), (S2))
|
||||
-#define __strxfrm_l(S1, S2, N, L) strxfrm((S1), (S2), (N))
|
||||
-#define __wcscoll_l(S1, S2, L) wcscoll((S1), (S2))
|
||||
-#define __wcsxfrm_l(S1, S2, N, L) wcsxfrm((S1), (S2), (N))
|
||||
-#endif
|
||||
-
|
||||
namespace std
|
||||
{
|
||||
// These are basically extensions to char_traits, and perhaps should
|
||||
--- gcc/libstdc++-v3/config/locale/uclibc/monetary_members.cc.uclibc200no__x~ 2006-03-10 15:06:17 +0100
|
||||
+++ gcc/libstdc++-v3/config/locale/uclibc/monetary_members.cc 2006-03-10 15:32:37 +0100
|
||||
@@ -43,10 +43,6 @@
|
||||
#warning tailor for stub locale support
|
||||
#endif
|
||||
|
||||
-#ifndef __UCLIBC_HAS_XLOCALE__
|
||||
-#define __nl_langinfo_l(N, L) nl_langinfo((N))
|
||||
-#endif
|
||||
-
|
||||
namespace std
|
||||
{
|
||||
// Construct and return valid pattern consisting of some combination of:
|
||||
--- gcc/libstdc++-v3/config/locale/uclibc/numeric_members.cc.uclibc200no__x~ 2006-03-10 15:06:17 +0100
|
||||
+++ gcc/libstdc++-v3/config/locale/uclibc/numeric_members.cc 2006-03-10 15:32:37 +0100
|
||||
@@ -41,9 +41,6 @@
|
||||
#ifdef __UCLIBC_MJN3_ONLY__
|
||||
#warning tailor for stub locale support
|
||||
#endif
|
||||
-#ifndef __UCLIBC_HAS_XLOCALE__
|
||||
-#define __nl_langinfo_l(N, L) nl_langinfo((N))
|
||||
-#endif
|
||||
|
||||
namespace std
|
||||
{
|
||||
--- gcc/libstdc++-v3/config/locale/uclibc/time_members.cc.uclibc200no__x~ 2006-03-10 15:06:17 +0100
|
||||
+++ gcc/libstdc++-v3/config/locale/uclibc/time_members.cc 2006-03-10 15:32:37 +0100
|
||||
@@ -40,9 +40,6 @@
|
||||
#ifdef __UCLIBC_MJN3_ONLY__
|
||||
#warning tailor for stub locale support
|
||||
#endif
|
||||
-#ifndef __UCLIBC_HAS_XLOCALE__
|
||||
-#define __nl_langinfo_l(N, L) nl_langinfo((N))
|
||||
-#endif
|
||||
|
||||
namespace std
|
||||
{
|
||||
--- gcc/libstdc++-v3/config/locale/uclibc/ctype_members.cc.uclibc200no__x~ 2006-03-10 15:06:17 +0100
|
||||
+++ gcc/libstdc++-v3/config/locale/uclibc/ctype_members.cc 2006-03-10 15:32:37 +0100
|
||||
@@ -38,13 +38,6 @@
|
||||
#undef _LIBC
|
||||
#include <bits/c++locale_internal.h>
|
||||
|
||||
-#ifndef __UCLIBC_HAS_XLOCALE__
|
||||
-#define __wctype_l(S, L) wctype((S))
|
||||
-#define __towupper_l(C, L) towupper((C))
|
||||
-#define __towlower_l(C, L) towlower((C))
|
||||
-#define __iswctype_l(C, M, L) iswctype((C), (M))
|
||||
-#endif
|
||||
-
|
||||
namespace std
|
||||
{
|
||||
// NB: The other ctype<char> specializations are in src/locale.cc and
|
||||
--- gcc/libstdc++-v3/config/locale/uclibc/messages_members.cc.uclibc200no__x~ 2006-03-10 15:06:17 +0100
|
||||
+++ gcc/libstdc++-v3/config/locale/uclibc/messages_members.cc 2006-03-10 15:32:37 +0100
|
||||
@@ -39,13 +39,10 @@
|
||||
#ifdef __UCLIBC_MJN3_ONLY__
|
||||
#warning fix gettext stuff
|
||||
#endif
|
||||
-#ifdef __UCLIBC_HAS_GETTEXT_AWARENESS__
|
||||
-extern "C" char *__dcgettext(const char *domainname,
|
||||
- const char *msgid, int category);
|
||||
#undef gettext
|
||||
-#define gettext(msgid) __dcgettext(NULL, msgid, LC_MESSAGES)
|
||||
+#ifdef __UCLIBC_HAS_GETTEXT_AWARENESS__
|
||||
+#define gettext(msgid) dcgettext(NULL, msgid, LC_MESSAGES)
|
||||
#else
|
||||
-#undef gettext
|
||||
#define gettext(msgid) (msgid)
|
||||
#endif
|
||||
|
||||
--- gcc/libstdc++-v3/config/locale/uclibc/messages_members.h.uclibc200no__x~ 2006-03-10 15:06:17 +0100
|
||||
+++ gcc/libstdc++-v3/config/locale/uclibc/messages_members.h 2006-03-10 15:32:37 +0100
|
||||
@@ -36,15 +36,11 @@
|
||||
#ifdef __UCLIBC_MJN3_ONLY__
|
||||
#warning fix prototypes for *textdomain funcs
|
||||
#endif
|
||||
-#ifdef __UCLIBC_HAS_GETTEXT_AWARENESS__
|
||||
-extern "C" char *__textdomain(const char *domainname);
|
||||
-extern "C" char *__bindtextdomain(const char *domainname,
|
||||
- const char *dirname);
|
||||
-#else
|
||||
-#undef __textdomain
|
||||
-#undef __bindtextdomain
|
||||
-#define __textdomain(D) ((void)0)
|
||||
-#define __bindtextdomain(D,P) ((void)0)
|
||||
+#ifndef __UCLIBC_HAS_GETTEXT_AWARENESS__
|
||||
+#undef textdomain
|
||||
+#undef bindtextdomain
|
||||
+#define textdomain(D) ((void)0)
|
||||
+#define bindtextdomain(D,P) ((void)0)
|
||||
#endif
|
||||
|
||||
// Non-virtual member functions.
|
||||
@@ -70,7 +66,7 @@
|
||||
messages<_CharT>::open(const basic_string<char>& __s, const locale& __loc,
|
||||
const char* __dir) const
|
||||
{
|
||||
- __bindtextdomain(__s.c_str(), __dir);
|
||||
+ bindtextdomain(__s.c_str(), __dir);
|
||||
return this->do_open(__s, __loc);
|
||||
}
|
||||
|
||||
@@ -90,7 +86,7 @@
|
||||
{
|
||||
// No error checking is done, assume the catalog exists and can
|
||||
// be used.
|
||||
- __textdomain(__s.c_str());
|
||||
+ textdomain(__s.c_str());
|
||||
return 0;
|
||||
}
|
||||
|
||||
--- gcc/libstdc++-v3/config/locale/uclibc/c_locale.h.uclibc200no__x~ 2006-03-10 15:06:17 +0100
|
||||
+++ gcc/libstdc++-v3/config/locale/uclibc/c_locale.h 2006-03-10 15:32:37 +0100
|
||||
@@ -68,6 +68,7 @@
|
||||
{
|
||||
extern "C" __typeof(uselocale) __uselocale;
|
||||
}
|
||||
+#define __uselocale uselocale
|
||||
#endif
|
||||
|
||||
namespace std
|
||||
@@ -1,48 +0,0 @@
|
||||
--- gcc/libstdc++-v3/config/locale/uclibc/monetary_members.cc.uclibc200_wchar~ 2006-03-10 15:32:37 +0100
|
||||
+++ gcc/libstdc++-v3/config/locale/uclibc/monetary_members.cc 2006-03-10 15:37:27 +0100
|
||||
@@ -401,7 +401,7 @@
|
||||
# ifdef __UCLIBC_HAS_XLOCALE__
|
||||
_M_data->_M_decimal_point = __cloc->decimal_point_wc;
|
||||
_M_data->_M_thousands_sep = __cloc->thousands_sep_wc;
|
||||
-# else
|
||||
+# elif defined __UCLIBC_HAS_LOCALE__
|
||||
_M_data->_M_decimal_point = __global_locale->decimal_point_wc;
|
||||
_M_data->_M_thousands_sep = __global_locale->thousands_sep_wc;
|
||||
# endif
|
||||
@@ -556,7 +556,7 @@
|
||||
# ifdef __UCLIBC_HAS_XLOCALE__
|
||||
_M_data->_M_decimal_point = __cloc->decimal_point_wc;
|
||||
_M_data->_M_thousands_sep = __cloc->thousands_sep_wc;
|
||||
-# else
|
||||
+# elif defined __UCLIBC_HAS_LOCALE__
|
||||
_M_data->_M_decimal_point = __global_locale->decimal_point_wc;
|
||||
_M_data->_M_thousands_sep = __global_locale->thousands_sep_wc;
|
||||
# endif
|
||||
--- gcc/libstdc++-v3/config/locale/uclibc/numeric_members.cc.uclibc200_wchar~ 2006-03-10 15:32:37 +0100
|
||||
+++ gcc/libstdc++-v3/config/locale/uclibc/numeric_members.cc 2006-03-10 15:37:27 +0100
|
||||
@@ -127,12 +127,25 @@
|
||||
{
|
||||
// Named locale.
|
||||
// NB: In the GNU model wchar_t is always 32 bit wide.
|
||||
+#ifdef __UCLIBC_MJN3_ONLY__
|
||||
+#warning fix this... should be numeric
|
||||
+#endif
|
||||
+#ifdef __UCLIBC__
|
||||
+# ifdef __UCLIBC_HAS_XLOCALE__
|
||||
+ _M_data->_M_decimal_point = __cloc->decimal_point_wc;
|
||||
+ _M_data->_M_thousands_sep = __cloc->thousands_sep_wc;
|
||||
+# elif defined __UCLIBC_HAS_LOCALE__
|
||||
+ _M_data->_M_decimal_point = __global_locale->decimal_point_wc;
|
||||
+ _M_data->_M_thousands_sep = __global_locale->thousands_sep_wc;
|
||||
+# endif
|
||||
+#else
|
||||
union { char *__s; wchar_t __w; } __u;
|
||||
__u.__s = __nl_langinfo_l(_NL_NUMERIC_DECIMAL_POINT_WC, __cloc);
|
||||
_M_data->_M_decimal_point = __u.__w;
|
||||
|
||||
__u.__s = __nl_langinfo_l(_NL_NUMERIC_THOUSANDS_SEP_WC, __cloc);
|
||||
_M_data->_M_thousands_sep = __u.__w;
|
||||
+#endif
|
||||
|
||||
if (_M_data->_M_thousands_sep == L'\0')
|
||||
_M_data->_M_grouping = "";
|
||||
@@ -1,347 +0,0 @@
|
||||
--- gcc/libstdc++-v3/config/locale/uclibc/c_locale.cc.uclibc200_update~ 2006-03-10 15:32:37 +0100
|
||||
+++ gcc/libstdc++-v3/config/locale/uclibc/c_locale.cc 2006-03-10 15:39:14 +0100
|
||||
@@ -46,16 +47,13 @@
|
||||
__convert_to_v(const char* __s, float& __v, ios_base::iostate& __err,
|
||||
const __c_locale& __cloc)
|
||||
{
|
||||
- if (!(__err & ios_base::failbit))
|
||||
- {
|
||||
- char* __sanity;
|
||||
- errno = 0;
|
||||
- float __f = __strtof_l(__s, &__sanity, __cloc);
|
||||
- if (__sanity != __s && errno != ERANGE)
|
||||
- __v = __f;
|
||||
- else
|
||||
- __err |= ios_base::failbit;
|
||||
- }
|
||||
+ char* __sanity;
|
||||
+ errno = 0;
|
||||
+ float __f = __strtof_l(__s, &__sanity, __cloc);
|
||||
+ if (__sanity != __s && errno != ERANGE)
|
||||
+ __v = __f;
|
||||
+ else
|
||||
+ __err |= ios_base::failbit;
|
||||
}
|
||||
|
||||
template<>
|
||||
@@ -63,16 +61,13 @@
|
||||
__convert_to_v(const char* __s, double& __v, ios_base::iostate& __err,
|
||||
const __c_locale& __cloc)
|
||||
{
|
||||
- if (!(__err & ios_base::failbit))
|
||||
- {
|
||||
- char* __sanity;
|
||||
- errno = 0;
|
||||
- double __d = __strtod_l(__s, &__sanity, __cloc);
|
||||
- if (__sanity != __s && errno != ERANGE)
|
||||
- __v = __d;
|
||||
- else
|
||||
- __err |= ios_base::failbit;
|
||||
- }
|
||||
+ char* __sanity;
|
||||
+ errno = 0;
|
||||
+ double __d = __strtod_l(__s, &__sanity, __cloc);
|
||||
+ if (__sanity != __s && errno != ERANGE)
|
||||
+ __v = __d;
|
||||
+ else
|
||||
+ __err |= ios_base::failbit;
|
||||
}
|
||||
|
||||
template<>
|
||||
@@ -80,16 +75,13 @@
|
||||
__convert_to_v(const char* __s, long double& __v, ios_base::iostate& __err,
|
||||
const __c_locale& __cloc)
|
||||
{
|
||||
- if (!(__err & ios_base::failbit))
|
||||
- {
|
||||
- char* __sanity;
|
||||
- errno = 0;
|
||||
- long double __ld = __strtold_l(__s, &__sanity, __cloc);
|
||||
- if (__sanity != __s && errno != ERANGE)
|
||||
- __v = __ld;
|
||||
- else
|
||||
- __err |= ios_base::failbit;
|
||||
- }
|
||||
+ char* __sanity;
|
||||
+ errno = 0;
|
||||
+ long double __ld = __strtold_l(__s, &__sanity, __cloc);
|
||||
+ if (__sanity != __s && errno != ERANGE)
|
||||
+ __v = __ld;
|
||||
+ else
|
||||
+ __err |= ios_base::failbit;
|
||||
}
|
||||
|
||||
void
|
||||
@@ -110,7 +102,7 @@
|
||||
void
|
||||
locale::facet::_S_destroy_c_locale(__c_locale& __cloc)
|
||||
{
|
||||
- if (_S_get_c_locale() != __cloc)
|
||||
+ if (__cloc && _S_get_c_locale() != __cloc)
|
||||
__freelocale(__cloc);
|
||||
}
|
||||
|
||||
--- gcc/libstdc++-v3/config/locale/uclibc/ctype_members.cc.uclibc200_update~ 2006-03-10 15:32:37 +0100
|
||||
+++ gcc/libstdc++-v3/config/locale/uclibc/ctype_members.cc 2006-03-10 15:39:14 +0100
|
||||
@@ -33,9 +33,14 @@
|
||||
|
||||
// Written by Benjamin Kosnik <bkoz@redhat.com>
|
||||
|
||||
+#include <features.h>
|
||||
+#ifdef __UCLIBC_HAS_LOCALE__
|
||||
#define _LIBC
|
||||
#include <locale>
|
||||
#undef _LIBC
|
||||
+#else
|
||||
+#include <locale>
|
||||
+#endif
|
||||
#include <bits/c++locale_internal.h>
|
||||
|
||||
namespace std
|
||||
@@ -138,20 +143,34 @@
|
||||
ctype<wchar_t>::
|
||||
do_is(mask __m, wchar_t __c) const
|
||||
{
|
||||
- // Highest bitmask in ctype_base == 10, but extra in "C"
|
||||
- // library for blank.
|
||||
+ // The case of __m == ctype_base::space is particularly important,
|
||||
+ // due to its use in many istream functions. Therefore we deal with
|
||||
+ // it first, exploiting the knowledge that on GNU systems _M_bit[5]
|
||||
+ // is the mask corresponding to ctype_base::space. NB: an encoding
|
||||
+ // change would not affect correctness!
|
||||
bool __ret = false;
|
||||
- const size_t __bitmasksize = 11;
|
||||
- for (size_t __bitcur = 0; __bitcur <= __bitmasksize; ++__bitcur)
|
||||
- if (__m & _M_bit[__bitcur]
|
||||
- && __iswctype_l(__c, _M_wmask[__bitcur], _M_c_locale_ctype))
|
||||
- {
|
||||
- __ret = true;
|
||||
- break;
|
||||
- }
|
||||
+ if (__m == _M_bit[5])
|
||||
+ __ret = __iswctype_l(__c, _M_wmask[5], _M_c_locale_ctype);
|
||||
+ else
|
||||
+ {
|
||||
+ // Highest bitmask in ctype_base == 10, but extra in "C"
|
||||
+ // library for blank.
|
||||
+ const size_t __bitmasksize = 11;
|
||||
+ for (size_t __bitcur = 0; __bitcur <= __bitmasksize; ++__bitcur)
|
||||
+ if (__m & _M_bit[__bitcur])
|
||||
+ {
|
||||
+ if (__iswctype_l(__c, _M_wmask[__bitcur], _M_c_locale_ctype))
|
||||
+ {
|
||||
+ __ret = true;
|
||||
+ break;
|
||||
+ }
|
||||
+ else if (__m == _M_bit[__bitcur])
|
||||
+ break;
|
||||
+ }
|
||||
+ }
|
||||
return __ret;
|
||||
}
|
||||
-
|
||||
+
|
||||
const wchar_t*
|
||||
ctype<wchar_t>::
|
||||
do_is(const wchar_t* __lo, const wchar_t* __hi, mask* __vec) const
|
||||
--- gcc/libstdc++-v3/config/locale/uclibc/messages_members.h.uclibc200_update~ 2006-03-10 15:32:37 +0100
|
||||
+++ gcc/libstdc++-v3/config/locale/uclibc/messages_members.h 2006-03-10 15:39:14 +0100
|
||||
@@ -47,18 +47,21 @@
|
||||
template<typename _CharT>
|
||||
messages<_CharT>::messages(size_t __refs)
|
||||
: facet(__refs), _M_c_locale_messages(_S_get_c_locale()),
|
||||
- _M_name_messages(_S_get_c_name())
|
||||
+ _M_name_messages(_S_get_c_name())
|
||||
{ }
|
||||
|
||||
template<typename _CharT>
|
||||
messages<_CharT>::messages(__c_locale __cloc, const char* __s,
|
||||
size_t __refs)
|
||||
- : facet(__refs), _M_c_locale_messages(_S_clone_c_locale(__cloc)),
|
||||
- _M_name_messages(__s)
|
||||
+ : facet(__refs), _M_c_locale_messages(NULL), _M_name_messages(NULL)
|
||||
{
|
||||
- char* __tmp = new char[std::strlen(__s) + 1];
|
||||
- std::strcpy(__tmp, __s);
|
||||
+ const size_t __len = std::strlen(__s) + 1;
|
||||
+ char* __tmp = new char[__len];
|
||||
+ std::memcpy(__tmp, __s, __len);
|
||||
_M_name_messages = __tmp;
|
||||
+
|
||||
+ // Last to avoid leaking memory if new throws.
|
||||
+ _M_c_locale_messages = _S_clone_c_locale(__cloc);
|
||||
}
|
||||
|
||||
template<typename _CharT>
|
||||
--- gcc/libstdc++-v3/config/locale/uclibc/monetary_members.cc.uclibc200_update~ 2006-03-10 15:37:27 +0100
|
||||
+++ gcc/libstdc++-v3/config/locale/uclibc/monetary_members.cc 2006-03-10 15:39:14 +0100
|
||||
@@ -33,9 +33,14 @@
|
||||
|
||||
// Written by Benjamin Kosnik <bkoz@redhat.com>
|
||||
|
||||
+#include <features.h>
|
||||
+#ifdef __UCLIBC_HAS_LOCALE__
|
||||
#define _LIBC
|
||||
#include <locale>
|
||||
#undef _LIBC
|
||||
+#else
|
||||
+#include <locale>
|
||||
+#endif
|
||||
#include <bits/c++locale_internal.h>
|
||||
|
||||
#ifdef __UCLIBC_MJN3_ONLY__
|
||||
@@ -206,7 +211,7 @@
|
||||
}
|
||||
break;
|
||||
default:
|
||||
- ;
|
||||
+ __ret = pattern();
|
||||
}
|
||||
return __ret;
|
||||
}
|
||||
--- gcc/libstdc++-v3/config/locale/uclibc/numeric_members.cc.uclibc200_update~ 2006-03-10 15:37:27 +0100
|
||||
+++ gcc/libstdc++-v3/config/locale/uclibc/numeric_members.cc 2006-03-10 15:39:14 +0100
|
||||
@@ -33,9 +33,14 @@
|
||||
|
||||
// Written by Benjamin Kosnik <bkoz@redhat.com>
|
||||
|
||||
+#include <features.h>
|
||||
+#ifdef __UCLIBC_HAS_LOCALE__
|
||||
#define _LIBC
|
||||
#include <locale>
|
||||
#undef _LIBC
|
||||
+#else
|
||||
+#include <locale>
|
||||
+#endif
|
||||
#include <bits/c++locale_internal.h>
|
||||
|
||||
#ifdef __UCLIBC_MJN3_ONLY__
|
||||
--- gcc/libstdc++-v3/config/locale/uclibc/time_members.h.uclibc200_update~ 2006-03-10 15:06:17 +0100
|
||||
+++ gcc/libstdc++-v3/config/locale/uclibc/time_members.h 2006-03-10 15:39:14 +0100
|
||||
@@ -37,25 +37,33 @@
|
||||
template<typename _CharT>
|
||||
__timepunct<_CharT>::__timepunct(size_t __refs)
|
||||
: facet(__refs), _M_data(NULL), _M_c_locale_timepunct(NULL),
|
||||
- _M_name_timepunct(_S_get_c_name())
|
||||
+ _M_name_timepunct(_S_get_c_name())
|
||||
{ _M_initialize_timepunct(); }
|
||||
|
||||
template<typename _CharT>
|
||||
__timepunct<_CharT>::__timepunct(__cache_type* __cache, size_t __refs)
|
||||
: facet(__refs), _M_data(__cache), _M_c_locale_timepunct(NULL),
|
||||
- _M_name_timepunct(_S_get_c_name())
|
||||
+ _M_name_timepunct(_S_get_c_name())
|
||||
{ _M_initialize_timepunct(); }
|
||||
|
||||
template<typename _CharT>
|
||||
__timepunct<_CharT>::__timepunct(__c_locale __cloc, const char* __s,
|
||||
size_t __refs)
|
||||
: facet(__refs), _M_data(NULL), _M_c_locale_timepunct(NULL),
|
||||
- _M_name_timepunct(__s)
|
||||
+ _M_name_timepunct(NULL)
|
||||
{
|
||||
- char* __tmp = new char[std::strlen(__s) + 1];
|
||||
- std::strcpy(__tmp, __s);
|
||||
+ const size_t __len = std::strlen(__s) + 1;
|
||||
+ char* __tmp = new char[__len];
|
||||
+ std::memcpy(__tmp, __s, __len);
|
||||
_M_name_timepunct = __tmp;
|
||||
- _M_initialize_timepunct(__cloc);
|
||||
+
|
||||
+ try
|
||||
+ { _M_initialize_timepunct(__cloc); }
|
||||
+ catch(...)
|
||||
+ {
|
||||
+ delete [] _M_name_timepunct;
|
||||
+ __throw_exception_again;
|
||||
+ }
|
||||
}
|
||||
|
||||
template<typename _CharT>
|
||||
--- gcc-4.2/libstdc++-v3/config/locale/uclibc/c_locale.h.old 2006-09-28 11:39:00.000000000 +0200
|
||||
+++ gcc-4.2/libstdc++-v3/config/locale/uclibc/c_locale.h 2006-09-28 12:10:41.000000000 +0200
|
||||
@@ -39,21 +39,23 @@
|
||||
#pragma GCC system_header
|
||||
|
||||
#include <cstring> // get std::strlen
|
||||
-#include <cstdio> // get std::snprintf or std::sprintf
|
||||
+#include <cstdio> // get std::vsnprintf or std::vsprintf
|
||||
#include <clocale>
|
||||
#include <langinfo.h> // For codecvt
|
||||
#ifdef __UCLIBC_MJN3_ONLY__
|
||||
#warning fix this
|
||||
#endif
|
||||
-#ifdef __UCLIBC_HAS_LOCALE__
|
||||
+#ifdef _GLIBCXX_USE_ICONV
|
||||
#include <iconv.h> // For codecvt using iconv, iconv_t
|
||||
#endif
|
||||
-#ifdef __UCLIBC_HAS_GETTEXT_AWARENESS__
|
||||
-#include <libintl.h> // For messages
|
||||
+#ifdef HAVE_LIBINTL_H
|
||||
+#include <libintl.h> // For messages
|
||||
#endif
|
||||
+#include <cstdarg>
|
||||
|
||||
#ifdef __UCLIBC_MJN3_ONLY__
|
||||
#warning what is _GLIBCXX_C_LOCALE_GNU for
|
||||
+// psm: used in os/gnu-linux/ctype_noninline.h
|
||||
#endif
|
||||
#define _GLIBCXX_C_LOCALE_GNU 1
|
||||
|
||||
@@ -62,7 +64,7 @@
|
||||
#endif
|
||||
// #define _GLIBCXX_NUM_CATEGORIES 6
|
||||
#define _GLIBCXX_NUM_CATEGORIES 0
|
||||
-
|
||||
+
|
||||
#ifdef __UCLIBC_HAS_XLOCALE__
|
||||
namespace __gnu_cxx
|
||||
{
|
||||
@@ -79,22 +81,24 @@
|
||||
typedef int* __c_locale;
|
||||
#endif
|
||||
|
||||
- // Convert numeric value of type _Tv to string and return length of
|
||||
- // string. If snprintf is available use it, otherwise fall back to
|
||||
- // the unsafe sprintf which, in general, can be dangerous and should
|
||||
+ // Convert numeric value of type double to string and return length of
|
||||
+ // string. If vsnprintf is available use it, otherwise fall back to
|
||||
+ // the unsafe vsprintf which, in general, can be dangerous and should
|
||||
// be avoided.
|
||||
- template<typename _Tv>
|
||||
- int
|
||||
- __convert_from_v(char* __out,
|
||||
- const int __size __attribute__ ((__unused__)),
|
||||
- const char* __fmt,
|
||||
-#ifdef __UCLIBC_HAS_XCLOCALE__
|
||||
- _Tv __v, const __c_locale& __cloc, int __prec)
|
||||
+ inline int
|
||||
+ __convert_from_v(const __c_locale&
|
||||
+#ifndef __UCLIBC_HAS_XCLOCALE__
|
||||
+ __cloc __attribute__ ((__unused__))
|
||||
+#endif
|
||||
+ ,
|
||||
+ char* __out,
|
||||
+ const int __size,
|
||||
+ const char* __fmt, ...)
|
||||
{
|
||||
+ va_list __args;
|
||||
+#ifdef __UCLIBC_HAS_XCLOCALE__
|
||||
__c_locale __old = __gnu_cxx::__uselocale(__cloc);
|
||||
#else
|
||||
- _Tv __v, const __c_locale&, int __prec)
|
||||
- {
|
||||
# ifdef __UCLIBC_HAS_LOCALE__
|
||||
char* __old = std::setlocale(LC_ALL, NULL);
|
||||
char* __sav = new char[std::strlen(__old) + 1];
|
||||
@@ -103,7 +107,9 @@
|
||||
# endif
|
||||
#endif
|
||||
|
||||
- const int __ret = std::snprintf(__out, __size, __fmt, __prec, __v);
|
||||
+ va_start(__args, __fmt);
|
||||
+ const int __ret = std::vsnprintf(__out, __size, __fmt, __args);
|
||||
+ va_end(__args);
|
||||
|
||||
#ifdef __UCLIBC_HAS_XCLOCALE__
|
||||
__gnu_cxx::__uselocale(__old);
|
||||
@@ -1,50 +0,0 @@
|
||||
# DP: Build and install libstdc++_pic.a library.
|
||||
|
||||
--- gcc/libstdc++-v3/src/Makefile.am
|
||||
+++ gcc/libstdc++-v3/src/Makefile.am
|
||||
@@ -214,6 +214,12 @@
|
||||
$(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LDFLAGS) -o $@
|
||||
|
||||
|
||||
+install-exec-local:
|
||||
+ifeq ($(enable_shared),yes)
|
||||
+ $(AR) cru libstdc++_pic.a .libs/*.o $(top_builddir)/libsupc++/*.o
|
||||
+ $(INSTALL_DATA) libstdc++_pic.a $(DESTDIR)$(toolexeclibdir)
|
||||
+endif
|
||||
+
|
||||
# Added bits to build debug library.
|
||||
if GLIBCXX_BUILD_DEBUG
|
||||
all-local: build_debug
|
||||
--- gcc/libstdc++-v3/src/Makefile.in
|
||||
+++ gcc/libstdc++-v3/src/Makefile.in
|
||||
@@ -627,7 +627,7 @@
|
||||
|
||||
install-data-am: install-data-local
|
||||
|
||||
-install-exec-am: install-toolexeclibLTLIBRARIES
|
||||
+install-exec-am: install-toolexeclibLTLIBRARIES install-exec-local
|
||||
|
||||
install-info: install-info-am
|
||||
|
||||
@@ -660,6 +660,7 @@
|
||||
distclean-libtool distclean-tags distdir dvi dvi-am html \
|
||||
html-am info info-am install install-am install-data \
|
||||
install-data-am install-data-local install-exec \
|
||||
+ install-exec-local \
|
||||
install-exec-am install-info install-info-am install-man \
|
||||
install-strip install-toolexeclibLTLIBRARIES installcheck \
|
||||
installcheck-am installdirs maintainer-clean \
|
||||
@@ -743,6 +743,13 @@
|
||||
install_debug:
|
||||
(cd ${debugdir} && $(MAKE) \
|
||||
toolexeclibdir=$(glibcxx_toolexeclibdir)/debug install)
|
||||
+
|
||||
+install-exec-local:
|
||||
+ifeq ($(enable_shared),yes)
|
||||
+ $(AR) cru libstdc++_pic.a *.o $(top_builddir)/libsupc++/*.o
|
||||
+ $(INSTALL_DATA) libstdc++_pic.a $(DESTDIR)$(toolexeclibdir)
|
||||
+endif
|
||||
+
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||
.NOEXPORT:
|
||||
@@ -1,11 +0,0 @@
|
||||
--- gcc-4.0.0/boehm-gc/include/gc.h-orig 2005-04-28 22:28:57.000000000 -0500
|
||||
+++ gcc-4.0.0/boehm-gc/include/gc.h 2005-04-28 22:30:38.000000000 -0500
|
||||
@@ -500,7 +500,7 @@
|
||||
#ifdef __linux__
|
||||
# include <features.h>
|
||||
# if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1 || __GLIBC__ > 2) \
|
||||
- && !defined(__ia64__)
|
||||
+ && !defined(__ia64__) && !defined(__UCLIBC__)
|
||||
# ifndef GC_HAVE_BUILTIN_BACKTRACE
|
||||
# define GC_HAVE_BUILTIN_BACKTRACE
|
||||
# endif
|
||||
@@ -1,11 +0,0 @@
|
||||
--- gcc-4.0.0/libstdc++-v3/include/c_std/std_cstdio.h-orig 2005-04-29 00:08:41.000000000 -0500
|
||||
+++ gcc-4.0.0/libstdc++-v3/include/c_std/std_cstdio.h 2005-04-29 00:08:45.000000000 -0500
|
||||
@@ -142,7 +142,7 @@
|
||||
using ::vsprintf;
|
||||
}
|
||||
|
||||
-#if _GLIBCXX_USE_C99
|
||||
+#if _GLIBCXX_USE_C99 || defined(__UCLIBC__)
|
||||
|
||||
#undef snprintf
|
||||
#undef vfscanf
|
||||
@@ -1,12 +0,0 @@
|
||||
--- gcc-4.0.0/libstdc++-v3/configure-old 2005-04-30 22:04:48.061603912 -0500
|
||||
+++ gcc-4.0.0/libstdc++-v3/configure 2005-04-30 22:06:13.678588152 -0500
|
||||
@@ -7194,6 +7194,9 @@
|
||||
cat >>conftest.$ac_ext <<_ACEOF
|
||||
/* end confdefs.h. */
|
||||
#include <complex.h>
|
||||
+#ifdef __UCLIBC__
|
||||
+#error ugly hack to make sure configure test fails here for cross until uClibc supports the complex funcs
|
||||
+#endif
|
||||
int
|
||||
main ()
|
||||
{
|
||||
@@ -1,24 +0,0 @@
|
||||
--- gcc-4.1.0/libstdc++-v3/include/ext/rope.mps 2006-03-24 01:49:51 +0100
|
||||
+++ gcc-4.1.0/libstdc++-v3/include/ext/rope 2006-03-24 01:49:37 +0100
|
||||
@@ -59,6 +59,9 @@
|
||||
#include <bits/allocator.h>
|
||||
#include <ext/hash_fun.h>
|
||||
|
||||
+/* cope w/ index defined as macro, SuSv3 proposal */
|
||||
+#undef index
|
||||
+
|
||||
# ifdef __GC
|
||||
# define __GC_CONST const
|
||||
# else
|
||||
--- gcc-4.1.0/libstdc++-v3/include/ext/ropeimpl.h.mps 2006-03-24 01:50:04 +0100
|
||||
+++ gcc-4.1.0/libstdc++-v3/include/ext/ropeimpl.h 2006-03-24 01:50:28 +0100
|
||||
@@ -53,6 +53,9 @@
|
||||
#include <ext/memory> // For uninitialized_copy_n
|
||||
#include <ext/numeric> // For power
|
||||
|
||||
+/* cope w/ index defined as macro, SuSv3 proposal */
|
||||
+#undef index
|
||||
+
|
||||
_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
|
||||
|
||||
using std::size_t;
|
||||
@@ -1,49 +0,0 @@
|
||||
Index: gcc-4.2/libmudflap/mf-hooks2.c
|
||||
===================================================================
|
||||
--- gcc-4.2/libmudflap/mf-hooks2.c (revision 119834)
|
||||
+++ gcc-4.2/libmudflap/mf-hooks2.c (working copy)
|
||||
@@ -427,7 +427,7 @@
|
||||
{
|
||||
TRACE ("%s\n", __PRETTY_FUNCTION__);
|
||||
MF_VALIDATE_EXTENT(s, n, __MF_CHECK_WRITE, "bzero region");
|
||||
- bzero (s, n);
|
||||
+ memset (s, 0, n);
|
||||
}
|
||||
|
||||
|
||||
@@ -437,7 +437,7 @@
|
||||
TRACE ("%s\n", __PRETTY_FUNCTION__);
|
||||
MF_VALIDATE_EXTENT(src, n, __MF_CHECK_READ, "bcopy src");
|
||||
MF_VALIDATE_EXTENT(dest, n, __MF_CHECK_WRITE, "bcopy dest");
|
||||
- bcopy (src, dest, n);
|
||||
+ memmove (dest, src, n);
|
||||
}
|
||||
|
||||
|
||||
@@ -447,7 +447,7 @@
|
||||
TRACE ("%s\n", __PRETTY_FUNCTION__);
|
||||
MF_VALIDATE_EXTENT(s1, n, __MF_CHECK_READ, "bcmp 1st arg");
|
||||
MF_VALIDATE_EXTENT(s2, n, __MF_CHECK_READ, "bcmp 2nd arg");
|
||||
- return bcmp (s1, s2, n);
|
||||
+ return n == 0 ? 0 : memcmp (s1, s2, n);
|
||||
}
|
||||
|
||||
|
||||
@@ -456,7 +456,7 @@
|
||||
size_t n = strlen (s);
|
||||
TRACE ("%s\n", __PRETTY_FUNCTION__);
|
||||
MF_VALIDATE_EXTENT(s, CLAMPADD(n, 1), __MF_CHECK_READ, "index region");
|
||||
- return index (s, c);
|
||||
+ return strchr (s, c);
|
||||
}
|
||||
|
||||
|
||||
@@ -465,7 +465,7 @@
|
||||
size_t n = strlen (s);
|
||||
TRACE ("%s\n", __PRETTY_FUNCTION__);
|
||||
MF_VALIDATE_EXTENT(s, CLAMPADD(n, 1), __MF_CHECK_READ, "rindex region");
|
||||
- return rindex (s, c);
|
||||
+ return strrchr (s, c);
|
||||
}
|
||||
|
||||
/* XXX: stpcpy, memccpy */
|
||||
@@ -1,36 +0,0 @@
|
||||
diff -rup gcc-4.2.orig/libstdc++-v3/config/locale/uclibc/messages_members.h gcc-4.2/libstdc++-v3/config/locale/uclibc/messages_members.h
|
||||
--- gcc-4.2.orig/libstdc++-v3/config/locale/uclibc/messages_members.h 2006-12-22 13:06:56.000000000 +0100
|
||||
+++ gcc-4.2/libstdc++-v3/config/locale/uclibc/messages_members.h 2006-12-22 15:23:41.000000000 +0100
|
||||
@@ -32,7 +32,8 @@
|
||||
//
|
||||
|
||||
// Written by Benjamin Kosnik <bkoz@redhat.com>
|
||||
-
|
||||
+namespace std
|
||||
+{
|
||||
#ifdef __UCLIBC_MJN3_ONLY__
|
||||
#warning fix prototypes for *textdomain funcs
|
||||
#endif
|
||||
@@ -115,3 +116,4 @@
|
||||
this->_S_create_c_locale(this->_M_c_locale_messages, __s);
|
||||
}
|
||||
}
|
||||
+}
|
||||
diff -rup gcc-4.2.orig/libstdc++-v3/config/locale/uclibc/time_members.h gcc-4.2/libstdc++-v3/config/locale/uclibc/time_members.h
|
||||
--- gcc-4.2.orig/libstdc++-v3/config/locale/uclibc/time_members.h 2006-12-22 13:06:56.000000000 +0100
|
||||
+++ gcc-4.2/libstdc++-v3/config/locale/uclibc/time_members.h 2006-12-22 15:20:31.000000000 +0100
|
||||
@@ -33,7 +33,8 @@
|
||||
//
|
||||
|
||||
// Written by Benjamin Kosnik <bkoz@redhat.com>
|
||||
-
|
||||
+namespace std
|
||||
+{
|
||||
template<typename _CharT>
|
||||
__timepunct<_CharT>::__timepunct(size_t __refs)
|
||||
: facet(__refs), _M_data(NULL), _M_c_locale_timepunct(NULL),
|
||||
@@ -74,3 +75,4 @@
|
||||
delete _M_data;
|
||||
_S_destroy_c_locale(_M_c_locale_timepunct);
|
||||
}
|
||||
+}
|
||||
@@ -1,13 +0,0 @@
|
||||
Index: gcc-4.2/gcc/Makefile.in
|
||||
===================================================================
|
||||
--- gcc-4.2/gcc/Makefile.in (revision 121758)
|
||||
+++ gcc-4.2/gcc/Makefile.in (working copy)
|
||||
@@ -2658,7 +2658,7 @@ mips-tdump.o : mips-tdump.c $(CONFIG_H)
|
||||
# FIXME: writing proper dependencies for this is a *LOT* of work.
|
||||
libbackend.o : $(OBJS-common:.o=.c) $(out_file) \
|
||||
insn-config.h insn-flags.h insn-codes.h insn-constants.h \
|
||||
- insn-attr.h $(DATESTAMP) $(BASEVER) $(DEVPHASE)
|
||||
+ insn-attr.h $(DATESTAMP) $(BASEVER) $(DEVPHASE) gcov-iov.h
|
||||
$(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) \
|
||||
-DTARGET_NAME=\"$(target_noncanonical)\" \
|
||||
-DLOCALEDIR=\"$(localedir)\" \
|
||||
@@ -1,67 +0,0 @@
|
||||
By Lennert Buytenhek <buytenh@wantstofly.org>
|
||||
Adds support for arm*b-linux* big-endian ARM targets
|
||||
|
||||
See http://gcc.gnu.org/PR16350
|
||||
|
||||
--- gcc-4.2.0/gcc/config/arm/linux-elf.h
|
||||
+++ gcc-4.2.0/gcc/config/arm/linux-elf.h
|
||||
@@ -28,19 +28,33 @@
|
||||
#undef TARGET_VERSION
|
||||
#define TARGET_VERSION fputs (" (ARM GNU/Linux with ELF)", stderr);
|
||||
|
||||
+/*
|
||||
+ * 'config.gcc' defines TARGET_BIG_ENDIAN_DEFAULT as 1 for arm*b-*
|
||||
+ * (big endian) configurations.
|
||||
+ */
|
||||
+#if TARGET_BIG_ENDIAN_DEFAULT
|
||||
+#define TARGET_ENDIAN_DEFAULT MASK_BIG_END
|
||||
+#define TARGET_ENDIAN_OPTION "mbig-endian"
|
||||
+#define TARGET_LINKER_EMULATION "armelfb_linux"
|
||||
+#else
|
||||
+#define TARGET_ENDIAN_DEFAULT 0
|
||||
+#define TARGET_ENDIAN_OPTION "mlittle-endian"
|
||||
+#define TARGET_LINKER_EMULATION "armelf_linux"
|
||||
+#endif
|
||||
+
|
||||
#undef TARGET_DEFAULT_FLOAT_ABI
|
||||
#define TARGET_DEFAULT_FLOAT_ABI ARM_FLOAT_ABI_HARD
|
||||
|
||||
#undef TARGET_DEFAULT
|
||||
-#define TARGET_DEFAULT (0)
|
||||
+#define TARGET_DEFAULT (TARGET_ENDIAN_DEFAULT)
|
||||
|
||||
#define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm6
|
||||
|
||||
-#define SUBTARGET_EXTRA_LINK_SPEC " -m armelf_linux -p"
|
||||
+#define SUBTARGET_EXTRA_LINK_SPEC " -m " TARGET_LINKER_EMULATION " -p"
|
||||
|
||||
#undef MULTILIB_DEFAULTS
|
||||
#define MULTILIB_DEFAULTS \
|
||||
- { "marm", "mlittle-endian", "mhard-float", "mno-thumb-interwork" }
|
||||
+ { "marm", TARGET_ENDIAN_OPTION, "mhard-float", "mno-thumb-interwork" }
|
||||
|
||||
/* Now we define the strings used to build the spec file. */
|
||||
#undef LIB_SPEC
|
||||
@@ -61,7 +75,7 @@
|
||||
%{rdynamic:-export-dynamic} \
|
||||
%{!dynamic-linker:-dynamic-linker " LINUX_DYNAMIC_LINKER "} \
|
||||
-X \
|
||||
- %{mbig-endian:-EB}" \
|
||||
+ %{mbig-endian:-EB} %{mlittle-endian:-EL}" \
|
||||
SUBTARGET_EXTRA_LINK_SPEC
|
||||
|
||||
#undef LINK_SPEC
|
||||
--- gcc-4.2.0/gcc/config.gcc.orig 2006-09-22 14:53:41.000000000 +0200
|
||||
+++ gcc-4.2.0/gcc/config.gcc 2006-09-25 10:45:21.000000000 +0200
|
||||
@@ -696,6 +696,11 @@
|
||||
tm_file="dbxelf.h elfos.h linux.h arm/elf.h arm/linux-gas.h arm/linux-elf.h"
|
||||
tmake_file="${tmake_file} t-linux arm/t-arm"
|
||||
case ${target} in
|
||||
+ arm*b-*)
|
||||
+ tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
|
||||
+ ;;
|
||||
+ esac
|
||||
+ case ${target} in
|
||||
arm*-*-linux-*eabi)
|
||||
tm_file="$tm_file arm/bpabi.h arm/linux-eabi.h"
|
||||
tmake_file="$tmake_file arm/t-arm-elf arm/t-bpabi arm/t-linux-eabi"
|
||||
@@ -1,153 +0,0 @@
|
||||
Hi,
|
||||
|
||||
The attached patch makes sure that we create smaller object code for
|
||||
simple switch statements. We just make sure to flatten the switch
|
||||
statement into an if-else chain, basically.
|
||||
|
||||
This fixes a size-regression as compared to gcc-3.4, as can be seen
|
||||
below.
|
||||
|
||||
2007-04-15 Bernhard Fischer <..>
|
||||
|
||||
* stmt.c (expand_case): Do not create a complex binary tree when
|
||||
optimizing for size but rather use the simple ordered list.
|
||||
(emit_case_nodes): do not emit jumps to the default_label when
|
||||
optimizing for size.
|
||||
|
||||
Not regtested so far.
|
||||
Comments?
|
||||
|
||||
Attached is the test switch.c mentioned below.
|
||||
|
||||
$ for i in 2.95 3.3 3.4 4.0 4.1 4.2.orig-HEAD 4.3.orig-HEAD 4.3-HEAD;do
|
||||
gcc-$i -DCHAIN -Os -o switch-CHAIN-$i.o -c switch.c ;done
|
||||
$ for i in 2.95 3.3 3.4 4.0 4.1 4.2.orig-HEAD 4.3.orig-HEAD 4.3-HEAD;do
|
||||
gcc-$i -UCHAIN -Os -o switch-$i.o -c switch.c ;done
|
||||
|
||||
$ size switch-*.o
|
||||
text data bss dec hex filename
|
||||
169 0 0 169 a9 switch-2.95.o
|
||||
115 0 0 115 73 switch-3.3.o
|
||||
103 0 0 103 67 switch-3.4.o
|
||||
124 0 0 124 7c switch-4.0.o
|
||||
124 0 0 124 7c switch-4.1.o
|
||||
124 0 0 124 7c switch-4.2.orig-HEAD.o
|
||||
95 0 0 95 5f switch-4.3-HEAD.o
|
||||
124 0 0 124 7c switch-4.3.orig-HEAD.o
|
||||
166 0 0 166 a6 switch-CHAIN-2.95.o
|
||||
111 0 0 111 6f switch-CHAIN-3.3.o
|
||||
95 0 0 95 5f switch-CHAIN-3.4.o
|
||||
95 0 0 95 5f switch-CHAIN-4.0.o
|
||||
95 0 0 95 5f switch-CHAIN-4.1.o
|
||||
95 0 0 95 5f switch-CHAIN-4.2.orig-HEAD.o
|
||||
95 0 0 95 5f switch-CHAIN-4.3-HEAD.o
|
||||
95 0 0 95 5f switch-CHAIN-4.3.orig-HEAD.o
|
||||
|
||||
|
||||
Content-Type: text/x-diff; charset=us-ascii
|
||||
Content-Disposition: attachment; filename="gcc-4.3.gcc-flatten-switch-stmt.00.diff"
|
||||
|
||||
Index: gcc-4.2.0/gcc/stmt.c
|
||||
===================================================================
|
||||
--- gcc-4.2.0.orig/gcc/stmt.c (revision 123843)
|
||||
+++ gcc-4.2.0/gcc/stmt.c (working copy)
|
||||
@@ -2517,7 +2517,11 @@ expand_case (tree exp)
|
||||
use_cost_table
|
||||
= (TREE_CODE (orig_type) != ENUMERAL_TYPE
|
||||
&& estimate_case_costs (case_list));
|
||||
- balance_case_nodes (&case_list, NULL);
|
||||
+ /* When optimizing for size, we want a straight list to avoid
|
||||
+ jumps as much as possible. This basically creates an if-else
|
||||
+ chain. */
|
||||
+ if (!optimize_size)
|
||||
+ balance_case_nodes (&case_list, NULL);
|
||||
emit_case_nodes (index, case_list, default_label, index_type);
|
||||
emit_jump (default_label);
|
||||
}
|
||||
@@ -3075,6 +3079,7 @@ emit_case_nodes (rtx index, case_node_pt
|
||||
{
|
||||
if (!node_has_low_bound (node, index_type))
|
||||
{
|
||||
+ if (!optimize_size) /* don't jl to the .default_label. */
|
||||
emit_cmp_and_jump_insns (index,
|
||||
convert_modes
|
||||
(mode, imode,
|
||||
|
||||
|
||||
Content-Type: text/x-csrc; charset=us-ascii
|
||||
Content-Disposition: attachment; filename="switch.c"
|
||||
|
||||
int
|
||||
commutative_tree_code (int code)
|
||||
{
|
||||
#define CASE(val, ret) case val:/* __asm__("# val="#val ",ret="#ret);*/ return ret;
|
||||
#ifndef CHAIN
|
||||
switch (code)
|
||||
{
|
||||
# if 1
|
||||
CASE(1,3)
|
||||
CASE(3,2)
|
||||
CASE(5,8)
|
||||
CASE(7,1)
|
||||
CASE(33,4)
|
||||
CASE(44,9)
|
||||
CASE(55,10)
|
||||
CASE(66,-1)
|
||||
CASE(77,99)
|
||||
CASE(666,0)
|
||||
# else
|
||||
case 1:
|
||||
return 3;
|
||||
case 3:
|
||||
return 2;
|
||||
case 5:
|
||||
return 8;
|
||||
case 7:
|
||||
return 1;
|
||||
case 33:
|
||||
return 4;
|
||||
case 44:
|
||||
return 9;
|
||||
case 55:
|
||||
return 10;
|
||||
case 66:
|
||||
return -1;
|
||||
case 77:
|
||||
return 99;
|
||||
case 666:
|
||||
return 0;
|
||||
# endif
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return 4711;
|
||||
|
||||
#else
|
||||
if (code == 1)
|
||||
return 3;
|
||||
else if (code == 3)
|
||||
return 2;
|
||||
else if (code == 5)
|
||||
return 8;
|
||||
else if (code == 7)
|
||||
return 1;
|
||||
else if (code == 33)
|
||||
return 4;
|
||||
else if (code == 44)
|
||||
return 9;
|
||||
else if (code == 55)
|
||||
return 10;
|
||||
else if (code == 66)
|
||||
return -1;
|
||||
else if (code == 77)
|
||||
return 99;
|
||||
else if (code == 666)
|
||||
return 0;
|
||||
else
|
||||
return 4711;
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
--AhhlLboLdkugWU4S--
|
||||
|
||||
@@ -1,200 +0,0 @@
|
||||
--- gcc/libgomp/configure
|
||||
+++ gcc/libgomp/configure
|
||||
@@ -3771,7 +3771,7 @@
|
||||
;;
|
||||
|
||||
# This must be Linux ELF.
|
||||
-linux-gnu*)
|
||||
+linux*)
|
||||
lt_cv_deplibs_check_method=pass_all
|
||||
;;
|
||||
|
||||
--- gcc/gcc/config/cris/linux.h
|
||||
+++ gcc/gcc/config/cris/linux.h
|
||||
@@ -74,7 +74,11 @@
|
||||
#define CRIS_DEFAULT_CPU_VERSION CRIS_CPU_NG
|
||||
|
||||
#undef CRIS_SUBTARGET_VERSION
|
||||
-#define CRIS_SUBTARGET_VERSION " - cris-axis-linux-gnu"
|
||||
+#if UCLIBC_DEFAULT
|
||||
+# define CRIS_SUBTARGET_VERSION " - cris-axis-linux-uclibc"
|
||||
+#else
|
||||
+# define CRIS_SUBTARGET_VERSION " - cris-axis-linux-gnu"
|
||||
+#endif
|
||||
|
||||
#define GLIBC_DYNAMIC_LINKER "/lib/ld.so.1"
|
||||
|
||||
--- gcc/libstdc++-v3/configure
|
||||
+++ gcc/libstdc++-v3/configure
|
||||
@@ -4276,7 +4276,7 @@
|
||||
;;
|
||||
|
||||
# This must be Linux ELF.
|
||||
-linux-gnu*)
|
||||
+linux*)
|
||||
lt_cv_deplibs_check_method=pass_all
|
||||
;;
|
||||
|
||||
--- gcc/zlib/configure
|
||||
+++ gcc/zlib/configure
|
||||
@@ -3422,7 +3422,7 @@
|
||||
;;
|
||||
|
||||
# This must be Linux ELF.
|
||||
-linux-gnu*)
|
||||
+linux*)
|
||||
lt_cv_deplibs_check_method=pass_all
|
||||
;;
|
||||
|
||||
--- gcc/libobjc/configure
|
||||
+++ gcc/libobjc/configure
|
||||
@@ -3309,7 +3309,7 @@
|
||||
;;
|
||||
|
||||
# This must be Linux ELF.
|
||||
-linux-gnu*)
|
||||
+linux*)
|
||||
lt_cv_deplibs_check_method=pass_all
|
||||
;;
|
||||
|
||||
--- gcc/libgfortran/configure
|
||||
+++ gcc/libgfortran/configure
|
||||
@@ -3695,7 +3695,7 @@
|
||||
;;
|
||||
|
||||
# This must be Linux ELF.
|
||||
-linux-gnu*)
|
||||
+linux*)
|
||||
lt_cv_deplibs_check_method=pass_all
|
||||
;;
|
||||
|
||||
--- gcc/libmudflap/configure
|
||||
+++ gcc/libmudflap/configure
|
||||
@@ -5378,7 +5378,7 @@
|
||||
;;
|
||||
|
||||
# This must be Linux ELF.
|
||||
-linux-gnu*)
|
||||
+linux*)
|
||||
lt_cv_deplibs_check_method=pass_all
|
||||
;;
|
||||
|
||||
--- gcc/boehm-gc/configure
|
||||
+++ gcc/boehm-gc/configure
|
||||
@@ -4316,7 +4316,7 @@
|
||||
;;
|
||||
|
||||
# This must be Linux ELF.
|
||||
-linux-gnu*)
|
||||
+linux*)
|
||||
lt_cv_deplibs_check_method=pass_all
|
||||
;;
|
||||
|
||||
--- gcc/libffi/configure
|
||||
+++ gcc/libffi/configure
|
||||
@@ -3453,7 +3453,7 @@
|
||||
;;
|
||||
|
||||
# This must be Linux ELF.
|
||||
-linux-gnu*)
|
||||
+linux*)
|
||||
lt_cv_deplibs_check_method=pass_all
|
||||
;;
|
||||
|
||||
--- gcc/libssp/configure
|
||||
+++ gcc/libssp/configure
|
||||
@@ -4409,7 +4409,7 @@
|
||||
;;
|
||||
|
||||
# This must be Linux ELF.
|
||||
-linux-gnu*)
|
||||
+linux*)
|
||||
lt_cv_deplibs_check_method=pass_all
|
||||
;;
|
||||
|
||||
--- gcc/contrib/regression/objs-gcc.sh
|
||||
+++ gcc/contrib/regression/objs-gcc.sh
|
||||
@@ -105,6 +105,10 @@
|
||||
then
|
||||
make all-gdb all-dejagnu all-ld || exit 1
|
||||
make install-gdb install-dejagnu install-ld || exit 1
|
||||
+elif [ $H_REAL_TARGET = $H_REAL_HOST -a $H_REAL_TARGET = i686-pc-linux-uclibc ]
|
||||
+ then
|
||||
+ make all-gdb all-dejagnu all-ld || exit 1
|
||||
+ make install-gdb install-dejagnu install-ld || exit 1
|
||||
elif [ $H_REAL_TARGET = $H_REAL_HOST ] ; then
|
||||
make bootstrap || exit 1
|
||||
make install || exit 1
|
||||
--- gcc/libjava/classpath/ltconfig
|
||||
+++ gcc/libjava/classpath/ltconfig
|
||||
@@ -603,7 +603,7 @@
|
||||
|
||||
# Transform linux* to *-*-linux-gnu*, to support old configure scripts.
|
||||
case $host_os in
|
||||
-linux-gnu*) ;;
|
||||
+linux-gnu*|linux-uclibc*) ;;
|
||||
linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'`
|
||||
esac
|
||||
|
||||
@@ -1251,7 +1251,7 @@
|
||||
;;
|
||||
|
||||
# This must be Linux ELF.
|
||||
-linux-gnu*)
|
||||
+linux*)
|
||||
version_type=linux
|
||||
need_lib_prefix=no
|
||||
need_version=no
|
||||
--- gcc/libjava/classpath/configure
|
||||
+++ gcc/libjava/classpath/configure
|
||||
@@ -4665,7 +4665,7 @@
|
||||
;;
|
||||
|
||||
# This must be Linux ELF.
|
||||
-linux-gnu*)
|
||||
+linux*)
|
||||
lt_cv_deplibs_check_method=pass_all
|
||||
;;
|
||||
|
||||
--- gcc/libjava/configure
|
||||
+++ gcc/libjava/configure
|
||||
@@ -5212,7 +5212,7 @@
|
||||
;;
|
||||
|
||||
# This must be Linux ELF.
|
||||
-linux-gnu*)
|
||||
+linux*)
|
||||
lt_cv_deplibs_check_method=pass_all
|
||||
;;
|
||||
|
||||
--- gcc/libtool.m4
|
||||
+++ gcc/libtool.m4
|
||||
@@ -739,7 +739,7 @@
|
||||
;;
|
||||
|
||||
# This must be Linux ELF.
|
||||
-linux-gnu*)
|
||||
+linux*)
|
||||
lt_cv_deplibs_check_method=pass_all
|
||||
;;
|
||||
|
||||
--- gcc/ltconfig
|
||||
+++ gcc/ltconfig
|
||||
@@ -603,7 +603,7 @@
|
||||
|
||||
# Transform linux* to *-*-linux-gnu*, to support old configure scripts.
|
||||
case $host_os in
|
||||
-linux-gnu*) ;;
|
||||
+linux-gnu*|linux-uclibc*) ;;
|
||||
linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'`
|
||||
esac
|
||||
|
||||
@@ -1251,7 +1251,7 @@
|
||||
;;
|
||||
|
||||
# This must be Linux ELF.
|
||||
-linux-gnu*)
|
||||
+linux*)
|
||||
version_type=linux
|
||||
need_lib_prefix=no
|
||||
need_version=no
|
||||
@@ -1,11 +0,0 @@
|
||||
--- gcc/gcc/config.gcc.uclibc100-sh~ 2006-03-06 20:46:56 +0100
|
||||
+++ gcc/gcc/config.gcc 2006-03-10 15:02:41 +0100
|
||||
@@ -1905,7 +1905,7 @@
|
||||
;;
|
||||
sh-*-elf* | sh[12346l]*-*-elf* | sh*-*-kaos* | \
|
||||
sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | \
|
||||
- sh-*-linux* | sh[346lbe]*-*-linux* | \
|
||||
+ sh*-*-linux* | sh[346lbe]*-*-linux* | \
|
||||
sh-*-netbsdelf* | shl*-*-netbsdelf* | sh5-*-netbsd* | sh5l*-*-netbsd* | \
|
||||
sh64-*-netbsd* | sh64l*-*-netbsd*)
|
||||
tmake_file="${tmake_file} sh/t-sh sh/t-elf"
|
||||
@@ -1,13 +0,0 @@
|
||||
diff -rdup gcc-4.2.1.oorig/gcc/config.gcc gcc-4.2.1/gcc/config.gcc
|
||||
--- gcc-4.2.1.oorig/gcc/config.gcc 2007-10-01 11:52:52.000000000 +0200
|
||||
+++ gcc-4.2.1/gcc/config.gcc 2007-10-01 13:22:12.000000000 +0200
|
||||
@@ -494,6 +494,9 @@ case ${target} in
|
||||
alpha*)
|
||||
tm_file="${cpu_type}/${cpu_type}.h alpha/elf.h alpha/linux.h alpha/linux-elf.h gnu.h ${tm_file}"
|
||||
;;
|
||||
+ i[34567]86-*hurd*-*)
|
||||
+ tm_file="${cpu_type}/${cpu_type}.h i386/unix.h i386/att.h dbxelf.h elfos.h svr4.h i386/gnu.h gnu.h ${tm_file}"
|
||||
+ ;;
|
||||
i[34567]86-*-*)
|
||||
tm_file="${cpu_type}/${cpu_type}.h i386/unix.h i386/att.h dbxelf.h elfos.h svr4.h linux.h i386/linux.h gnu.h ${tm_file}"
|
||||
;;
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,213 +0,0 @@
|
||||
--- gcc/libstdc++-v3/config/locale/uclibc/c++locale_internal.h.uclibc200no__x~ 2006-03-10 15:06:17 +0100
|
||||
+++ gcc/libstdc++-v3/config/locale/uclibc/c++locale_internal.h 2006-03-10 15:32:37 +0100
|
||||
@@ -60,4 +60,49 @@
|
||||
extern "C" __typeof(wctype_l) __wctype_l;
|
||||
#endif
|
||||
|
||||
+# define __nl_langinfo_l nl_langinfo_l
|
||||
+# define __strcoll_l strcoll_l
|
||||
+# define __strftime_l strftime_l
|
||||
+# define __strtod_l strtod_l
|
||||
+# define __strtof_l strtof_l
|
||||
+# define __strtold_l strtold_l
|
||||
+# define __strxfrm_l strxfrm_l
|
||||
+# define __newlocale newlocale
|
||||
+# define __freelocale freelocale
|
||||
+# define __duplocale duplocale
|
||||
+# define __uselocale uselocale
|
||||
+
|
||||
+# ifdef _GLIBCXX_USE_WCHAR_T
|
||||
+# define __iswctype_l iswctype_l
|
||||
+# define __towlower_l towlower_l
|
||||
+# define __towupper_l towupper_l
|
||||
+# define __wcscoll_l wcscoll_l
|
||||
+# define __wcsftime_l wcsftime_l
|
||||
+# define __wcsxfrm_l wcsxfrm_l
|
||||
+# define __wctype_l wctype_l
|
||||
+# endif
|
||||
+
|
||||
+#else
|
||||
+# define __nl_langinfo_l(N, L) nl_langinfo((N))
|
||||
+# define __strcoll_l(S1, S2, L) strcoll((S1), (S2))
|
||||
+# define __strtod_l(S, E, L) strtod((S), (E))
|
||||
+# define __strtof_l(S, E, L) strtof((S), (E))
|
||||
+# define __strtold_l(S, E, L) strtold((S), (E))
|
||||
+# define __strxfrm_l(S1, S2, N, L) strxfrm((S1), (S2), (N))
|
||||
+# warning should dummy __newlocale check for C|POSIX ?
|
||||
+# define __newlocale(a, b, c) NULL
|
||||
+# define __freelocale(a) ((void)0)
|
||||
+# define __duplocale(a) __c_locale()
|
||||
+//# define __uselocale ?
|
||||
+//
|
||||
+# ifdef _GLIBCXX_USE_WCHAR_T
|
||||
+# define __iswctype_l(C, M, L) iswctype((C), (M))
|
||||
+# define __towlower_l(C, L) towlower((C))
|
||||
+# define __towupper_l(C, L) towupper((C))
|
||||
+# define __wcscoll_l(S1, S2, L) wcscoll((S1), (S2))
|
||||
+//# define __wcsftime_l(S, M, F, T, L) wcsftime((S), (M), (F), (T))
|
||||
+# define __wcsxfrm_l(S1, S2, N, L) wcsxfrm((S1), (S2), (N))
|
||||
+# define __wctype_l(S, L) wctype((S))
|
||||
+# endif
|
||||
+
|
||||
#endif // GLIBC 2.3 and later
|
||||
--- gcc/libstdc++-v3/config/locale/uclibc/c_locale.cc.uclibc200no__x~ 2006-03-10 15:06:17 +0100
|
||||
+++ gcc/libstdc++-v3/config/locale/uclibc/c_locale.cc 2006-03-10 15:32:37 +0100
|
||||
@@ -39,20 +39,6 @@
|
||||
#include <langinfo.h>
|
||||
#include <bits/c++locale_internal.h>
|
||||
|
||||
-#ifndef __UCLIBC_HAS_XLOCALE__
|
||||
-#define __strtol_l(S, E, B, L) strtol((S), (E), (B))
|
||||
-#define __strtoul_l(S, E, B, L) strtoul((S), (E), (B))
|
||||
-#define __strtoll_l(S, E, B, L) strtoll((S), (E), (B))
|
||||
-#define __strtoull_l(S, E, B, L) strtoull((S), (E), (B))
|
||||
-#define __strtof_l(S, E, L) strtof((S), (E))
|
||||
-#define __strtod_l(S, E, L) strtod((S), (E))
|
||||
-#define __strtold_l(S, E, L) strtold((S), (E))
|
||||
-#warning should dummy __newlocale check for C|POSIX ?
|
||||
-#define __newlocale(a, b, c) NULL
|
||||
-#define __freelocale(a) ((void)0)
|
||||
-#define __duplocale(a) __c_locale()
|
||||
-#endif
|
||||
-
|
||||
namespace std
|
||||
{
|
||||
template<>
|
||||
--- gcc/libstdc++-v3/config/locale/uclibc/collate_members.cc.uclibc200no__x~ 2006-03-10 15:06:17 +0100
|
||||
+++ gcc/libstdc++-v3/config/locale/uclibc/collate_members.cc 2006-03-10 15:32:37 +0100
|
||||
@@ -36,13 +36,6 @@
|
||||
#include <locale>
|
||||
#include <bits/c++locale_internal.h>
|
||||
|
||||
-#ifndef __UCLIBC_HAS_XLOCALE__
|
||||
-#define __strcoll_l(S1, S2, L) strcoll((S1), (S2))
|
||||
-#define __strxfrm_l(S1, S2, N, L) strxfrm((S1), (S2), (N))
|
||||
-#define __wcscoll_l(S1, S2, L) wcscoll((S1), (S2))
|
||||
-#define __wcsxfrm_l(S1, S2, N, L) wcsxfrm((S1), (S2), (N))
|
||||
-#endif
|
||||
-
|
||||
namespace std
|
||||
{
|
||||
// These are basically extensions to char_traits, and perhaps should
|
||||
--- gcc/libstdc++-v3/config/locale/uclibc/monetary_members.cc.uclibc200no__x~ 2006-03-10 15:06:17 +0100
|
||||
+++ gcc/libstdc++-v3/config/locale/uclibc/monetary_members.cc 2006-03-10 15:32:37 +0100
|
||||
@@ -43,10 +43,6 @@
|
||||
#warning tailor for stub locale support
|
||||
#endif
|
||||
|
||||
-#ifndef __UCLIBC_HAS_XLOCALE__
|
||||
-#define __nl_langinfo_l(N, L) nl_langinfo((N))
|
||||
-#endif
|
||||
-
|
||||
namespace std
|
||||
{
|
||||
// Construct and return valid pattern consisting of some combination of:
|
||||
--- gcc/libstdc++-v3/config/locale/uclibc/numeric_members.cc.uclibc200no__x~ 2006-03-10 15:06:17 +0100
|
||||
+++ gcc/libstdc++-v3/config/locale/uclibc/numeric_members.cc 2006-03-10 15:32:37 +0100
|
||||
@@ -41,9 +41,6 @@
|
||||
#ifdef __UCLIBC_MJN3_ONLY__
|
||||
#warning tailor for stub locale support
|
||||
#endif
|
||||
-#ifndef __UCLIBC_HAS_XLOCALE__
|
||||
-#define __nl_langinfo_l(N, L) nl_langinfo((N))
|
||||
-#endif
|
||||
|
||||
namespace std
|
||||
{
|
||||
--- gcc/libstdc++-v3/config/locale/uclibc/time_members.cc.uclibc200no__x~ 2006-03-10 15:06:17 +0100
|
||||
+++ gcc/libstdc++-v3/config/locale/uclibc/time_members.cc 2006-03-10 15:32:37 +0100
|
||||
@@ -40,9 +40,6 @@
|
||||
#ifdef __UCLIBC_MJN3_ONLY__
|
||||
#warning tailor for stub locale support
|
||||
#endif
|
||||
-#ifndef __UCLIBC_HAS_XLOCALE__
|
||||
-#define __nl_langinfo_l(N, L) nl_langinfo((N))
|
||||
-#endif
|
||||
|
||||
namespace std
|
||||
{
|
||||
--- gcc/libstdc++-v3/config/locale/uclibc/ctype_members.cc.uclibc200no__x~ 2006-03-10 15:06:17 +0100
|
||||
+++ gcc/libstdc++-v3/config/locale/uclibc/ctype_members.cc 2006-03-10 15:32:37 +0100
|
||||
@@ -38,13 +38,6 @@
|
||||
#undef _LIBC
|
||||
#include <bits/c++locale_internal.h>
|
||||
|
||||
-#ifndef __UCLIBC_HAS_XLOCALE__
|
||||
-#define __wctype_l(S, L) wctype((S))
|
||||
-#define __towupper_l(C, L) towupper((C))
|
||||
-#define __towlower_l(C, L) towlower((C))
|
||||
-#define __iswctype_l(C, M, L) iswctype((C), (M))
|
||||
-#endif
|
||||
-
|
||||
namespace std
|
||||
{
|
||||
// NB: The other ctype<char> specializations are in src/locale.cc and
|
||||
--- gcc/libstdc++-v3/config/locale/uclibc/messages_members.cc.uclibc200no__x~ 2006-03-10 15:06:17 +0100
|
||||
+++ gcc/libstdc++-v3/config/locale/uclibc/messages_members.cc 2006-03-10 15:32:37 +0100
|
||||
@@ -39,13 +39,10 @@
|
||||
#ifdef __UCLIBC_MJN3_ONLY__
|
||||
#warning fix gettext stuff
|
||||
#endif
|
||||
-#ifdef __UCLIBC_HAS_GETTEXT_AWARENESS__
|
||||
-extern "C" char *__dcgettext(const char *domainname,
|
||||
- const char *msgid, int category);
|
||||
#undef gettext
|
||||
-#define gettext(msgid) __dcgettext(NULL, msgid, LC_MESSAGES)
|
||||
+#ifdef __UCLIBC_HAS_GETTEXT_AWARENESS__
|
||||
+#define gettext(msgid) dcgettext(NULL, msgid, LC_MESSAGES)
|
||||
#else
|
||||
-#undef gettext
|
||||
#define gettext(msgid) (msgid)
|
||||
#endif
|
||||
|
||||
--- gcc/libstdc++-v3/config/locale/uclibc/messages_members.h.uclibc200no__x~ 2006-03-10 15:06:17 +0100
|
||||
+++ gcc/libstdc++-v3/config/locale/uclibc/messages_members.h 2006-03-10 15:32:37 +0100
|
||||
@@ -36,15 +36,11 @@
|
||||
#ifdef __UCLIBC_MJN3_ONLY__
|
||||
#warning fix prototypes for *textdomain funcs
|
||||
#endif
|
||||
-#ifdef __UCLIBC_HAS_GETTEXT_AWARENESS__
|
||||
-extern "C" char *__textdomain(const char *domainname);
|
||||
-extern "C" char *__bindtextdomain(const char *domainname,
|
||||
- const char *dirname);
|
||||
-#else
|
||||
-#undef __textdomain
|
||||
-#undef __bindtextdomain
|
||||
-#define __textdomain(D) ((void)0)
|
||||
-#define __bindtextdomain(D,P) ((void)0)
|
||||
+#ifndef __UCLIBC_HAS_GETTEXT_AWARENESS__
|
||||
+#undef textdomain
|
||||
+#undef bindtextdomain
|
||||
+#define textdomain(D) ((void)0)
|
||||
+#define bindtextdomain(D,P) ((void)0)
|
||||
#endif
|
||||
|
||||
// Non-virtual member functions.
|
||||
@@ -70,7 +66,7 @@
|
||||
messages<_CharT>::open(const basic_string<char>& __s, const locale& __loc,
|
||||
const char* __dir) const
|
||||
{
|
||||
- __bindtextdomain(__s.c_str(), __dir);
|
||||
+ bindtextdomain(__s.c_str(), __dir);
|
||||
return this->do_open(__s, __loc);
|
||||
}
|
||||
|
||||
@@ -90,7 +86,7 @@
|
||||
{
|
||||
// No error checking is done, assume the catalog exists and can
|
||||
// be used.
|
||||
- __textdomain(__s.c_str());
|
||||
+ textdomain(__s.c_str());
|
||||
return 0;
|
||||
}
|
||||
|
||||
--- gcc/libstdc++-v3/config/locale/uclibc/c_locale.h.uclibc200no__x~ 2006-03-10 15:06:17 +0100
|
||||
+++ gcc/libstdc++-v3/config/locale/uclibc/c_locale.h 2006-03-10 15:32:37 +0100
|
||||
@@ -68,6 +68,7 @@
|
||||
{
|
||||
extern "C" __typeof(uselocale) __uselocale;
|
||||
}
|
||||
+#define __uselocale uselocale
|
||||
#endif
|
||||
|
||||
namespace std
|
||||
@@ -1,48 +0,0 @@
|
||||
--- gcc/libstdc++-v3/config/locale/uclibc/monetary_members.cc.uclibc200_wchar~ 2006-03-10 15:32:37 +0100
|
||||
+++ gcc/libstdc++-v3/config/locale/uclibc/monetary_members.cc 2006-03-10 15:37:27 +0100
|
||||
@@ -401,7 +401,7 @@
|
||||
# ifdef __UCLIBC_HAS_XLOCALE__
|
||||
_M_data->_M_decimal_point = __cloc->decimal_point_wc;
|
||||
_M_data->_M_thousands_sep = __cloc->thousands_sep_wc;
|
||||
-# else
|
||||
+# elif defined __UCLIBC_HAS_LOCALE__
|
||||
_M_data->_M_decimal_point = __global_locale->decimal_point_wc;
|
||||
_M_data->_M_thousands_sep = __global_locale->thousands_sep_wc;
|
||||
# endif
|
||||
@@ -556,7 +556,7 @@
|
||||
# ifdef __UCLIBC_HAS_XLOCALE__
|
||||
_M_data->_M_decimal_point = __cloc->decimal_point_wc;
|
||||
_M_data->_M_thousands_sep = __cloc->thousands_sep_wc;
|
||||
-# else
|
||||
+# elif defined __UCLIBC_HAS_LOCALE__
|
||||
_M_data->_M_decimal_point = __global_locale->decimal_point_wc;
|
||||
_M_data->_M_thousands_sep = __global_locale->thousands_sep_wc;
|
||||
# endif
|
||||
--- gcc/libstdc++-v3/config/locale/uclibc/numeric_members.cc.uclibc200_wchar~ 2006-03-10 15:32:37 +0100
|
||||
+++ gcc/libstdc++-v3/config/locale/uclibc/numeric_members.cc 2006-03-10 15:37:27 +0100
|
||||
@@ -127,12 +127,25 @@
|
||||
{
|
||||
// Named locale.
|
||||
// NB: In the GNU model wchar_t is always 32 bit wide.
|
||||
+#ifdef __UCLIBC_MJN3_ONLY__
|
||||
+#warning fix this... should be numeric
|
||||
+#endif
|
||||
+#ifdef __UCLIBC__
|
||||
+# ifdef __UCLIBC_HAS_XLOCALE__
|
||||
+ _M_data->_M_decimal_point = __cloc->decimal_point_wc;
|
||||
+ _M_data->_M_thousands_sep = __cloc->thousands_sep_wc;
|
||||
+# elif defined __UCLIBC_HAS_LOCALE__
|
||||
+ _M_data->_M_decimal_point = __global_locale->decimal_point_wc;
|
||||
+ _M_data->_M_thousands_sep = __global_locale->thousands_sep_wc;
|
||||
+# endif
|
||||
+#else
|
||||
union { char *__s; wchar_t __w; } __u;
|
||||
__u.__s = __nl_langinfo_l(_NL_NUMERIC_DECIMAL_POINT_WC, __cloc);
|
||||
_M_data->_M_decimal_point = __u.__w;
|
||||
|
||||
__u.__s = __nl_langinfo_l(_NL_NUMERIC_THOUSANDS_SEP_WC, __cloc);
|
||||
_M_data->_M_thousands_sep = __u.__w;
|
||||
+#endif
|
||||
|
||||
if (_M_data->_M_thousands_sep == L'\0')
|
||||
_M_data->_M_grouping = "";
|
||||
@@ -1,347 +0,0 @@
|
||||
--- gcc/libstdc++-v3/config/locale/uclibc/c_locale.cc.uclibc200_update~ 2006-03-10 15:32:37 +0100
|
||||
+++ gcc/libstdc++-v3/config/locale/uclibc/c_locale.cc 2006-03-10 15:39:14 +0100
|
||||
@@ -46,16 +47,13 @@
|
||||
__convert_to_v(const char* __s, float& __v, ios_base::iostate& __err,
|
||||
const __c_locale& __cloc)
|
||||
{
|
||||
- if (!(__err & ios_base::failbit))
|
||||
- {
|
||||
- char* __sanity;
|
||||
- errno = 0;
|
||||
- float __f = __strtof_l(__s, &__sanity, __cloc);
|
||||
- if (__sanity != __s && errno != ERANGE)
|
||||
- __v = __f;
|
||||
- else
|
||||
- __err |= ios_base::failbit;
|
||||
- }
|
||||
+ char* __sanity;
|
||||
+ errno = 0;
|
||||
+ float __f = __strtof_l(__s, &__sanity, __cloc);
|
||||
+ if (__sanity != __s && errno != ERANGE)
|
||||
+ __v = __f;
|
||||
+ else
|
||||
+ __err |= ios_base::failbit;
|
||||
}
|
||||
|
||||
template<>
|
||||
@@ -63,16 +61,13 @@
|
||||
__convert_to_v(const char* __s, double& __v, ios_base::iostate& __err,
|
||||
const __c_locale& __cloc)
|
||||
{
|
||||
- if (!(__err & ios_base::failbit))
|
||||
- {
|
||||
- char* __sanity;
|
||||
- errno = 0;
|
||||
- double __d = __strtod_l(__s, &__sanity, __cloc);
|
||||
- if (__sanity != __s && errno != ERANGE)
|
||||
- __v = __d;
|
||||
- else
|
||||
- __err |= ios_base::failbit;
|
||||
- }
|
||||
+ char* __sanity;
|
||||
+ errno = 0;
|
||||
+ double __d = __strtod_l(__s, &__sanity, __cloc);
|
||||
+ if (__sanity != __s && errno != ERANGE)
|
||||
+ __v = __d;
|
||||
+ else
|
||||
+ __err |= ios_base::failbit;
|
||||
}
|
||||
|
||||
template<>
|
||||
@@ -80,16 +75,13 @@
|
||||
__convert_to_v(const char* __s, long double& __v, ios_base::iostate& __err,
|
||||
const __c_locale& __cloc)
|
||||
{
|
||||
- if (!(__err & ios_base::failbit))
|
||||
- {
|
||||
- char* __sanity;
|
||||
- errno = 0;
|
||||
- long double __ld = __strtold_l(__s, &__sanity, __cloc);
|
||||
- if (__sanity != __s && errno != ERANGE)
|
||||
- __v = __ld;
|
||||
- else
|
||||
- __err |= ios_base::failbit;
|
||||
- }
|
||||
+ char* __sanity;
|
||||
+ errno = 0;
|
||||
+ long double __ld = __strtold_l(__s, &__sanity, __cloc);
|
||||
+ if (__sanity != __s && errno != ERANGE)
|
||||
+ __v = __ld;
|
||||
+ else
|
||||
+ __err |= ios_base::failbit;
|
||||
}
|
||||
|
||||
void
|
||||
@@ -110,7 +102,7 @@
|
||||
void
|
||||
locale::facet::_S_destroy_c_locale(__c_locale& __cloc)
|
||||
{
|
||||
- if (_S_get_c_locale() != __cloc)
|
||||
+ if (__cloc && _S_get_c_locale() != __cloc)
|
||||
__freelocale(__cloc);
|
||||
}
|
||||
|
||||
--- gcc/libstdc++-v3/config/locale/uclibc/ctype_members.cc.uclibc200_update~ 2006-03-10 15:32:37 +0100
|
||||
+++ gcc/libstdc++-v3/config/locale/uclibc/ctype_members.cc 2006-03-10 15:39:14 +0100
|
||||
@@ -33,9 +33,14 @@
|
||||
|
||||
// Written by Benjamin Kosnik <bkoz@redhat.com>
|
||||
|
||||
+#include <features.h>
|
||||
+#ifdef __UCLIBC_HAS_LOCALE__
|
||||
#define _LIBC
|
||||
#include <locale>
|
||||
#undef _LIBC
|
||||
+#else
|
||||
+#include <locale>
|
||||
+#endif
|
||||
#include <bits/c++locale_internal.h>
|
||||
|
||||
namespace std
|
||||
@@ -138,20 +143,34 @@
|
||||
ctype<wchar_t>::
|
||||
do_is(mask __m, wchar_t __c) const
|
||||
{
|
||||
- // Highest bitmask in ctype_base == 10, but extra in "C"
|
||||
- // library for blank.
|
||||
+ // The case of __m == ctype_base::space is particularly important,
|
||||
+ // due to its use in many istream functions. Therefore we deal with
|
||||
+ // it first, exploiting the knowledge that on GNU systems _M_bit[5]
|
||||
+ // is the mask corresponding to ctype_base::space. NB: an encoding
|
||||
+ // change would not affect correctness!
|
||||
bool __ret = false;
|
||||
- const size_t __bitmasksize = 11;
|
||||
- for (size_t __bitcur = 0; __bitcur <= __bitmasksize; ++__bitcur)
|
||||
- if (__m & _M_bit[__bitcur]
|
||||
- && __iswctype_l(__c, _M_wmask[__bitcur], _M_c_locale_ctype))
|
||||
- {
|
||||
- __ret = true;
|
||||
- break;
|
||||
- }
|
||||
+ if (__m == _M_bit[5])
|
||||
+ __ret = __iswctype_l(__c, _M_wmask[5], _M_c_locale_ctype);
|
||||
+ else
|
||||
+ {
|
||||
+ // Highest bitmask in ctype_base == 10, but extra in "C"
|
||||
+ // library for blank.
|
||||
+ const size_t __bitmasksize = 11;
|
||||
+ for (size_t __bitcur = 0; __bitcur <= __bitmasksize; ++__bitcur)
|
||||
+ if (__m & _M_bit[__bitcur])
|
||||
+ {
|
||||
+ if (__iswctype_l(__c, _M_wmask[__bitcur], _M_c_locale_ctype))
|
||||
+ {
|
||||
+ __ret = true;
|
||||
+ break;
|
||||
+ }
|
||||
+ else if (__m == _M_bit[__bitcur])
|
||||
+ break;
|
||||
+ }
|
||||
+ }
|
||||
return __ret;
|
||||
}
|
||||
-
|
||||
+
|
||||
const wchar_t*
|
||||
ctype<wchar_t>::
|
||||
do_is(const wchar_t* __lo, const wchar_t* __hi, mask* __vec) const
|
||||
--- gcc/libstdc++-v3/config/locale/uclibc/messages_members.h.uclibc200_update~ 2006-03-10 15:32:37 +0100
|
||||
+++ gcc/libstdc++-v3/config/locale/uclibc/messages_members.h 2006-03-10 15:39:14 +0100
|
||||
@@ -47,18 +47,21 @@
|
||||
template<typename _CharT>
|
||||
messages<_CharT>::messages(size_t __refs)
|
||||
: facet(__refs), _M_c_locale_messages(_S_get_c_locale()),
|
||||
- _M_name_messages(_S_get_c_name())
|
||||
+ _M_name_messages(_S_get_c_name())
|
||||
{ }
|
||||
|
||||
template<typename _CharT>
|
||||
messages<_CharT>::messages(__c_locale __cloc, const char* __s,
|
||||
size_t __refs)
|
||||
- : facet(__refs), _M_c_locale_messages(_S_clone_c_locale(__cloc)),
|
||||
- _M_name_messages(__s)
|
||||
+ : facet(__refs), _M_c_locale_messages(NULL), _M_name_messages(NULL)
|
||||
{
|
||||
- char* __tmp = new char[std::strlen(__s) + 1];
|
||||
- std::strcpy(__tmp, __s);
|
||||
+ const size_t __len = std::strlen(__s) + 1;
|
||||
+ char* __tmp = new char[__len];
|
||||
+ std::memcpy(__tmp, __s, __len);
|
||||
_M_name_messages = __tmp;
|
||||
+
|
||||
+ // Last to avoid leaking memory if new throws.
|
||||
+ _M_c_locale_messages = _S_clone_c_locale(__cloc);
|
||||
}
|
||||
|
||||
template<typename _CharT>
|
||||
--- gcc/libstdc++-v3/config/locale/uclibc/monetary_members.cc.uclibc200_update~ 2006-03-10 15:37:27 +0100
|
||||
+++ gcc/libstdc++-v3/config/locale/uclibc/monetary_members.cc 2006-03-10 15:39:14 +0100
|
||||
@@ -33,9 +33,14 @@
|
||||
|
||||
// Written by Benjamin Kosnik <bkoz@redhat.com>
|
||||
|
||||
+#include <features.h>
|
||||
+#ifdef __UCLIBC_HAS_LOCALE__
|
||||
#define _LIBC
|
||||
#include <locale>
|
||||
#undef _LIBC
|
||||
+#else
|
||||
+#include <locale>
|
||||
+#endif
|
||||
#include <bits/c++locale_internal.h>
|
||||
|
||||
#ifdef __UCLIBC_MJN3_ONLY__
|
||||
@@ -206,7 +211,7 @@
|
||||
}
|
||||
break;
|
||||
default:
|
||||
- ;
|
||||
+ __ret = pattern();
|
||||
}
|
||||
return __ret;
|
||||
}
|
||||
--- gcc/libstdc++-v3/config/locale/uclibc/numeric_members.cc.uclibc200_update~ 2006-03-10 15:37:27 +0100
|
||||
+++ gcc/libstdc++-v3/config/locale/uclibc/numeric_members.cc 2006-03-10 15:39:14 +0100
|
||||
@@ -33,9 +33,14 @@
|
||||
|
||||
// Written by Benjamin Kosnik <bkoz@redhat.com>
|
||||
|
||||
+#include <features.h>
|
||||
+#ifdef __UCLIBC_HAS_LOCALE__
|
||||
#define _LIBC
|
||||
#include <locale>
|
||||
#undef _LIBC
|
||||
+#else
|
||||
+#include <locale>
|
||||
+#endif
|
||||
#include <bits/c++locale_internal.h>
|
||||
|
||||
#ifdef __UCLIBC_MJN3_ONLY__
|
||||
--- gcc/libstdc++-v3/config/locale/uclibc/time_members.h.uclibc200_update~ 2006-03-10 15:06:17 +0100
|
||||
+++ gcc/libstdc++-v3/config/locale/uclibc/time_members.h 2006-03-10 15:39:14 +0100
|
||||
@@ -37,25 +37,33 @@
|
||||
template<typename _CharT>
|
||||
__timepunct<_CharT>::__timepunct(size_t __refs)
|
||||
: facet(__refs), _M_data(NULL), _M_c_locale_timepunct(NULL),
|
||||
- _M_name_timepunct(_S_get_c_name())
|
||||
+ _M_name_timepunct(_S_get_c_name())
|
||||
{ _M_initialize_timepunct(); }
|
||||
|
||||
template<typename _CharT>
|
||||
__timepunct<_CharT>::__timepunct(__cache_type* __cache, size_t __refs)
|
||||
: facet(__refs), _M_data(__cache), _M_c_locale_timepunct(NULL),
|
||||
- _M_name_timepunct(_S_get_c_name())
|
||||
+ _M_name_timepunct(_S_get_c_name())
|
||||
{ _M_initialize_timepunct(); }
|
||||
|
||||
template<typename _CharT>
|
||||
__timepunct<_CharT>::__timepunct(__c_locale __cloc, const char* __s,
|
||||
size_t __refs)
|
||||
: facet(__refs), _M_data(NULL), _M_c_locale_timepunct(NULL),
|
||||
- _M_name_timepunct(__s)
|
||||
+ _M_name_timepunct(NULL)
|
||||
{
|
||||
- char* __tmp = new char[std::strlen(__s) + 1];
|
||||
- std::strcpy(__tmp, __s);
|
||||
+ const size_t __len = std::strlen(__s) + 1;
|
||||
+ char* __tmp = new char[__len];
|
||||
+ std::memcpy(__tmp, __s, __len);
|
||||
_M_name_timepunct = __tmp;
|
||||
- _M_initialize_timepunct(__cloc);
|
||||
+
|
||||
+ try
|
||||
+ { _M_initialize_timepunct(__cloc); }
|
||||
+ catch(...)
|
||||
+ {
|
||||
+ delete [] _M_name_timepunct;
|
||||
+ __throw_exception_again;
|
||||
+ }
|
||||
}
|
||||
|
||||
template<typename _CharT>
|
||||
--- gcc-4.2/libstdc++-v3/config/locale/uclibc/c_locale.h.old 2006-09-28 11:39:00.000000000 +0200
|
||||
+++ gcc-4.2/libstdc++-v3/config/locale/uclibc/c_locale.h 2006-09-28 12:10:41.000000000 +0200
|
||||
@@ -39,21 +39,23 @@
|
||||
#pragma GCC system_header
|
||||
|
||||
#include <cstring> // get std::strlen
|
||||
-#include <cstdio> // get std::snprintf or std::sprintf
|
||||
+#include <cstdio> // get std::vsnprintf or std::vsprintf
|
||||
#include <clocale>
|
||||
#include <langinfo.h> // For codecvt
|
||||
#ifdef __UCLIBC_MJN3_ONLY__
|
||||
#warning fix this
|
||||
#endif
|
||||
-#ifdef __UCLIBC_HAS_LOCALE__
|
||||
+#ifdef _GLIBCXX_USE_ICONV
|
||||
#include <iconv.h> // For codecvt using iconv, iconv_t
|
||||
#endif
|
||||
-#ifdef __UCLIBC_HAS_GETTEXT_AWARENESS__
|
||||
-#include <libintl.h> // For messages
|
||||
+#ifdef HAVE_LIBINTL_H
|
||||
+#include <libintl.h> // For messages
|
||||
#endif
|
||||
+#include <cstdarg>
|
||||
|
||||
#ifdef __UCLIBC_MJN3_ONLY__
|
||||
#warning what is _GLIBCXX_C_LOCALE_GNU for
|
||||
+// psm: used in os/gnu-linux/ctype_noninline.h
|
||||
#endif
|
||||
#define _GLIBCXX_C_LOCALE_GNU 1
|
||||
|
||||
@@ -62,7 +64,7 @@
|
||||
#endif
|
||||
// #define _GLIBCXX_NUM_CATEGORIES 6
|
||||
#define _GLIBCXX_NUM_CATEGORIES 0
|
||||
-
|
||||
+
|
||||
#ifdef __UCLIBC_HAS_XLOCALE__
|
||||
namespace __gnu_cxx
|
||||
{
|
||||
@@ -79,22 +81,24 @@
|
||||
typedef int* __c_locale;
|
||||
#endif
|
||||
|
||||
- // Convert numeric value of type _Tv to string and return length of
|
||||
- // string. If snprintf is available use it, otherwise fall back to
|
||||
- // the unsafe sprintf which, in general, can be dangerous and should
|
||||
+ // Convert numeric value of type double to string and return length of
|
||||
+ // string. If vsnprintf is available use it, otherwise fall back to
|
||||
+ // the unsafe vsprintf which, in general, can be dangerous and should
|
||||
// be avoided.
|
||||
- template<typename _Tv>
|
||||
- int
|
||||
- __convert_from_v(char* __out,
|
||||
- const int __size __attribute__ ((__unused__)),
|
||||
- const char* __fmt,
|
||||
-#ifdef __UCLIBC_HAS_XCLOCALE__
|
||||
- _Tv __v, const __c_locale& __cloc, int __prec)
|
||||
+ inline int
|
||||
+ __convert_from_v(const __c_locale&
|
||||
+#ifndef __UCLIBC_HAS_XCLOCALE__
|
||||
+ __cloc __attribute__ ((__unused__))
|
||||
+#endif
|
||||
+ ,
|
||||
+ char* __out,
|
||||
+ const int __size,
|
||||
+ const char* __fmt, ...)
|
||||
{
|
||||
+ va_list __args;
|
||||
+#ifdef __UCLIBC_HAS_XCLOCALE__
|
||||
__c_locale __old = __gnu_cxx::__uselocale(__cloc);
|
||||
#else
|
||||
- _Tv __v, const __c_locale&, int __prec)
|
||||
- {
|
||||
# ifdef __UCLIBC_HAS_LOCALE__
|
||||
char* __old = std::setlocale(LC_ALL, NULL);
|
||||
char* __sav = new char[std::strlen(__old) + 1];
|
||||
@@ -103,7 +107,9 @@
|
||||
# endif
|
||||
#endif
|
||||
|
||||
- const int __ret = std::snprintf(__out, __size, __fmt, __prec, __v);
|
||||
+ va_start(__args, __fmt);
|
||||
+ const int __ret = std::vsnprintf(__out, __size, __fmt, __args);
|
||||
+ va_end(__args);
|
||||
|
||||
#ifdef __UCLIBC_HAS_XCLOCALE__
|
||||
__gnu_cxx::__uselocale(__old);
|
||||
@@ -1,50 +0,0 @@
|
||||
# DP: Build and install libstdc++_pic.a library.
|
||||
|
||||
--- gcc/libstdc++-v3/src/Makefile.am
|
||||
+++ gcc/libstdc++-v3/src/Makefile.am
|
||||
@@ -214,6 +214,12 @@
|
||||
$(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LDFLAGS) -o $@
|
||||
|
||||
|
||||
+install-exec-local:
|
||||
+ifeq ($(enable_shared),yes)
|
||||
+ $(AR) cru libstdc++_pic.a .libs/*.o $(top_builddir)/libsupc++/*.o
|
||||
+ $(INSTALL_DATA) libstdc++_pic.a $(DESTDIR)$(toolexeclibdir)
|
||||
+endif
|
||||
+
|
||||
# Added bits to build debug library.
|
||||
if GLIBCXX_BUILD_DEBUG
|
||||
all-local: build_debug
|
||||
--- gcc/libstdc++-v3/src/Makefile.in
|
||||
+++ gcc/libstdc++-v3/src/Makefile.in
|
||||
@@ -627,7 +627,7 @@
|
||||
|
||||
install-data-am: install-data-local
|
||||
|
||||
-install-exec-am: install-toolexeclibLTLIBRARIES
|
||||
+install-exec-am: install-toolexeclibLTLIBRARIES install-exec-local
|
||||
|
||||
install-info: install-info-am
|
||||
|
||||
@@ -660,6 +660,7 @@
|
||||
distclean-libtool distclean-tags distdir dvi dvi-am html \
|
||||
html-am info info-am install install-am install-data \
|
||||
install-data-am install-data-local install-exec \
|
||||
+ install-exec-local \
|
||||
install-exec-am install-info install-info-am install-man \
|
||||
install-strip install-toolexeclibLTLIBRARIES installcheck \
|
||||
installcheck-am installdirs maintainer-clean \
|
||||
@@ -743,6 +743,13 @@
|
||||
install_debug:
|
||||
(cd ${debugdir} && $(MAKE) \
|
||||
toolexeclibdir=$(glibcxx_toolexeclibdir)/debug install)
|
||||
+
|
||||
+install-exec-local:
|
||||
+ifeq ($(enable_shared),yes)
|
||||
+ $(AR) cru libstdc++_pic.a *.o $(top_builddir)/libsupc++/*.o
|
||||
+ $(INSTALL_DATA) libstdc++_pic.a $(DESTDIR)$(toolexeclibdir)
|
||||
+endif
|
||||
+
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||
.NOEXPORT:
|
||||
@@ -1,11 +0,0 @@
|
||||
--- gcc-4.0.0/boehm-gc/include/gc.h-orig 2005-04-28 22:28:57.000000000 -0500
|
||||
+++ gcc-4.0.0/boehm-gc/include/gc.h 2005-04-28 22:30:38.000000000 -0500
|
||||
@@ -500,7 +500,7 @@
|
||||
#ifdef __linux__
|
||||
# include <features.h>
|
||||
# if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1 || __GLIBC__ > 2) \
|
||||
- && !defined(__ia64__)
|
||||
+ && !defined(__ia64__) && !defined(__UCLIBC__)
|
||||
# ifndef GC_HAVE_BUILTIN_BACKTRACE
|
||||
# define GC_HAVE_BUILTIN_BACKTRACE
|
||||
# endif
|
||||
@@ -1,11 +0,0 @@
|
||||
--- gcc-4.0.0/libstdc++-v3/include/c_std/std_cstdio.h-orig 2005-04-29 00:08:41.000000000 -0500
|
||||
+++ gcc-4.0.0/libstdc++-v3/include/c_std/std_cstdio.h 2005-04-29 00:08:45.000000000 -0500
|
||||
@@ -142,7 +142,7 @@
|
||||
using ::vsprintf;
|
||||
}
|
||||
|
||||
-#if _GLIBCXX_USE_C99
|
||||
+#if _GLIBCXX_USE_C99 || defined(__UCLIBC__)
|
||||
|
||||
#undef snprintf
|
||||
#undef vfscanf
|
||||
@@ -1,12 +0,0 @@
|
||||
--- gcc-4.0.0/libstdc++-v3/configure-old 2005-04-30 22:04:48.061603912 -0500
|
||||
+++ gcc-4.0.0/libstdc++-v3/configure 2005-04-30 22:06:13.678588152 -0500
|
||||
@@ -7194,6 +7194,9 @@
|
||||
cat >>conftest.$ac_ext <<_ACEOF
|
||||
/* end confdefs.h. */
|
||||
#include <complex.h>
|
||||
+#ifdef __UCLIBC__
|
||||
+#error ugly hack to make sure configure test fails here for cross until uClibc supports the complex funcs
|
||||
+#endif
|
||||
int
|
||||
main ()
|
||||
{
|
||||
@@ -1,24 +0,0 @@
|
||||
--- gcc-4.1.0/libstdc++-v3/include/ext/rope.mps 2006-03-24 01:49:51 +0100
|
||||
+++ gcc-4.1.0/libstdc++-v3/include/ext/rope 2006-03-24 01:49:37 +0100
|
||||
@@ -59,6 +59,9 @@
|
||||
#include <bits/allocator.h>
|
||||
#include <ext/hash_fun.h>
|
||||
|
||||
+/* cope w/ index defined as macro, SuSv3 proposal */
|
||||
+#undef index
|
||||
+
|
||||
# ifdef __GC
|
||||
# define __GC_CONST const
|
||||
# else
|
||||
--- gcc-4.1.0/libstdc++-v3/include/ext/ropeimpl.h.mps 2006-03-24 01:50:04 +0100
|
||||
+++ gcc-4.1.0/libstdc++-v3/include/ext/ropeimpl.h 2006-03-24 01:50:28 +0100
|
||||
@@ -53,6 +53,9 @@
|
||||
#include <ext/memory> // For uninitialized_copy_n
|
||||
#include <ext/numeric> // For power
|
||||
|
||||
+/* cope w/ index defined as macro, SuSv3 proposal */
|
||||
+#undef index
|
||||
+
|
||||
_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
|
||||
|
||||
using std::size_t;
|
||||
@@ -1,49 +0,0 @@
|
||||
Index: gcc-4.2/libmudflap/mf-hooks2.c
|
||||
===================================================================
|
||||
--- gcc-4.2/libmudflap/mf-hooks2.c (revision 119834)
|
||||
+++ gcc-4.2/libmudflap/mf-hooks2.c (working copy)
|
||||
@@ -427,7 +427,7 @@
|
||||
{
|
||||
TRACE ("%s\n", __PRETTY_FUNCTION__);
|
||||
MF_VALIDATE_EXTENT(s, n, __MF_CHECK_WRITE, "bzero region");
|
||||
- bzero (s, n);
|
||||
+ memset (s, 0, n);
|
||||
}
|
||||
|
||||
|
||||
@@ -437,7 +437,7 @@
|
||||
TRACE ("%s\n", __PRETTY_FUNCTION__);
|
||||
MF_VALIDATE_EXTENT(src, n, __MF_CHECK_READ, "bcopy src");
|
||||
MF_VALIDATE_EXTENT(dest, n, __MF_CHECK_WRITE, "bcopy dest");
|
||||
- bcopy (src, dest, n);
|
||||
+ memmove (dest, src, n);
|
||||
}
|
||||
|
||||
|
||||
@@ -447,7 +447,7 @@
|
||||
TRACE ("%s\n", __PRETTY_FUNCTION__);
|
||||
MF_VALIDATE_EXTENT(s1, n, __MF_CHECK_READ, "bcmp 1st arg");
|
||||
MF_VALIDATE_EXTENT(s2, n, __MF_CHECK_READ, "bcmp 2nd arg");
|
||||
- return bcmp (s1, s2, n);
|
||||
+ return n == 0 ? 0 : memcmp (s1, s2, n);
|
||||
}
|
||||
|
||||
|
||||
@@ -456,7 +456,7 @@
|
||||
size_t n = strlen (s);
|
||||
TRACE ("%s\n", __PRETTY_FUNCTION__);
|
||||
MF_VALIDATE_EXTENT(s, CLAMPADD(n, 1), __MF_CHECK_READ, "index region");
|
||||
- return index (s, c);
|
||||
+ return strchr (s, c);
|
||||
}
|
||||
|
||||
|
||||
@@ -465,7 +465,7 @@
|
||||
size_t n = strlen (s);
|
||||
TRACE ("%s\n", __PRETTY_FUNCTION__);
|
||||
MF_VALIDATE_EXTENT(s, CLAMPADD(n, 1), __MF_CHECK_READ, "rindex region");
|
||||
- return rindex (s, c);
|
||||
+ return strrchr (s, c);
|
||||
}
|
||||
|
||||
/* XXX: stpcpy, memccpy */
|
||||
@@ -1,36 +0,0 @@
|
||||
diff -rup gcc-4.2.orig/libstdc++-v3/config/locale/uclibc/messages_members.h gcc-4.2/libstdc++-v3/config/locale/uclibc/messages_members.h
|
||||
--- gcc-4.2.orig/libstdc++-v3/config/locale/uclibc/messages_members.h 2006-12-22 13:06:56.000000000 +0100
|
||||
+++ gcc-4.2/libstdc++-v3/config/locale/uclibc/messages_members.h 2006-12-22 15:23:41.000000000 +0100
|
||||
@@ -32,7 +32,8 @@
|
||||
//
|
||||
|
||||
// Written by Benjamin Kosnik <bkoz@redhat.com>
|
||||
-
|
||||
+namespace std
|
||||
+{
|
||||
#ifdef __UCLIBC_MJN3_ONLY__
|
||||
#warning fix prototypes for *textdomain funcs
|
||||
#endif
|
||||
@@ -115,3 +116,4 @@
|
||||
this->_S_create_c_locale(this->_M_c_locale_messages, __s);
|
||||
}
|
||||
}
|
||||
+}
|
||||
diff -rup gcc-4.2.orig/libstdc++-v3/config/locale/uclibc/time_members.h gcc-4.2/libstdc++-v3/config/locale/uclibc/time_members.h
|
||||
--- gcc-4.2.orig/libstdc++-v3/config/locale/uclibc/time_members.h 2006-12-22 13:06:56.000000000 +0100
|
||||
+++ gcc-4.2/libstdc++-v3/config/locale/uclibc/time_members.h 2006-12-22 15:20:31.000000000 +0100
|
||||
@@ -33,7 +33,8 @@
|
||||
//
|
||||
|
||||
// Written by Benjamin Kosnik <bkoz@redhat.com>
|
||||
-
|
||||
+namespace std
|
||||
+{
|
||||
template<typename _CharT>
|
||||
__timepunct<_CharT>::__timepunct(size_t __refs)
|
||||
: facet(__refs), _M_data(NULL), _M_c_locale_timepunct(NULL),
|
||||
@@ -74,3 +75,4 @@
|
||||
delete _M_data;
|
||||
_S_destroy_c_locale(_M_c_locale_timepunct);
|
||||
}
|
||||
+}
|
||||
@@ -1,26 +0,0 @@
|
||||
This patch fixes a bug into ostream::operator<<(double) due to the wrong size
|
||||
passed into the __convert_from_v method. The wrong size is then passed to
|
||||
std::snprintf function, that, on uClibc, doens't handle sized 0 buffer.
|
||||
|
||||
Signed-off-by: Carmelo Amoroso <carmelo.amoroso@st.com>
|
||||
|
||||
--- gcc-4.2.1/libstdc++-v3/include/bits/locale_facets.tcc 2006-10-17 18:43:47.000000000 +0200
|
||||
+++ gcc-4.2.1-st/libstdc++-v3/include/bits/locale_facets.tcc 2007-08-22 18:54:23.000000000 +0200
|
||||
@@ -1143,7 +1143,7 @@ _GLIBCXX_BEGIN_LDBL_NAMESPACE
|
||||
const int __cs_size = __fixed ? __max_exp + __prec + 4
|
||||
: __max_digits * 2 + __prec;
|
||||
char* __cs = static_cast<char*>(__builtin_alloca(__cs_size));
|
||||
- __len = std::__convert_from_v(_S_get_c_locale(), __cs, 0, __fbuf,
|
||||
+ __len = std::__convert_from_v(_S_get_c_locale(), __cs, __cs_size, __fbuf,
|
||||
__prec, __v);
|
||||
#endif
|
||||
|
||||
@@ -1777,7 +1777,7 @@ _GLIBCXX_BEGIN_LDBL_NAMESPACE
|
||||
// max_exponent10 + 1 for the integer part, + 2 for sign and '\0'.
|
||||
const int __cs_size = numeric_limits<long double>::max_exponent10 + 3;
|
||||
char* __cs = static_cast<char*>(__builtin_alloca(__cs_size));
|
||||
- int __len = std::__convert_from_v(_S_get_c_locale(), __cs, 0, "%.*Lf",
|
||||
+ int __len = std::__convert_from_v(_S_get_c_locale(), __cs, __cs_size, "%.*Lf",
|
||||
0, __units);
|
||||
#endif
|
||||
string_type __digits(__len, char_type());
|
||||
@@ -1,13 +0,0 @@
|
||||
Index: gcc-4.2/gcc/Makefile.in
|
||||
===================================================================
|
||||
--- gcc-4.2/gcc/Makefile.in (revision 121758)
|
||||
+++ gcc-4.2/gcc/Makefile.in (working copy)
|
||||
@@ -2658,7 +2658,7 @@ mips-tdump.o : mips-tdump.c $(CONFIG_H)
|
||||
# FIXME: writing proper dependencies for this is a *LOT* of work.
|
||||
libbackend.o : $(OBJS-common:.o=.c) $(out_file) \
|
||||
insn-config.h insn-flags.h insn-codes.h insn-constants.h \
|
||||
- insn-attr.h $(DATESTAMP) $(BASEVER) $(DEVPHASE)
|
||||
+ insn-attr.h $(DATESTAMP) $(BASEVER) $(DEVPHASE) gcov-iov.h
|
||||
$(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) \
|
||||
-DTARGET_NAME=\"$(target_noncanonical)\" \
|
||||
-DLOCALEDIR=\"$(localedir)\" \
|
||||
@@ -1,67 +0,0 @@
|
||||
By Lennert Buytenhek <buytenh@wantstofly.org>
|
||||
Adds support for arm*b-linux* big-endian ARM targets
|
||||
|
||||
See http://gcc.gnu.org/PR16350
|
||||
|
||||
--- gcc-4.2.0/gcc/config/arm/linux-elf.h
|
||||
+++ gcc-4.2.0/gcc/config/arm/linux-elf.h
|
||||
@@ -28,19 +28,33 @@
|
||||
#undef TARGET_VERSION
|
||||
#define TARGET_VERSION fputs (" (ARM GNU/Linux with ELF)", stderr);
|
||||
|
||||
+/*
|
||||
+ * 'config.gcc' defines TARGET_BIG_ENDIAN_DEFAULT as 1 for arm*b-*
|
||||
+ * (big endian) configurations.
|
||||
+ */
|
||||
+#if TARGET_BIG_ENDIAN_DEFAULT
|
||||
+#define TARGET_ENDIAN_DEFAULT MASK_BIG_END
|
||||
+#define TARGET_ENDIAN_OPTION "mbig-endian"
|
||||
+#define TARGET_LINKER_EMULATION "armelfb_linux"
|
||||
+#else
|
||||
+#define TARGET_ENDIAN_DEFAULT 0
|
||||
+#define TARGET_ENDIAN_OPTION "mlittle-endian"
|
||||
+#define TARGET_LINKER_EMULATION "armelf_linux"
|
||||
+#endif
|
||||
+
|
||||
#undef TARGET_DEFAULT_FLOAT_ABI
|
||||
#define TARGET_DEFAULT_FLOAT_ABI ARM_FLOAT_ABI_HARD
|
||||
|
||||
#undef TARGET_DEFAULT
|
||||
-#define TARGET_DEFAULT (0)
|
||||
+#define TARGET_DEFAULT (TARGET_ENDIAN_DEFAULT)
|
||||
|
||||
#define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm6
|
||||
|
||||
-#define SUBTARGET_EXTRA_LINK_SPEC " -m armelf_linux -p"
|
||||
+#define SUBTARGET_EXTRA_LINK_SPEC " -m " TARGET_LINKER_EMULATION " -p"
|
||||
|
||||
#undef MULTILIB_DEFAULTS
|
||||
#define MULTILIB_DEFAULTS \
|
||||
- { "marm", "mlittle-endian", "mhard-float", "mno-thumb-interwork" }
|
||||
+ { "marm", TARGET_ENDIAN_OPTION, "mhard-float", "mno-thumb-interwork" }
|
||||
|
||||
/* Now we define the strings used to build the spec file. */
|
||||
#undef LIB_SPEC
|
||||
@@ -61,7 +75,7 @@
|
||||
%{rdynamic:-export-dynamic} \
|
||||
%{!dynamic-linker:-dynamic-linker " LINUX_DYNAMIC_LINKER "} \
|
||||
-X \
|
||||
- %{mbig-endian:-EB}" \
|
||||
+ %{mbig-endian:-EB} %{mlittle-endian:-EL}" \
|
||||
SUBTARGET_EXTRA_LINK_SPEC
|
||||
|
||||
#undef LINK_SPEC
|
||||
--- gcc-4.2.0/gcc/config.gcc.orig 2006-09-22 14:53:41.000000000 +0200
|
||||
+++ gcc-4.2.0/gcc/config.gcc 2006-09-25 10:45:21.000000000 +0200
|
||||
@@ -696,6 +696,11 @@
|
||||
tm_file="dbxelf.h elfos.h linux.h arm/elf.h arm/linux-gas.h arm/linux-elf.h"
|
||||
tmake_file="${tmake_file} t-linux arm/t-arm"
|
||||
case ${target} in
|
||||
+ arm*b-*)
|
||||
+ tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
|
||||
+ ;;
|
||||
+ esac
|
||||
+ case ${target} in
|
||||
arm*-*-linux-*eabi)
|
||||
tm_file="$tm_file arm/bpabi.h arm/linux-eabi.h"
|
||||
tmake_file="$tmake_file arm/t-arm-elf arm/t-bpabi arm/t-linux-eabi"
|
||||
@@ -1,153 +0,0 @@
|
||||
Hi,
|
||||
|
||||
The attached patch makes sure that we create smaller object code for
|
||||
simple switch statements. We just make sure to flatten the switch
|
||||
statement into an if-else chain, basically.
|
||||
|
||||
This fixes a size-regression as compared to gcc-3.4, as can be seen
|
||||
below.
|
||||
|
||||
2007-04-15 Bernhard Fischer <..>
|
||||
|
||||
* stmt.c (expand_case): Do not create a complex binary tree when
|
||||
optimizing for size but rather use the simple ordered list.
|
||||
(emit_case_nodes): do not emit jumps to the default_label when
|
||||
optimizing for size.
|
||||
|
||||
Not regtested so far.
|
||||
Comments?
|
||||
|
||||
Attached is the test switch.c mentioned below.
|
||||
|
||||
$ for i in 2.95 3.3 3.4 4.0 4.1 4.2.orig-HEAD 4.3.orig-HEAD 4.3-HEAD;do
|
||||
gcc-$i -DCHAIN -Os -o switch-CHAIN-$i.o -c switch.c ;done
|
||||
$ for i in 2.95 3.3 3.4 4.0 4.1 4.2.orig-HEAD 4.3.orig-HEAD 4.3-HEAD;do
|
||||
gcc-$i -UCHAIN -Os -o switch-$i.o -c switch.c ;done
|
||||
|
||||
$ size switch-*.o
|
||||
text data bss dec hex filename
|
||||
169 0 0 169 a9 switch-2.95.o
|
||||
115 0 0 115 73 switch-3.3.o
|
||||
103 0 0 103 67 switch-3.4.o
|
||||
124 0 0 124 7c switch-4.0.o
|
||||
124 0 0 124 7c switch-4.1.o
|
||||
124 0 0 124 7c switch-4.2.orig-HEAD.o
|
||||
95 0 0 95 5f switch-4.3-HEAD.o
|
||||
124 0 0 124 7c switch-4.3.orig-HEAD.o
|
||||
166 0 0 166 a6 switch-CHAIN-2.95.o
|
||||
111 0 0 111 6f switch-CHAIN-3.3.o
|
||||
95 0 0 95 5f switch-CHAIN-3.4.o
|
||||
95 0 0 95 5f switch-CHAIN-4.0.o
|
||||
95 0 0 95 5f switch-CHAIN-4.1.o
|
||||
95 0 0 95 5f switch-CHAIN-4.2.orig-HEAD.o
|
||||
95 0 0 95 5f switch-CHAIN-4.3-HEAD.o
|
||||
95 0 0 95 5f switch-CHAIN-4.3.orig-HEAD.o
|
||||
|
||||
|
||||
Content-Type: text/x-diff; charset=us-ascii
|
||||
Content-Disposition: attachment; filename="gcc-4.3.gcc-flatten-switch-stmt.00.diff"
|
||||
|
||||
Index: gcc-4.2.0/gcc/stmt.c
|
||||
===================================================================
|
||||
--- gcc-4.2.0.orig/gcc/stmt.c (revision 123843)
|
||||
+++ gcc-4.2.0/gcc/stmt.c (working copy)
|
||||
@@ -2517,7 +2517,11 @@ expand_case (tree exp)
|
||||
use_cost_table
|
||||
= (TREE_CODE (orig_type) != ENUMERAL_TYPE
|
||||
&& estimate_case_costs (case_list));
|
||||
- balance_case_nodes (&case_list, NULL);
|
||||
+ /* When optimizing for size, we want a straight list to avoid
|
||||
+ jumps as much as possible. This basically creates an if-else
|
||||
+ chain. */
|
||||
+ if (!optimize_size)
|
||||
+ balance_case_nodes (&case_list, NULL);
|
||||
emit_case_nodes (index, case_list, default_label, index_type);
|
||||
emit_jump (default_label);
|
||||
}
|
||||
@@ -3075,6 +3079,7 @@ emit_case_nodes (rtx index, case_node_pt
|
||||
{
|
||||
if (!node_has_low_bound (node, index_type))
|
||||
{
|
||||
+ if (!optimize_size) /* don't jl to the .default_label. */
|
||||
emit_cmp_and_jump_insns (index,
|
||||
convert_modes
|
||||
(mode, imode,
|
||||
|
||||
|
||||
Content-Type: text/x-csrc; charset=us-ascii
|
||||
Content-Disposition: attachment; filename="switch.c"
|
||||
|
||||
int
|
||||
commutative_tree_code (int code)
|
||||
{
|
||||
#define CASE(val, ret) case val:/* __asm__("# val="#val ",ret="#ret);*/ return ret;
|
||||
#ifndef CHAIN
|
||||
switch (code)
|
||||
{
|
||||
# if 1
|
||||
CASE(1,3)
|
||||
CASE(3,2)
|
||||
CASE(5,8)
|
||||
CASE(7,1)
|
||||
CASE(33,4)
|
||||
CASE(44,9)
|
||||
CASE(55,10)
|
||||
CASE(66,-1)
|
||||
CASE(77,99)
|
||||
CASE(666,0)
|
||||
# else
|
||||
case 1:
|
||||
return 3;
|
||||
case 3:
|
||||
return 2;
|
||||
case 5:
|
||||
return 8;
|
||||
case 7:
|
||||
return 1;
|
||||
case 33:
|
||||
return 4;
|
||||
case 44:
|
||||
return 9;
|
||||
case 55:
|
||||
return 10;
|
||||
case 66:
|
||||
return -1;
|
||||
case 77:
|
||||
return 99;
|
||||
case 666:
|
||||
return 0;
|
||||
# endif
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return 4711;
|
||||
|
||||
#else
|
||||
if (code == 1)
|
||||
return 3;
|
||||
else if (code == 3)
|
||||
return 2;
|
||||
else if (code == 5)
|
||||
return 8;
|
||||
else if (code == 7)
|
||||
return 1;
|
||||
else if (code == 33)
|
||||
return 4;
|
||||
else if (code == 44)
|
||||
return 9;
|
||||
else if (code == 55)
|
||||
return 10;
|
||||
else if (code == 66)
|
||||
return -1;
|
||||
else if (code == 77)
|
||||
return 99;
|
||||
else if (code == 666)
|
||||
return 0;
|
||||
else
|
||||
return 4711;
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
--AhhlLboLdkugWU4S--
|
||||
|
||||
@@ -1,26 +0,0 @@
|
||||
--- gcc-4.2-20061205/gcc/config/arm/t-linux 2006-12-08 15:18:33.000000000 -0800
|
||||
+++ gcc-4.2-20061205/gcc/config/arm/t-linux 2006-12-08 15:18:33.000000000 -0800
|
||||
@@ -4,7 +4,10 @@
|
||||
LIBGCC2_DEBUG_CFLAGS = -g0
|
||||
|
||||
LIB1ASMSRC = arm/lib1funcs.asm
|
||||
-LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx
|
||||
+LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx \
|
||||
+ _negdf2 _addsubdf3 _muldivdf3 _cmpdf2 _unorddf2 _fixdfsi _fixunsdfsi \
|
||||
+ _truncdfsf2 _negsf2 _addsubsf3 _muldivsf3 _cmpsf2 _unordsf2 \
|
||||
+ _fixsfsi _fixunssfsi _floatdidf _floatundidf _floatdisf _floatundisf
|
||||
|
||||
# MULTILIB_OPTIONS = mhard-float/msoft-float
|
||||
# MULTILIB_DIRNAMES = hard-float soft-float
|
||||
|
||||
--- gcc-4.2-20061205/gcc/config/arm/linux-elf.h 2006-12-08 15:18:33.000000000 -0800
|
||||
+++ gcc-4.2-20061205/gcc/config/arm/linux-elf.h 2006-12-08 15:18:33.000000000 -0800
|
||||
@@ -63,7 +63,7 @@
|
||||
%{shared:-lc} \
|
||||
%{!shared:%{profile:-lc_p}%{!profile:-lc}}"
|
||||
|
||||
-#define LIBGCC_SPEC "%{msoft-float:-lfloat} %{mfloat-abi=soft*:-lfloat} -lgcc"
|
||||
+#define LIBGCC_SPEC "-lgcc"
|
||||
|
||||
#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user