Hi , trying to update tzdata/code on an embedded device. Last install I did was in 2016, so been a while. System is an old linux system (GCC 4.1.2, GLIBC 2.5), with some updates over the years. However I get a zic error on installing the zone files: ./zic: Can't link /usr/share/zoneinfo/Africa/Abidjan to /usr/share/zoneinfo/Africa/Accra: Invalid argument Complete output: make CFLAGS='-std=gnu99' TZDIR=/usr/share/zoneinfo install VERSION=`cat version` && sed \ -e 's|#!/bin/bash|#!/bin/bash|g' \ -e 's|AWK=[^}]*|AWK='\''awk'\''|g' \ -e 's|\(PKGVERSION\)=.*|\1='\''(tzcode) '\''|' \ -e 's|\(REPORT_BUGS_TO\)=.*|\1=tz@iana.org|' \ -e 's|TZDIR=[^}]*|TZDIR=/usr/share/zoneinfo|' \ -e 's|\(TZVERSION\)=.*|\1='"$VERSION"'|' \ <tzselect.ksh >tzselect.out chmod +x tzselect.out mv tzselect.out tzselect VERSION=`cat version` && printf '%s\n' \ 'static char const PKGVERSION[]="(tzcode) ";' \ "static char const TZVERSION[]=\"$VERSION\";" \ 'static char const REPORT_BUGS_TO[]=tz@iana.org<mailto:tz@iana.org>;' \ >version.h.out mv version.h.out version.h cc -DTZDIR='"/usr/share/zoneinfo"' -std=gnu99 -c -o zic.o zic.c cc -DTZDIR='"/usr/share/zoneinfo"' -o zic -std=gnu99 zic.o cc -DTZDIR='"/usr/share/zoneinfo"' -std=gnu99 -c -o zdump.o zdump.c cc -DTZDIR='"/usr/share/zoneinfo"' -std=gnu99 -c -o localtime.o localtime.c localtime.c: In function 'tzloadbody': localtime.c:698: warning: comparison is always false due to limited range of data type localtime.c:708: warning: comparison is always false due to limited range of data type cc -DTZDIR='"/usr/share/zoneinfo"' -std=gnu99 -c -o asctime.o asctime.c cc -DTZDIR='"/usr/share/zoneinfo"' -std=gnu99 -c -o strftime.o strftime.c cc -DTZDIR='"/usr/share/zoneinfo"' -o zdump -std=gnu99 zdump.o localtime.o asctime.o strftime.o cc -DTZDIR='"/usr/share/zoneinfo"' -std=gnu99 -c -o difftime.o difftime.c rm -f libtz.a ar -rc libtz.a localtime.o asctime.o difftime.o strftime.o : libtz.a awk \ -v DATAFORM=`expr main.zi : '\(.*\).zi'` \ -v PACKRATDATA='' \ -v PACKRATLIST='' \ -f ziguard.awk \ africa antarctica asia australasia europe northamerica southamerica etcetera factory backward >main.zi.out mv main.zi.out main.zi version=`sed 1q version` && \ LC_ALL=C awk \ -v dataform='main' \ -v deps='ziguard.awk africa antarctica asia australasia europe northamerica southamerica etcetera factory backward zishrink.awk' \ -v redo='posix_right' \ -v version="$version" \ -f zishrink.awk \ main.zi >tzdata.zi.out mv tzdata.zi.out tzdata.zi awk \ -v DATAFORM=`expr vanguard.zi : '\(.*\).zi'` \ -v PACKRATDATA='' \ -v PACKRATLIST='' \ -f ziguard.awk \ africa antarctica asia australasia europe northamerica southamerica etcetera factory backward >vanguard.zi.out mv vanguard.zi.out vanguard.zi awk \ -v DATAFORM=`expr rearguard.zi : '\(.*\).zi'` \ -v PACKRATDATA='' \ -v PACKRATLIST='' \ -f ziguard.awk \ africa antarctica asia australasia europe northamerica southamerica etcetera factory backward >rearguard.zi.out mv rearguard.zi.out rearguard.zi make BACKWARD='backward' DESTDIR='' LEAPSECONDS='' PACKRATDATA='' PACKRATLIST='' TZDEFAULT='/etc/localtime' TZDIR='/usr/share/zoneinfo' ZIC='./zic ' LEAPSECONDS= install_data make[1]: Entering directory `/vmfs/devroot/tz' ./zic -d '/usr/share/zoneinfo' tzdata.zi ./zic: Can't link /usr/share/zoneinfo/Africa/Abidjan to /usr/share/zoneinfo/Africa/Accra: Invalid argument make[1]: *** [install_data] Error 1 make[1]: Leaving directory `/vmfs/devroot/tz' make: *** [posix_only] Error 2 Rune Torgersen Senior Engineer Innovative Systems LLC
Some checking: Tzcode 2018a through 2021a works, with quite a few warning: "tzdata.zi", line 4423: symbolic link used because hard link failed: Invalid argument tzcode2021b and up: ./zic: Can't link /usr/share/zoneinfo/Africa/Abidjan to /usr/share/zoneinfo/Africa/Accra: Invalid argument From: tz <tz-bounces@iana.org> On Behalf Of Rune Torgersen via tz Sent: Thursday, September 14, 2023 3:24 PM To: Time zone mailing list <tz@iana.org> Subject: [tz] 2023c install issue This email originated from outside Innovative Systems. Do not click links or open attachments unless you recognize the sender and know the content is safe. Hi , trying to update tzdata/code on an embedded device. Last install I did was in 2016, so been a while. System is an old linux system (GCC 4.1.2, GLIBC 2.5), with some updates over the years. However I get a zic error on installing the zone files: ./zic: Can't link /usr/share/zoneinfo/Africa/Abidjan to /usr/share/zoneinfo/Africa/Accra: Invalid argument Complete output: make CFLAGS='-std=gnu99' TZDIR=/usr/share/zoneinfo install VERSION=`cat version` && sed \ -e 's|#!/bin/bash|#!/bin/bash|g' \ -e 's|AWK=[^}]*|AWK='\''awk'\''|g' \ -e 's|\(PKGVERSION\)=.*|\1='\''(tzcode) '\''|' \ -e 's|\(REPORT_BUGS_TO\)=.*|\1=tz@iana.org|' \ -e 's|TZDIR=[^}]*|TZDIR=/usr/share/zoneinfo|' \ -e 's|\(TZVERSION\)=.*|\1='"$VERSION"'|' \ <tzselect.ksh >tzselect.out chmod +x tzselect.out mv tzselect.out tzselect VERSION=`cat version` && printf '%s\n' \ 'static char const PKGVERSION[]="(tzcode) ";' \ "static char const TZVERSION[]=\"$VERSION\";" \ 'static char const REPORT_BUGS_TO[]=tz@iana.org<mailto:tz@iana.org>;' \ >version.h.out mv version.h.out version.h cc -DTZDIR='"/usr/share/zoneinfo"' -std=gnu99 -c -o zic.o zic.c cc -DTZDIR='"/usr/share/zoneinfo"' -o zic -std=gnu99 zic.o cc -DTZDIR='"/usr/share/zoneinfo"' -std=gnu99 -c -o zdump.o zdump.c cc -DTZDIR='"/usr/share/zoneinfo"' -std=gnu99 -c -o localtime.o localtime.c localtime.c: In function 'tzloadbody': localtime.c:698: warning: comparison is always false due to limited range of data type localtime.c:708: warning: comparison is always false due to limited range of data type cc -DTZDIR='"/usr/share/zoneinfo"' -std=gnu99 -c -o asctime.o asctime.c cc -DTZDIR='"/usr/share/zoneinfo"' -std=gnu99 -c -o strftime.o strftime.c cc -DTZDIR='"/usr/share/zoneinfo"' -o zdump -std=gnu99 zdump.o localtime.o asctime.o strftime.o cc -DTZDIR='"/usr/share/zoneinfo"' -std=gnu99 -c -o difftime.o difftime.c rm -f libtz.a ar -rc libtz.a localtime.o asctime.o difftime.o strftime.o : libtz.a awk \ -v DATAFORM=`expr main.zi : '\(.*\).zi'` \ -v PACKRATDATA='' \ -v PACKRATLIST='' \ -f ziguard.awk \ africa antarctica asia australasia europe northamerica southamerica etcetera factory backward >main.zi.out mv main.zi.out main.zi version=`sed 1q version` && \ LC_ALL=C awk \ -v dataform='main' \ -v deps='ziguard.awk africa antarctica asia australasia europe northamerica southamerica etcetera factory backward zishrink.awk' \ -v redo='posix_right' \ -v version="$version" \ -f zishrink.awk \ main.zi >tzdata.zi.out mv tzdata.zi.out tzdata.zi awk \ -v DATAFORM=`expr vanguard.zi : '\(.*\).zi'` \ -v PACKRATDATA='' \ -v PACKRATLIST='' \ -f ziguard.awk \ africa antarctica asia australasia europe northamerica southamerica etcetera factory backward >vanguard.zi.out mv vanguard.zi.out vanguard.zi awk \ -v DATAFORM=`expr rearguard.zi : '\(.*\).zi'` \ -v PACKRATDATA='' \ -v PACKRATLIST='' \ -f ziguard.awk \ africa antarctica asia australasia europe northamerica southamerica etcetera factory backward >rearguard.zi.out mv rearguard.zi.out rearguard.zi make BACKWARD='backward' DESTDIR='' LEAPSECONDS='' PACKRATDATA='' PACKRATLIST='' TZDEFAULT='/etc/localtime' TZDIR='/usr/share/zoneinfo' ZIC='./zic ' LEAPSECONDS= install_data make[1]: Entering directory `/vmfs/devroot/tz' ./zic -d '/usr/share/zoneinfo' tzdata.zi ./zic: Can't link /usr/share/zoneinfo/Africa/Abidjan to /usr/share/zoneinfo/Africa/Accra: Invalid argument make[1]: *** [install_data] Error 1 make[1]: Leaving directory `/vmfs/devroot/tz' make: *** [posix_only] Error 2 Rune Torgersen Senior Engineer Innovative Systems LLC
On 2023-09-14 14:03, Rune Torgersen via tz wrote:
Tzcode 2018a through 2021a works, with quite a few warning: "tzdata.zi", line 4423: symbolic link used because hard link failed: Invalid argument
tzcode2021b and up: ./zic: Can't link /usr/share/zoneinfo/Africa/Abidjan to /usr/share/zoneinfo/Africa/Accra: Invalid argument
What's the Linux kernel version? 2.6.16 or 2.6.17? Please try the attached proposed patch, which I installed into the development sources on GitHub. I don't have easy access to systems like yours so it'd be helpful if you could test the patch. Thanks.
Yes, that works! Ppatch did not apply to tzcode 2023c, but I used the latest from the git repo, which included this patch. Looks like it made hardlinks without issues. Kernel version is actually 2.6.24 and 2.6.25.
-----Original Message----- From: Paul Eggert <eggert@cs.ucla.edu> Sent: Friday, September 15, 2023 2:07 AM To: Rune Torgersen <runet@innovsys.com> Cc: Time zone mailing list <tz@iana.org> Subject: Re: [tz] 2023c install issue
This email originated from outside Innovative Systems. Do not click links or open attachments unless you recognize the sender and know the content is safe.
On 2023-09-14 14:03, Rune Torgersen via tz wrote:
Tzcode 2018a through 2021a works, with quite a few warning: "tzdata.zi", line 4423: symbolic link used because hard link failed: Invalid argument
tzcode2021b and up: ./zic: Can't link /usr/share/zoneinfo/Africa/Abidjan to /usr/share/zoneinfo/Africa/Accra: Invalid argument
What's the Linux kernel version? 2.6.16 or 2.6.17?
Please try the attached proposed patch, which I installed into the development sources on GitHub. I don't have easy access to systems like yours so it'd be helpful if you could test the patch. Thanks.
On 9/15/23 08:33, Rune Torgersen wrote:
Kernel version is actually 2.6.24 and 2.6.25.
That's odd, as linkat's AT_SYMLINK_FOLLOW support was introduced by Ulrich Drepper in Linux 2.6.18; I just checked the Linux source code repository. Perhaps your glibc is configured to not use the *at kernel calls, or maybe you're using an unusual (not x86; or tailored) platform. It's probably not worth our time spelunking this old kernel. Glad my patch fixed things for you. The patch should appear in the next TZDB release.
On 16/09/2023 01:58, Paul Eggert via tz wrote:
On 9/15/23 08:33, Rune Torgersen wrote:
Kernel version is actually 2.6.24 and 2.6.25.
That's odd, as linkat's AT_SYMLINK_FOLLOW support was introduced by Ulrich Drepper in Linux 2.6.18; I just checked the Linux source code repository. Perhaps your glibc is configured to not use the *at kernel calls, or maybe you're using an unusual (not x86; or tailored) platform.
Doesn't it also depend on the version of the Linux system headers that glibc was configured with? -- -=( Ian Abbott <abbotti@mev.co.uk> || MEV Ltd. is a company )=- -=( registered in England & Wales. Regd. number: 02862268. )=- -=( Regd. addr.: S11 & 12 Building 67, Europa Business Park, )=- -=( Bird Hall Lane, STOCKPORT, SK3 0XA, UK. || www.mev.co.uk )=-
It's a PowerPC system, so that might a reason.
-----Original Message----- From: Paul Eggert <eggert@cs.ucla.edu> Sent: Friday, September 15, 2023 7:58 PM To: Rune Torgersen <runet@innovsys.com> Cc: Time zone mailing list <tz@iana.org> Subject: Re: [tz] 2023c install issue
This email originated from outside Innovative Systems. Do not click links or open attachments unless you recognize the sender and know the content is safe.
On 9/15/23 08:33, Rune Torgersen wrote:
Kernel version is actually 2.6.24 and 2.6.25.
That's odd, as linkat's AT_SYMLINK_FOLLOW support was introduced by Ulrich Drepper in Linux 2.6.18; I just checked the Linux source code repository. Perhaps your glibc is configured to not use the *at kernel calls, or maybe you're using an unusual (not x86; or tailored) platform.
It's probably not worth our time spelunking this old kernel. Glad my patch fixed things for you. The patch should appear in the next TZDB release.
If I remember correctly the glibc (2.5) was probably first configured against a 2.6.10 ish kernel, and might not have been updated for 2.6.25. Anyways, the patch seems to work, so no need to dive any deeper. Thanks for the quick patch.
-----Original Message----- From: tz <tz-bounces@iana.org> On Behalf Of Rune Torgersen via tz Sent: Monday, September 18, 2023 8:43 AM To: Paul Eggert <eggert@cs.ucla.edu> Cc: Time zone mailing list <tz@iana.org> Subject: Re: [tz] 2023c install issue
This email originated from outside Innovative Systems. Do not click links or open attachments unless you recognize the sender and know the content is safe.
It's a PowerPC system, so that might a reason.
-----Original Message----- From: Paul Eggert <eggert@cs.ucla.edu> Sent: Friday, September 15, 2023 7:58 PM To: Rune Torgersen <runet@innovsys.com> Cc: Time zone mailing list <tz@iana.org> Subject: Re: [tz] 2023c install issue
This email originated from outside Innovative Systems. Do not click links or open attachments unless you recognize the sender and know the content is safe.
On 9/15/23 08:33, Rune Torgersen wrote:
Kernel version is actually 2.6.24 and 2.6.25.
That's odd, as linkat's AT_SYMLINK_FOLLOW support was introduced by Ulrich Drepper in Linux 2.6.18; I just checked the Linux source code repository. Perhaps your glibc is configured to not use the *at kernel calls, or maybe you're using an unusual (not x86; or tailored) platform.
It's probably not worth our time spelunking this old kernel. Glad my patch fixed things for you. The patch should appear in the next TZDB release.
participants (3)
-
Ian Abbott -
Paul Eggert -
Rune Torgersen