Forum: Compiler & IDEs Toochain bauen avr-gcc-x.x mit binutils-2.34 funktioniert nicht


von Veit D. (devil-elec)



Lesenswert?

Hallo,

ich wollte eine neue Toolchain mit gcc 9.3 bauen. Dieses gleich mit den 
aktuellen binutils 2.34. Allerdings klappt das nicht. Siehe 
Dateianhängen.
Habe folgendes über Kreuz getestet.
gcc 9.3 mit binutils 2.34 > nicht okay
gcc 9.3 mit binutils 2.32 > okay
gcc 9.2 mit binutils 2.32 > okay
gcc 9.2 mit binutils 2.34 > nicht okay
gcc 9.2 mit binutils 2.33.1 > okay
gcc 9.3 mit binutils 2.33.1 > okay

Daraus schließe ich das mit den binutils 2.34 etwas nicht stimmt.
Aus der Doku kann ich auch nichts entnehmen das sich etwas in den 
Optionen geändert haben könnte.
Gebaut wird mittels Ubuntu 18.04.4 LTS.

Wenn man in der Konsolenausgabe etwas hochscrollt liest man diesen 
ersten Fehler.

Makefile:12901: recipe for target 'install-strip-target-libgcc' failed
make[1]: *** [install-strip-target-libgcc] Error 2
make[1]: Verzeichnis „/home/ubuntixer/toolchain/buildLinux/gcc“ wird 
verlassen
Makefile:2475: recipe for target 'install-strip' failed
make: *** [install-strip] Error 2

Kann mir jemand sagen wo es genau klemmt?

von Veit D. (devil-elec)



Lesenswert?

Hallo,

habe dann mal mit gcc10 probiert.

gcc10 will mit binutils 2.34 und 2.33.1 auch nicht. v2.32 ist nicht 
getestet. Bin dann die Konsolenausgabe nochmal durch, weil diesmal 
zwischendrin was rotes aufblitzte und habe 'flex' nachinstalliert.

Bleibt am Ende aber auch wieder mit 'install-strip' Fehler stehen.

Bin ratlos.

(Logfile vom binutils Ordner gibts nicht)

: Bearbeitet durch User
von Veit D. (devil-elec)



Lesenswert?

Hallo,

laut meiner Meinung gibts ein Problem mit der -strip Option.

Entferne ich die Option im Script für binutils, kann ich eine Toolchain 
aus gcc10 und binutils 2.33.1 bauen. Das Endergebnis ist dann leider ca. 
doppelt so groß. Die Kombination gcc10 und binutils 2.34 gelingt aucn 
nicht nach dem entfernen der -strip Option zusätzlich für die avr-libs.

Hat jemand einen Tipp?

von Veit D. (devil-elec)


Lesenswert?

Hallo,

habe noch die Kombination gcc-10.0.1 mit binutils-2.32 getestet. Das 
kompiliert alles wie soll mit make install-strip.

Damit ist eigentlich der Beweisführung zu Genüge getan das in den 
Neueren binutils irgendein Fehler steckt.

Meine Frage wäre, ist das schon bekannt? Wird daran schon gearbeitet?

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

1
as: unrecognized option '-mmcu=avr2'

Wobei mir gerade nicht ganz klar ist, ob das nun passiert, weil die 
Binutils kein "avr2" unterstützen, oder ob aus Versehen der Assembler 
des Hosts statt des Targets aufgerufen wird. Das sollte dir die Ausgabe 
eines "strace" sagen können.

: Bearbeitet durch Moderator
Beitrag #6183222 wurde vom Autor gelöscht.
von foobar (Gast)


Lesenswert?

Der Build hat doch schon viel früher Probleme, das Script ignoriert die 
aber und macht einfach weiter.  Setzt mal zum -x auch noch -e.

von Veit D. (devil-elec)


Angehängte Dateien:

Lesenswert?

Hallo,

das strace Logfile mit Option -f ist 5GByte groß.
Habs ohne -f und mit set -e wiederholt.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Veit D. schrieb:
> Habs ohne -f und mit set -e wiederholt.

Das bringt nichts.

Du musst es mit -f laufen lassen, und dich schon mal selbst durchwühlen 
um rauszufinden, welchen Assembler er da aufruft. Suche nach "/as" 
sollte gar nicht so viele Treffer haben, kannst ja von hinten rückwärts 
suchen.

von Veit D. (devil-elec)


Lesenswert?

Hallo,

ich versuche das einmal ...

Wenn ich das richtig überblicke gehts in der Konsolenausgabe schon in 
Zeile 3558 los beim betreten von 
„/home/ubuntixer/toolchain/buildLinux/gcc/avr/libgcc“

von Veit D. (devil-elec)


Lesenswert?

Hallo,

habs mit
> grep -C 2 "/as" xxx.log >> xxx.txt
gefiltert, ergibt 57MB, gepackt 3,2MB. Ich glaube das kann ich Euch 
zumuten.

https://www.dropbox.com/s/3vnhlamqpnaj1rl/Konsolenlog_2Zeilen.zip?dl=0

Ich kann mit dem Inhalt nichts anfangen, außer das ich sehe das immer 
"No such file or directory" ausgegeben wird.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Hast du denn mal versucht, darin nach dem String "/as" zu suchen?

Ich vermute nämlich, dass er "/usr/bin/as" benutzt, obwohl er 
"<...>/avr/bin/as" benutzen sollte. Wenn dem so ist, dann wäre es kein 
Wunder, dass /usr/bin/as kein -mmcu=avr2 mag. Sollte er wirklich den 
AVR-Assembler rufen, und der beklagt sich darüber, dann hieße das, dass 
in den aktuellen Binutils irgendwas daneben ist und (mindestens) avr2 
nicht mehr unterstützt ist.

von A. B. (Gast)


Angehängte Dateien:

Lesenswert?

Die letzten 28 Zeilen der Datei KonsolenLog2.txt
************************************************

