Re: In stage1 bootstrap assembler claims Error: junk at end of line, first unrecognized character is `/'

Jonathan Wakely via Gcc-help <[email protected]> Thu, 9 Apr 2026 19:41:12 +0100
Newsgroups gmane.comp.gcc.help
Message-ID <CAH6eHdT0kfkgsCWv_biB32p6vUS58X2T+3rfFMoX676UZ0fDRA@mail.gmail.com>
On Thu, 9 Apr 2026, 19:13 Dennis Clarke via Gcc-help, <[email protected]>
wrote:

>
> Dear GCC folks et. al :
>
>      I was pondering posting a bug report but the situation is just a bit
> obscure and even on the edge of possible. I setup a mint condition DEC
> Alpha server with all the ECC memory anyone could find on the planet. It
> runs OpenBSD 7.8 with wonderful stability and I can compile the GNU bits
> and pieces of a toolchain. I even used it to test and verify the new MPC
> lib for release. It "just works".
>
>      However the compiler available is from way back :
>
> centauri#
> centauri# uname -a
> OpenBSD centauri.bw.genunix.com 7.8 GENERIC#628 alpha
> centauri# sysctl hw.model
> hw.model=Digital AlphaStation 600 5/266
> centauri# echo $CC
> /usr/bin/gcc
> centauri# $CC --version
> gcc (GCC) 4.2.1 20070719
> Copyright (C) 2007 Free Software Foundation, Inc.
> This is free software; see the source for copying conditions.  There is NO
> warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
>
> centauri#
>
>      Yes the name of the alpha is centauri. Pretty sweet right? Well in
> any case the procedure to bootstrap upwards to a more recent GCC is the
> usual case of moving in small steps and the system assembler is binutils
> version 2.17 :
>
> centauri#
> centauri# which as
> /usr/bin/as
> centauri# as --version
> GNU assembler 2.17
> Copyright 2005 Free Software Foundation, Inc.
> This program is free software; you may redistribute it under the terms of
> the GNU General Public License.  This program has absolutely no warranty.
> This assembler was configured for a target of `alpha-unknown-openbsd7.8'.
> centauri#
>
>      Thus far a whole stack of toolchain bits have been built and it all
> works pretty darn well with only a few little glitches :
>
>       https://lists.gnu.org/archive/html/bug-gzip/2026-03/msg00001.html
>
>      That is really small stuff to deal with. However to bootstrap GCC it
> sort of means I need to get from 4.2.1 upwards to about 8.x and then up
> to perhaps version 10.x etc etc. There is no way to leap into 15.2.0 and
> that is simply because you can't get there from here. It all looks to be
> working great up until the assembler goes ka-boom :
>
> $ ../gcc-8.5.0/configure --prefix=/opt/bw/imed/gcc8 \
> --enable-obsolete --disable-nls --enable-threads=posix \
> --enable-shared --with-cpu=21164 \
> --enable-bootstrap --enable-stage1-languages=c,c++ \
> --enable-languages=c,c++,fortran
> checking build system type... alpha-unknown-openbsd7.8
> checking host system type... alpha-unknown-openbsd7.8
> checking target system type... alpha-unknown-openbsd7.8
> checking for a BSD-compatible install... /usr/bin/install -c
> checking whether ln works... yes
> checking whether ln -s works... yes
> checking for a sed that does not truncate output... /usr/bin/sed
> checking for gawk... no
> checking for mawk... no
> checking for nawk... no
> checking for awk... awk
> checking for libatomic support... yes
> checking for libitm support... yes
> checking for libsanitizer support... no
> checking for libvtv support... no
> checking for libmpx support... no
> checking for libhsail-rt support... no
> checking for gcc... /usr/bin/gcc
> checking for C compiler default output file name... a.out
> checking whether the C compiler works... yes
> checking whether we are cross compiling... no
> checking for suffix of executables...
> checking for suffix of object files... o
> checking whether we are using the GNU C compiler... yes
> checking whether /usr/bin/gcc accepts -g... yes
> checking for /usr/bin/gcc option to accept ISO C89... none needed
> checking whether we are using the GNU C++ compiler... yes
> checking whether /usr/bin/g++ accepts -g... yes
> checking whether g++ accepts -static-libstdc++ -static-libgcc... no
> checking for gnatbind... no
> checking for gnatmake... no
> checking whether compiler driver understands Ada... no
> checking how to compare bootstrapped objects... cmp $$f1 $$f2 16 16
> checking for objdir... .libs
> configure: WARNING: using in-tree isl, disabling version check
> *** This configuration is not supported in the following subdirectories:
>       target-libsanitizer target-libvtv target-libmpx gnattools gotools
> target-libada target-libhsail-rt target-libgo target-libffi
> target-libobjc target-liboffloadmic
>      (Any other directories should still work fine.)
> checking for default BUILD_CONFIG... bootstrap-debug
> checking for --enable-vtable-verify... no
> checking for bison... /opt/bw/bin/yacc
> checking for bison... /opt/bw/bin/bison
> checking for gm4... /opt/bw/bin/m4
> checking for flex... flex
> checking for flex... flex
> checking for makeinfo... makeinfo
> checking for expect... expect
> checking for runtest... no
> checking for ar... ar
> checking for as... as
> checking for dlltool... no
> checking for ld... (cached) /usr/bin/ld
> checking for lipo... no
> checking for nm... (cached) /usr/bin/nm -p
> checking for ranlib... ranlib
> checking for strip... strip
> checking for windres... no
> checking for windmc... no
> checking for objcopy... objcopy
> checking for objdump... objdump
> checking for readelf... readelf
> checking for cc... cc
> checking for c++... c++
> checking for gcc... gcc
> checking for gfortran... no
> checking for gccgo... no
> checking for ar... no
> checking for ar... ar
> checking for as... no
> checking for as... as
> checking for dlltool... no
> checking for dlltool... no
> checking for ld... no
> checking for ld... ld
> checking for lipo... no
> checking for lipo... no
> checking for nm... no
> checking for nm... nm
> checking for objcopy... no
> checking for objcopy... objcopy
> checking for objdump... no
> checking for objdump... objdump
> checking for ranlib... no
> checking for ranlib... ranlib
> checking for readelf... no
> checking for readelf... readelf
> checking for strip... no
> checking for strip... strip
> checking for windres... no
> checking for windres... no
> checking for windmc... no
> checking for windmc... no
> checking where to find the target ar... host tool
> checking where to find the target as... host tool
> checking where to find the target cc... just compiled
> checking where to find the target c++... just compiled
> checking where to find the target c++ for libstdc++... just compiled
> checking where to find the target dlltool... host tool
> checking where to find the target gcc... just compiled
> checking where to find the target gfortran... just compiled
> checking where to find the target gccgo... host tool
> checking where to find the target ld... host tool
> checking where to find the target lipo... host tool
> checking where to find the target nm... host tool
> checking where to find the target objcopy... host tool
> checking where to find the target objdump... host tool
> checking where to find the target ranlib... host tool
> checking where to find the target readelf... host tool
> checking where to find the target strip... host tool
> checking where to find the target windres... host tool
> checking where to find the target windmc... host tool
> checking whether to enable maintainer-specific portions of Makefiles... no
> configure: creating ./config.status
> config.status: creating Makefile
>
> Therefore off like a hurd of turtles and some hours later GNU binutils
> assembler has bit of chicken bone stuck in its throat :
>
> .
> .
> .
> /opt/bw/build/gcc-8.5.0_OpenBSD_alpha_21164.001/./gcc/xgcc
> -B/opt/bw/build/gcc-8.5.0_OpenBSD_alpha_21164.001/./gcc/
> -B/opt/bw/imed/gcc8/alpha-unknown-openbsd7.8/bin/
> -B/opt/bw/imed/gcc8/alpha-unknown-openbsd7.8/lib/ -isystem
> /opt/bw/imed/gcc8/alpha-unknown-openbsd7.8/include -isystem
> /opt/bw/imed/gcc8/alpha-unknown-openbsd7.8/sys-include    -g -O2 -mieee
> -O2  -g -O2 -mieee -DIN_GCC    -W -Wall -Wwrite-strings -Wcast-qual
> -Wno-format -Wstrict-prototypes -Wmissing-prototypes
> -Wold-style-definition  -isystem ./include  -fPIC -pthread -mieee -g
> -DIN_LIBGCC2 -fbuilding-libgcc -fno-stack-protector  -fPIC -pthread
> -mieee -I. -I. -I../.././gcc -I../../../gcc-8.5.0/libgcc
> -I../../../gcc-8.5.0/libgcc/. -I../../../gcc-8.5.0/libgcc/../gcc
> -I../../../gcc-8.5.0/libgcc/../include  -DHAVE_CC_TLS  -o qrnnd.o -MT
> qrnnd.o -MD -MP -MF qrnnd.dep -c -xassembler-with-cpp -include qrnnd.vis
> ../../../gcc-8.5.0/libgcc/config/alpha/qrnnd.S
> ./qrnnd.vis: Assembler messages:
> ./qrnnd.vis:1: Error: junk at end of line, first unrecognized character
> is `/'
> make[3]: *** [../../../gcc-8.5.0/libgcc/static-object.mk:30: qrnnd.o]
> Error 1
> make[3]: Leaving directory
>
> '/opt/bw/build/gcc-8.5.0_OpenBSD_alpha_21164.001/alpha-unknown-openbsd7.8/libgcc'
> make[2]: *** [Makefile:21586: all-stage1-target-libgcc] Error 2
> make[2]: Leaving directory
> '/opt/bw/build/gcc-8.5.0_OpenBSD_alpha_21164.001'
> make[1]: *** [Makefile:26490: stage1-bubble] Error 2
> make[1]: Leaving directory
> '/opt/bw/build/gcc-8.5.0_OpenBSD_alpha_21164.001'
> make: *** [Makefile:26891: bootstrap] Error 2
>
> Well that is a real weird cup of coffee right there.
>
> The file in question looks to be reasonably harmless :
>
> centauri# cat alpha-unknown-openbsd7.8/libgcc/qrnnd.vis
>          .hidden ../../../gcc-8.5.0/libgcc/config/alpha/qrnnd.S
>          .hidden __udiv_qrnnd
> centauri#
>
> There are no weird bytes in there anywhere. Just plain ASCII :
>
> centauri# hdump -Ax -t x1 -v alpha-unknown-openbsd7.8/libgcc/qrnnd.vis
>       0:  09 2e 68 69 64 64 65 6e 20 2e 2e 2f 2e 2e 2f 2e
>      10:  2e 2f 67 63 63 2d 38 2e 35 2e 30 2f 6c 69 62 67
>      20:  63 63 2f 63 6f 6e 66 69 67 2f 61 6c 70 68 61 2f
>      30:  71 72 6e 6e 64 2e 53 0a 09 2e 68 69 64 64 65 6e
>      40:  20 5f 5f 75 64 69 76 5f 71 72 6e 6e 64 0a
>      4e:
> centauri#
>
> So where is the "Error: junk at end of line" ?
>

The slash is what it considers junk. It says so in the error message.



> Do I need to build a new assembler and then set that in the configure
> line? I can not use GNU ld on this boxen however I have tested latest
> binutils as and it seems to work. Really .... this is bizarre. So any
> thoughts to get past this would be just wonderful.
>
> --
> --
> Dennis Clarke
> RISC-V/SPARC/PPC/ARM/CISC
> UNIX and Linux spoken
> [grey beard and suspenders installed]
>
>
>