Commit graph

854 commits

Author SHA1 Message Date
Jonas Gorski
73b7c776e9 toolchain: gcc: backport fixes for gcc bug 54295
Fix "Widening multiply-accumulate operation uses wrong value extension"
for 4.7, 4.7-linaro and 4.6-linaro, which backported the broken code to 4.6.
Vanilla 4.6 is unaffected.

Fixes #13420.

Signed-off-by: Jonas Gorski <jogo@openwrt.org>

SVN-Revision: 36486
2013-04-29 15:40:21 +00:00
Felix Fietkau
97e7fdf6fd toolchain: get rid of libc implementation symbol overloading
SVN-Revision: 36360
2013-04-18 12:05:08 +00:00
Felix Fietkau
eac3474257 toolchain: get rid of musl version kconfig symbol overloading
SVN-Revision: 36359
2013-04-18 12:05:02 +00:00
Felix Fietkau
68f2e7f940 toolchain: get rid of eglibc version kconfig symbol overloading
SVN-Revision: 36358
2013-04-18 12:04:55 +00:00
Felix Fietkau
4aa6663599 toolchain: get rid of uclibc version kconfig symbol overloading
SVN-Revision: 36356
2013-04-18 12:04:48 +00:00
Felix Fietkau
39463bf146 toolchain: get rid of gcc kconfig symbol overloading
SVN-Revision: 36355
2013-04-18 12:04:40 +00:00
Felix Fietkau
96bb7c123b build: consistently use 'depends on' instead of 'depends'
make the syntax more compatible with kernel menuconfig

Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 36351
2013-04-17 15:36:41 +00:00
Felix Fietkau
c270db592a gcc: remove the bogus CONFIG_TLS_SUPPORT symbol - TLS support is required by libc.
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 36240
2013-04-07 10:11:41 +00:00
Felix Fietkau
46072644e5 uClibc: unbreak ld-uClibc on non-64bit platforms
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 36239
2013-04-07 10:11:38 +00:00
Florian Fainelli
f4c09ea554 toolchain/uClibc: backport a MIPS64 fix from openadk
Fixes uClibc dynamic loader name requested by executables when
targetting MIPS64 n64

Signed-off-by: Florian Fainelli <florian@openwrt.org>

SVN-Revision: 36208
2013-04-05 12:36:37 +00:00
Florian Fainelli
463b80c3d1 toolchain/uClibc: handle different MIPS64 ABIs
Signed-off-by: Florian Fainelli <florian@openwrt.org>

SVN-Revision: 36207
2013-04-05 12:36:31 +00:00
Florian Fainelli
2f972664ec toolchain: musl is not available on MIPS64
Signed-off-by: Florian Fainelli <florian@openwrt.org>

SVN-Revision: 36206
2013-04-05 12:36:26 +00:00
Florian Fainelli
e032922266 toolchain: allow choosing the MIPS64 user-land ABI
Signed-off-by: Florian Fainelli <florian@openwrt.org>

SVN-Revision: 36205
2013-04-05 12:36:23 +00:00
Florian Fainelli
348cae15d2 buildroot: factor knowledge of a 64bits architecture
Signed-off-by: Florian Fainelli <florian@openwrt.org>

SVN-Revision: 36204
2013-04-05 12:36:19 +00:00
Florian Fainelli
9dc38e48f7 toolchain/gcc: .init and .fini need to pick one ISA
The .init and .fini sections are built by concatenating code
fragments. Putting mips16 code in the middle of a mips32 code block
doesn't work. Make gcc built the magic crt stuff in no-mips16 mode.

This is specific to 4.6-linaro but is probably portable to other gcc
flavors. Adding this to the t-libgcc-mips16 makefile fragment is a
hack not suitable for pushing upstream, but there is no mips/t-linux
or mips/t-uclibc and I am not going to touch gcc/configure for two
lines.

Signed-off-by: Jay Carlson <nop@nop.com>
Signed-off-by: Florian Fainelli <florian@openwrt.org>

SVN-Revision: 36200
2013-04-05 12:36:06 +00:00
Florian Fainelli
750115a65c toolchain/uClibc: Disable mips16 for uClibc for now
For now, build uclibc without -mips16. There's no mips16 syscall
support AFAIK and uclibc uses inline assembly syscalls a lot.

In addition, touching errno means touching a TLS model symbol, and
that's not supported in gcc 4.6.

The __set_errno macro can be put back to calling
errno_location(). This allows much of the library to be built in
mips16 mode. I don't understand the implications to the thread library
of doing this.

A list of "build as -mno-mips16" C source files can be placed in the
mips architecture-dependent build files. Maintaining the list would be
no fun.

Signed-off-by: Jay Carlson <nop@nop.com>
Signed-off-by: Florian Fainelli <florian@openwrt.org>

SVN-Revision: 36199
2013-04-05 12:36:00 +00:00
Imre Kaloz
84d0582ddb remove the old (and nonworking) hack and identify our patched GCCs properly
SVN-Revision: 36189
2013-04-03 10:41:07 +00:00
Florian Fainelli
4dd9e8dc9b toolchain/gcc: remove reference to llvm introduced in r36155
Signed-off-by: Florian Fainelli <florian@openwrt.org>

SVN-Revision: 36156
2013-04-02 16:03:14 +00:00
Florian Fainelli
a54e305a8b toolchain/gcc: add support for GCC 4.8.0
Signed-off-by: Florian Fainelli <florian@openwrt.org>

SVN-Revision: 36155
2013-04-02 16:00:35 +00:00
Florian Fainelli
558d35c754 toolchain/gcc: update 4.7-linaro to 2013.03
Signed-off-by: Florian Fainelli <florian@openwrt.org>