execve("/usr/local/sbin/as", ["as", "-mmcu=avr2", "-o", "/t ...
________^^^^^^^^^^^^^^^^^^

von Veit D. (devil-elec)


Lesenswert?

Hallo,

das "/as" Filterergebnis steht in dem gepackten Logfile.
Das sind die ersten Zeilen in notepad++ gefiltert. Sind 168617 Treffer.
Heute Abend kann ich weiter machen.
1
21516 stat("/usr/lib/gcc/x86_64-linux-gnu/7/as", 0x7fff9c89eb40) = -1 ENOENT (No such file or directory)
2
21516 stat("/usr/lib/gcc/x86_64-linux-gnu/7/as", 0x7fff9c89eb40) = -1 ENOENT (No such file or directory)
3
21516 stat("/usr/lib/gcc/x86_64-linux-gnu/as", 0x7fff9c89eb40) = -1 ENOENT (No such file or directory)
4
21516 stat("/usr/lib/gcc/x86_64-linux-gnu/7/as", 0x7fff9c89eb40) = -1 ENOENT (No such file or directory)
5
21516 stat("/usr/lib/gcc/x86_64-linux-gnu/as", 0x7fff9c89eb40) = -1 ENOENT (No such file or directory)
6
21516 stat("/usr/lib/gcc/x86_64-linux-gnu/7/../../../../x86_64-linux-gnu/bin/x86_64-linux-gnu/7/as", 0x7fff9c89eb40) = -1 ENOENT (No such file or directory)
7
21516 stat("/usr/lib/gcc/x86_64-linux-gnu/7/../../../../x86_64-linux-gnu/bin/x86_64-linux-gnu/as", 0x7fff9c89eb40) = -1 ENOENT (No such file or directory)
8
21516 stat("/usr/lib/gcc/x86_64-linux-gnu/7/../../../../x86_64-linux-gnu/bin/as", 0x7fff9c89eb40) = -1 ENOENT (No such file or directory)
9
21518 execve("/usr/local/sbin/as", ["as", "--64", "-o", "/tmp/cgXDQVBx/dummy.o", "/tmp/cc3NvgZl.s"], 0x267ad40 /* 72 vars */) = -1 ENOENT (No such file or directory)
10
21518 execve("/usr/local/bin/as", ["as", "--64", "-o", "/tmp/cgXDQVBx/dummy.o", "/tmp/cc3NvgZl.s"], 0x267ad40 /* 72 vars */) = -1 ENOENT (No such file or directory)
11
21518 execve("/usr/sbin/as", ["as", "--64", "-o", "/tmp/cgXDQVBx/dummy.o", "/tmp/cc3NvgZl.s"], 0x267ad40 /* 72 vars */) = -1 ENOENT (No such file or directory)
12
21518 execve("/usr/bin/as", ["as", "--64", "-o", "/tmp/cgXDQVBx/dummy.o", "/tmp/cc3NvgZl.s"], 0x267ad40 /* 72 vars */ <unfinished ...>
13
21584 stat("/usr/lib/gcc/x86_64-linux-gnu/7/as", 0x7fff499ab8e0) = -1 ENOENT (No such file or directory)
14
21584 stat("/usr/lib/gcc/x86_64-linux-gnu/7/as", 0x7fff499ab8e0) = -1 ENOENT (No such file or directory)
15
21584 stat("/usr/lib/gcc/x86_64-linux-gnu/as", 0x7fff499ab8e0) = -1 ENOENT (No such file or directory)
16
21584 stat("/usr/lib/gcc/x86_64-linux-gnu/7/as", 0x7fff499ab8e0) = -1 ENOENT (No such file or directory)
17
21584 stat("/usr/lib/gcc/x86_64-linux-gnu/as", 0x7fff499ab8e0) = -1 ENOENT (No such file or directory)
18
21584 stat("/usr/lib/gcc/x86_64-linux-gnu/7/../../../../x86_64-linux-gnu/bin/x86_64-linux-gnu/7/as", 0x7fff499ab8e0) = -1 ENOENT (No such file or directory)
19
21584 stat("/usr/lib/gcc/x86_64-linux-gnu/7/../../../../x86_64-linux-gnu/bin/x86_64-linux-gnu/as", 0x7fff499ab8e0) = -1 ENOENT (No such file or directory)
20
21584 stat("/usr/lib/gcc/x86_64-linux-gnu/7/../../../../x86_64-linux-gnu/bin/as", 0x7fff499ab8e0) = -1 ENOENT (No such file or directory)
21
21586 execve("/usr/local/sbin/as", ["as", "--64", "-o", "/tmp/ccaMmAdJ.o", "/tmp/ccLV76vG.s"], 0xcf9980 /* 73 vars */) = -1 ENOENT (No such file or directory)
22
21586 execve("/usr/local/bin/as", ["as", "--64", "-o", "/tmp/ccaMmAdJ.o", "/tmp/ccLV76vG.s"], 0xcf9980 /* 73 vars */) = -1 ENOENT (No such file or directory)
23
21586 execve("/usr/sbin/as", ["as", "--64", "-o", "/tmp/ccaMmAdJ.o", "/tmp/ccLV76vG.s"], 0xcf9980 /* 73 vars */) = -1 ENOENT (No such file or directory)
24
21586 execve("/usr/bin/as", ["as", "--64", "-o", "/tmp/ccaMmAdJ.o", "/tmp/ccLV76vG.s"], 0xcf9980 /* 73 vars */ <unfinished ...>
25
21591 stat("/usr/lib/gcc/x86_64-linux-gnu/7/as", 0x7ffe24806f40) = -1 ENOENT (No such file or directory)
26
21591 stat("/usr/lib/gcc/x86_64-linux-gnu/7/as", 0x7ffe24806f40) = -1 ENOENT (No such file or directory)
27
21591 stat("/usr/lib/gcc/x86_64-linux-gnu/as", 0x7ffe24806f40) = -1 ENOENT (No such file or directory)
28
21591 stat("/usr/lib/gcc/x86_64-linux-gnu/7/as", 0x7ffe24806f40) = -1 ENOENT (No such file or directory)
29
21591 stat("/usr/lib/gcc/x86_64-linux-gnu/as", 0x7ffe24806f40) = -1 ENOENT (No such file or directory)
30
21591 stat("/usr/lib/gcc/x86_64-linux-gnu/7/../../../../x86_64-linux-gnu/bin/x86_64-linux-gnu/7/as", 0x7ffe24806f40) = -1 ENOENT (No such file or directory)
31
21591 stat("/usr/lib/gcc/x86_64-linux-gnu/7/../../../../x86_64-linux-gnu/bin/x86_64-linux-gnu/as", 0x7ffe24806f40) = -1 ENOENT (No such file or directory)
32
21591 stat("/usr/lib/gcc/x86_64-linux-gnu/7/../../../../x86_64-linux-gnu/bin/as", 0x7ffe24806f40) = -1 ENOENT (No such file or directory)
33
21593 execve("/usr/local/sbin/as", ["as", "--64", "-o", "/tmp/ccP9GNba.o", "/tmp/cc85Za45.s"], 0xb0cb60 /* 73 vars */) = -1 ENOENT (No such file or directory)
34
21593 execve("/usr/local/bin/as", ["as", "--64", "-o", "/tmp/ccP9GNba.o", "/tmp/cc85Za45.s"], 0xb0cb60 /* 73 vars */) = -1 ENOENT (No such file or directory)
35
21593 execve("/usr/sbin/as", ["as", "--64", "-o", "/tmp/ccP9GNba.o", "/tmp/cc85Za45.s"], 0xb0cb60 /* 73 vars */) = -1 ENOENT (No such file or directory)
36
21593 execve("/usr/bin/as", ["as", "--64", "-o", "/tmp/ccP9GNba.o", "/tmp/cc85Za45.s"], 0xb0cb60 /* 73 vars */ <unfinished ...>
37
21600 stat("/usr/lib/gcc/x86_64-linux-gnu/7/as", 0x7ffd885dcac0) = -1 ENOENT (No such file or directory)
38
21600 stat("/usr/lib/gcc/x86_64-linux-gnu/7/as", 0x7ffd885dcac0) = -1 ENOENT (No such file or directory)
39
21600 stat("/usr/lib/gcc/x86_64-linux-gnu/as", 0x7ffd885dcac0) = -1 ENOENT (No such file or directory)
40
21600 stat("/usr/lib/gcc/x86_64-linux-gnu/7/as", 0x7ffd885dcac0) = -1 ENOENT (No such file or directory)
41
21600 stat("/usr/lib/gcc/x86_64-linux-gnu/as", 0x7ffd885dcac0) = -1 ENOENT (No such file or directory)
42
21600 stat("/usr/lib/gcc/x86_64-linux-gnu/7/../../../../x86_64-linux-gnu/bin/x86_64-linux-gnu/7/as", 0x7ffd885dcac0) = -1 ENOENT (No such file or directory)

von Veit D. (devil-elec)


Lesenswert?

Hallo,

soll ich nochmal was speziell filtern?
Oder sind die Informationen ausreichend?
Oder was könnte ich noch machen?

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Habe gerade mal die binutils-2.34 für AVR gebaut:
1
% ./gas/as-new --help
2
Usage: ./gas/as-new [option...] [asmfile...]
3
Options:
4
  -a[sub-option...]       turn on listings
5
                          Sub-options [default hls]:
6
                          c      omit false conditionals
7
                          d      omit debugging directives
8
                          g      include general info
9
                          h      include high-level source
10
                          l      include assembly
11
                          m      include macro expansions
12
                          n      omit forms processing
13
                          s      include symbols
14
                          =FILE  list to FILE (must be last sub-option)
15
  --alternate             initially turn on alternate macro syntax
16
  --compress-debug-sections[={none|zlib|zlib-gnu|zlib-gabi}]
17
                          compress DWARF debug sections using zlib
18
  --nocompress-debug-sections
19
                          don't compress DWARF debug sections [default]
20
  -D                      produce assembler debugging messages
21
  --debug-prefix-map OLD=NEW
22
                          map OLD to NEW in debug information
23
  --defsym SYM=VAL        define symbol SYM to given value
24
  --execstack             require executable stack for this object
25
  --noexecstack           don't require executable stack for this object
26
  --size-check=[error|warning]
27
                          ELF .size directive check (default --size-check=error)
28
  --elf-stt-common=[no|yes] (default: no)
29
                          generate ELF common symbols with STT_COMMON type
30
  --sectname-subst        enable section name substitution sequences
31
  --generate-missing-build-notes=[no|yes] (default: no)
32
                          generate GNU Build notes if none are present in the input
33
  -f                      skip whitespace and comment preprocessing
34
  -g --gen-debug          generate debugging information
35
  --gstabs                generate STABS debugging information
36
  --gstabs+               generate STABS debug info with GNU extensions
37
  --gdwarf-2              generate DWARF2 debugging information
38
  --gdwarf-sections       generate per-function section names for DWARF line information
39
  --hash-size=<value>     set the hash table size close to <value>
40
  --help                  show this message and exit
41
  --target-help           show target specific options
42
  -I DIR                  add DIR to search list for .include directives
43
  -J                      don't warn about signed overflow
44
  -K                      warn when differences altered for long displacements
45
  -L,--keep-locals        keep local symbols (e.g. starting with `L')
46
  -M,--mri                assemble in MRI compatibility mode
47
  --MD FILE               write dependency information in FILE (default none)
48
  -nocpp                  ignored
49
  -no-pad-sections        do not pad the end of sections to alignment boundaries
50
  -o OBJFILE              name the object-file output OBJFILE (default a.out)
51
  -R                      fold data section into text section
52
  --reduce-memory-overheads 
53
                          prefer smaller memory use at the cost of longer
54
                          assembly times
55
  --statistics            print various measured statistics from execution
56
  --strip-local-absolute  strip local absolute symbols
57
  --traditional-format    Use same format as native assembler when possible
58
  --version               print assembler version number and exit
59
  -W  --no-warn           suppress warnings
60
  --warn                  don't suppress warnings
61
  --fatal-warnings        treat warnings as errors
62
  -w                      ignored
63
  -X                      ignored
64
  -Z                      generate object file even after errors
65
  --listing-lhs-width     set the width in words of the output data column of
66
                          the listing
67
  --listing-lhs-width2    set the width in words of the continuation lines
68
                          of the output data column; ignored if smaller than
69
                          the width of the first line
70
  --listing-rhs-width     set the max width in characters of the lines from
71
                          the source file
72
  --listing-cont-lines    set the maximum number of continuation lines used
73
                          for the output data column of the listing
74
  @FILE                   read options from FILE
75
AVR Assembler options:
76
  -mmcu=[avr-name] select microcontroller variant
77
                   [avr-name] can be:
78
                   avr1  - classic AVR core without data RAM
79
                   avr2  - classic AVR core with up to 8K program memory
80
                   avr25 - classic AVR core with up to 8K program memory
81
                           plus the MOVW instruction
82
                   avr3  - classic AVR core with up to 64K program memory
83
                   avr31 - classic AVR core with up to 128K program memory
84
                   avr35 - classic AVR core with up to 64K program memory
85
                           plus the MOVW instruction
86
                   avr4  - enhanced AVR core with up to 8K program memory
87
                   avr5  - enhanced AVR core with up to 64K program memory
88
                   avr51 - enhanced AVR core with up to 128K program memory
89
                   avr6  - enhanced AVR core with up to 256K program memory
90
                   avrxmega2 - XMEGA, > 8K, < 64K FLASH, < 64K RAM
91
                   avrxmega3 - XMEGA, RAM + FLASH < 64K, Flash visible in RAM
92
                   avrxmega4 - XMEGA, > 64K, <= 128K FLASH, <= 64K RAM
93
                   avrxmega5 - XMEGA, > 64K, <= 128K FLASH, > 64K RAM
94
                   avrxmega6 - XMEGA, > 128K, <= 256K FLASH, <= 64K RAM
95
                   avrxmega7 - XMEGA, > 128K, <= 256K FLASH, > 64K RAM
96
                   avrtiny   - AVR Tiny core with 16 gp registers
97
  -mall-opcodes    accept all AVR opcodes, even if not supported by MCU
98
  -mno-skip-bug    disable warnings for skipping two-word instructions
99
                   (default for avr4, avr5)
100
  -mno-wrap        reject rjmp/rcall instructions with 8K wrap-around
101
                   (default for avr3, avr5)
102
  -mrmw            accept Read-Modify-Write instructions
103
  -mlink-relax     generate relocations for linker relaxation (default)
104
  -mno-link-relax  don't generate relocations for linker relaxation.
105
  -mgcc-isr        accept the __gcc_isr pseudo-instruction.
106
Known MCU names:
107
  avr1 avr2 avr25 avr3 avr31 avr35 avr4 avr5 avr51 avr6 avrxmega1
108
  avrxmega2 avrxmega3 avrxmega4 avrxmega5 avrxmega6 avrxmega7 avrtiny
109
  at90s1200 attiny11 attiny12 attiny15 attiny28 at90s2313 at90s2323
110
  at90s2333 at90s2343 attiny22 attiny26 at90s4414 at90s4433 at90s4434
111
  at90s8515 at90c8534 at90s8535 ata5272 attiny13 attiny13a attiny2313
112
  attiny2313a attiny24 attiny24a attiny4313 attiny44 attiny44a attiny84
113
  attiny84a attiny25 attiny45 attiny85 attiny261 attiny261a attiny461
114
  attiny461a attiny861 attiny861a attiny87 attiny43u attiny48 attiny88
115
  attiny828 at86rf401 at43usb355 at76c711 atmega103 at43usb320 attiny167
116
  at90usb82 at90usb162 ata5505 atmega8u2 atmega16u2 atmega32u2 attiny1634
117
  atmega8 ata6289 atmega8a ata6285 ata6286 atmega48 atmega48a atmega48pa
118
  atmega48p atmega88 atmega88a atmega88p atmega88pa atmega8515 atmega8535
119
  atmega8hva at90pwm1 at90pwm2 at90pwm2b at90pwm3 at90pwm3b at90pwm81
120
  at90pwm161 ata5790 ata5795 atmega16 atmega16a atmega161 atmega162
121
  atmega163 atmega164a atmega164p atmega164pa atmega165 atmega165a
122
  atmega165p atmega165pa atmega168 atmega168a atmega168p atmega168pa
123
  atmega169 atmega169a atmega169p atmega169pa atmega32 atmega32a atmega323
124
  atmega324a atmega324p atmega324pa atmega325 atmega325a atmega325p
125
  atmega325pa atmega3250 atmega3250a atmega3250p atmega3250pa atmega328
126
  atmega328p atmega329 atmega329a atmega329p atmega329pa atmega3290
127
  atmega3290a atmega3290p atmega3290pa atmega406 atmega64rfr2
128
  atmega644rfr2 atmega64 atmega64a atmega640 atmega644 atmega644a
129
  atmega644p atmega644pa atmega645 atmega645a atmega645p atmega649
130
  atmega649a atmega649p atmega6450 atmega6450a atmega6450p atmega6490
131
  atmega6490a atmega6490p atmega64rfr2 atmega644rfr2 atmega16hva
132
  atmega16hva2 atmega16hvb atmega16hvbrevb atmega32hvb atmega32hvbrevb
133
  atmega64hve at90can32 at90can64 at90pwm161 at90pwm216 at90pwm316
134
  atmega32c1 atmega64c1 atmega16m1 atmega32m1 atmega64m1 atmega16u4
135
  atmega32u4 atmega32u6 at90usb646 at90usb647 at90scr100 at94k m3000
136
  atmega128 atmega128a atmega1280 atmega1281 atmega1284 atmega1284p
137
  atmega128rfa1 atmega128rfr2 atmega1284rfr2 at90can128 at90usb1286
138
  at90usb1287 atmega2560 atmega2561 atmega256rfr2 atmega2564rfr2
139
  atxmega16a4 atxmega16a4u atxmega16c4 atxmega16d4 atxmega32a4
140
  atxmega32a4u atxmega32c4 atxmega32d4 atxmega32e5 atxmega16e5 atxmega8e5
141
  atxmega32x1 attiny212 attiny214 attiny412 attiny414 attiny416 attiny417
142
  attiny814 attiny816 attiny817 attiny1614 attiny1616 attiny1617
143
  attiny3214 attiny3216 attiny3217 atxmega64a3 atxmega64a3u atxmega64a4u
144
  atxmega64b1 atxmega64b3 atxmega64c3 atxmega64d3 atxmega64d4 atxmega64a1
145
  atxmega64a1u atxmega128a3 atxmega128a3u atxmega128b1 atxmega128b3
146
  atxmega128c3 atxmega128d3 atxmega128d4 atxmega192a3 atxmega192a3u
147
  atxmega192c3 atxmega192d3 atxmega256a3 atxmega256a3u atxmega256a3b
148
  atxmega256a3bu atxmega256c3 atxmega256d3 atxmega384c3 atxmega384d3
149
  atxmega128a1 atxmega128a1u atxmega128a4u attiny4 attiny5 attiny9
150
  attiny10 attiny20 attiny40
151
152
Report bugs to <http://www.sourceware.org/bugzilla/>

"avr2" ist also definitiv noch in der Liste. Damit ist klar, dass der 
GCC bei dir irgendwie den falschen Assembler aufruft.

Schau mal, ob dein $PATH korrekt ist und der installierte AVR-Assembler 
gestartet wird, wenn du ihn "avr-as" nennst. Es kann auch helfen, dass 
${prefix}/bin vor den Systempfaden in $PATH liegt.

von Veit D. (devil-elec)


Lesenswert?

Hallo,

ich habe gerade tausende Fragezeichen was ich machen soll.
Mir stellt sich immer noch die Frage warum das mit v2.32 funktioniert 
und mit neuere Versionen nicht.
Mal sehen was ich mit "avr-as" anfangen kann ...

: Bearbeitet durch User
von Veit D. (devil-elec)


Lesenswert?

Hallo,

einen installierten avr habe ich nicht.
Wenn ich dem "bauen" zuschaue, dann macht er was mit den avr-libc.
+ cd /home/ubuntixer/toolchain/downloads/avr-libc

Nachdem alle avr Verzeichnisse erstellt sind, findet er ./config.guess 
nicht, host avr ist unknown und dann ist Ende

checking for suffix of object files... configure: error: in 
`/home/ubuntixer/toolchain/buildLinux/avr-libc':
configure: error: cannot compute suffix of object files: cannot compile
1
+ cd /home/ubuntixer/toolchain/downloads/avr-libc
2
+ ./bootstrap
3
+ rm -rf avr/lib
4
+ ./devtools/gen-avr-lib-tree.sh
5
Generating source directories:
6
  avr/lib/avr2/
7
  avr/lib/avr2/at90s1200
8
  avr/lib/avr2/attiny11
9
  avr/lib/avr2/attiny12
10
  avr/lib/avr2/attiny15
11
  avr/lib/avr2/attiny28
12
  avr/lib/avr2/at90s4414
13
  avr/lib/avr2/at90s4434
14
  avr/lib/avr2/at90s8515
15
  avr/lib/avr2/at90s8535
16
  avr/lib/avr2/at90c8534
17
  avr/lib/avr2/tiny-stack/
18
  avr/lib/avr2/tiny-stack/at90s2313
19
  avr/lib/avr2/tiny-stack/at90s2323
20
  avr/lib/avr2/tiny-stack/at90s2333
21
  avr/lib/avr2/tiny-stack/at90s2343
22
  avr/lib/avr2/tiny-stack/at90s4433
23
  avr/lib/avr2/tiny-stack/attiny22
24
  avr/lib/avr2/tiny-stack/attiny26
25
  avr/lib/avr25/
26
  avr/lib/avr25/at86rf401
27
  avr/lib/avr25/ata5272
28
  avr/lib/avr25/ata6616c
29
  avr/lib/avr25/attiny4313
30
  avr/lib/avr25/attiny43u
31
  avr/lib/avr25/attiny44
32
  avr/lib/avr25/attiny44a
33
  avr/lib/avr25/attiny441
34
  avr/lib/avr25/attiny45
35
  avr/lib/avr25/attiny461
36
  avr/lib/avr25/attiny461a
37
  avr/lib/avr25/attiny48
38
  avr/lib/avr25/attiny828
39
  avr/lib/avr25/attiny84
40
  avr/lib/avr25/attiny84a
41
  avr/lib/avr25/attiny841
42
  avr/lib/avr25/attiny85
43
  avr/lib/avr25/attiny861
44
  avr/lib/avr25/attiny861a
45
  avr/lib/avr25/attiny87
46
  avr/lib/avr25/attiny88
47
  avr/lib/avr25/tiny-stack/
48
  avr/lib/avr25/tiny-stack/attiny13
49
  avr/lib/avr25/tiny-stack/attiny13a
50
  avr/lib/avr25/tiny-stack/attiny2313
51
  avr/lib/avr25/tiny-stack/attiny2313a
52
  avr/lib/avr25/tiny-stack/attiny24
53
  avr/lib/avr25/tiny-stack/attiny24a
54
  avr/lib/avr25/tiny-stack/attiny25
55
  avr/lib/avr25/tiny-stack/attiny261
56
  avr/lib/avr25/tiny-stack/attiny261a
57
  avr/lib/avr3/
58
  avr/lib/avr3/at43usb355
59
  avr/lib/avr3/at76c711
60
  avr/lib/avr31/
61
  avr/lib/avr31/atmega103
62
  avr/lib/avr31/at43usb320
63
  avr/lib/avr35/
64
  avr/lib/avr35/at90usb82
65
  avr/lib/avr35/at90usb162
66
  avr/lib/avr35/ata5505
67
  avr/lib/avr35/ata6617c
68
  avr/lib/avr35/ata664251
69
  avr/lib/avr35/atmega8u2
70
  avr/lib/avr35/atmega16u2
71
  avr/lib/avr35/atmega32u2
72
  avr/lib/avr35/attiny167
73
  avr/lib/avr35/attiny1634
74
  avr/lib/avr4/
75
  avr/lib/avr4/ata6285
76
  avr/lib/avr4/ata6286
77
  avr/lib/avr4/ata6289
78
  avr/lib/avr4/ata6612c
79
  avr/lib/avr4/atmega48
80
  avr/lib/avr4/atmega48a
81
  avr/lib/avr4/atmega48pa
82
  avr/lib/avr4/atmega48pb
83
  avr/lib/avr4/atmega48p
84
  avr/lib/avr4/atmega8
85
  avr/lib/avr4/atmega8a
86
  avr/lib/avr4/atmega88
87
  avr/lib/avr4/atmega88a
88
  avr/lib/avr4/atmega88p
89
  avr/lib/avr4/atmega88pa
90
  avr/lib/avr4/atmega88pb
91
  avr/lib/avr4/atmega8515
92
  avr/lib/avr4/atmega8535
93
  avr/lib/avr4/atmega8hva
94
  avr/lib/avr4/at90pwm1
95
  avr/lib/avr4/at90pwm2
96
  avr/lib/avr4/at90pwm2b
97
  avr/lib/avr4/at90pwm3
98
  avr/lib/avr4/at90pwm3b
99
  avr/lib/avr4/at90pwm81
100
  avr/lib/avr5/
101
  avr/lib/avr5/at90can32
102
  avr/lib/avr5/at90can64
103
  avr/lib/avr5/at90pwm216
104
  avr/lib/avr5/at90pwm316
105
  avr/lib/avr5/at90pwm161
106
  avr/lib/avr5/at90scr100
107
  avr/lib/avr5/at90usb646
108
  avr/lib/avr5/at90usb647
109
  avr/lib/avr5/at94k
110
  avr/lib/avr5/ata5702m322
111
  avr/lib/avr5/ata5782
112
  avr/lib/avr5/ata5790
113
  avr/lib/avr5/ata5790n
114
  avr/lib/avr5/ata5795
115
  avr/lib/avr5/ata5831
116
  avr/lib/avr5/ata6613c
117
  avr/lib/avr5/ata6614q
118
  avr/lib/avr5/atmega16
119
  avr/lib/avr5/atmega16a
120
  avr/lib/avr5/atmega161
121
  avr/lib/avr5/atmega162
122
  avr/lib/avr5/atmega163
123
  avr/lib/avr5/atmega164a
124
  avr/lib/avr5/atmega164p
125
  avr/lib/avr5/atmega164pa
126
  avr/lib/avr5/atmega165
127
  avr/lib/avr5/atmega165a
128
  avr/lib/avr5/atmega165p
129
  avr/lib/avr5/atmega165pa
130
  avr/lib/avr5/atmega168
131
  avr/lib/avr5/atmega168a
132
  avr/lib/avr5/atmega168p
133
  avr/lib/avr5/atmega168pa
134
  avr/lib/avr5/atmega169
135
  avr/lib/avr5/atmega169a
136
  avr/lib/avr5/atmega169p
137
  avr/lib/avr5/atmega169pa
138
  avr/lib/avr5/atmega16hva
139
  avr/lib/avr5/atmega16hva2
140
  avr/lib/avr5/atmega16hvb
141
  avr/lib/avr5/atmega16hvbrevb
142
  avr/lib/avr5/atmega16m1
143
  avr/lib/avr5/atmega16u4
144
  avr/lib/avr5/atmega32
145
  avr/lib/avr5/atmega32a
146
  avr/lib/avr5/atmega323
147
  avr/lib/avr5/atmega324a
148
  avr/lib/avr5/atmega324p
149
  avr/lib/avr5/atmega324pa
150
  avr/lib/avr5/atmega325
151
  avr/lib/avr5/atmega325a
152
  avr/lib/avr5/atmega325p
153
  avr/lib/avr5/atmega325pa
154
  avr/lib/avr5/atmega3250
155
  avr/lib/avr5/atmega3250a
156
  avr/lib/avr5/atmega3250p
157
  avr/lib/avr5/atmega3250pa
158
  avr/lib/avr5/atmega328
159
  avr/lib/avr5/atmega328p
160
  avr/lib/avr5/atmega329
161
  avr/lib/avr5/atmega329a
162
  avr/lib/avr5/atmega329p
163
  avr/lib/avr5/atmega329pa
164
  avr/lib/avr5/atmega3290
165
  avr/lib/avr5/atmega3290a
166
  avr/lib/avr5/atmega3290p
167
  avr/lib/avr5/atmega3290pa
168
  avr/lib/avr5/atmega32c1
169
  avr/lib/avr5/atmega32hvb
170
  avr/lib/avr5/atmega32hvbrevb
171
  avr/lib/avr5/atmega32m1
172
  avr/lib/avr5/atmega32u4
173
  avr/lib/avr5/atmega32u6
174
  avr/lib/avr5/atmega406
175
  avr/lib/avr5/atmega644rfr2
176
  avr/lib/avr5/atmega64rfr2
177
  avr/lib/avr5/atmega64
178
  avr/lib/avr5/atmega64a
179
  avr/lib/avr5/atmega640
180
  avr/lib/avr5/atmega644
181
  avr/lib/avr5/atmega644a
182
  avr/lib/avr5/atmega644p
183
  avr/lib/avr5/atmega644pa
184
  avr/lib/avr5/atmega645
185
  avr/lib/avr5/atmega645a
186
  avr/lib/avr5/atmega645p
187
  avr/lib/avr5/atmega6450
188
  avr/lib/avr5/atmega6450a
189
  avr/lib/avr5/atmega6450p
190
  avr/lib/avr5/atmega649
191
  avr/lib/avr5/atmega649a
192
  avr/lib/avr5/atmega649p
193
  avr/lib/avr5/atmega6490
194
  avr/lib/avr5/atmega6490a
195
  avr/lib/avr5/atmega6490p
196
  avr/lib/avr5/atmega64c1
197
  avr/lib/avr5/atmega64hve
198
  avr/lib/avr5/atmega64hve2
199
  avr/lib/avr5/atmega64m1
200
  avr/lib/avr5/m3000
201
  avr/lib/avr51/
202
  avr/lib/avr51/atmega128
203
  avr/lib/avr51/atmega128a
204
  avr/lib/avr51/atmega1280
205
  avr/lib/avr51/atmega1281
206
  avr/lib/avr51/atmega1284
207
  avr/lib/avr51/atmega1284p
208
  avr/lib/avr51/atmega128rfa1
209
  avr/lib/avr51/atmega1284rfr2
210
  avr/lib/avr51/atmega128rfr2
211
  avr/lib/avr51/at90can128
212
  avr/lib/avr51/at90usb1286
213
  avr/lib/avr51/at90usb1287
214
  avr/lib/avr6/
215
  avr/lib/avr6/atmega2560
216
  avr/lib/avr6/atmega2561
217
  avr/lib/avr6/atmega2564rfr2
218
  avr/lib/avr6/atmega256rfr2
219
  avr/lib/avrxmega2/
220
  avr/lib/avrxmega2/atxmega8e5
221
  avr/lib/avrxmega2/atxmega16a4
222
  avr/lib/avrxmega2/atxmega16a4u
223
  avr/lib/avrxmega2/atxmega16c4
224
  avr/lib/avrxmega2/atxmega16d4
225
  avr/lib/avrxmega2/atxmega32a4
226
  avr/lib/avrxmega2/atxmega32a4u
227
  avr/lib/avrxmega2/atxmega32c3
228
  avr/lib/avrxmega2/atxmega32c4
229
  avr/lib/avrxmega2/atxmega32d3
230
  avr/lib/avrxmega2/atxmega32d4
231
  avr/lib/avrxmega2/atxmega32e5
232
  avr/lib/avrxmega3/
233
  avr/lib/avrxmega3/short-calls/
234
  avr/lib/avrxmega4/
235
  avr/lib/avrxmega4/atxmega64a3
236
  avr/lib/avrxmega4/atxmega64a3u
237
  avr/lib/avrxmega4/atxmega64a4u
238
  avr/lib/avrxmega4/atxmega64b1
239
  avr/lib/avrxmega4/atxmega64b3
240
  avr/lib/avrxmega4/atxmega64c3
241
  avr/lib/avrxmega4/atxmega64d3
242
  avr/lib/avrxmega4/atxmega64d4
243
  avr/lib/avrxmega5/
244
  avr/lib/avrxmega5/atxmega64a1
245
  avr/lib/avrxmega5/atxmega64a1u
246
  avr/lib/avrxmega6/
247
  avr/lib/avrxmega6/atxmega128a3
248
  avr/lib/avrxmega6/atxmega128a3u
249
  avr/lib/avrxmega6/atxmega128b1
250
  avr/lib/avrxmega6/atxmega128b3
251
  avr/lib/avrxmega6/atxmega128c3
252
  avr/lib/avrxmega6/atxmega128d3
253
  avr/lib/avrxmega6/atxmega128d4
254
  avr/lib/avrxmega6/atxmega192a3
255
  avr/lib/avrxmega6/atxmega192a3u
256
  avr/lib/avrxmega6/atxmega192c3
257
  avr/lib/avrxmega6/atxmega192d3
258
  avr/lib/avrxmega6/atxmega256a3
259
  avr/lib/avrxmega6/atxmega256a3u
260
  avr/lib/avrxmega6/atxmega256a3b
261
  avr/lib/avrxmega6/atxmega256a3bu
262
  avr/lib/avrxmega6/atxmega256c3
263
  avr/lib/avrxmega6/atxmega256d3
264
  avr/lib/avrxmega6/atxmega384c3
265
  avr/lib/avrxmega6/atxmega384d3
266
  avr/lib/avrxmega7/
267
  avr/lib/avrxmega7/atxmega128a1
268
  avr/lib/avrxmega7/atxmega128a1u
269
  avr/lib/avrxmega7/atxmega128a4u
270
  avr/lib/avrtiny/
271
  avr/lib/avrtiny/attiny4
272
  avr/lib/avrtiny/attiny5
273
  avr/lib/avrtiny/attiny9
274
  avr/lib/avrtiny/attiny10
275
  avr/lib/avrtiny/attiny20
276
  avr/lib/avrtiny/attiny40
277
+ rm -rf autom4te.cache
278
+ aclocal
279
+ autoheader
280
+ autoconf
281
+ automake --foreign --add-missing --copy
282
+ cd /home/ubuntixer/toolchain/buildLinux/avr-libc
283
+ ./config.guess
284
buildLinux.sh: 1: buildLinux.sh: ./config.guess: not found
285
+ ../../downloads/avr-libc/configure --prefix=/home/ubuntixer/local/avrLinux64/ --host=avr --build=
286
checking build system type... x86_64-pc-linux-gnu
287
checking host system type... avr-unknown-none
288
checking if configuring for cross compile... yes
289
checking if target host is avr... yes
290
checking for a BSD-compatible install... /usr/bin/install -c
291
checking whether build environment is sane... yes
292
checking for avr-strip... no
293
checking for strip... strip
294
checking for a thread-safe mkdir -p... /bin/mkdir -p
295
checking for gawk... no
296
checking for mawk... mawk
297
checking whether make sets $(MAKE)... yes
298
checking whether make supports nested variables... yes
299
checking for avr-gcc... avr-gcc
300
checking whether we are cross compiling... yes
301
checking for suffix of object files... configure: error: in `/home/ubuntixer/toolchain/buildLinux/avr-libc':
302
configure: error: cannot compute suffix of object files: cannot compile

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?


von Veit D. (devil-elec)


Lesenswert?

Hallo,

die Seite kenne ich. Die avr Tools soll man unter Linux eigentlich nicht 
installieren, wenn man nur bauen möchte. Um genau den falschen Aufruf zu 
verhindern. Sonst baut der irgendwas und am Ende funktioniert die 
Toolchain nicht. Ich möchte die Toolchain unter Linux nur bauen damit 
ich eine für Windows habe. Ich möchte die Toolchain unter Linux nicht 
installieren.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Veit D. schrieb:
> Ich möchte die Toolchain unter Linux nur bauen damit ich eine für
> Windows habe.

Öhem, achso. Das war mir entgangen. Also ein Crosscompiler mit einem 
Crosscompiler … Das habe ich allerdings auch noch nicht gemacht. Ich 
benutze MinGW als Crosscompiler bislang nur, um AVRDUDE für Windows 
unter FreeBSD zu bauen.

von Veit D. (devil-elec)


Lesenswert?

Hallo,

ja sorry, ich dachte die Info wäre unwichtig, weil es um mein Script 
ging im Eingangsposting. Das ist das erste Script was laufen muss, 
danach würden noch 3 weitere folgen. Ich habe avr c/c++ Toolschain mit 
gcc 7 bis 9 damit gebaut, klappte immer alles.

Ich fasse mal zusammen.
Ich kann bis einschließlich gcc10 mit binutils 2.32 problemlos meine 
C/C++ Toolchain bauen. Ab 2.33.1 gibts Probleme.

Du kannst aber mit binutils 2.34 deine Assembler Toolchain bauen?
Richtig?

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Veit D. schrieb:
> Du kannst aber mit binutils 2.34 deine Assembler Toolchain bauen?

Ja, allerdings native (also build host = execution host), und ich hatte 
dann noch nicht probiert, damit Compiler oder avr-libc zu bauen.

von Veit D. (devil-elec)


Lesenswert?

Hallo,

falls du wirklich Langeweile hast, könntest du das einmal bei dir 
testen.  :-)

Ansonsten müßte ich mich an Nick Clifton wenden? Richtig?
Bevor ich jetzt anfange mein Bau-System zu zerfetzen bzw. neu aufsetze, 
würde ich doch gern vorab fragen ob das Problem bekannt ist und ob 
überhaupt so getestet wurde. Nicht das ich mich Tagelang im Kreis drehe.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Veit D. schrieb:

> falls du wirklich Langeweile hast, könntest du das einmal bei dir
> testen.  :-)

Naja, ich würde dann wohl lieber mal paar Bugs in AVRDUDE schließen, um 
endlich mal ein neues Release rauszubringen. ;-)

> Ansonsten müßte ich mich an Nick Clifton wenden? Richtig?

Bin ich auch gerade nicht im Bilde.

Wenn du einen Buildscript hast, mit dem andere das Problem reproduzieren 
können, und es sich auf genau diese binutils-Version eingrenzen lässt, 
kannst du allemal probieren, dort einen offiziellen Bugreport 
einzutüten.

> Bevor ich jetzt anfange mein Bau-System zu zerfetzen bzw. neu aufsetze,
> würde ich doch gern vorab fragen ob das Problem bekannt ist und ob
> überhaupt so getestet wurde.

Naja, derartige "Canadian Cross" Builds (bei denen build host, execution 
host und target alle verschieden sind) tendieren allgemein dazu, eher 
wenig getestet zu sein.

von Veit D. (devil-elec)


Lesenswert?

Hallo,

alles klar, verstehe.   :-)

von Johann L. (gjlayde) Benutzerseite


Lesenswert?

> configure: error: cannot compute suffix of object files: cannot compile

Schau ins config.log, mit Sicherheit hast du Probleme mit Binutils.

Also sicherstellen, dass Binutils korrekt funktionieren bevor du mit gcc 
oder avr-libc anfängst.

Was sind deine Build-Schritte in Prosa?

von Veit D. (devil-elec)


Lesenswert?

Hallo,

das Script hängt am Eingangsthread dran. Ich zerlege das nochmal in alle 
3 Teile ...

Eins kann ich vorab aber schon sagen. Ich kann mir alle Toolchains mit 
binutils 2.32 bauen. Egal ob gcc 8.4, 9.3 oder 10. Nur mit 2.34 gibts 
besagte Probleme.

von Veit D. (devil-elec)


Angehängte Dateien:

Lesenswert?

Hallo,

gestartet mit gcc-10 von 15.03.20 und binutils 2.34

Script und Logfiles hängen dran.

von Johann L. (gjlayde) Benutzerseite


Lesenswert?


von foobar (Gast)


Lesenswert?

> set -x
> ...
> JOBCOUNT=4

Wenn du den Build debuggen willst, wäre ein "set -e" und ein 
"JOBCOUNT=1" sinnvoller.  Das Logfile ist ein heilloses Durcheinander 
mehrerer Prozesse ...

Und check mal den makeinfo-Kram - entweder makeinfo installieren oder 
checken, warum er die neu bauen will (Timestamps überprüfen?).

von Veit D. (devil-elec)


Angehängte Dateien:

Lesenswert?

Hallo,

Prosa:
Was möchtest du hören was nicht besser verständlich im Script steht?

makeinfo installiert, -e und ein Prozessor geändert.
Angehängte Dateien wie gehabt.

von foobar (Gast)


Lesenswert?

Na geht doch ;-)

Hatten die älteren Versionen wohl schon fertige texi-Files im Paket.

von Veit D. (devil-elec)


Lesenswert?

Hallo,

meine Frage wäre ob nun jemand eine Möglichkeit sieht das Problem mit 
den binutils zu beheben oder nicht?

von foobar (Gast)


Lesenswert?

> meine Frage wäre ob nun jemand eine Möglichkeit sieht das Problem mit
> den binutils zu beheben oder nicht?

???  Noch eins?  Der Build ist doch einwandfrei durchgelaufen. * 
verwirrt *

von Veit D. (devil-elec)


Lesenswert?

Hallo,

upps, da hats mich selbst verwirrt vor lauter vorheriger 
Fehlermeldungen. Bin gerade am komplett bauen. Das heißt binutils ab 
v2.34 verlangt makeinfo (texinfo) zum bauen?

: Bearbeitet durch User
von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Veit D. schrieb:
> Das heißt binutils ab v2.34 verlangt makeinfo (texinfo) zum bauen?

Ist mir zumindest letztens auch aufgefallen. Habe aber nicht analysiert, 
warum sie die Doku neu bauen wollen, hab' einfach texinfo installiert.

von Veit D. (devil-elec)


Lesenswert?

Hallo,

Danke, dann wäre das hiermit geklärt.
War eine schwierige Geburt.  :-)
Danke @ all.

von Johann L. (gjlayde) Benutzerseite


Lesenswert?

foobar schrieb:
> Hatten die älteren Versionen wohl schon fertige texi-Files im Paket.

Es ist ein Unterschied, ob man direkt von den Quellen generiet oder von 
einer releasten Version.  Letzteres brauch weniger Tools und ist i.W. 
das Ergebnis von make dist.

Direkt aus den git Quellen generieren benötigt mehr Tools, dito für GCC.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Naja, laut Beschreibung sei texinfo zum Bauen nur nötig, wenn man etwas 
selbst an der Doku ändern würde oder ein kaputtes Buildsystem hätte.

So die Theorie - baue gerade eine Toolchain für ARM, auch dort gingen 
die aktuellen Binutils nicht ohne ein vorhandenes texinfo ab. War mir 
aber zu unwichtig erst zu recherchieren, was da nicht in Ordnung wäre.

von Veit D. (devil-elec)


Lesenswert?

Hallo,

avr-libc ist der aktuell runtergeladene trunk. binutils und gcc sind die 
release Pakete. Alles in 3 Ordner entpackt/sortiert und dann gehts los.

von Jedzia D. (Firma: Rast und Ruh) (jedzia)


Lesenswert?

Danke für den Krimi:)

Vielleicht ist das für Veit hilfreich:

in meinem Gentoo ebuild lässt sich der makeinfo schritt abschalten. Das 
wird durch
1
  # Prevent makeinfo from running if doc is unset.
2
  if ! use doc ; then
3
    sed -i \
4
      -e '/^MAKEINFO/s:=.*:= true:' \
5
      Makefile || die
6
  fi
gelöst. Siehe 
https://gitweb.gentoo.org/repo/gentoo.git/tree/sys-devel/binutils/binutils-2.34.ebuild

Falls Du viel überflüssige Zeit hast (Dein cross-compile Problem hier zu 
lösen hat bestimmt auch Nerven gekostet), kannst du dir ja mal 
https://wiki.gentoo.org/wiki/Crossdev anschauen. Das ermöglicht sowas 
wie
1
crossdev -s4 -P --verbose -t x86_64-w64-mingw32
2
PORTDIR_OVERLAY="${PORTDIR_OVERLAY} /var/db/repos/cross-avr" x86_64-w64-mingw32-emerge -q -a --autounmask "=sys-devel/gcc-10.0.1_pre9999"
um so eine Toolchain zu bauen. Alles mit den nötigen Abhängigkeiten. 
Oder einfach crossdev -t avr für eine native. Ich verschweige natürlich 
schamlos die Einarbeitungszeit, die zu erstellenden Scripte und die 
Tücken:P

Viel Spass mit den nagelneuen Spielzeugen:)
P.S.: Veit, kann man dein double cross setup irgendwo bewundern? ... die 
Neugier.

: Bearbeitet durch User
von Veit D. (devil-elec)


Lesenswert?

Hallo,

die Scripte findest du hier und noch viel Hintergrundinformationen.
Beitrag "cannot read spec file 'device-specs/specs-atmega4808'"
28.07.2019 00:37

von Jedzia D. (Firma: Rast und Ruh) (jedzia)


Lesenswert?

Vielen Dank für die Kondensation deiner harten Arbeit in 53 Zeilen, 
Veit:)

von A. B. (Gast)


Angehängte Dateien:

Lesenswert?

Danke an Veit
*************
für die konstante Motivation.

ich habe versucht das oben Beschriebene für mich zu nutzen, um eine 
gcc10_x64 toolchain zu bauen.

es scheitert am fehlenden configure script im Download von
svn co  svn://svn.savannah.nongnu.org/avr-libc/trunk

**********************************************************

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

A. B. schrieb:
> svn co  svn://svn.savannah.nongnu.org/avr-libc/trunk

Wenn du den SVN-Stand der avr-libc nehmen willst, musst du dort den 
bootstrap-Script erstmal laufen lassen. Fertiges configure gibt es nur 
bei den Releases.

von Veit D. (devil-elec)


Lesenswert?

Hallo,

startest du die Scripte in der falschen Reihenfolge?

Erst die Linuxbuilds > binutils > gcc > avr-libs
Danach die Windowsbuilds in gleichen Reihenfolge.

von Veit D. (devil-elec)


Angehängte Dateien:

Lesenswert?

Hallo,

weil das Toolchain bauen alleine noch nicht alles ist, habe ich mir .bat 
Dateien gebaut um fehlende Dateien aus dem Devicepack autoelektrisch in 
die Toolchain zu kopieren.

Könnt gern vor der scharfen Anwendung noch die Option /L hinzufügen. 
:-)

Falls sich jemand mit Batch Programmierung und der for Schleife 
auskennt, der könnte bitte zeigen wie man die Controllertypen in eine 
Art Array schreibt die dann abgearbeitet wird. Die langen Listen 
gefallen mir noch nicht wirklich. Deswegen sind die aufgeteilt um den 
Überblick zu behalten.

Die Einzigste Handarbeit die übrig bleibt ist die io.h zubearbeiten.
Für meine Ergänzungen ist die dabei.

von Veit D. (devil-elec)


Lesenswert?

Hallo,

habe mir die aktuelle avr Toolchain mit gcc 10.1.0 gebaut.
Jetzt werben die mit folgender Aussage:
1
Support for the XMEGA-like devices
2
ATtiny202, ATtiny204, ATtiny402, ATtiny404, ATtiny406, ATtiny804, ATtiny806, ATtiny807, ATtiny1604, ATtiny1606, ATtiny1607, ATmega808, ATmega809, ATmega1608, ATmega1609, ATmega3208, ATmega3209, ATmega4808, ATmega4809

Nur stimmt das doch so gar nicht? Ich komme da nicht mit.
Die Device Spec Files sind vorhanden, aber der notwendige Rest nicht.
Wenn ich in avr\include\avr nachschaue fehlen alle Headerdateien für die 
genannten Controller samt Einträge in die io.h. Warum? Wie muss man die 
Support Aussage verstehen?

"64Bit Double" ist vorhanden. Ist das jetzt so schon für alle AVRs 
nutzbar? Der andere Thread dazu liest sich für mich anders, als wenn 
darauf noch gewartet werden müßte bis es final fertig ist und man es 
dann von Hand einbauen müßte.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Veit D. schrieb:
> Jetzt werben die

Wer "wirbt"?

avr-libc ist kein Bestandteil des GCC.

von Veit D. (devil-elec)


Lesenswert?

Hallo,

im Abschnitt AVR:
https://gcc.gnu.org/gcc-10/changes.html
werden besagte Controller als neu unterstützte Targets hervorgehoben.

Wenn du sagst avr ist kein Bestandteil und die sagen die Controller 
werden unterstützt, dann verstehe ich aktuell gar nichts mehr. 
Betrachten wir den Fall gcc kennt avr gar nicht. Warum schreiben die 
dann etwas von Targetsupport?

von Oliver S. (oliverso)


Lesenswert?

Veit D. schrieb:
> Wenn ich in avr\include\avr nachschaue fehlen alle Headerdateien für die
> genannten Controller samt Einträge in die io.h.

Weil

Jörg W. schrieb:
> avr-libc ist kein Bestandteil des GCC.

Der Compiler kann (vermutlich) für die genannten Prozessoren Code 
erzeugen, die avrlibc kennt die aber nicht.

Ist halt so, und überhaupt kein Widerspruch.

Oliver

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Veit D. schrieb:
> Wenn du sagst avr ist kein Bestandteil

Habe ich nicht geschrieben. Ein wenig genauer solltest du schon lesen, 
bevor du auf "die" schimpfst.

Oliver hat die Sache korrekt dargestellt.

von Veit D. (devil-elec)


Lesenswert?

Hallo,

wie soll ich denn das gelesene verstehen? Ich verstehe es immer noch 
nicht. Wie will denn der Compiler Code für die genannten Targets 
erzeugen wenn die Headerdateien fehlen? Hier sehe ich einen Widerspruch.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Veit D. schrieb:
> Wie will denn der Compiler Code für die genannten Targets erzeugen wenn
> die Headerdateien fehlen?

Den Compiler interessieren die Headerdateien schlicht gar nicht. Der 
erzeugt Assemblercode dafür, dafür braucht er keine Bibliothek. 
(Lediglich für weitergehende Schritte wie eine C++-Bibliothek, die beim 
GCC mit dabei ist, würde dann auch eine C-Bibliothek benötigt. Daher 
muss man sowas in zwei Stufen bauen.)

Der Compiler bringt noch ein paar Hilfsfunktionen in einer eigenen 
Bibliothek mit (libgcc.a), aber die haben keinen so direkten 
Hardwarebezug, dass man dafür schon eine C-Bibliothek bräuchte.

Andersrum: die (avr-libc-)Bibliothek braucht, da sie zu einem großen 
Teil selbst in C geschrieben ist, unbedingt zuvor einen funktionierenden 
Compiler für das entsprechende Target. Wenn jetzt auch noch der Compiler 
von der Existenz einer Bibliothek abhängen würde, hätte man ein 
Henne-und-Ei-Problem.

von Veit D. (devil-elec)


Lesenswert?

Hallo,

es wird schon heller. Nochmal zum mitmeißeln.  :-)
Der Targetsupport seitens gcc gilt nur für Assembler?
C/C++ Programmierer benötigen die avr-libc?

Noch anders gedacht. Wenn ich das Device-Package von Microchip zur Hand 
nehme bin ich auf den gcc Targetsupport nicht angewiesen, da ich alle 
benötigten Dateien aus dem Device-Package herausnehmen kann.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Veit D. schrieb:

> Der Targetsupport seitens gcc gilt nur für Assembler?

Genau genommen gilt er erstmal für den Compiler und die Fähigkeit, C- 
oder C++-Code in Assemblercode zu überführen.

Einen passenden Assembler brauchst du zuvor, in Form der GNU binutils. 
Die sind die ersten, die ein neues Target immer erstmal unterstützen 
müssen.

> C/C++ Programmierer benötigen die avr-libc?

In aller Regel schon, wenngleich es natürlich sehr kleine Projekte geben 
könnte, die keinerlei Support durch die avr-libc benötigen. Dann 
müsstest du aber von A-Z alles selbst machen, was nicht der Compiler 
macht, also insbesondere auch deinen eigenen Startup-Code liefern.

> Noch anders gedacht. Wenn ich das Device-Package von Microchip zur Hand
> nehme bin ich auf den gcc Targetsupport nicht angewiesen, da ich alle
> benötigten Dateien aus dem Device-Package herausnehmen kann.

Die haben ihre device packages halt so aufgebaut, dass sie da alles drin 
haben.

von Veit D. (devil-elec)


Lesenswert?

Hallo,

ich denke ich habs verstanden. Vielen Dank.

von Johann L. (gjlayde) Benutzerseite


Lesenswert?

Veit D. schrieb:
> habe mir die aktuelle avr Toolchain mit gcc 10.1.0 gebaut.
> Jetzt werben die mit folgender Aussage:
>
> Support for the XMEGA-like devices [...]

Das ist keine Webung sondern schlicht eine Beschreibung dessen, was sich 
von einer Compilerversion zur nächsten (ge)ändert (hat).  Wie man es für 
jede enstzunehmende Software erwartet.

Es bedeutet: Der Compiler unterstützt den jeweiligen Core (in allen 
Fällen "avrxmega3", was schon seit v8 der Fall ist) und der erzeugt 
specs-Files für die genannten Devices.  That's it.

Ohne Release Notes wäre der Compiler ein riesiges Nest voller 
Easter-Eggs; die per Zufall zu entdecken, oder die Quelle lesen zu 
müssen um zu erfahren was sich ändert, wär dir vermutlich auch nicht 
recht.  Wie man's macht ist's falsch...

Ob die avr-libc die Devices unterstützt musst du avr-libc gucken.  Es 
gibt unterschiedliche Versionen von Patches für die Devices, die m.W. 
(noch) nicht eingebaut sind.

http://savannah.nongnu.org/patch/?9543

Die avr-libc unterstützt ein bestimmtes Device wenn

1) Die abvr-libc das Device unterstützt

2) UND der Compiler das Device unterstützt, d.h. die entsprechende -mmcu 
Option akzeptiert.  Falls nicht, lässt avr-libc configure das Device 
links liegen.

> Wenn ich in avr\include\avr nachschaue fehlen alle Headerdateien für die
> genannten Controller samt Einträge in die io.h. Warum? Wie muss man die
> Support Aussage verstehen?

Für Features von GCC liest du die GCC Release Notes, speziell für 
avr-gcc den Abschnitt "AVR" — sofern vorhanden:

http://gcc.gnu.org/gcc-10/changes.html#avr

Für Features der avr-libc liest du die avr-libc Release Notes.  Falls du 
eine noch nicht releaste Revision verwendest wie SVN trunk, dann 
möchtest du auch ChangeLog(s) oder NEWS Datei lesen:

http://svn.savannah.nongnu.org/viewvc/avr-libc/trunk/avr-libc/

> "64Bit Double" ist vorhanden. Ist das jetzt so schon für alle AVRs
> nutzbar?

avr-gcc: Ja. Wobei die avr-libc für Devices ohne MUL keine Funktionen 
implementiert, für welche Devices mit MUL diese Instruktion nutzen. Du 
bekommst dann eine "undefined reference" vom Linker und dein Projekt 
kann sie beisteuern.  Für reduced Tiny fehlen alle Funktionen, mit 
entsprechenden Optionen erzeugt der Compiler allerding korrekten Code 
für 64-Bit (long) double so wie für andere Cores auch.  Auch hier bist 
du darauf angewiesen, 64-Bit double Funktionen selber zu schreiben.  Wie 
sinnvoll das für einen reduced Tiny ist sei dahingestellt.

avr-libc:

http://savannah.nongnu.org/bugs/?49567
http://savannah.nongnu.org/bugs/?57071

Ohne die Patches bekommst du falschen Code weil avr-libc die 
entsprechenden Multilib-Varianten nicht erzeugt, und weil die Funktionen 
falsch benannt sind, z.B. heißt sinf nicht "sinf" sondern "sin"; dito 
für alle anderen float-Funktionen.  Bedeutet konkret, dass sin nur 
32-Bit float liefert egal was du in die avr-libc reinfütterst (abgesehen 
von den obigen Patches natürlich :o)

Du hast also 3 großflächige Patches anzuwenden.

Spoiler: Weil einige Patches nicht mehr ganz taufrisch sind, gibt es 
(nicht-triviale) Konflikte.

von Veit D. (devil-elec)


Lesenswert?

Hallo,

Danke, dass muss ich mir nochmal in Ruhe zu Gemüte führen.

Beitrag #6259786 wurde von einem Moderator gelöscht.
Beitrag #6259842 wurde vom Autor gelöscht.
Beitrag #6259851 wurde von einem Moderator gelöscht.
Beitrag #6259908 wurde von einem Moderator gelöscht.
Beitrag #6259913 wurde von einem Moderator gelöscht.
Beitrag #6260401 wurde von einem Moderator gelöscht.
Beitrag #6260431 wurde von einem Moderator gelöscht.
von Veit D. (devil-elec)


Angehängte Dateien:

Lesenswert?

Hallo,

habe meine Batchdateien nochmals überarbeitet, jetzt mit relativen 
Pfaden und nochmal leicht umgebaut. Für Atmegas und ATtinys getrennt. 
Header und Lib .bat müssen "zusammen" gestartet werden.

Also wie folgt. Irgendwo einen Ordner erstellen zum Toolchain ergänzen.
Da rein die .bat Dateien ohne weiteren Unterordner.
Da rein die entpackten DevicePacks mit einem Unterordner. (in .zip 
umbennen, http://packs.download.atmel.com/)
Da rein deine Toolchain mit einem Unterordner.
Den Ordnernamen vom Devicepack und Toolchain ändert ihr in den .bat 
Dateien ab und könnt einen Testlauf starten. Ich nutze dafür robocopy, 
die Option /L ist aktiv. Wenn alles gut aussieht nehmt ihr die Optionen 
/L raus, dann ist das alles scharf geschalten. Ihr müsst immer nur die 
ersten 3 Zeilen je .bat anpassen.

Am Ende müßt ihr aber noch die io.h anpassen und die Einträge machen. 
Dafür habe ich keine .bat Datei.
1
/* ATmega328PB */
2
#elif defined (__AVR_ATmega328PB__)
3
#  include <avr/iom328pb.h>
4
/* begin new ATmegas */
5
#elif defined (__AVR_ATmega808__)
6
#  include <avr/iom808.h>
7
#elif defined (__AVR_ATmega809__)
8
#  include <avr/iom809.h>
9
#elif defined (__AVR_ATmega1608__)
10
#  include <avr/iom1608.h>
11
#elif defined (__AVR_ATmega1609__)
12
#  include <avr/iom1609.h>
13
#elif defined (__AVR_ATmega3208__)
14
#  include <avr/iom3208.h>
15
#elif defined (__AVR_ATmega3209__)
16
#  include <avr/iom3209.h>
17
#elif defined (__AVR_ATmega4808__)
18
#  include <avr/iom4808.h>
19
#elif defined (__AVR_ATmega4809__)
20
#  include <avr/iom4809.h>
21
/* end new ATmegas */
22
/* begin new ATtinys */
23
#elif defined (__AVR_ATtiny202__)
24
#  include <avr/iotn202.h>
25
#elif defined (__AVR_ATtiny204__)
26
#  include <avr/iotn204.h>
27
#elif defined (__AVR_ATtiny212__)
28
#  include <avr/iotn212.h>
29
#elif defined (__AVR_ATtiny214__)
30
#  include <avr/iotn214.h>
31
#elif defined (__AVR_ATtiny402__)
32
#  include <avr/iotn402.h>
33
#elif defined (__AVR_ATtiny404__)
34
#  include <avr/iotn404.h>
35
#elif defined (__AVR_ATtiny406__)
36
#  include <avr/iotn406.h>
37
#elif defined (__AVR_ATtiny412__)
38
#  include <avr/iotn412.h>
39
#elif defined (__AVR_ATtiny414__)
40
#  include <avr/iotn414.h>
41
#elif defined (__AVR_ATtiny416__)
42
#  include <avr/iotn416.h>
43
#elif defined (__AVR_ATtiny417__)
44
#  include <avr/iotn417.h>
45
#elif defined (__AVR_ATtiny804__)
46
#  include <avr/iotn804.h>
47
#elif defined (__AVR_ATtiny806__)
48
#  include <avr/iotn806.h>
49
#elif defined (__AVR_ATtiny807__)
50
#  include <avr/iotn807.h>
51
#elif defined (__AVR_ATtiny814__)
52
#  include <avr/iotn814.h>
53
#elif defined (__AVR_ATtiny816__)
54
#  include <avr/iotn816.h>
55
#elif defined (__AVR_ATtiny817__)
56
#  include <avr/iotn817.h>
57
#elif defined (__AVR_ATtiny1604__)
58
#  include <avr/iotn1604.h>
59
#elif defined (__AVR_ATtiny1606__)
60
#  include <avr/iotn1606.h>
61
#elif defined (__AVR_ATtiny1607__)
62
#  include <avr/iotn1607.h>
63
#elif defined (__AVR_ATtiny1614__)
64
#  include <avr/iotn1614.h>
65
#elif defined (__AVR_ATtiny1616__)
66
#  include <avr/iotn1616.h>
67
#elif defined (__AVR_ATtiny1617__)
68
#  include <avr/iotn1617.h>
69
#elif defined (__AVR_ATtiny3214__)
70
#  include <avr/iotn3214.h>
71
#elif defined (__AVR_ATtiny3216__)
72
#  include <avr/iotn3216.h>
73
#elif defined (__AVR_ATtiny3217__)
74
#  include <avr/iotn3217.h>
75
/* end new ATtinys*/

Das wars. Ich hoffe das erleichtert dem Einen oder Andere die Arbeit. 
:-)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.