In stage1 bootstrap assembler claims Error: junk at end of line, first unrecognized character is `/'
Dennis Clarke via Gcc-help <[email protected]> Thu, 9 Apr 2026 14:12:15 -0400
| Newsgroups | gmane.comp.gcc.help |
|---|---|
| Organization | GENUNIX |
| Message-ID | <[email protected]> |
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" ?
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]