https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117854
Bug ID: 117854
Summary: gcc/config/nvptx/gen-opt.sh contains a bashism,
causing build failure with /bin/sh as dash
Product: gcc
Version: 15.0
Status: UNCONFIRMED
Keywords: build
Severity: normal
Priority: P3
Component: target
Assignee: unassigned at gcc dot gnu.org
Reporter: sjames at gcc dot gnu.org
Target Milestone: ---
With /bin/sh as dash:
```
# /bin/sh
/var/tmp/portage/cross-nvptx-none/gcc-14.2.1_p20241116/work/gcc-14-20241116/gcc/config/nvptx/gen-opt.sh
"/var/tmp/portage/cross-nvptx-none/gcc-14.2.1_p20241116/work/gcc-14-20241116/gcc/config/nvptx"
; -*- buffer-read-only: t -*-
; Generated automatically by gen-opt.sh from nvptx-sm.def.
Unknown style:
"/var/tmp/portage/cross-nvptx-none/gcc-14.2.1_p20241116/work/gcc-14-20241116/gcc/config/nvptx"
```
With bash:
```
# bash
/var/tmp/portage/cross-nvptx-none/gcc-14.2.1_p20241116/work/gcc-14-20241116/gcc/config/nvptx/gen-opt.sh
"/var/tmp/portage/cross-nvptx-none/gcc-14.2.1_p20241116/work/gcc-14-20241116/gcc/config/nvptx"
; -*- buffer-read-only: t -*-
; Generated automatically by gen-opt.sh from nvptx-sm.def.
; Copyright (C) 2022-2024 Free Software Foundation, Inc.
;
; This file is part of GCC.
;
; GCC is free software; you can redistribute it and/or modify it under
; the terms of the GNU General Public License as published by the Free
; Software Foundation; either version 3, or (at your option) any later
; version.
;
; GCC is distributed in the hope that it will be useful, but WITHOUT ANY
; WARRANTY; without even the implied warranty of MERCHANTABILITY or
; FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
; for more details.
;
; You should have received a copy of the GNU General Public License
; along with GCC; see the file COPYING3. If not see
; <http://www.gnu.org/licenses/>.
Enum
Name(ptx_isa) Type(int)
Known PTX ISA target architectures (for use with the -misa= option):
EnumValue
Enum(ptx_isa) String(sm_30) Value(PTX_ISA_SM30)
EnumValue
Enum(ptx_isa) String(sm_35) Value(PTX_ISA_SM35)
EnumValue
Enum(ptx_isa) String(sm_53) Value(PTX_ISA_SM53)
EnumValue
Enum(ptx_isa) String(sm_70) Value(PTX_ISA_SM70)
EnumValue
Enum(ptx_isa) String(sm_75) Value(PTX_ISA_SM75)
EnumValue
Enum(ptx_isa) String(sm_80) Value(PTX_ISA_SM80)
```
The issue is non-portable use of `.` with an argument:
```
# checkbashisms
/var/tmp/portage/cross-nvptx-none/gcc-14.2.1_p20241116/work/gcc-14-20241116/gcc/config/nvptx/gen-opt.sh
possible bashism in
/var/tmp/portage/cross-nvptx-none/gcc-14.2.1_p20241116/work/gcc-14-20241116/gcc/config/nvptx/gen-opt.sh
line 39 (sourced script with arguments):
. $gen_copyright_sh opt
```
Please either change the script to have a bash shebang or fix the bashism.