Forum: PC Hard- und Software [simulavr] Build-Problem


von Uhu U. (uhu)


Lesenswert?

Ich will simulavr 1.0.0 auf Linux Mint 17 (64 Bit) compilieren.

Das configure-Skript läuft auf einen Fehler:
1
with_libiberty = /usr/lib/x86_64-linux-gnu/libiberty.a
2
checking bfd search- /usr/x86_64-unknown-linux-gnu/avr in "include" and "lib"... no
3
checking bfd search- /usr/avr in "include" and "lib"... no
4
checking bfd search- /usr in "" and ""... no
5
checking bfd search- /usr in "bfd" and "bfd"... no
6
checking bfd search- /usr in "include" and "lib64"... no
7
checking bfd search- /usr in "include" and "lib"... yes
8
checking libiberty search- /usr/lib/x86_64-linux-gnu/libiberty.a/x86_64-unknown-linux-gnu/avr in "lib"... no
9
checking libiberty search- /usr/lib/x86_64-linux-gnu/libiberty.a/avr in "lib"... no
10
checking libiberty search- /usr/lib/x86_64-linux-gnu/libiberty.a in ""... no
11
checking libiberty search- /usr/lib/x86_64-linux-gnu/libiberty.a in "lib64"... no
12
checking libiberty search- /usr/lib/x86_64-linux-gnu/libiberty.a in "lib"... no
13
checking libiberty search- /usr/lib/x86_64-linux-gnu/libiberty.a in ""... no
14
configure: error: 
15
    Could not locate libiberty.so/libiberty.a
16
    Please use the --with-libiberty=<path to your libiberty library>

Ich habe das Paket libiberty-dev installiert, configure passt aber 
irgend was daran nicht. Das Kommando lautet:
1
./configure --with-libiberty=/usr/lib/x86_64-linux-gnu/libiberty.a

/usr/lib/x86_64-linux-gnu/libiberty.a existiert.

Was ist da falsch?

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


Lesenswert?

