Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 184281 - sys-libs/glibc-2.5-r3 fails to build with locale "tr_TR.UTF-8"
Summary: sys-libs/glibc-2.5-r3 fails to build with locale "tr_TR.UTF-8"
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Core system (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: Gentoo Toolchain Maintainers
URL: http://sourceware.org/ml/libc-alpha/2...
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2007-07-05 10:53 UTC by Burcin Erocal
Modified: 2007-07-05 21:46 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Burcin Erocal 2007-07-05 10:53:19 UTC
Updating glibc to 2.5-r3 on my amd64 system, which has system-wide locale settings of tr_TR.UTF-8, fails with the following error:

x86_64-pc-linux-gnu-gcc nsswitch.c -c -std=gnu99 -O2 -Wall -Winline -Wwrite-strings -fmerge-all-constants -fno-strict-aliasing -march=k8 -pipe -Wstrict-prototypes -mpreferred-stack-boundary=2  -fno-strict-aliasing   -I../include -I/var/tmp/portage/sys-libs/glibc-2.5-r3/work/build-x86-x86_64-pc-linux-gnu-nptl/nss -I/var/tmp/portage/sys-libs/glibc-2.5-r3/work/build-x86-x86_64-pc-linux-gnu-nptl -I../sysdeps/i386/elf -I../nptl/sysdeps/unix/sysv/linux/i386/i686 -I../nptl/sysdeps/unix/sysv/linux/i386 -I../sysdeps/unix/sysv/linux/i386 -I../ports/sysdeps/unix/sysv/linux -I../nptl/sysdeps/unix/sysv/linux -I../nptl/sysdeps/pthread -I../sysdeps/pthread -I../sysdeps/unix/sysv/linux -I../sysdeps/gnu -I../sysdeps/unix/common -I../sysdeps/unix/mman -I../sysdeps/unix/inet -I../ports/sysdeps/unix/sysv/i386 -I../sysdeps/unix/sysv/i386 -I../ports/sysdeps/unix/sysv -I../nptl/sysdeps/unix/sysv -I../sysdeps/unix/sysv -I../sysdeps/unix/i386 -I../ports/sysdeps/unix -I../nptl/sysdeps/unix -I../sysdeps/unix -I../sysdeps/posix -I../sysdeps/i386/i686/fpu -I../nptl/sysdeps/i386/i686 -I../sysdeps/i386/i686 -I../sysdeps/i386/i486 -I../nptl/sysdeps/i386/i486 -I../sysdeps/i386/fpu -I../nptl/sysdeps/i386 -I../sysdeps/i386 -I../sysdeps/wordsize-32 -I../sysdeps/ieee754/ldbl-96 -I../sysdeps/ieee754/dbl-64 -I../sysdeps/ieee754/flt-32 -I../sysdeps/ieee754 -I../sysdeps/generic/elf -I../sysdeps/generic -I../ports -I../nptl  -I.. -I../libio -I. -nostdinc -isystem /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include -isystem /usr/include -D_LIBC_REENTRANT -include ../include/libc-symbols.h        -o /var/tmp/portage/sys-libs/glibc-2.5-r3/work/build-x86-x86_64-pc-linux-gnu-nptl/nss/nsswitch.o -MD -MP -MF /var/tmp/portage/sys-libs/glibc-2.5-r3/work/build-x86-x86_64-pc-linux-gnu-nptl/nss/nsswitch.o.dt -MT /var/tmp/portage/sys-libs/glibc-2.5-r3/work/build-x86-x86_64-pc-linux-gnu-nptl/nss/nsswitch.o
In file included from nsswitch.c:39:
/var/tmp/portage/sys-libs/glibc-2.5-r3/work/build-x86-x86_64-pc-linux-gnu-nptl/gnu/lib-names.h:10:14: warning: ISO C99 requires whitespace after the macro name
/var/tmp/portage/sys-libs/glibc-2.5-r3/work/build-x86-x86_64-pc-linux-gnu-nptl/gnu/lib-names.h:12:11: warning: ISO C99 requires whitespace after the macro name
/var/tmp/portage/sys-libs/glibc-2.5-r3/work/build-x86-x86_64-pc-linux-gnu-nptl/gnu/lib-names.h:13:11: warning: ISO C99 requires whitespace after the macro name
/var/tmp/portage/sys-libs/glibc-2.5-r3/work/build-x86-x86_64-pc-linux-gnu-nptl/gnu/lib-names.h:13:1: warning: "L" redefined
/var/tmp/portage/sys-libs/glibc-2.5-r3/work/build-x86-x86_64-pc-linux-gnu-nptl/gnu/lib-names.h:12:1: warning: this is the location of the previous definition
/var/tmp/portage/sys-libs/glibc-2.5-r3/work/build-x86-x86_64-pc-linux-gnu-nptl/gnu/lib-names.h:14:11: warning: ISO C99 requires whitespace after the macro name
...

Checking the contents of /var/tmp/portage/sys-libs/glibc-2.5-r3/work/build-x86-x86_64-pc-linux-gnu-nptl/gnu/lib-names.h, I see the following:

/* This file is automatically generated.
   It defines macros to allow user program to find the shared
   library files which come as part of GNU libc.  */
#ifndef __GNU_LIB_NAMES_H
#define __GNU_LIB_NAMES_H	1

#include <bits/wordsize.h>

#if __WORDSIZE == 32
# define LD_LİNUX_SO                   "ld-linux.so.2"
# define LD_SO                          "ld-linux.so.2"
# define LİBANL_SO                     "libanl.so.1"
# define LİBBROKENLOCALE_SO            "libBrokenLocale.so.1"
# define LİBCRYPT_SO                   "libcrypt.so.1"
# define LİBC_SO                       "libc.so.6"
# define LİBCİDN_SO                   "libcidn.so.1"


Note that the I's on the define lines are "I with dot above", i.e., what you get if you convert 'i' to upper case in the locale tr_TR.UTF-8. (The lowercase of "I" is "i dotless" in Turkish.)

I guess portage uses the system locale in the build environment and the lib-names.h is automatically generated, with the errors above. I haven't looked into the ebuild to see why the file lib-names.h gets mangled that way.

Putting the lines 

unset LANG
unset LC_ALL
unset LC_CTYPE

in the glibc-2.5-rc3 ebuild fixes the problem. 


Maybe clearing the system locale settings in the portage build environment should be considered as a general solution to this problem.
Comment 1 SpanKY gentoo-dev 2007-07-05 21:35:47 UTC
should be fixed in cvs ... the one awk in question can be run with LC_ALL=C