On Fri, Nov 27, 2015 at 02:24:05PM +0100, Tijl Coosemans wrote:
> On Fri, 27 Nov 2015 13:59:54 +0100 Baptiste Daroussin <b...@freebsd.org> 
> wrote:
> > On Tue, Nov 10, 2015 at 07:23:40PM +0100, Rainer Hurling wrote:
> >> I think I found the problem.
> >> 
> >> In my initial mail of this thread, I reported, that after upgrading
> >> Freebsd 11.0-CURRENT to r290538 (including locale and localedef updates)
> >> I am not able to build lang/gccXX any more. All I get are errors like
> >> that in usr/ports/lang/gccXX/work/build/gcc:
> >> 
> >> ----
> >> In file included from .././../gcc-4.8.5/gcc/genflags.c:26:
> >> In file included from ./tm.h:16:
> >> ./options.h:4293:3: error: redefinition of enumerator 'OPT_C'
> >>   OPT_C = 129,                               /* -C */
> >>   ^
> >> ----
> >> 
> >> After more than 20 of them the build stops with
> >> fatal error: too many errors emitted, stopping now [-ferror-limit=]
> >> 20 errors generated.
> >> 
> >> 
> >> This is with locale for Germany:
> >> LANG=de_DE.UTF-8
> >> LC_CTYPE="de_DE.UTF-8"
> >> LC_COLLATE="de_DE.UTF-8"
> >> LC_TIME="de_DE.UTF-8"
> >> LC_NUMERIC="de_DE.UTF-8"
> >> LC_MONETARY="de_DE.UTF-8"
> >> LC_MESSAGES="de_DE.UTF-8"
> >> LC_ALL=
> >> 
> >> 
> >> If I use 'LC_COLLATE="C"' for the build, the build works fine again:
> >> 
> >> cd /usr/ports/lang/gcc48
> >> env LC_COLLATE="C" make
> >> ...
> >> 
> >> 
> >> So it seems, that something with the new 'locale' code in base of HEAD
> >> is not working as expected here? (At least for other locales than US?)
> >> 
> >> I added bapt@, because he is the author introducing the new code into HEAD.
> >> 
> >> Hope, my explanations are clear enough to get the problem. Please feel
> >> free to ask for more information, if needed.
> > 
> > Your explanations are good, sorry for the delay for my reply I will look
> > into it.
> 
> I ran into this with lang/sdcc* which includes cpp from gcc.  At some
> point the build runs an awk script (opt-gather.awk) that collects command
> line options defined in *.opt files, sorts them and then puts them into
> a C array.  The problem seems to be that FreeBSD awk takes collation into
> account when sorting strings while GNU awk doesn't.  POSIX says that
> FreeBSD is correct, so I was thinking of adding something like this to
> bsd.port.mk:
> 
> USE_LOCALE?=  C
> LANG=         ${USE_LOCALE}
> LC_ALL=               ${USE_LOCALE}
> .export LANG LC_ALL
> 
> This gives a consistent locale environment for port builds.  Some ports
> already set LANG or LC_ALL.  That would have to be reviewed and I haven't
> had time for that yet.

yeah we should imho to that. The same issue appears with GNU tr which also
do not take in account collation (IIRC) while ours do.

Best regards,
Bapt

Attachment: signature.asc
Description: PGP signature

Reply via email to