Der will wohl nur das Verzeichnis wissen.  Damit läuft das configure
auf einem Ubuntu durch:
1
% ./configure --with-libiberty=/usr/lib/x86_64-linux-gnu
2
checking for a BSD-compatible install... /usr/bin/install -c
3
checking whether build environment is sane... yes
4
checking for a thread-safe mkdir -p... /bin/mkdir -p
5
checking for gawk... gawk
6
checking whether make sets $(MAKE)... yes
7
checking whether to enable maintainer-specific portions of Makefiles... no
8
checking whether build system is MSYS/MingW... no
9
checking build system type... x86_64-unknown-linux-gnu
10
checking host system type... x86_64-unknown-linux-gnu
11
checking for style of include used by make... GNU
12
checking for gcc... gcc
13
checking whether the C compiler works... yes
14
checking for C compiler default output file name... a.out
15
checking for suffix of executables... 
16
checking whether we are cross compiling... no
17
checking for suffix of object files... o
18
checking whether we are using the GNU C compiler... yes
19
checking whether gcc accepts -g... yes
20
checking for gcc option to accept ISO C89... none needed
21
checking dependency style of gcc... gcc3
22
checking for a sed that does not truncate output... /bin/sed
23
checking for grep that handles long lines and -e... /bin/grep
24
checking for egrep... /bin/grep -E
25
checking for fgrep... /bin/grep -F
26
checking for ld used by gcc... /usr/bin/ld
27
checking if the linker (/usr/bin/ld) is GNU ld... yes
28
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
29
checking the name lister (/usr/bin/nm -B) interface... BSD nm
30
checking whether ln -s works... yes
31
checking the maximum length of command line arguments... 1572864
32
checking whether the shell understands some XSI constructs... yes
33
checking whether the shell understands "+="... yes
34
checking for /usr/bin/ld option to reload object files... -r
35
checking for objdump... objdump
36
checking how to recognize dependent libraries... pass_all
37
checking for ar... ar
38
checking for strip... strip
39
checking for ranlib... ranlib
40
checking command to parse /usr/bin/nm -B output from gcc object... ok
41
checking how to run the C preprocessor... gcc -E
42
checking for ANSI C header files... yes
43
checking for sys/types.h... yes
44
checking for sys/stat.h... yes
45
checking for stdlib.h... yes
46
checking for string.h... yes
47
checking for memory.h... yes
48
checking for strings.h... yes
49
checking for inttypes.h... yes
50
checking for stdint.h... yes
51
checking for unistd.h... yes
52
checking for dlfcn.h... yes
53
checking for objdir... .libs
54
checking if gcc supports -fno-rtti -fno-exceptions... no
55
checking for gcc option to produce PIC... -fPIC -DPIC
56
checking if gcc PIC flag -fPIC -DPIC works... yes
57
checking if gcc static flag -static works... yes
58
checking if gcc supports -c -o file.o... yes
59
checking if gcc supports -c -o file.o... (cached) yes
60
checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
61
checking whether -lc should be explicitly linked in... no
62
checking dynamic linker characteristics... GNU/Linux ld.so
63
checking how to hardcode library paths into programs... immediate
64
checking whether stripping libraries is possible... yes
65
checking if libtool supports shared libraries... yes
66
checking whether to build shared libraries... yes
67
checking whether to build static libraries... yes
68
checking for g++... g++
69
checking whether we are using the GNU C++ compiler... yes
70
checking whether g++ accepts -g... yes
71
checking dependency style of g++... gcc3
72
checking whether we are using the GNU C++ compiler... (cached) yes
73
checking whether g++ accepts -g... (cached) yes
74
checking dependency style of g++... (cached) gcc3
75
checking how to run the C++ preprocessor... g++ -E
76
checking for ld used by g++... /usr/bin/ld -m elf_x86_64
77
checking if the linker (/usr/bin/ld -m elf_x86_64) is GNU ld... yes
78
checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
79
checking for g++ option to produce PIC... -fPIC -DPIC
80
checking if g++ PIC flag -fPIC -DPIC works... yes
81
checking if g++ static flag -static works... yes
82
checking if g++ supports -c -o file.o... yes
83
checking if g++ supports -c -o file.o... (cached) yes
84
checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
85
checking dynamic linker characteristics... GNU/Linux ld.so
86
checking how to hardcode library paths into programs... immediate
87
checking for swig... no
88
configure: WARNING: cannot find 'swig' program. You should look at http://www.swig.org
89
checking Tcl desired... yes
90
tclConfig.sh directory = /usr/lib
91
checking for /usr/lib/tclConfig.sh... no
92
configure: WARNING: tclConfig.sh not found .. guessing
93
checking tcl.h usability... no
94
checking tcl.h presence... no
95
checking for tcl.h... no
96
checking for tcl.h... (cached) no
97
checking for wish... /usr/bin/wish
98
checking for tclsh... /usr/bin/tclsh
99
can't find package Itcl
100
configure: WARNING: Itcl package not installed, tcl examples with gui will not work
101
checking for --enable-python... no
102
checking for python... /usr/bin/python
103
checking for python version... 2.7
104
checking for python platform... linux2
105
checking for python script directory... ${prefix}/lib/python2.7/dist-packages
106
checking for python extension module directory... ${exec_prefix}/lib/python2.7/dist-packages
107
checking for time... yes
108
checking for avr-as... avr-as
109
checking for avr-ld... avr-ld
110
checking for avr-gcc... avr-gcc
111
checking for avr-g++... avr-g++
112
checking for avr-nm... avr-nm
113
checking for nm... nm
114
with_bfd = check
115
with_libiberty = /usr/lib/x86_64-linux-gnu
116
checking bfd search- /usr/x86_64-unknown-linux-gnu/avr in "include" and "lib"... no
117
checking bfd search- /usr/avr in "include" and "lib"... no
118
checking bfd search- /usr in "" and ""... no
119
checking bfd search- /usr in "bfd" and "bfd"... no
120
checking bfd search- /usr in "include" and "lib64"... no
121
checking bfd search- /usr in "include" and "lib"... yes
122
checking libiberty search- /usr/lib/x86_64-linux-gnu/x86_64-unknown-linux-gnu/avr in "lib"... no
123
checking libiberty search- /usr/lib/x86_64-linux-gnu/avr in "lib"... no
124
checking libiberty search- /usr/lib/x86_64-linux-gnu in ""... yes
125
126
127
Summary:
128
build system = GNU/Linux
129
AVR_GCC=avr-gcc
130
AVR_LIBBFD_INC=/usr/include
131
AVR_LIBBFD_LIB=/usr/lib/libbfd.so
132
AVR_LIBIBERTY_LIB=/usr/lib/x86_64-linux-gnu//libiberty.a
133
PYTHON=/usr/bin/python
134
build verilog modul avr.vpi = no

von Uhu U. (uhu)


