Commit Graph

15 Commits

Author SHA1 Message Date
Thomas Petazzoni
9f99ec21e5 icu: remove BR2_ARCH_HAS_ATOMICS dependency
The BR2_ARCH_HAS_ATOMICS was added because on ARC, atomic instructions
may not be provided by the architecture and therefore the compiler
does not provide the __sync_*() built-ins.

However, since then, icu was changed and is now able to use C++11
atomics, or even no atomic operations at all. In fact, icu will:

 * If possible, it will use C++11 atomics, which internally rely on
   the __atomic built-ins. These are available since gcc 4.7, and all
   architectures provide it. On some architectures, you *must* link
   with libatomic, on some other architectures, they are available
   built-in, but in all cases, linking against libatomic does not
   harm. Thanks to this, even ARC with no atomic support (which was
   the original reason for adding the BR2_ARCH_HAS_ATOMICS) dependency
   builds fine, provided -latomic is added to LIBS.

 * If C++11 atomics are not available, then it falls back to
   __sync_*() built-ins, which allows compilers older than 4.7 to be
   supported.

 * If really no atomic mechanism is available, then it falls back to a
   basic implementation based on a mutex.

Conclusion:

 - The BR2_ARCH_HAS_ATOMICS dependency is no longer needed.

 - We need to link with -latomic when gcc >= 4.7 is used.

Note that reverse dependencies of icu are also changed accordingly.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2016-01-26 21:26:08 +01:00
Gustavo Zacarias
2ae93873e3 icu: update icudata generator URL
It was pointing to version 51.x which wouldn't work well with 55.x.

Point it to the latest version that matches the current buildroot
version (55). When a new ICU major version is released a link for the
"old" 55 version will be available below as is it currently for
previous versions such as 54, 53 and so on.

Signed-off-by: Gustavo Zacarias <gustavo.zacarias@free-electrons.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-07-12 16:37:08 +02:00
Yann E. MORIN
19237110da package/icu: use the new ARCH_HAS_ATOMICS as dependency
And propagate to the reverse dependencies of icu.
Also, fix beecrypt's comment: only the C++ support needs atomics.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Anton Kolesov <Anton.Kolesov@synopsys.com>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-18 10:56:42 +02:00
Anton Kolesov
b7a791a103 icu: Add dependency on atomic intrinsics
ICU requires GCC built-in atomic functions which are architecture specific
and may not be implemented.

Signed-off-by: Anton Kolesov <Anton.Kolesov@synopsys.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2014-08-03 11:24:33 +02:00
Johan Derycke
abded6bfea icu: add an option to add a custom data library file
[Thomas:
 - use one single BR2_PACKAGE_ICU_CUSTOM_DATA_PATH string option
   instead of a boolean option + a string option, which always causes
   a lot of issues with random configurations that enable the boolean
   option, but do not provide a valid value for the string option.
 - enclose the definition of ICU_COPY_CUSTOM_DATA into the condition.]

Signed-off-by: Johan Derycke <johan.derycke@barco.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2014-07-28 22:43:04 +02:00
Thomas Petazzoni
8797a8cb58 icu: not available when BR2_BINFMT_FLAT is used
icu does not recognize 'uclinux' as a supported platform. While making
it recognize uclinux is easy, there is another problem down the road:
icu does very weird things to generate an ELF library containing
static data (libicudata.a), and the generated library being ELF, it is
not compatible with the FLAT binary format expected by uclinux
platforms such as Blackfin in FLAT format.

Therefore, we simply disallow the selection of icu on FLAT
platforms.

Note that adding a dependency on BR2_BINFMT_ELF doesn't work, because
BR2_BINFMT_FDPIC is considered to be separate (even if technically
FDPIC is a derivative of ELF). That's why the dependency we're adding
is "depends on !BR2_BINFMT_FLAT" and not "depends on BR2_BINFMT_ELF".

Fixes:

  http://autobuild.buildroot.org/results/b41/b415fed7fae4012bad7d8b53a481bd71bdab716f/build-end.log

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-02-20 19:06:31 +01:00
Mischa Jonker
9b6c5e9c98 icu: Doesn't work on ARC yet
icu depends on __sync_sub_and_fetch and other atomic primitives that
don't exist in the ARC toolchain yet.

[Peter: adjust beecrypt/php comment dependency, don't mention atomic builtins]
Signed-off-by: Mischa Jonker <mjonker@synopsys.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2013-11-11 22:27:25 +01:00
Thomas De Schampheleire
66bb10b7b0 Config.in files: unify comments of toolchain option dependencies
This patch lines up the comments in Config.in files that clarify which
toolchain options the package depends on.

Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2013-10-14 22:45:57 +02:00
Axel Lin
a2bdef6575 icu: needs threads
Fixes:
http://autobuild.buildroot.net/results/ae7/ae721db2dd4e764a2af3825c388a63cad9720ebe/

Signed-off-by: Axel Lin <axel.lin@ingics.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2013-10-08 17:04:18 +02:00
Gustavo Zacarias
84241e9499 icu: convert to autotargets and bump to version 4.4.2
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-12-22 23:45:17 +01:00
Peter Korsgaard
b84a6adc28 icu: needs wchar support in toolchain as well 2009-01-27 15:02:29 +00:00
Peter Korsgaard
ad9402dba5 icu: add project url to help text 2009-01-27 15:02:25 +00:00
Peter Korsgaard
c0fd0f62f9 icu: needs C++ support in toolchain 2009-01-27 15:02:22 +00:00
Peter Korsgaard
4683420c4c Kconfig: remove 'default n'
'default n' is the default, so there's no need to say it explicitly.
2008-07-17 20:01:44 +00:00
John Voltz
bc7ae43824 added icu 2008-03-06 18:12:45 +00:00