SVN-Revision: 36154
2013-04-02 16:00:23 +00:00
Imre Kaloz
2a390f5706 drop 4.5 support
SVN-Revision: 36149
2013-04-01 15:46:41 +00:00
Imre Kaloz
48612b3b4a cleanup
SVN-Revision: 36148
2013-04-01 15:43:23 +00:00
Imre Kaloz
99d4d9a148 fixup 4.7 configure options
SVN-Revision: 36146
2013-04-01 15:13:46 +00:00
Imre Kaloz
9231162c7e llvm is marked broken for two and a half year now, nuke it
SVN-Revision: 36145
2013-04-01 15:08:38 +00:00
Florian Fainelli
f18de830e1 toolchain/eglibc: add missing ld-search-paths patch to 2.17
this patch is a copy of
trunk/toolchain/eglibc/patches/2.16/200-add-dl-search-paths.patch in
trunk/toolchain/eglibc/patches/2.17/200-add-ld-search-paths.patch
please use svn copy instead of applying it (like in
https://dev.openwrt.org/changeset/34290/)

the patch add /usr/lib in the ld search path (for eglibc 2.17),
thus helping libs like libnl-tiny.so (for iw), libjson.so.0 (for ubus,
jshn) to be found

Signed-off-by: Etienne CHAMPETIER <etienne.champetier@free.fr>
Signed-off-by: Florian Fainelli <florian@openwrt.org>

SVN-Revision: 36141
2013-03-29 13:16:09 +00:00
Luka Perkov
c0de55b32c toolchain: stop generating broken symlink in TOOLCHAIN_DIR/lib
It turns out that the symlink may exists already by the time the toolchain
Makefile gets an opportunity to run. While we asked to replace the target, ln
doesn't do so until after dereferencing the existing symlink. This results in
an unintended symlink that refers to itself. Instead, create the link without
dereferencing any symlinks by using the -n option.

Signed-off-by: John Szakmeister <john@szakmeister.net>

SVN-Revision: 36140
2013-03-28 12:16:39 +00:00
Florian Fainelli
12b686ed39 gdb: update to 7.5-2012.12-1
Signed-off-by: Daniel Golle <dgolle@allnet.de>
Signed-off-by: Florian Fainelli <florian@openwrt.org>

SVN-Revision: 36108
2013-03-22 10:06:10 +00:00
Florian Fainelli
781e7dd18b toolchain/binutils: fix partial MD5 sum from r35813
Signed-off-by: Florian Fainelli <florian@openwrt.org>

SVN-Revision: 35816
2013-02-26 16:52:36 +00:00
Florian Fainelli
5a0f4a89eb toolchain/musl: add support for 0.9.9
Signed-off-by: Florian Fainelli <florian@openwrt.org>

SVN-Revision: 35815
2013-02-26 16:40:27 +00:00
Florian Fainelli
10c38f50a0 toolchain/binutils: add musl libc config.sub patch to 2.23.1
Signed-off-by: Florian Fainelli <florian@openwrt.org>

SVN-Revision: 35814
2013-02-26 16:40:20 +00:00
Florian Fainelli
f08ef57424 toolchain/binutils: fix 2.19.1 MD5 sum
Signed-off-by: Florian Fainelli <florian@openwrt.org>

SVN-Revision: 35813
2013-02-26 16:40:17 +00:00
Florian Fainelli
d417049c4a toolchain/binutils: refresh patches
Signed-off-by: Florian Fainelli <florian@openwrt.org>

SVN-Revision: 35812
2013-02-26 16:40:12 +00:00
Florian Fainelli
2935823a42 toolchain/gcc: refresh patches
Signed-off-by: Florian Fainelli <florian@openwrt.org>

SVN-Revision: 35808
2013-02-26 16:39:54 +00:00
Luka Perkov
098bd91f5e gcc: don't build documentation
This closes #13039.

Signed-off-by: Luka Perkov <luka@openwrt.org>

SVN-Revision: 35807
2013-02-26 16:16:33 +00:00
Luka Perkov
a85019072f gcc: remove support for 4.6.2
There are no good reasons for keeping this version around when 4.6.3 and
4.6-linaro are there.

Signed-off-by: Luka Perkov <luka@openwrt.org>

SVN-Revision: 35805
2013-02-26 14:31:24 +00:00
Jonas Gorski
55f65c5c1d toolchain: uclibc: fix typo in uclibc common config
Based on a patch from Oliver Metz.

Closes #10735.

Signed-off-by: Jonas Gorski <jogo@openwrt.org>

SVN-Revision: 35709
2013-02-21 11:45:07 +00:00
Jo-Philipp Wich
9622f68581 buildroot: allow specifying libc personality for external toolchains
SVN-Revision: 35703
2013-02-20 15:06:10 +00:00
Florian Fainelli
5c8783e02a toolchain/eglibc: add support for 2.17
Signed-off-by: Florian Fainelli <florian@openwrt.org>

SVN-Revision: 35515
2013-02-07 17:34:53 +00:00
Florian Fainelli
fe766227a2 toolchain/gcc: fix the mips64 linker path to be more musl conforming
musl libc does not use /lib32 or /lib64 directories, just /lib

Signed-off-by: Florian Fainelli <florian@openwrt.org>

SVN-Revision: 35406
2013-01-29 23:05:46 +00:00
Florian Fainelli
b550ade727 toolchain/musl: add parenthesis to the __ARE_4_EQUAL macro
Fixes warnings exposed by netifd while using IN6_ARE_ADDR_EQUAL turned
into errors.

Signed-off-by: Florian Fainelli <florian@openwrt.org>

SVN-Revision: 35404
2013-01-29 23:05:40 +00:00
Florian Fainelli
5ae9a4f830 gcc: fix build for MIPS64 targets introduced by musl patch
Signed-off-by: Florian Fainelli <florian@openwrt.org>

SVN-Revision: 35046
2013-01-07 18:16:40 +00:00
Florian Fainelli
2e8be0cc4b gcc-linaro-4.6: update to 2012.12
Signed-off-by: Florian Fainelli <florian@openwrt.org>

SVN-Revision: 35044
2013-01-07 18:16:33 +00:00
Florian Fainelli
b71fdb0abf gcc-linaro-4.7: update to 2012.12
Signed-off-by: Florian Fainelli <florian@openwrt.org>

SVN-Revision: 35043
2013-01-07 18:16:29 +00:00
Florian Fainelli
61f19f555f toolchain/musl: simplify musl install steps
Some of these were copy/pasted from uClibc, but they are not necessary
at all for musl-libc.

Signed-off-by: Florian Fainelli <florian@openwrt.org>

SVN-Revision: 34598
2012-12-10 14:24:24 +00:00
Florian Fainelli
629ba45a9b toolchain/musl: update to 0.9.8
Signed-off-by: Florian Fainelli <florian@openwrt.org>

SVN-Revision: 34597
2012-12-10 14:24:21 +00:00
Florian Fainelli
f00891b96e toolchain/musl: fix typo on configuration symbol
Signed-off-by: Florian Fainelli <florian@openwrt.org>

SVN-Revision: 34596
2012-12-10 14:24:17 +00:00
Jo-Philipp Wich
57d29c25f5 toolchain: use file_copy to install the initial gcc files
SVN-Revision: 34440
2012-12-02 12:20:47 +00:00
Jo-Philipp Wich
9f3dc9afa7 toolchain: remove duplicate default in bintutils Kconfig
SVN-Revision: 34436
2012-12-02 11:27:23 +00:00
Florian Fainelli
4801705d83 remove support for ubicom32
Signed-off-by: Florian Fainelli <florian@openwrt.org>

SVN-Revision: 34432
2012-11-30 10:53:55 +00:00
Florian Fainelli
bf9af32738 gcc/4.5-linaro: backport musl patch
Signed-off-by: Florian Fainelli <florian@openwrt.org>

SVN-Revision: 34425
2012-11-29 21:42:58 +00:00
Florian Fainelli
2a01fa43a5 musl: backport an upstream fix for MIPS and termios constants
Fixes weird console behavior with a musl rootfs.

Signed-off-by: Florian Fainelli <florian@openwrt.org>

SVN-Revision: 34318
2012-11-23 22:43:11 +00:00
Florian Fainelli
970756c6d7 musl: disable hardware FPU registers usage
This was crashing applications, thanks to Rich Felker for the suggestion.

Signed-off-by: Florian Fainelli <florian@openwrt.org>

SVN-Revision: 34317
2012-11-23 21:15:11 +00:00
Florian Fainelli
6b63716262 add preliminary support for musl
Musl is an alternative C-library, see http://www.musl-libc.org for more infos.

Signed-off-by: Florian Fainelli <florian@openwrt.org>

SVN-Revision: 34314
2012-11-23 20:02:29 +00:00
Florian Fainelli
bca3953ee5 gcc: remove support for 4.7.0
There are no good reasons for keeping this version around when 4.7.2 and
4.7-linaro are there.

Signed-off-by: Florian Fainelli <florian@openwrt.org>

SVN-Revision: 34296
2012-11-21 20:27:15 +00:00
Florian Fainelli
426d806994 eglibc/2.16: add missing dl-search-paths patch
Signed-off-by: Florian Fainelli <florian@openwrt.org>

SVN-Revision: 34290
2012-11-21 20:26:47 +00:00
Florian Fainelli
5d37a99a01 gcc: build with HOST_CFLAGS
Turns on -O2 optimization when building GCC thus making the cross-compiler a
little faster (about 25%).

Signed-off-by: Florian Fainelli <florian@openwrt.org>

SVN-Revision: 34266
2012-11-19 23:12:00 +00:00
Florian Fainelli
cf440ae716 binutils: remove 2.21
There is no point in keeping around 2.21 when 2.21.1 which is a bugfix release
is there.

Signed-off-by: Florian Fainelli <florian@openwrt.org>

SVN-Revision: 34265
2012-11-19 19:37:43 +00:00
Florian Fainelli
9659e20d57 gcc-4.6-linaro: update to 2012.11
Signed-off-by: Florian Fainelli <florian@openwrt.org>

SVN-Revision: 34264
2012-11-19 19:37:39 +00:00
Florian Fainelli
d82044de9c gcc-4.7-linaro: update to 2012.11
Signed-off-by: Florian Fainelli <florian@openwrt.org>

SVN-Revision: 34263
2012-11-19 19:37:33 +00:00
Florian Fainelli
274c21cd8e binutils: add support for 2.23.1
Signed-off-by: Florian Fainelli <florian@openwrt.org>

SVN-Revision: 34262
2012-11-19 19:37:28 +00:00
Florian Fainelli
81128b9598 binutils/2.22: backport an upstream fix for an assertion in the ARM backend.
See http://sourceware.org/bugzilla/show_bug.cgi?id=13990 for more details.

Signed-off-by: Florian Fainelli <florian@openwrt.org>

SVN-Revision: 34260
2012-11-19 17:32:37 +00:00
Imre Kaloz
935ca3f3eb add 3.7-rc6 support (patch 820 still has to be fixed)
SVN-Revision: 34247
2012-11-18 18:52:38 +00:00
Florian Fainelli
76553002d9 uClibc: backport a fix for dlsym(RTLD_NEXT, ...) use
Signed-off-by: Florian Fainelli <florian@openwrt.org>

SVN-Revision: 34142
2012-11-11 16:10:50 +00:00
Felix Fietkau
291d24c3cc build: remove remaining references to TOOLCHAIN_JOBS (thx, Sedat Dilek)
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 34122
2012-11-08 15:08:31 +00:00
Florian Fainelli
9a52ec4af8 eglibc: update to r21110
Signed-off-by: Florian Fainelli <florian@openwrt.org>

SVN-Revision: 34036
2012-10-31 17:32:43 +00:00
Felix Fietkau
c2f2b3f903 eglibc: do not prompt for the revision, it is supposed to be changed by developers, not users.
fixes changing the eglibc version in menuconfig without resetting the config

Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 34029
2012-10-31 13:16:22 +00:00
Felix Fietkau
83e392ba73 eglibc: remove versions 2.12-2.14
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 34028
2012-10-31 13:16:18 +00:00
Felix Fietkau
7efe435f49 eglibc: add a fake libintl.h for cross-rpcgen and cross-zic to fix build on mac os x
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 34026
2012-10-31 00:24:00 +00:00
Felix Fietkau
54f799dd58 eglibc: enable parallel builds
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 34025
2012-10-31 00:23:55 +00:00
Felix Fietkau
76a05a13cf eglibc: disable NIS/SUNRPC by default. RPC support is provided by librpc
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 34024
2012-10-31 00:23:51 +00:00
Felix Fietkau
96f31bf6ae uClibc: backport support for assignment-allocation character %m in sscanf
SVN-Revision: 34001
2012-10-29 19:25:38 +00:00
Felix Fietkau
b5212d8ab3 toolchain: enable pthread debug support in uclibc
SVN-Revision: 33996
2012-10-29 19:25:16 +00:00
Felix Fietkau
c6ba19c70e toolchain: enable parallel build for uClibc, remove the obsolete TOOLCHAIN_PARALLEL config symbol
SVN-Revision: 33807
2012-10-17 13:03:08 +00:00
Florian Fainelli
5013a897c5 gcc: add GCC 4.7.2
SVN-Revision: 33763
2012-10-14 13:35:19 +00:00
Florian Fainelli
ba446684e0 gcc: add GCC 4.6.3
SVN-Revision: 33762
2012-10-14 13:35:13 +00:00
Florian Fainelli
3a31553a0e gcc: update 4.5-linaro to 4.5-2012.03
SVN-Revision: 33760
2012-10-13 19:19:44 +00:00
Florian Fainelli
42c4a16172 gcc: update 4.7-linaro to 4.7-2012.10
SVN-Revision: 33759
2012-10-13 19:19:41 +00:00
Florian Fainelli
5d223006f9 gcc: update gcc-4.6-linaro to 4.6-2012.10
SVN-Revision: 33758
2012-10-13 19:19:38 +00:00
Florian Fainelli
1b33268404 gdb: update to 7.5-2012.09
SVN-Revision: 33757
2012-10-13 19:19:34 +00:00
Florian Fainelli
c730636027 eglibc: remove duplicate line introduced in r33738
SVN-Revision: 33740
2012-10-12 14:45:50 +00:00
Florian Fainelli
3b683b6feb gcc: add --with-long-double-128 for SPARC toolchain
This is required in order to build the final compiler.

SVN-Revision: 33739
2012-10-12 14:42:41 +00:00
Florian Fainelli
154123a8c6 add support for eglibc 2.16
SVN-Revision: 33738
2012-10-12 14:42:38 +00:00
Florian Fainelli
a72cadbbb4 gcc: backport struct siginfo -> siginfo_t renaming
Otherwise newer eglibc toolchain will simply fail to build.

SVN-Revision: 33736
2012-10-12 14:42:25 +00:00
Felix Fietkau
ed2bf29be5 build: add the + token to any commands that can pass through the jobserver, fixes parallel build on some systems
SVN-Revision: 33523
2012-09-23 09:50:01 +00:00
Florian Fainelli
b336c9904c uClibc: fix uClibc implementation of eventfd
uClibc declares eventfd() as taking two arguments but doesn't properly
pass the second argument to the kernel.

The problem is discussed at:
http://lists.uclibc.org/pipermail/uclibc/2012-May/046873.html

This patch is taken from uclibc 0.9.33 git, so will presumably
be integrated in any future releases.

Signed-off-by: Andy Leiserson <andy@leiserson.org>

SVN-Revision: 33478
2012-09-19 15:13:48 +00:00
Felix Fietkau
e566454513 binutils: backport ld patch to fix ARM specific issues with --gc-sections
SVN-Revision: 33461
2012-09-19 06:33:07 +00:00
Felix Fietkau
d6c5846513 gcc: enable parallel builds
SVN-Revision: 33444
2012-09-15 14:18:19 +00:00
Felix Fietkau
62869d02bc binutils: enable parallel builds
SVN-Revision: 33443
2012-09-15 14:18:16 +00:00
Felix Fietkau
b7e1f0d7df gdb: enable parallel builds
SVN-Revision: 33442
2012-09-15 14:18:13 +00:00
Florian Fainelli
95f1b6d415 gcc: add upstream fixes for GCC bug 54494
See: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54494 for more infos.

SVN-Revision: 33329
2012-09-07 10:31:58 +00:00
Florian Fainelli
11f1712b49 gcc: add upstream fixes for GCC bug 54369
See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54369 for more infos.

SVN-Revision: 33328
2012-09-07 10:31:54 +00:00
Felix Fietkau
b1f318de53 kernel: fix portability issues on the x86 specific relocs host tool, fixes build on mac os x
SVN-Revision: 32783
2012-07-20 12:28:50 +00:00
Felix Fietkau
5d19a38d80 toolchain: sync eglibc headers/build split with uclibc changes
SVN-Revision: 32584
2012-07-03 14:23:32 +00:00
Felix Fietkau
f1a1d0a262 toolchain: fix libc headers dependency on kernel headers + minimal gcc
SVN-Revision: 32582
2012-07-03 10:43:59 +00:00
Felix Fietkau
ab9f9e2383 uClibc: add -Wno-unused-but-set-variable to get rid of unnecessary warning logspam
SVN-Revision: 32558
2012-06-30 21:44:09 +00:00
Felix Fietkau
c3caa1b768 uClibc: split the package into the main directory and the headers/ and utils/ subdirectories to clean up build order and fix quilt support
SVN-Revision: 32557
2012-06-30 21:44:05 +00:00
Felix Fietkau
59b384dabe toolchain: fix up lib64 symlink to lib before copying the initial prefix dir to avoid errors on copying
SVN-Revision: 32556
2012-06-30 21:43:59 +00:00
Felix Fietkau
e98810dced toolchain/uClibc: fix getting the nameserver from _res state after res_init. fixes displaying the nameserver in busybox nslookup
SVN-Revision: 32555
2012-06-30 18:12:23 +00:00
Felix Fietkau
70259bceb4 toolchain/gcc: fix installing the toolchain after removing the toolchain dir without a full rebuild
SVN-Revision: 32554
2012-06-30 18:12:19 +00:00
Felix Fietkau
e74e4dbd29 toolchain: keep the initial gcc around for later uclibc rebuilds
testing uclibc changes is tricky because the final gcc tends to miscompile
uclibc code or barf up internal compiler errors.
install binutils into $(TOOLCHAIN_DIR)/initial (without changing the configure
prefix) and copy it from there to $(TOOLCHAIN_DIR)/ so that the initial gcc
can be put into $(PATH) for the uclibc build, even if the final gcc
is already installed.

SVN-Revision: 32553
2012-06-30 18:12:15 +00:00