Lesenswert?

OK, das configure hat geklappt.

Nun läuft make auf einen Fehler:
1
libtool: compile:  g++ -DHAVE_CONFIG_H -I. -I/usr/include -g -O2 -Icmd -Iui -Ihwtimer -c systemclock.cpp  -o .libs/systemclock.o
2
systemclock.cpp: In instantiation of ‘void MinHeap<Key, Value>::Insert(Key, Value) [with Key = long long int; Value = SimulationMember*]’:
3
systemclock.cpp:135:40:   required from here
4
systemclock.cpp:70:23: error: ‘resize’ was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]
5
  resize(this->size()+1);
6
                       ^
7
systemclock.cpp:70:23: note: declarations in dependent base ‘std::vector<std::pair<long long int, SimulationMember*>, std::allocator<std::pair<long long int, SimulationMember*> > >’ are not found by unqualified lookup
8
systemclock.cpp:70:23: note: use ‘this->resize’ instead
9
make[3]: *** [systemclock.lo] Error 1
10
make[3]: Leaving directory `/tmp/simulavr-1.0.0/src'
11
make[2]: *** [all-recursive] Error 1
12
make[2]: Leaving directory `/tmp/simulavr-1.0.0/src'
13
make[1]: *** [all] Error 2
14
make[1]: Leaving directory `/tmp/simulavr-1.0.0/src'
15
make: *** [all-recursive] Error 1

Liegt das womöglich an der g++ - Version?
1
$ g++ --version
2
g++ (Ubuntu 4.8.4-2ubuntu1~14.04) 4.8.4

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


Lesenswert?

Ja, den Fehler habe ich auch gesehen.  Keine Ahnung, ob das eine
Unzulänglichkeit des Compilers ist oder ein Bug in den Quellen (aber
irgendwie müssten es die simulavr-Jungs ja mal geschafft haben, das
zu compilieren).

Kannst ja mal auf der simulavr-Mailingliste um Rat fragen.

von Uhu U. (uhu)


Lesenswert?

Wenn man Zeile 70 so ändert:
1
template<typename Key, typename Value>
2
void MinHeap<Key, Value>::Insert(Key k, Value v)
3
{
4
  this->resize(this->size()+1);
5
//^^^^^^
6
  for(unsigned i = this->size();;) {
7
    unsigned parent = i/2;

läuft er durch. Obs richtig ist, übersehe ich nicht.

: Bearbeitet durch User
von Uhu U. (uhu)


Lesenswert?

Die Kiste scheint in einem recht desolaten Zustand zu sein...

make meldet: unknown command `hfill':
1
make[2]: Entering directory `/tmp/simulavr-1.0.0/doc'
2
restore=: && backupdir=".am$$" && \
3
  rm -rf $backupdir && mkdir $backupdir && \
4
  if (/bin/bash /tmp/simulavr-1.0.0/missing --run makeinfo --version) >/dev/null 2>&1; then \
5
    for f in simulavr.info simulavr.info-[0-9] simulavr.info-[0-9][0-9] simulavr.i[0-9] simulavr.i[0-9][0-9]; do \
6
      if test -f $f; then mv $f $backupdir; restore=mv; else :; fi; \
7
    done; \
8
  else :; fi && \
9
  if /bin/bash /tmp/simulavr-1.0.0/missing --run makeinfo   -I . \
10
   -o simulavr.info `test -f 'simulavr.texinfo' || echo './'`simulavr.texinfo; \
11
  then \
12
    rc=0; \
13
  else \
14
    rc=$?; \
15
    $restore $backupdir/* `echo "./simulavr.info" | sed 's|[^/]*$||'`; \
16
  fi; \
17
  rm -rf $backupdir; exit $rc
18
simulavr.texinfo:47: unknown command `hfill'
19
simulavr.texinfo:48: unknown command `hfill'

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


Lesenswert?

Uhu U. schrieb:
> make meldet: unknown command `hfill':

Genauer gesagt: makeinfo

von Thomas K. (tomk)


Lesenswert?

Hi,

Linux Mint ist bei mir leider (noch) nicht auf dem "Make-Radar" - soll 
heißen, noch keine Linux-Mint-VM für den Buildtest.

Das Problem mit makeinfo ist, das die Distis da nicht einheitlich sind 
und teilweise die eine oder andere Abhängigkeit nicht nachzieht. 
makeinfo ist das eine, u.U. eine komplette Tex-Installation das, was 
manchmal noch fehlt.

Mittelfristig will ich ganz gern das makeinfo ganz "rauskegeln", auch 
wenn dabei die Manpage mit über den Jordan gehen würde. Aber dazu sollte 
es dann eher eine passende PDF-Doku geben ...

Wenn Du eh schon am compilieren bist, kannst Du ev. auch gleich den 
master-Branch vom git-Repo verwenden. Dort sollte der "resize"-Fehler 
schon behoben sein. (soweit ich mich erinnere) Und eigentlich sollte es 
auch mal eine 1.1 geben, aber da war die Mailingliste uneinheitlich ... 
:-) ... und mir fehlt teilweise die Zeit.

Schönen Freitag noch.

cu, Thomas

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


Lesenswert?

Thomas K. schrieb:
> und mir fehlt teilweise die Zeit.

Willkommen im Klub. :-)

von Uhu U. (uhu)


Lesenswert?

Thomas K. schrieb:
> Linux Mint ist bei mir leider (noch) nicht auf dem "Make-Radar"

Mint ist ein Ubuntu-Abkömmling - eigentlich sollte das compilieren, wenn 
es unter Ubuntu läuft.

Eine komplette Tex-Installation ist ein wenig heftig... Gibts irgendwo 
Binaries für Ubuntu 14.04? Dann könnte ich mir die Klimmzüge sparen.

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


Angehängte Dateien:

Lesenswert?

Uhu U. schrieb:
> Gibts irgendwo Binaries für Ubuntu 14.04?

Naja, du hast doch im Moment nur ein Problem mit der Doku.  Schmeiß
doch im Zweifel einfach das hfill erstmal raus.

Die aktuelle Doku (Stand aus dem git) hänge ich dir mal an, bei mir
auf FreeBSD baut alles (aber ich habe TeXlive ohnehin auch da, weil
ich es sonst benutze).

von Uhu U. (uhu)


Lesenswert?

Ich habe alle \hfill in den Dateien simulavr-1.0.0/doc/simulavr.texinfo 
und simulavr-1.0.0/doc/texinfo.tex ersatzlos gelöscht - dann compiliert 
er durch und das Ergebnis lässt sich installieren.

Das Tex-Zeug abzuspalten und in einem extra Makefile zu bauen, würde die 
Sache vielleicht etwas entwirren.

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


Lesenswert?

Uhu U. schrieb:
> Das Tex-Zeug abzuspalten und in einem extra Makefile zu bauen, würde die
> Sache vielleicht etwas entwirren.

Bei avr-libc und avrdude haben wir das so gelöst, dass es eine Option
--enable-doc gibt (standardmäßig abgeschaltet).

Aber Uhu, du hättest auch einfach "make -k" machen können bzw. dann
"make -k install".  Dann wird alles gebaut, was sich bauen lässt, wäre
auf das gleiche hinausgelaufen in diesem Falle (Doku lässt sich nicht
bauen vs. Doku Bauen ist abgeschaltet).

von Alexander S. (alesi)


Lesenswert?

Uhu U. schrieb:
> Ich will simulavr 1.0.0 auf Linux Mint 17 (64 Bit) compilieren.

Debian GNU/Linux (jessie) ist leider noch bei simulavr (0.1.2.2-6.2)
und der letzte Eintrag im changelog ist vom 24 Oct 2011, aber
die (alten) Debian Pakete sollten sich auch unter Linux Mint
bzw. Linux Mint Debian Edition (LMDE) installieren lassen.

Evtl. bei den aufgetretenen Fehlern mal in das src-Paket von
Debian schauen (siehe rechter Rand auf der Debian Seite).

https://packages.debian.org/jessie/simulavr

http://metadata.ftp-master.debian.org/changelogs/main/s/simulavr/simulavr_0.1.2.2-6.2_changelog

von Uhu U. (uhu)


Lesenswert?

Es gibt im Mint-Repo ein Paket simulavr, das die Version 0.1.2.2-6.2 
enthält - das ist wohl dasselbe, wie auf Debian.

Da die 0.1.2.2 doch schon etwas angestaubt ist, dachte ich mir, dass es 
evtl. besser ist, das neuste Release zu nehmen.

Dass die 1.0.0 noch nicht den Weg zu Debian und Derivaten gefunden hat, 
könnte ja auch daran liegen, dass sich das Paket nicht kompilieren 
ließ...

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


Lesenswert?

Uhu U. schrieb:
> Da die 0.1.2.2 doch schon etwas angestaubt ist

Sie hat insbesondere eine komplett andere Codebasis.

von Uhu U. (uhu)


Lesenswert?

Jetzt habe ich ich nach der "offiziellen" Entwicklerversion auf Github 
gesucht - nicht ganz leicht, denn simulavr-Forks gibts fast wie Sand am 
Meer...

Ich habe mich für https://github.com/Traumflug/simulavr.git entschieden 
- hoffentlich stimmts...

Der Versuch die Kiste zu bauen bringt gleich den nächsten Reinfall:
1
$ ./configure
2
bash: ./configure: No such file or directory

Das hat keinen Sinn, ich gebe auf.

von Alexander S. (alesi)


Lesenswert?

Uhu U. schrieb:
> Jetzt habe ich ich nach der "offiziellen" Entwicklerversion auf Github
> gesucht -
> ...
> Ich habe mich für https://github.com/Traumflug/simulavr.git entschieden
> - hoffentlich stimmts...

Ich denke die "offizielle" Version ist die, die auf der savannah Seite
zu simulavr http://savannah.nongnu.org/projects/simulavr/
unter "Source Code Manager: Git Repository" verlinkt ist.

Source Code Manager: Git Repository
http://savannah.nongnu.org/git/?group=simulavr

Browse Sources Repository
http://git.savannah.nongnu.org/cgit/simulavr.git

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


Lesenswert?

Uhu U. schrieb:
> bash: ./configure: No such file or directory

Das ist normal.  Der configure-Script wird durch autoconf erzeugt,
damit in Zusammenhang erzeugt automake die Makefile.ins (aus den
Makefile.ams).  Das alles liegt üblicherweise in einem Script herum,
der sich autogen.sh, bootstrap oder so nennt.

Es ist durchaus üblich, diese generierten Dateien nicht in die
jeweiligen Repositories einzuchecken, sondern diese lediglich den
offiziellen Releases beizulegen ("make distcheck" erledigt das alles
automatisiert).  Wer sich also einen Stand direkt aus dem Repo
bauen will, muss bei sich auch autoconf+automake rumliegen haben
und dann ebendiesen Script selbst abarbeiten.

Ansonsten wurde dir ja schon gesagt, das offizielle Repo liegt auf
savannah.nongnu.org, wo sich auch die restliche Projektinfrastruktur
befindet.

von Thomas K. (tomk)


Lesenswert?

Hi,

Uhu U. schrieb:
> Dass die 1.0.0 noch nicht den Weg zu Debian und Derivaten gefunden hat,
> könnte ja auch daran liegen, dass sich das Paket nicht kompilieren
> ließ...

Hm ... glaub nicht. Ubuntu 10.04, 12.04 und 14.04, sowie aktuell 
getestet auch 15.10 bauen problemlos. (immer vom master-Branch des 
Repo!) Es liegt wohl eher daran, das sich niemand die Mühe gemacht hat, 
bei Debian eine neue Paketsteuerung einzustellen. Da andere Codebasis 
und u.U. auch andere Tools funktioniert die alte Paketsteuerung für das 
simulavr-Paket selbstredend nicht mehr mit dem neuen Code. Eventuell ist 
der Maintainer für das Paket auch "nicht mehr an Board".

Schönen Tag noch, Thomas

von Uhu U. (uhu)


Lesenswert?

Es wäre eine gute Idee, mal die simulavr-Downloadseite entweder zu 
aktualisieren, oder zumindest mit einem Hinweis zu versehen, dass man 
sich besser bei git bedienen und selbst compilieren sollte.

von Alexander S. (alesi)


Lesenswert?

Thomas K. schrieb:
> Eventuell ist
> der Maintainer für das Paket auch "nicht mehr an Board".

Hallo Thomas,

Du scheinst richtig zu liegen. Das Debian Paket simulavr ist verwaist
(engl. orphaned) und zwar schon seit 717 Tagen (Feb 2014).
Es wird ein neuer "Maintainer" für das Debian Paket gesucht.

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=739228

Hier im Forum lesen ja Leute mit, die sich sehr gut mit
simulavr auskennen. Vielleicht findet sich jemand, der
simulavr der großen Debian Gemeinde wieder zugänglich macht.

P.S. hier noch der Link auf die Liste aller verwaisten Debian Pakete,
in der ich simulavr entdeckt habe.

https://www.debian.org/devel/wnpp/orphaned

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.