From patchwork Mon Apr 13 21:40:27 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Schwinge X-Patchwork-Id: 133003 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from vm01.sourceware.org (localhost [127.0.0.1]) by sourceware.org (Postfix) with ESMTP id EF9D24BA2E3C for ; Mon, 13 Apr 2026 21:41:11 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org EF9D24BA2E3C Authentication-Results: sourceware.org; dkim=pass (2048-bit key, unprotected) header.d=baylibre-com.20251104.gappssmtp.com header.i=@baylibre-com.20251104.gappssmtp.com header.a=rsa-sha256 header.s=20251104 header.b=YAD7iXyY X-Original-To: newlib@sourceware.org Delivered-To: newlib@sourceware.org Received: from mail-wm1-x329.google.com (mail-wm1-x329.google.com [IPv6:2a00:1450:4864:20::329]) by sourceware.org (Postfix) with ESMTPS id 5892C4BA2E39 for ; Mon, 13 Apr 2026 21:40:37 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 5892C4BA2E39 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=baylibre.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=baylibre.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 5892C4BA2E39 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2a00:1450:4864:20::329 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1776116437; cv=none; b=a1SEtVBVOVBY6CBl5cvM3V/VIQISecpeKykRu2SWl9+7I0VkWgt6MwfEsAX6mWTncGb5nsz0XURk5W0iZjhST661R0JLeSpAlCbrJQDpoUR4Nz2YJCjhSA6Z67/5s0m+zVNbLrmQBQH40hbSPv28+WD1IDFqfTK9EsgbhHv7A+4= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1776116437; c=relaxed/simple; bh=nc5FR2/boBXSxgW3OzzmHfXSS//n+z05JxsKNQ4sfDU=; h=DKIM-Signature:From:To:Subject:Date:Message-Id:MIME-Version; b=xd5Eb85c2c3syAyDDmqoqG5z4yLwD+qY8ZxcBMU6zlWQz9ZoDnb9MZ73qzLX1/4D1zIi+KQzVbDLuEj2KfwjPa3bJ08lKNRZ14wKfD0i3lFR4ZQYttOBkvCcYAO0s6oVUxYNcU9HRzGw2ABUmhevMWCpHi+Le7nlgbhfpFfM/ZM= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 5892C4BA2E39 Received: by mail-wm1-x329.google.com with SMTP id 5b1f17b1804b1-4887f49ec5aso60182605e9.1 for ; Mon, 13 Apr 2026 14:40:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20251104.gappssmtp.com; s=20251104; t=1776116436; x=1776721236; darn=sourceware.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=frJBtXa6OSMuO2MI8K3KQs5Y1fWosOZtirk+DEN3NOk=; b=YAD7iXyYDF4y1IdHF+dZ19LAeb9f6kSZ7Gab3t5aJJW6jfjz7/4khHl5mIh5267X+0 010MJnkQ5ABsiGM4oTAMQLVADkk7tJSDwQnY9Qpo6uGap+jvos9Kgrww+LnAsAI96M3v PunDUEWh3VoSWsvcWHQaeThA/T0lxDlj/oVRuI/pbzMywPmMjiLQT0BGRiH5PSZQJyFH yZNR/3N+HuHBReA8iO4suFw6XVLGPHyNsPqS/gmQwKeYC8ck2phZhZ85Y1dAOdM9qO/b FjyD7oevXAhdp1xvkDcO8IhAbxR43EpRxMnLFoGaFhHx5W4Le/O6JShTlLrAYonUmHdA /+Nw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776116436; x=1776721236; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=frJBtXa6OSMuO2MI8K3KQs5Y1fWosOZtirk+DEN3NOk=; b=DK91xPSsEfQD8iRGm4OQ7ivgKkis+26Qqmk7K7d3nLo6KrA+ags3OVuG1uQbqxC4Aa sog1Unxyz2g2pVoApq/IIiNkXtw4xErybAhExuFEoxX+xA5627OJGghOsjvIQSCD+r/P CycLprwB6RqdqQmoNSU915zdaSfqgfyhUONWaLIC5lo9TaiJnKzuLbg9YVSG2BWOcRa+ 5jZY1eMXqsCJBDzsM2QhyRmkqXCfyC4UfSL6qY9E4oakJ2WkG3dAY+553TCZteIaJIla P+2iBmMGcMj7oJlNqtIH++hiO/STSfVxhW8Ou1t1VrC39u26cyfruEvosERhh3i+Nqit 2iOA== X-Gm-Message-State: AOJu0YzHQrXyPlDL5s/Xl3MyE1G7EJmEMPVa6Q4GX0OaPAZAzoC4N/PU qQ7aKkM3D+CbKxPwQQ/+L7ozXxm1pqF0nA/EGE33PKnp4uwwBCqvKUSV3yYOEUhcBYobmVIkUTf ssI66d5Y= X-Gm-Gg: AeBDievt0y5k96W3CImma1ulyqiBm2xxJ71RsP5sqmJbW+tVEFVcTZg1aFG1FXM/4d8 ZWX6YCZXfwhBuaPpQ+sik/0Psox9K7yidz3N1RuCQzrPUWTg5cZoGew2SbQxm3A/HEhNbX05Oi2 5x8eD+/CtvzRzJlcz1iPgHsMCGX/29R9VqnGuHiU/yPv2YHJ2RbtJobYF+dGI1PIT0Mu+IxxuyX 1r0hlaunnynpwvDjZfr9n6QyZq5XEzUh4zJVOmEQ+Fx8DEcRiUMt65w4jfj/JS6CofmTUYtvkKZ 6Hjni5UpBvyTCfQa7JpYQsbfCla9kTxcWRoJOvYRswxulPw+3KQewoz3/1KuhNt7Iup+Sm0HuHx YCE7byAsoq6Kef8SQ5zC+1NEg+3hPBECiBd+QS4O3TF2CZRar9A3ssc94QseUUbo088c7GNM3Oy E6nJqvHb4nSqaCAr2j/N+A7QformST3120AfCtW++zbn8UMxEQk7Z1lwmkA/46wNIFmUUHB7Ke+ 4e3t1B9mrDfl1jCVIU+fRcN/QhZPYuptJClFbwge95c X-Received: by 2002:a05:600c:4e45:b0:488:9439:881a with SMTP id 5b1f17b1804b1-488d67bf6f6mr224161635e9.2.1776116436139; Mon, 13 Apr 2026 14:40:36 -0700 (PDT) Received: from dem-tschwing-1.schwinge.ddns.net (p200300c8b74c74002d747d5beef652aa.dip0.t-ipconnect.de. [2003:c8:b74c:7400:2d74:7d5b:eef6:52aa]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-488d681f28esm102819475e9.16.2026.04.13.14.40.35 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 13 Apr 2026 14:40:35 -0700 (PDT) From: Thomas Schwinge To: newlib@sourceware.org Subject: [PUSHED] amdgcn: Provide stub 'gettimeofday' Date: Mon, 13 Apr 2026 23:40:27 +0200 Message-Id: <20260413214027.2946477-1-tschwinge@baylibre.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230119215257.2001787-1-thomas@codesourcery.com> References: <20230119215257.2001787-1-thomas@codesourcery.com> MIME-Version: 1.0 X-Spam-Status: No, score=-13.0 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on sourceware.org X-BeenThere: newlib@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Newlib mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: newlib-bounces~patchwork=sourceware.org@sourceware.org Similar to nvptx commit 52cb9370044d11a29ae0dc1120ffdf246f5abc20 "nvptx: Provide stub 'gettimeofday'": instead of them FAILing due to 'ld: error: undefined symbol: gettimeofday', this makes PASS a number of GCC 'gfortran.dg' test cases, for example. --- newlib/Makefile.in | 23 +++++++++++++++++++++-- newlib/libc/sys/amdgcn/Makefile.inc | 2 +- newlib/libc/sys/amdgcn/gettimeofday.c | 9 +++++++++ 3 files changed, 31 insertions(+), 3 deletions(-) create mode 100644 newlib/libc/sys/amdgcn/gettimeofday.c diff --git a/newlib/Makefile.in b/newlib/Makefile.in index 9abc9178d1..85cd06f1bf 100644 --- a/newlib/Makefile.in +++ b/newlib/Makefile.in @@ -562,7 +562,7 @@ check_PROGRAMS = @HAVE_LIBC_SYS_AMDGCN_DIR_TRUE@am__append_43 = \ @HAVE_LIBC_SYS_AMDGCN_DIR_TRUE@ libc/sys/amdgcn/close.c libc/sys/amdgcn/fstat.c libc/sys/amdgcn/isatty.c libc/sys/amdgcn/lseek.c libc/sys/amdgcn/read.c libc/sys/amdgcn/write.c \ @HAVE_LIBC_SYS_AMDGCN_DIR_TRUE@ libc/sys/amdgcn/fcntl.c libc/sys/amdgcn/getpid.c libc/sys/amdgcn/kill.c libc/sys/amdgcn/open.c libc/sys/amdgcn/raise.c libc/sys/amdgcn/stat.c \ -@HAVE_LIBC_SYS_AMDGCN_DIR_TRUE@ libc/sys/amdgcn/unlink.c libc/sys/amdgcn/lock.c libc/sys/amdgcn/creat.c +@HAVE_LIBC_SYS_AMDGCN_DIR_TRUE@ libc/sys/amdgcn/unlink.c libc/sys/amdgcn/lock.c libc/sys/amdgcn/creat.c libc/sys/amdgcn/gettimeofday.c @HAVE_LIBC_SYS_ARM_DIR_TRUE@am__append_44 = libc/sys/arm/access.c libc/sys/arm/aeabi_atexit.c libc/sys/arm/sysconf.c @HAVE_LIBC_SYS_ARM_DIR_TRUE@@MAY_SUPPLY_SYSCALLS_TRUE@am__append_45 = libc/sys/arm/libcfunc.c libc/sys/arm/trap.S libc/sys/arm/syscalls.c @@ -1670,7 +1670,8 @@ am__objects_51 = libc/ssp/libc_a-chk_fail.$(OBJEXT) \ @HAVE_LIBC_SYS_AMDGCN_DIR_TRUE@ libc/sys/amdgcn/libc_a-stat.$(OBJEXT) \ @HAVE_LIBC_SYS_AMDGCN_DIR_TRUE@ libc/sys/amdgcn/libc_a-unlink.$(OBJEXT) \ @HAVE_LIBC_SYS_AMDGCN_DIR_TRUE@ libc/sys/amdgcn/libc_a-lock.$(OBJEXT) \ -@HAVE_LIBC_SYS_AMDGCN_DIR_TRUE@ libc/sys/amdgcn/libc_a-creat.$(OBJEXT) +@HAVE_LIBC_SYS_AMDGCN_DIR_TRUE@ libc/sys/amdgcn/libc_a-creat.$(OBJEXT) \ +@HAVE_LIBC_SYS_AMDGCN_DIR_TRUE@ libc/sys/amdgcn/libc_a-gettimeofday.$(OBJEXT) @HAVE_LIBC_SYS_ARM_DIR_TRUE@am__objects_55 = libc/sys/arm/libc_a-access.$(OBJEXT) \ @HAVE_LIBC_SYS_ARM_DIR_TRUE@ libc/sys/arm/libc_a-aeabi_atexit.$(OBJEXT) \ @HAVE_LIBC_SYS_ARM_DIR_TRUE@ libc/sys/arm/libc_a-sysconf.$(OBJEXT) @@ -7327,6 +7328,9 @@ libc/sys/amdgcn/libc_a-lock.$(OBJEXT): \ libc/sys/amdgcn/libc_a-creat.$(OBJEXT): \ libc/sys/amdgcn/$(am__dirstamp) \ libc/sys/amdgcn/$(DEPDIR)/$(am__dirstamp) +libc/sys/amdgcn/libc_a-gettimeofday.$(OBJEXT): \ + libc/sys/amdgcn/$(am__dirstamp) \ + libc/sys/amdgcn/$(DEPDIR)/$(am__dirstamp) libc/sys/arm/$(am__dirstamp): @$(MKDIR_P) libc/sys/arm @: > libc/sys/arm/$(am__dirstamp) @@ -13939,6 +13943,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@libc/sys/amdgcn/$(DEPDIR)/libc_a-fcntl.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@libc/sys/amdgcn/$(DEPDIR)/libc_a-fstat.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@libc/sys/amdgcn/$(DEPDIR)/libc_a-getpid.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@libc/sys/amdgcn/$(DEPDIR)/libc_a-gettimeofday.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@libc/sys/amdgcn/$(DEPDIR)/libc_a-isatty.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@libc/sys/amdgcn/$(DEPDIR)/libc_a-kill.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@libc/sys/amdgcn/$(DEPDIR)/libc_a-lock.Po@am__quote@ @@ -31172,6 +31177,20 @@ libc/sys/amdgcn/libc_a-creat.obj: libc/sys/amdgcn/creat.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libc_a_CPPFLAGS) $(CPPFLAGS) $(libc_a_CFLAGS) $(CFLAGS) -c -o libc/sys/amdgcn/libc_a-creat.obj `if test -f 'libc/sys/amdgcn/creat.c'; then $(CYGPATH_W) 'libc/sys/amdgcn/creat.c'; else $(CYGPATH_W) '$(srcdir)/libc/sys/amdgcn/creat.c'; fi` +libc/sys/amdgcn/libc_a-gettimeofday.o: libc/sys/amdgcn/gettimeofday.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libc_a_CPPFLAGS) $(CPPFLAGS) $(libc_a_CFLAGS) $(CFLAGS) -MT libc/sys/amdgcn/libc_a-gettimeofday.o -MD -MP -MF libc/sys/amdgcn/$(DEPDIR)/libc_a-gettimeofday.Tpo -c -o libc/sys/amdgcn/libc_a-gettimeofday.o `test -f 'libc/sys/amdgcn/gettimeofday.c' || echo '$(srcdir)/'`libc/sys/amdgcn/gettimeofday.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libc/sys/amdgcn/$(DEPDIR)/libc_a-gettimeofday.Tpo libc/sys/amdgcn/$(DEPDIR)/libc_a-gettimeofday.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libc/sys/amdgcn/gettimeofday.c' object='libc/sys/amdgcn/libc_a-gettimeofday.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libc_a_CPPFLAGS) $(CPPFLAGS) $(libc_a_CFLAGS) $(CFLAGS) -c -o libc/sys/amdgcn/libc_a-gettimeofday.o `test -f 'libc/sys/amdgcn/gettimeofday.c' || echo '$(srcdir)/'`libc/sys/amdgcn/gettimeofday.c + +libc/sys/amdgcn/libc_a-gettimeofday.obj: libc/sys/amdgcn/gettimeofday.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libc_a_CPPFLAGS) $(CPPFLAGS) $(libc_a_CFLAGS) $(CFLAGS) -MT libc/sys/amdgcn/libc_a-gettimeofday.obj -MD -MP -MF libc/sys/amdgcn/$(DEPDIR)/libc_a-gettimeofday.Tpo -c -o libc/sys/amdgcn/libc_a-gettimeofday.obj `if test -f 'libc/sys/amdgcn/gettimeofday.c'; then $(CYGPATH_W) 'libc/sys/amdgcn/gettimeofday.c'; else $(CYGPATH_W) '$(srcdir)/libc/sys/amdgcn/gettimeofday.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libc/sys/amdgcn/$(DEPDIR)/libc_a-gettimeofday.Tpo libc/sys/amdgcn/$(DEPDIR)/libc_a-gettimeofday.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libc/sys/amdgcn/gettimeofday.c' object='libc/sys/amdgcn/libc_a-gettimeofday.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libc_a_CPPFLAGS) $(CPPFLAGS) $(libc_a_CFLAGS) $(CFLAGS) -c -o libc/sys/amdgcn/libc_a-gettimeofday.obj `if test -f 'libc/sys/amdgcn/gettimeofday.c'; then $(CYGPATH_W) 'libc/sys/amdgcn/gettimeofday.c'; else $(CYGPATH_W) '$(srcdir)/libc/sys/amdgcn/gettimeofday.c'; fi` + libc/sys/arm/libc_a-access.o: libc/sys/arm/access.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libc_a_CPPFLAGS) $(CPPFLAGS) $(libc_a_CFLAGS) $(CFLAGS) -MT libc/sys/arm/libc_a-access.o -MD -MP -MF libc/sys/arm/$(DEPDIR)/libc_a-access.Tpo -c -o libc/sys/arm/libc_a-access.o `test -f 'libc/sys/arm/access.c' || echo '$(srcdir)/'`libc/sys/arm/access.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libc/sys/arm/$(DEPDIR)/libc_a-access.Tpo libc/sys/arm/$(DEPDIR)/libc_a-access.Po diff --git a/newlib/libc/sys/amdgcn/Makefile.inc b/newlib/libc/sys/amdgcn/Makefile.inc index 803dcf99d6..59bac0865b 100644 --- a/newlib/libc/sys/amdgcn/Makefile.inc +++ b/newlib/libc/sys/amdgcn/Makefile.inc @@ -1,4 +1,4 @@ libc_a_SOURCES += \ %D%/close.c %D%/fstat.c %D%/isatty.c %D%/lseek.c %D%/read.c %D%/write.c \ %D%/fcntl.c %D%/getpid.c %D%/kill.c %D%/open.c %D%/raise.c %D%/stat.c \ - %D%/unlink.c %D%/lock.c %D%/creat.c + %D%/unlink.c %D%/lock.c %D%/creat.c %D%/gettimeofday.c diff --git a/newlib/libc/sys/amdgcn/gettimeofday.c b/newlib/libc/sys/amdgcn/gettimeofday.c new file mode 100644 index 0000000000..8ce09a210c --- /dev/null +++ b/newlib/libc/sys/amdgcn/gettimeofday.c @@ -0,0 +1,9 @@ +#include +#include + +int +gettimeofday (struct timeval *tv, void *tz) +{ + errno = ENOSYS; + return -1; +}