From mboxrd@z Thu Jan 1 00:00:00 1970 Delivery-date: Fri, 24 Feb 2023 15:45:23 +0100 Received: from metis.ext.pengutronix.de ([2001:67c:670:201:290:27ff:fe1d:cc33]) by lore.white.stw.pengutronix.de with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1pVZK7-00115p-4M for lore@lore.pengutronix.de; Fri, 24 Feb 2023 15:45:23 +0100 Received: from localhost ([127.0.0.1] helo=metis.ext.pengutronix.de) by metis.ext.pengutronix.de with esmtp (Exim 4.92) (envelope-from ) id 1pVZK5-000468-Bw; Fri, 24 Feb 2023 15:45:21 +0100 Received: from ptx.hi.pengutronix.de ([2001:67c:670:100:1d::c0]) by metis.ext.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pVZJx-00045o-QG; Fri, 24 Feb 2023 15:45:13 +0100 Received: from mol by ptx.hi.pengutronix.de with local (Exim 4.92) (envelope-from ) id 1pVZJx-0004jd-HJ; Fri, 24 Feb 2023 15:45:13 +0100 Date: Fri, 24 Feb 2023 15:45:13 +0100 From: Michael Olbrich To: Ian Abbott Message-ID: <20230224144513.GV11263@pengutronix.de> Mail-Followup-To: Ian Abbott , ptxdist@pengutronix.de References: <20230220134105.28904-1-abbotti@mev.co.uk> <9af82edb-4f5f-ee85-681f-bbc2d253829f@mev.co.uk> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <9af82edb-4f5f-ee85-681f-bbc2d253829f@mev.co.uk> X-Sent-From: Pengutronix Hildesheim X-URL: http://www.pengutronix.de/ X-Accept-Language: de,en X-Accept-Content-Type: text/plain User-Agent: Mutt/1.10.1 (2018-07-13) Subject: Re: [ptxdist] [PATCH] libtahu: Change CFLAGS to use 64-bit system time X-BeenThere: ptxdist@pengutronix.de X-Mailman-Version: 2.1.29 Precedence: list List-Id: PTXdist Development Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: ptxdist@pengutronix.de Cc: ptxdist@pengutronix.de Sender: "ptxdist" X-SA-Exim-Connect-IP: 127.0.0.1 X-SA-Exim-Mail-From: ptxdist-bounces@pengutronix.de X-SA-Exim-Scanned: No (on metis.ext.pengutronix.de); SAEximRunCond expanded to false On Fri, Feb 24, 2023 at 12:03:14PM +0000, Ian Abbott wrote: > On 23/02/2023 15:42, Michael Olbrich wrote: > > On Mon, Feb 20, 2023 at 01:41:05PM +0000, Ian Abbott wrote: > > > libtahu exposes a library function `get_current_timestamp()` to return > > > the real-time clock as the number of milliseconds since the Unix epoch > > > as a 64-bit value. It calls `clock_gettime(CLOCK_REALTIME, &ts)` (where > > > `ts` is a `struct timespec`) to get the system time and does some simple > > > arithmetic on `ts.tv_sec` and `ts.tv_nsec` to convert the time to a > > > number of milliseconds. > > > > > > Ideally, we want `ts.tv_sec` to have a 64-bit type to avoid Y2038 > > > problems, but on most 32-bit architectures, `ts.tv_sec` will have a > > > 32-bit type by default. Try and select the 64-bit time interface even > > > on 32-bit architectures by appending `-D_FILE_OFFSET_BITS=64` and > > > `-D_TIME_BITS=64` to the `CFLAGS` variable when invoking `make`. This > > > works for glibc 2.34 or later when the system is running on Linux kernel > > > 5.1 or later. > > > > > > Signed-off-by: Ian Abbott > > > --- > > > rules/libtahu.make | 5 +++-- > > > 1 file changed, 3 insertions(+), 2 deletions(-) > > > > > > diff --git a/rules/libtahu.make b/rules/libtahu.make > > > index 26c064c6d..3e392216d 100644 > > > --- a/rules/libtahu.make > > > +++ b/rules/libtahu.make > > > @@ -37,11 +37,12 @@ LIBTAHU_CONF_TOOL := NO > > > # Compile > > > # ---------------------------------------------------------------------------- > > > -#LIBTAHU_MAKE_ENV := $(CROSS_ENV) > > > - > > > +LIBTAHU_CPPFLAGS := -Iinclude -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 > > > +LIBTAHU_CFLAGS := -O2 -g -g3 -fPIC > > > > No need to mess with the existing CFLAGS. You can inject extra CFLAGS > > though the toolchain wrappers. And for correctness, make it conditional: > > > > ifdef PTXCONF_GLOBAL_LARGE_FILE > > LIBTAHU_CFLAGS := -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 > > endif > > > > nothing else is needed. > > > > Michael > > Hi Michael, > > Sorry to be a pain. I'm attempting to inject extra CFLAGS through the > toolchain wrappers, but I'm not sure how to do it. Here is one of my > attempts that does not work: > > # > ---------------------------------------------------------------------------- > # Prepare > # > ---------------------------------------------------------------------------- > > LIBTAHU_CONF_TOOL := NO > > # > ---------------------------------------------------------------------------- > # Compile > # > ---------------------------------------------------------------------------- > > # -D_TIME_BITS=64 requires -D_FILE_OFFSET_BITS=64 > LIBTAHU_CPPFLAGS := -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 > LIBTAHU_CFLAGS := -O2 > LIBTAHU_MAKE_ENV := $(CROSS_ENV) > # Just build the dynamic library. > LIBTAHU_MAKE_OPT := \ > $(CROSS_ENV_PROGS) \ > lib/libtahu.so > > $(STATEDIR)/libtahu.compile: > @$(call targetinfo) > @$(call world/compile, LIBTAHU) > @$(call touch) > > I'm obviously missing something to pass the properly wrapped CC and CPP > variables (incorporating the extra flags) to 'make'. Could you provide a > clue how to fix it? Are you sure it does not work? It will not be visible in the regular make output. Run PTXdist with '-v' and then check platform-XXX/logfile. You should find a 'wrapper: ...' line for each compiler run and the extra flags should be visible here. Michael -- Pengutronix e.K. | | Steuerwalder Str. 21 | http://www.pengutronix.de/ | 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |