From patchwork Mon Apr 13 21:39:57 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Schwinge X-Patchwork-Id: 133002 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 8734A4BA2E3C for ; Mon, 13 Apr 2026 21:40:48 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 8734A4BA2E3C 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=MxO6uXrR X-Original-To: newlib@sourceware.org Delivered-To: newlib@sourceware.org Received: from mail-wm1-x332.google.com (mail-wm1-x332.google.com [IPv6:2a00:1450:4864:20::332]) by sourceware.org (Postfix) with ESMTPS id D87CA4BA2E06 for ; Mon, 13 Apr 2026 21:40:12 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org D87CA4BA2E06 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 D87CA4BA2E06 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2a00:1450:4864:20::332 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1776116413; cv=none; b=OzGbGe+2RJoUPxNf3kQbrrPXHZKHjTulntRKNKCSeqx63v4Det/W5NKRGQSt5FLVnwJa6jUpoGM93cYrcJLZY73Aa3I9X4IjOBgpv8A9b8IerQANfU0X2TyXVEn6vxwVrY6fn6TTM8xYNDz3CR6MtdQ8q/eFRfJ/ob0iby43QwM= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1776116413; c=relaxed/simple; bh=dgS3m69LrV5ayheRZ1/nXnQrZKTM4orOi30elpzWmFg=; h=DKIM-Signature:From:To:Subject:Date:Message-Id:MIME-Version; b=eXrsqaSyOUio5Zlj4aoF+1h4bYCqN89zXhz1c7xVMgFyNfHpwV8P3jTrdv+BgD5Wsm1xl0a2NCqIhsi5RU9CzvLKl7iOlRWc04kx1LGDjfbdjEuAxL9wGF/Yja3sIwNQxTrZGReqeYBeDNXbwd6PSMT12GcLYIRl0D4M9VUgZCM= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org D87CA4BA2E06 Received: by mail-wm1-x332.google.com with SMTP id 5b1f17b1804b1-488b0e1b870so77390835e9.2 for ; Mon, 13 Apr 2026 14:40:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20251104.gappssmtp.com; s=20251104; t=1776116412; x=1776721212; 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=31UlW0X8/LxRO6GQcKHrSZN1WJsAiUk8m7HS3PoTc7k=; b=MxO6uXrRoRJivb8ELak7KF+GHwkuwOXO4AtEEiIyyEZ7atL5BClDwZZeyE/ya4hP25 We5EfAVg2SVz2SDTu0Fyq1WW6VaAo1aYyGrsezz03hvKQ3usgRsll8gm0TItw3EPmtDB WXZcwMfSfS3UgU2KV1JqWPOJG3DATFElUhfoa0Yc1ZtP/QsKSzSvOz6pOMqGcpa1qyqc ObRwQXTc4WumCIfb402R2Rm8r54Z6oSgBLtRz8nnULjAaARWXJw9dNgXY6Alrxhf1lwm NexJ/4dKsfYAWAJtUpy4ulSW0llkxu/6144ln8+0sirCs5UL/ALv6I7hxNUliR4Sm23+ dckw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776116412; x=1776721212; 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=31UlW0X8/LxRO6GQcKHrSZN1WJsAiUk8m7HS3PoTc7k=; b=IWNlsQkbaBC5UMvk7P781HE2ldvBC/UF4m4cb+9XdXZwrcvK4FZOp4fbOsh05ya/qp PO/3X8BP/Qq6jpeiKceF53q9AA4xXRmA/LLaDEdxspaHSDbklS8+yoVHIPVO677c7a4s 8dVl+ErAiPH0v02LF84PJ3rm7CDqO+I/ySjqkCiQzMHsRMzDUAqEWcTUSa9ht3LbEObF OmQaGD1EZ2XekfYSVq2MBEv6G+gKukN4nJZbzYZL0OV8SkrOhUjGWWoApODBmNYYwQ/r y2PdgnFKAre2U76wv+xGYQm07I3V6jyRZTIjNFkLFgbJ5qYJabWLyb5YIIoeg7/cuTfC GcYA== X-Gm-Message-State: AOJu0YyrxdbhfHHDpX5bL+uo6EnzWeo/XvRVoCzPruf99ppZrs289uI+ D8iIwlRObIQGHM1jTsEbrz24eMyMeS2PCMgXbLGSWMdlJBaOivG3ZoFrx4SivDPJ8HuNMF38U2o n6Gi6Op0= X-Gm-Gg: AeBDievwFf0EIYtEkjQh0Czx7P+7qvhUJInz9blAWTZUXbLZKlhJfLPggBYEci+x9iH aht3Rfsd/0z/uHyIx18xwcMInhHN3bk2tOGMkTi6no5Q6viiaNm96wzpSdOhR96iY0aSUb8BFZY Wp3rdnqm9pm/Tl0Wih6JWNNHJx4kpPvWvw6ZF2MCEBIE8ydsnvwgVs8sri7cgKRW+qpXVssu6tW c0jARwE1CWSgqqlS1GGuul+ezjJhv3Ohx/gBA4INtXyqfIjOqL2PZn7L4Fcjpe7kYo6wXQyHRrE Zsc18wjLQ3ap0u0s1ApzWVtwYWsjpaTBeEqHJZquvyauhonzWqq+Rr5QJfQoHUfwcSKIfe9Ldxa +2O5A+ohdR9YfPFylwsZxHlVaWiBgg9aG50M5QSu7xe772h1n6dH84nigeeKnx2sxmOtytEi3GW ccXLaeDiEJgT9q01cbMTwPZfI8CFP8Os9sz2BH+LH3p6/HdD9WmpAwwCMLI8MS/sUM/2Pa7t6X7 FihGJruIPzcgmfCdrbtQ/pmmCYYka0REuKsqgehNLt+ X-Received: by 2002:a05:600c:4f95:b0:488:be58:bb5b with SMTP id 5b1f17b1804b1-488d686c443mr207633925e9.24.1776116411677; Mon, 13 Apr 2026 14:40:11 -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-488d5d70891sm111249555e9.2.2026.04.13.14.40.11 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 13 Apr 2026 14:40:11 -0700 (PDT) From: Thomas Schwinge To: newlib@sourceware.org Subject: [PUSHED] amdgcn: Implement 'creat' Date: Mon, 13 Apr 2026 23:39:57 +0200 Message-Id: <20260413213957.2946445-1-tschwinge@baylibre.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20190607145501.23295-1-ams@codesourcery.com> References: <20190607145501.23295-1-ams@codesourcery.com> MIME-Version: 1.0 X-Spam-Status: No, score=-12.8 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 ... via the existing (stub) 'open' implementation; some code would like to 'creat' instead of 'open'ing with the applicable flags. --- newlib/Makefile.in | 23 +++++++++++++++++++++-- newlib/libc/sys/amdgcn/Makefile.inc | 2 +- newlib/libc/sys/amdgcn/creat.c | 7 +++++++ 3 files changed, 29 insertions(+), 3 deletions(-) create mode 100644 newlib/libc/sys/amdgcn/creat.c diff --git a/newlib/Makefile.in b/newlib/Makefile.in index e364dcddd2..9abc9178d1 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 +@HAVE_LIBC_SYS_AMDGCN_DIR_TRUE@ libc/sys/amdgcn/unlink.c libc/sys/amdgcn/lock.c libc/sys/amdgcn/creat.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 @@ -1669,7 +1669,8 @@ am__objects_51 = libc/ssp/libc_a-chk_fail.$(OBJEXT) \ @HAVE_LIBC_SYS_AMDGCN_DIR_TRUE@ libc/sys/amdgcn/libc_a-raise.$(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-lock.$(OBJEXT) \ +@HAVE_LIBC_SYS_AMDGCN_DIR_TRUE@ libc/sys/amdgcn/libc_a-creat.$(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) @@ -7323,6 +7324,9 @@ libc/sys/amdgcn/libc_a-unlink.$(OBJEXT): \ libc/sys/amdgcn/libc_a-lock.$(OBJEXT): \ libc/sys/amdgcn/$(am__dirstamp) \ libc/sys/amdgcn/$(DEPDIR)/$(am__dirstamp) +libc/sys/amdgcn/libc_a-creat.$(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) @@ -13931,6 +13935,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@libc/sys/a29khif/$(DEPDIR)/libc_a-systime.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@libc/sys/a29khif/$(DEPDIR)/libc_a-vec.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@libc/sys/amdgcn/$(DEPDIR)/libc_a-close.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@libc/sys/amdgcn/$(DEPDIR)/libc_a-creat.Po@am__quote@ @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@ @@ -31153,6 +31158,20 @@ libc/sys/amdgcn/libc_a-lock.obj: libc/sys/amdgcn/lock.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-lock.obj `if test -f 'libc/sys/amdgcn/lock.c'; then $(CYGPATH_W) 'libc/sys/amdgcn/lock.c'; else $(CYGPATH_W) '$(srcdir)/libc/sys/amdgcn/lock.c'; fi` +libc/sys/amdgcn/libc_a-creat.o: libc/sys/amdgcn/creat.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-creat.o -MD -MP -MF libc/sys/amdgcn/$(DEPDIR)/libc_a-creat.Tpo -c -o libc/sys/amdgcn/libc_a-creat.o `test -f 'libc/sys/amdgcn/creat.c' || echo '$(srcdir)/'`libc/sys/amdgcn/creat.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libc/sys/amdgcn/$(DEPDIR)/libc_a-creat.Tpo libc/sys/amdgcn/$(DEPDIR)/libc_a-creat.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libc/sys/amdgcn/creat.c' object='libc/sys/amdgcn/libc_a-creat.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-creat.o `test -f 'libc/sys/amdgcn/creat.c' || echo '$(srcdir)/'`libc/sys/amdgcn/creat.c + +libc/sys/amdgcn/libc_a-creat.obj: libc/sys/amdgcn/creat.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-creat.obj -MD -MP -MF libc/sys/amdgcn/$(DEPDIR)/libc_a-creat.Tpo -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` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libc/sys/amdgcn/$(DEPDIR)/libc_a-creat.Tpo libc/sys/amdgcn/$(DEPDIR)/libc_a-creat.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libc/sys/amdgcn/creat.c' object='libc/sys/amdgcn/libc_a-creat.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-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/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 4e540fc24b..803dcf99d6 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%/unlink.c %D%/lock.c %D%/creat.c diff --git a/newlib/libc/sys/amdgcn/creat.c b/newlib/libc/sys/amdgcn/creat.c new file mode 100644 index 0000000000..645ac70e94 --- /dev/null +++ b/newlib/libc/sys/amdgcn/creat.c @@ -0,0 +1,7 @@ +#include + +int +creat (const char *path, mode_t mode) +{ + return open (path, O_CREAT | O_WRONLY | O_TRUNC, mode); +}