Hallo zusammen,
ich musste leider letzte Woche mein Linux-System neu installieren, da
das Upgrade von opensuse 42.2 auf 42.3 kläglich scheiterte.
Heute habe ich die AVR-Toolchain getestet und musste feststellen, dass
es nicht funktioniert mein "Test-Projekt" zu kompilieren.
Ein make im Test-Projekt
zeigt, das der avr-gcc den "normalen" "as" aufruft , der kennt die
Optiion "mmcu=avr2«" natürlich nicht
make
-------- begin --------
Using built-in specs.
Reading specs from /opt/cross/lib/gcc/avr/5.4.0/device-specs/specs-avr2
COLLECT_GCC=avr-gcc
COLLECT_LTO_WRAPPER=/opt/cross/libexec/gcc/avr/5.4.0/lto-wrapper
avr-gcc (GCC) 5.4.0
Copyright (C) 2015 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.
Target: avr
Configured with: ../gcc-5.4.0/configure -v --target=avr --disable-nls
--mandir=/opt/cross/share/man --infodir=/opt/cross/share/info
--program-prefix=avr- --prefix=/opt/cross --with-gnu-ld --with-gnu-as
--enable-languages=c,c++ --disable-libssp --with-dwarf2
Thread model: single
gcc version 5.4.0 (GCC)
COLLECT_GCC_OPTIONS='-v' '--version' '-specs=device-specs/specs-avr2'
/opt/cross/libexec/gcc/avr/5.4.0/cc1 -quiet -v help-dummy -mn-flash=6
-mskip-bug -quiet -dumpbase help-dummy -auxbase help-dummy -version
--version -o /tmp/cczecLQu.s
GNU C11 (GCC) version 5.4.0 (avr)
compiled by GNU C version 4.8.5, GMP version 5.1.3, MPFR version
3.1.2, MPC version 1.0.2
GGC heuristics: --param ggc-min-expand=100 --param
ggc-min-heapsize=131072
COLLECT_GCC_OPTIONS='-v' '--version' '-specs=device-specs/specs-avr2'
as -v -mmcu=avr2 --version -o /tmp/ccgtYWlS.o /tmp/cczecLQu.s
GNU assembler version 2.26.1 (x86_64-suse-linux) using BFD version (GNU
Binutils; openSUSE Leap 42.3) 2.26.1
as: Unbekannte Option »-mmcu=avr2«
Makefile:267: recipe for target 'gccversion' failed
make: *** [gccversion] Error 1
Das wahr vor ein paar Jahren schon mal ein Bug.
Was auch im wrapper script
unter /usr/bin/avr-gcc vermerkt ist.
# see https://bugzilla.suse.com/show_bug.cgi?id=767294
Dort wird der Pfad geändert so das dort
/opt/cross/avr/bin
an erster Stelle steht. Soweit ok, aber in der 42.3 findet sich dort
kein
"as"
Ich habe in diesem Verzeichnis als Workaround einen symbolischen Link
auf
lrwxrwxrwx 1 root root 15 26. Aug 18:30 as -> /usr/bin/avr-as
den avr-as im /usr/bin/acr-as gesetzt , jetzt funktioniert es.
In der opensuse 42.2 liegt das richtige Binary direkt dort als "as"
opensuse 42.2:
monitor@linux-9j89:~/avr/atm16_2017> ls -l /opt/cross/avr/bin
insgesamt 23872
-rwxr-xr-x 2 root root 727712 7. Feb 2017 ar
-rwxr-xr-x 2 root root 958888 7. Feb 2017 as
-rwxr-xr-x 1 root root 4466112 8. Aug 13:08 avr-gdb
-rwxr-xr-x 1 root root 4466120 8. Aug 13:08 avr-gdbtui
-rwxr-xr-x 1 root root 4466120 8. Aug 13:08 avr-insight
-rwxr-xr-x 4 root root 1206952 7. Feb 2017 ld
-rwxr-xr-x 4 root root 1206952 7. Feb 2017 ld.bfd
-rwxr-xr-x 2 root root 712088 7. Feb 2017 nm
-rwxr-xr-x 2 root root 891224 7. Feb 2017 objcopy
-rwxr-xr-x 2 root root 1031896 7. Feb 2017 objdump
-rwxr-xr-x 2 root root 727712 7. Feb 2017 ranlib
-rwxr-xr-x 2 root root 493544 7. Feb 2017 readelf
-rwxr-xr-x 2 root root 891224 7. Feb 2017 strip
-rwxr-xr-x 1 root root 672736 8. Aug 13:08 tclsh8.4
-rwxr-xr-x 1 root root 1495392 8. Aug 13:08 wish8.4
Ich sehe das als Fehler in der 42.3 an, kann das jemand bestätigen ?
@Jörg Wunsch: Falls Du mitliest, ist Dir das bekannt ?
Gruß Ingo