This is the mail archive of the crossgcc@sourceware.org mailing list for the crossgcc project.
See the CrossGCC FAQ for lots more information.
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
| Other format: | [Raw text] | |
2009/10/28 Yann E. MORIN <yann.morin.1998@anciens.enib.fr>:
> Yes, this is a known 'issue'. There is a kind of plan to have buildroot
> rely on crosstool-NG to build its toolchain, so we'd end up with the
> same issue, and the idea was to make crosstol-NG expose its configuration
> so buildroot can act accordingly (enable/disable things).
Ah, okay...I saw Thomas Petazzoni's patches to better support external
toolchains. Buildroot currently only checks, if some values of the
uclibc-configuration from the crosstool-ng toolchain differs from the
values in buildroot-configuration.
( http://git.buildroot.net/buildroot/commit/?id=9456b58a8b3b4efdd8038a68370acf618aa9465b
)
So, in a next step buildroot would have to not only check those
values, but read them into its own configuration...but this is
buildroot-related stuff.
> As far as I remember, the g++ would not build if wchar was missing in the
> C library. But things may have changed, and this may work now. YMMV.
I'm fairly inexperienced in toolchain-creation, but I successfully
build several uclibc-toolchains with g++ (i386, powerpc) without wchar
(and locales-support). So it seems to be unneeded nowadays ;)
although, wchar is required for locales support:
http://git.buildroot.net/buildroot/commit/?id=27ce942e6536174a9fa6f5dd13f87d52bca0950c
> The uClibc config file is there for a purpose: so the user can set options.
> I would rather not duplicate the config menu from uClibc, and leave up to
> the user to give an appropriate config file.
Something like "ct-ng uclibc-menuconfig" would be very useful in that case...
> But OTOH, there's already an option to enable/disable locales in uClibc.
With the attached patch I added a "enable/disable wchar" entry in
ct-ng. That solves my problem for now...
...as I'm using buildroot, I've done it the buildroot-way (take a
uclibc-configuration and override some values important for other
packages)
I think this would be a good solution for ct-ng too. Take a
uclibc-configuration and override values, important for other parts of
the toolchain-creation via kconfig-select. In this scenario it's
transparent for the user, what settings are used in the resulting
toolchain, as it is all defined via menuconfig.
So, if wchar would be needed by c++ the following patch would be
sufficient, to select wchar.
diff -Naur plain/crosstool-ng-1.5.1/config/cc.in crosstool-ng-1.5.1/config/cc.in
--- plain/crosstool-ng-1.5.1/config/cc.in 2009-10-28 19:43:37.000000000 +0100
+++ crosstool-ng-1.5.1/config/cc.in 2009-11-06 15:15:23.000000000 +0100
@@ -35,6 +35,7 @@
prompt "C++"
default n
depends on CC_SUPPORT_CXX
+ select LIBC_UCLIBC_WCHAR if (LIBC_uClibc)
help
Enable building a C++ compiler.
What do you think about making those hardcoded defines in
scripts/build/libc/uClibc.sh visible in menuconfig in the next step?
regards
Simon Pasch
diff -Naur plain/crosstool-ng-1.5.1/config/libc/uClibc.in crosstool-ng-1.5.1/config/libc/uClibc.in
--- plain/crosstool-ng-1.5.1/config/libc/uClibc.in 2009-10-28 19:43:37.000000000 +0100
+++ crosstool-ng-1.5.1/config/libc/uClibc.in 2009-11-06 10:57:17.000000000 +0100
@@ -152,9 +152,19 @@
config LIBC_UCLIBC_LOCALES
bool
+ select LIBC_UCLIBC_WCHAR
prompt "Add support for locales"
default n
help
Say y if you want uClibc to support localisation.
Note that seems to be broken on recent uClibc releases.
+
+config LIBC_UCLIBC_WCHAR
+ bool
+ prompt "Add support for WCHAR"
+ default n
+ help
+ Say y if you want uClibc to support WCHAR.
+
+ Maybe this is needed, if you're building a C++-Compiler
diff -Naur plain/crosstool-ng-1.5.1/scripts/build/libc/uClibc.sh crosstool-ng-1.5.1/scripts/build/libc/uClibc.sh
--- plain/crosstool-ng-1.5.1/scripts/build/libc/uClibc.sh 2009-10-28 19:43:37.000000000 +0100
+++ crosstool-ng-1.5.1/scripts/build/libc/uClibc.sh 2009-11-06 11:47:24.000000000 +0100
@@ -292,14 +292,23 @@
ENDSED
fi
+ # WCHAR support
+ if [ "${CT_LIBC_UCLIBC_WCHAR}" = "y" ] ; then
+ cat >>"${munge_file}" <<-ENDSED
+s/^.*UCLIBC_HAS_WCHAR.*/UCLIBC_HAS_WCHAR=y/
+ENDSED
+ else
+ cat >>"${munge_file}" <<-ENDSED
+s/^.*UCLIBC_HAS_WCHAR.*/UCLIBC_HAS_WCHAR=n/
+ENDSED
+ fi
+
# Force on options needed for C++ if we'll be making a C++ compiler.
# I'm not sure locales are a requirement for doing C++... Are they?
if [ "${CT_CC_LANG_CXX}" = "y" ]; then
cat >>"${munge_file}" <<-ENDSED
s/^# DO_C99_MATH is not set/DO_C99_MATH=y/
s/^# UCLIBC_CTOR_DTOR is not set/UCLIBC_CTOR_DTOR=y/
-# Add these three lines when doing C++?
-s/^# UCLIBC_HAS_WCHAR is not set/UCLIBC_HAS_WCHAR=y/
#s/^# UCLIBC_HAS_LOCALE is not set/UCLIBC_HAS_LOCALE=y\\nUCLIBC_PREGENERATED_LOCALE_DATA=y\\n\\# UCLIBC_DOWNLOAD_PREGENERATED_LOCALE_DATA is not set\\n\\# UCLIBC_HAS_XLOCALE is not set/
s/^# UCLIBC_HAS_GNU_GETOPT is not set/UCLIBC_HAS_GNU_GETOPT=y/
ENDSED
-- For unsubscribe information see http://sourceware.org/lists.html#faq
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |