[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
make 4.0 mishandles UTF-8 characters in macros
From: |
Paul Eggert |
Subject: |
make 4.0 mishandles UTF-8 characters in macros |
Date: |
Wed, 06 Aug 2014 12:36:01 -0700 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.0 |
Given the attached Makefile, which uses the UTF-8 encoding and which
contains a macro whose definiens contains the UTF-8 character '–'
(U+2013, EN DASH), 'make' 4.0 fails on my Fedora 20 x86-64 host in the C
locale, with the following symptoms:
echo '\342
/bin/sh: -c: line 0: unexpected EOF while looking for matching `''
/bin/sh: -c: line 1: syntax error: unexpected end of file
Makefile:3: recipe for target 'bad' failed
make: *** [bad] Error 1
(where "\342" stands for a single byte with octal value 342). 'make
good' works. This bug is a regression from make 3.82, which works OK
with this Makefile.
The bug is also present in the en_US.utf8 locale.
Because of this bug, 'make check' fails with the tz 2014f release. I
can reproduce this failure as follows:
mkdir d
cd d
wget -O-
http://www.iana.org/time-zones/repository/releases/tzcode2014f.tar.gz |
gzip -d | tar xf -
wget -O-
http://www.iana.org/time-zones/repository/releases/tzdata2014f.tar.gz |
gzip -d | tar xf -
make check
and this fails with a diagnostic similar to the above.
I tried to look into this but I can't build 'make' from the Savannah
source. I'll post a separate bug report about that.
Makefile
Description: Text document
- make 4.0 mishandles UTF-8 characters in macros,
Paul Eggert <=