From nobody Sat Aug 23 16:10:19 2025 X-Original-To: dev-commits-ports-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4c8MV74FrXz665sn for ; Sat, 23 Aug 2025 16:10:39 +0000 (UTC) (envelope-from marklmi@yahoo.com) Received: from sonic316-54.consmr.mail.gq1.yahoo.com (sonic316-54.consmr.mail.gq1.yahoo.com [98.137.69.30]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4c8MV65DDFz3PhX for ; Sat, 23 Aug 2025 16:10:38 +0000 (UTC) (envelope-from marklmi@yahoo.com) Authentication-Results: mx1.freebsd.org; dkim=pass header.d=yahoo.com header.s=s2048 header.b=PPzJYrsi; dmarc=pass (policy=reject) header.from=yahoo.com; spf=pass (mx1.freebsd.org: domain of marklmi@yahoo.com designates 98.137.69.30 as permitted sender) smtp.mailfrom=marklmi@yahoo.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1755965432; bh=GXhiTH2nPF1d4iy0r/BXK6yiN39B+i1BOWCMl0Ez7uw=; h=From:Subject:Date:Cc:To:References:From:Subject:Reply-To; b=PPzJYrsi5rjDJBb6NXyjzsgrM3wcX+OcjyKH6o/fIsgd+9d/ZstVkarnSYhb4d+d9S6RlhAgOXYbNyjuD+RmPxDnCzrkSWHrKX63qBN/M0K1IxLMbnPXMNqN84wa62r5hk75eSjnVHQqI/A/lM7yHL6z/E0IHCCfpyhx+98mjOHi8rVkrAHwcVQ7vtqb9tJUmPcIm0vcDIm4K+Ys+sEe09sES2rjYmJo2oNv3lnLO11O1ExIUvVg76f3uacXy/vvWrOJ4n4ixJMIhCgvq6M0XF09m9Qk8X0uKcq9pOORYL15oIE5/y2GEhkd/7XMFDa2mTCcUHtrLnDbEKwtmNAmyA== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1755965432; bh=6lFTi1yUTStPEeRjKJ+cJhsn0Ose3D/A6Eb//OGQolC=; h=X-Sonic-MF:From:Subject:Date:To:From:Subject; b=OZSouybX7ylRGvK+OkrA/GRbuLCXVHbWgN0UPxgPhfsXfXkaWX9FRhD7z24maRiOftgGDAvX6RJAY7qLkH5VJgXxYXUlSC/f+xHseTqbVFCDPMctU0R9PByWkRUpbUviN4mhHaCJ2toTBs8qT5WwokoCA4UWEbqbzmDIwnAdsIjekG6L6JkdzGqQ8/ouc1DJ+9SGSKH6d21r2cnpHoZob7YnwsWcfDrUzi91sBaolZCx/9P72z7CdB/wrJUwbES4jHJkMLswictSNyCZDiZ+lO+Y2Crgxsi0PF8gdFdQeDX9Id9rJ4waz/3u8vcYcPwi1vPhvLRyUTR+g/89g4oAvg== X-YMail-OSG: aSQO3x4VM1mN1ylLNXIdrfWI1ctTQT3pfQI8gnkWM8TAaI2oRSt8tyRdY5mdVOH bCrn9k5OqgP_Rwm30Si1xXq4LgikkIB7CzRZKqKwHMEBr1KAGR55RLXtL0.F9pgN2ZfvTqNIFq6L Shf14HRM9XpvN1p3UlQexImVqIsbXpDyk3D5Q2Tya.PoPbELakMrUdz.0Kyiy4HnX3izWxYCPItI mYFULiqlOn3bcjufKuwHvoqmqAFd4bQY17uFE1YaDA4hBjn2lwXwK00DEI944bp_QN8tMmaEFIEh NVeUbExVZAoJdCGGNQZ2dNhSFCx3GlyuuHEQuN.ckDI5oQjXolSHekgRZ_MNo6Mqjci_tnLwj0H6 fCq57qOmaRS_SR3oCk8G0iSxt1UaCX9JsfdBfQYlKC9bq7NJRmJJQRv5t2oaj8gUGpX0_XtB4a5t mTKtSIpcNzdqGS7hqBo42Mf_Zw4SH41vbjVwUftSVFJHT2lrshgGTMTYpGpywYZOATfdGuIKvkzj 6fpOaO8c8_kxEs7Xx4Ht3rwYqOXbqG376ZDlpK.M4V16LNSkohMMLk5rX7KyuTvH0_x4iKsAADAm 6mlVlfAS1QwjPVPdJQLvjiAeH64_b2pKmaNFCVYv0TztT0SGzSm1dc_8EKCsBkF5uOp2z72ok55F gJSRbol332tKNxeNGwGvz3Kd6lnodp7_aOjyA8FQdIzPTjI_9a.K6MfGKfpd1vvp2uQCdlyDyHuh MO9AI0EoAtP7Gk8N4eO3N0aAhaBsVvRKkcW3MaN5WsYztTADDDADnLb0qaXZwDX6CIETM53fYh9_ bes5d_gn3Lb8TxJq_H1_NWtFywd_7FcugkLwQ0.SryuQjB1QB_5PeUeAYtz2PXeoZ_Zv4fzKPyC8 Y7reS.M51BgfOnvR2A3bnTnO3.o5d3bt.ZGAt3N0w605TKjyMn5EioopMee3u0EpjCyseYjHvcI2 K1ccsgnLAOvbL7AhjGB68m6_gp37703zQT6tDR1FLPo0Z.fd_T67KILUvoVeQHSxqRvtnxq_wjdP s3MUg95_rvOxnG0D5QY324AfLGgzxL4lx2kiRa3Db2bk061lMQyA2PlWY3Z6ypfUCIYQUbdlJwbF 9L3qjKwKrWmq43A0y7fG85zYA3USuve62hDGSJ7mnIzsrsjBXtf73lx.khaPohG3AxxYRKJYioyP tc_IgsUz0uC0K5ypouHVi9fcEu3GV9jFxZjtmUwlzhM2AWme2hrn9tGilKc0WkvBV3fGih8ou3c4 D2RN.U3pzPnrGkON4QvlHSPpy1gdmugrdIJJVh_yc5jfeJwDc.yGrP75AapF6lcpoO8sRfAHJ5y0 _YYNcWgLk8Gn60.iPYDvtRlhdAOWz8LfrrIMv91JYD76xcKQkirHX.BcfyeLiRdklQEyr3MfC3Mc RHwPIGzptzKovi_mSF00SOMDEsQ3Y6AFZCgY_xL_XNeLBfhBy3YQHiX9xdg26JxpIH2VUD1ChQFs M4YTy4Adn1yUKX5.wMLmLu5R4thzBXtwHcxhNS00HF48FeoJHXdstGlF4JV0Z.AmO1KRGnNXq_27 Jf5tl2hMvi.PdAQVcmrXaD_KtjfGqp_rVCYE2YD7KVvY5ETX79b3b.UfxsjdEET7g5be_jcXp_XJ i.eQikABCtnMlYkWDkTbsWg_XAWokTIikJf.2IwtbVJHmr4_wW2PbMVWpsWmdODlzM7kaBR_ykRa z7ydfAipUQbOg0ArnqKOTIYL84RZO2qhKP1umWe7_xvpwWZoFVoUarq9ei4zt60wtpZE8V9aO.AI HEzuF44FfpW5p7RlKxVrs1JiXCzdbVNDPax_8Zhpk_n4.dqsyk.kYa._DzrhncNPtoDoS4TyiiJ0 kJSg8eia86KzD_4F7TKQ7B_M4tGmtKzoXuugFI52hUnQlWR6a6A3gER9rrSgIlbvh.NaizimALwD w38HxajNs0ZbGuEHr1aA87vjt7SVfkQAJwzh8MZ7_u0v.egIUkOWoo9RiTLYnB54_aBx1Izieh3z yYXVvO9H6HPhDvaZYQ3aptd203PF5.ZSk4o_J6LHF9_YntgV_9d1eKXXy3Kv3IGPkypQsc0ZzGXU DcIqniQbR7S7l8UkMcBW1RHk.ptFfT96y46IN2Crgax.TfZoXo8VHvBitIURpeWJgrKmWMnZWyXV Gz5Z6cXapnwsLnWWHrnE1A9I_M_n7jLM4oLUKW_CYpo83huRnwSYc5RRec.eUMTZlwL7SraLUvhN 28c0bCeLFXIfvYdvKHtNMX327f9vKDnLayLwKtjMhN1q5qgjVK0dTAR7nFU6O1zNKRQwl7VIzl5B 2xD2a4OCZy2hkOGDszD.dE0dnes36zKzGgw-- X-Sonic-MF: X-Sonic-ID: 86f7dc6f-8514-41f3-8797-26c4b5833ee6 Received: from sonic.gate.mail.ne1.yahoo.com by sonic316.consmr.mail.gq1.yahoo.com with HTTP; Sat, 23 Aug 2025 16:10:32 +0000 Received: by hermes--production-gq1-74d64bb7d7-r5xbr (Yahoo Inc. Hermes SMTP Server) with ESMTPA ID e94eb1688c0ef61420e648185f5dc99f; Sat, 23 Aug 2025 16:10:30 +0000 (UTC) From: Mark Millard Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable List-Id: Commits to the main branch of the FreeBSD ports repository List-Archive: https://lists.freebsd.org/archives/dev-commits-ports-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-ports-main@freebsd.org Sender: owner-dev-commits-ports-main@FreeBSD.org Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3826.700.81\)) Subject: Re: git: 150c90138a5f - main - devel/libfaketime: Update version 0.9.10=>0.9.12 Message-Id: Date: Sat, 23 Aug 2025 09:10:19 -0700 Cc: Gleb Popov To: Gerald Pfeifer , Moin Rahman , dev-commits-ports-main@freebsd.org X-Mailer: Apple Mail (2.3826.700.81) References: X-Spamd-Bar: --- X-Spamd-Result: default: False [-4.00 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; NEURAL_HAM_LONG(-1.00)[-1.000]; NEURAL_HAM_SHORT(-1.00)[-0.999]; DMARC_POLICY_ALLOW(-0.50)[yahoo.com,reject]; R_DKIM_ALLOW(-0.20)[yahoo.com:s=s2048]; R_SPF_ALLOW(-0.20)[+ptr:yahoo.com]; MIME_GOOD(-0.10)[text/plain]; FROM_HAS_DN(0.00)[]; DKIM_TRACE(0.00)[yahoo.com:+]; RCVD_TLS_LAST(0.00)[]; ARC_NA(0.00)[]; TO_DN_SOME(0.00)[]; MIME_TRACE(0.00)[0:+]; DWL_DNSWL_NONE(0.00)[yahoo.com:dkim]; FREEMAIL_FROM(0.00)[yahoo.com]; RCPT_COUNT_THREE(0.00)[4]; ASN(0.00)[asn:36647, ipnet:98.137.64.0/20, country:US]; RCVD_VIA_SMTP_AUTH(0.00)[]; TO_MATCH_ENVRCPT_SOME(0.00)[]; RCVD_COUNT_TWO(0.00)[2]; FROM_EQ_ENVFROM(0.00)[]; FREEMAIL_ENVFROM(0.00)[yahoo.com]; MLMMJ_DEST(0.00)[dev-commits-ports-main@freebsd.org]; APPLE_MAILER_COMMON(0.00)[]; MID_RHS_MATCH_FROM(0.00)[]; RWL_MAILSPIKE_POSSIBLE(0.00)[98.137.69.30:from]; RCVD_IN_DNSWL_NONE(0.00)[98.137.69.30:from] X-Rspamd-Queue-Id: 4c8MV65DDFz3PhX Gerald Pfeifer wrote on Date: Sat, 23 Aug 2025 06:45:28 UTC : > On Tue, 19 Aug 2025, Muhammad Moinur Rahman wrote: > > URL: = https://cgit.FreeBSD.org/ports/commit/?id=3D150c90138a5fc131a5b4afbcb5d309= b02997210d > : > > devel/libfaketime: Update version 0.9.10=3D>0.9.12 > >=20 > > - Unbreak build on 15. Thanks to arrowd@ >=20 > > -BROKEN_FreeBSD_15=3D ld: error: version script assignment of = 'GLIBC_2.2' to symbol 'timer_gettime' failed: symbol not defined >=20 > > +USE_GCC=3D yes >=20 > Why/how does this unbreak the build on FreeBSD 15? For a ports tree that still has 0.9.10 , I commented out the BROKEN_FreeBSD_15 and replicated the problem. It used the command: # cc -o faketime -std=3Dgnu99 -fPIC -Wall -DFAKE_SLEEP -DFAKE_TIMERS = -DFAKE_INTERNAL_CALLS -DPREFIX=3D'"'/usr/local'"' = -DLIBDIRNAME=3D'"'/lib/faketime'"' -O2 -pipe -fstack-protector-strong = -fno-strict-aliasing faketime.c -lpthread = -Wl,--version-script=3Dlibfaketime.map -lrt . . . fails . . . I then instead used the command: # cc -o faketime -std=3Dgnu99 -fPIC -Wall -DFAKE_SLEEP -DFAKE_TIMERS = -DFAKE_INTERNAL_CALLS -DPREFIX=3D'"'/usr/local'"' = -DLIBDIRNAME=3D'"'/lib/faketime'"' -O2 -pipe -fstack-protector-strong = -fno-strict-aliasing faketime.c -lpthread -lrt #=20 So simply not having the "-Wl,--version-script=3Dlibfaketime.map" avoids the linking issue. (I've done nothing to test functionality.) # ldd -a faketime faketime: libthr.so.3 =3D> /lib/libthr.so.3 (0x78328e0a000) librt.so.1 =3D> /lib/librt.so.1 (0x7832aac9000) libc.so.7 =3D> /lib/libc.so.7 (0x7832b35e000) /lib/libthr.so.3: libc.so.7 =3D> /lib/libc.so.7 (0x7832b35e000) libsys.so.7 =3D> /lib/libsys.so.7 (0x783298c9000) /lib/librt.so.1: libthr.so.3 =3D> /lib/libthr.so.3 (0x78328e0a000) libc.so.7 =3D> /lib/libc.so.7 (0x7832b35e000) /lib/libc.so.7: libsys.so.7 =3D> /lib/libsys.so.7 (0x783298c9000) [preloaded] [vdso] (0x78328a71000) For reference: # cat = /wrkdirs/usr/ports/devel/libfaketime/work/libfaketime-da77808/src/libfaket= ime.map GLIBC_2.2 { global: timer_gettime; timer_settime; local: timer_settime_*; timer_gettime_*; }; GLIBC_2.3.3 { # Changed timer_t. timer_gettime; timer_settime; } GLIBC_2.2; That very much looks inappropriate for a FreeBSD context to me: very GLIBC specific, even GLIBC version specific, which should not be involved for FreeBSD as far as I can tell. (But, again, I've done no functional testing.) > To me this looks like randomly changing things, here to use a = different,=20 > older compiler, instead of really addressing them. More like: changed to use a toolchain that supports GLIBC-version based linking instead of avoiding use of libfaketime.map . If GLIBC use is required for the result to be functional, that should be commented on in the Makefile. > If the software is broken, how is it broken? The port did not provide a conversion to a fully FreeBSD context, keeping unneeded GLIBC specifics involved. (But this wording presumes the result without GLIBC use is functional.) > Have you reported it upstream? (If so, please add a pointer to the = port.) I expect that the port should be responsible for avoiding the "-Wl,--version-script=3Dlibfaketime.map". > If FreeBSD is broken, how is it broken? FreeBSD is not broken as far as I can tell. I'm not aware of it claiming support for the GLIBC_2.2 and GLIBC_2.3.3 usage in libfaketime.map . > Have you reported it? (If so, please add a pointer to the port.) >=20 > Generally please describe the issue and its resolution instead of just > adding USE_GCC=3Dyes so that others can later reproduce and fix (if = you=20 > don't). >=20 > Gerald >=20 > PS: Why do I care? This is yet another ticking timebomb you are = leaving=20 > for anyone looking after GCC such as salvadore@ and it blocks progress=20= > there. Other notes: I've not looked into the macros that override FreeBSD macro definitions or other warnings. I've only looked at the linker error issue. For reference: In file included from libfaketime.c:55: ./time_ops.h:97:9: warning: 'timespecisset' macro redefined = [-Wmacro-redefined] 97 | #define timespecisset(tvp) timerisset2(tvp,n) | ^ /usr/include/sys/time.h:394:9: note: previous definition is here 394 | #define timespecisset(tvp) ((tvp)->tv_sec || = (tvp)->tv_nsec) | ^ In file included from libfaketime.c:55: ./time_ops.h:98:9: warning: 'timespecclear' macro redefined = [-Wmacro-redefined] 98 | #define timespecclear(tvp) timerclear2(tvp, n) | ^ /usr/include/sys/time.h:393:9: note: previous definition is here 393 | #define timespecclear(tvp) ((tvp)->tv_sec =3D = (tvp)->tv_nsec =3D 0) | ^ In file included from libfaketime.c:55: ./time_ops.h:99:9: warning: 'timespeccmp' macro redefined = [-Wmacro-redefined] 99 | #define timespeccmp(a, b, CMP) timercmp2(a, b, CMP, n) | ^ /usr/include/sys/time.h:395:9: note: previous definition is here 395 | #define timespeccmIn file included from libfaketime.c:55: p(tv./time_ops.hp:, uvp, cmp) 97: 9: = \ | ^warning: 'timespecisset' macro redefined = [-Wmacro-redefined] In file included from libfaketime.c:55: ./time_ops.h:100:9: warning: 'timespecadd' macro redefined = [-Wmacro-redefined] 100 | #define timespecadd(a, b, result) timeradd2(a, b, r 97 | = #defiense utlit, n) m e| s ^p ecisset(t/usr/include/sys/time.hv:p) t400i:m9e:r issnote: etprevious = definition is here2(tvp,n) |=20 ^ /usr/include/sys/time.h:394:9: note: previous definition is here 400 | #define timespecadd(tsp, usp, vsp) = \ | ^ In file included from libfaketime.c:55: ./time_ops.h:101:9: warning: 'timespecsub' macro redefined = [-Wmacro-redefined] 394 | #define timespecisset(tvp) ((tvp )101- | #>define = ttivmespecsub(a, b_,s erce s|u|l (tvp)->ttv)_ ntsiemcersub2()a, b| , ^result,=20 n) | ^ /usr/include/sys/time.h:409:9: note: previous definition is here In file included from libfaketime.c:55: ./time_ops.h:98:9: warning: 'timespecclear' macro redefined = [-Wmacro-redefined] 409 98 | #defin | e#define timespecs utbi(mtessppeccle,a ru(stpv,p = )vsp) t\i | ^ merclear2(tvp, n) | ^ /usr/include/sys/time.h:393:9: note: previous definition is here 393 | #define timespecclear(tvp) ((tvp)->tv_sec =3D = (tvp)->tv_nsec =3D 0) | ^ In file included from libfaketime.c:55: ./time_ops.h:99:9: warning: 'timespeccmp' macro redefined = [-Wmacro-redefined] 99 | #define timespeccmp(a, b, CMP) timercmp2(a, b, CMP, n) | ^ /usr/include/sys/time.h:395:9: note: previous definition is here 395 | #define timespeccmp(tvp, uvp, cmp) = \ | ^ In file included from libfaketime.c:55: ./time_ops.h:100:9: warning: 'timespecadd' macro redefined = [-Wmacro-redefined] 100 | #define timespecadd(a, b, result) timeradd2(a, b, result, n) | ^ /usr/include/sys/time.h:400:9: note: previous definition is here 400 | #define timespecadd(tsp, usp, vsp) = \ | ^ In file included from libfaketime.c:55: ./time_ops.h:101:9: warning: 'timespecsub' macro redefined = [-Wmacro-redefined] 101 | #define timespecsub(a, b, result) timersub2(a, b, result, n) | ^ /usr/include/sys/time.h:409:9: note: previous definition is here 409 | #define timespecsub(tsp, usp, vsp) = \ | ^ In file included from libfaketime.c:63: /usr/include/sys/timeb.h:41:2: warning: "this file includes = which is deprecated" [-W#warnings] 41 | #warning "this file includes which is deprecated" | ^ libfaketime.c:129:72: warning: declaration of 'struct stat64' will not = be visible outside of this function [-Wvisibility] 129 | static int (*real_stat64) (int, const char *, = struct stat64 *); | = ^ libfaketime.c:130:64: warning: declaration of 'struct stat64' will not = be visible outside of this function [-Wvisibility] 130 | static int (*real_fstat64) (int, int , struct = stat64 *); | ^ libfaketime.c:131:78: warning: declaration of 'struct stat64' will not = be visible outside of this function [-Wvisibility] 131 | static int (*real_fstatat64) (int, int , const = char *, struct stat64 *, int); | = ^ libfaketime.c:132:72: warning: declaration of 'struct stat64' will not = be visible outside of this function [-Wvisibility] 132 | static int (*real_lstat64) (int, const char *, = struct stat64 *); | = ^ In file included from libfaketime.c:63: /usr/include/sys/timeb.h:41:2: warning: "this file includes = which is deprecated" [-W#warnings] 41 | #warning "this file includes which is deprecated" | ^ libfaketime.c:129:72: warning: declaration of 'struct stat64' will not = be visible outside of this function [-Wvisibility] 129 | static int (*real_stat64) (int, const char *, = struct stat64 *); | = ^ libfaketime.c:130:64: warning: declaration of 'struct stat64' will not = be visible outside of this function [-Wvisibility] 130 | static int (*real_fstat64) (int, int , struct = stat64 *); | ^ libfaketime.c:131:78: warning: declaration of 'struct stat64' will not = be visible outside of this function [-Wvisibility] 131 | static int (*real_fstatat64) (int, int , const = char *, struct stat64 *, int); | = ^ libfaketime.c:132:72: warning: declaration of 'struct stat64' will not = be visible outside of this function [-Wvisibility] 132 | static int (*real_lstat64) (int, const char *, = struct stat64 *); | = ^ libfaketime.c:336:72: warning: while loop has empty body [-Wempty-body] 336 | DONT_FAKE_TIME((*real_clock_gettime)(CLOCK_REALTIME, = &systime->real)); | = ^ libfaketime.c:336:72: note: put the semicolon on a separate line to = silence this warning libfaketime.c:337:72: warning: while loop has empty body [-Wempty-body] 337 | DONT_FAKE_TIME((*real_clock_gettime)(CLOCK_MONOTONIC, = &systime->mon)); | = ^ libfaketime.c:337:72: note: put the semicolon on a separate line to = silence this warning libfaketime.c:336:72: warning: while loop has empty body [-Wempty-body] 336 | DONT_FAKE_TIME((*real_clock_gettime)(CLOCK_REALTIME, = &systime->real)); | = ^ libfaketime.c:336:72: note: put the semicolon on a separate line to = silence this warning libfaketime.c:337:72: warning: while loop has empty body [-Wempty-body] 337 | DONT_FAKE_TIME((*real_clock_gettime)(CLOCK_MONOTONIC, = &systime->mon)); | = ^ libfaketime.c:337:72: note: put the semicolon on a separate line to = silence this warning =3D=3D=3D Mark Millard marklmi at yahoo.com