Erstellt vor 4 Jahren

Geschlossen vor 14 Monaten

#2442 closed defect (wontfix)

make endet mit fakeroot-Fehler

Erstellt von: hssuhle Verantwortlicher:
Priorität: normal Meilenstein:
Komponente: build-system Version: devel
Stichworte: Beobachter:
Product Id: 7390 Firmware Version:

Beschreibung

Falls das von Wichtigkeit ist: Ich nutze xubuntu 14.04 zum Compilieren

Fehler:

/bin/bash ./libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I../..     -O3 -Wall -MT libfakeroot_unix2003.lo -MD -MP -MF .deps/libfakeroot_unix2003.Tpo -c -o libfakeroot_unix2003.lo ../../libfakeroot_unix2003.c
../../communicate.c: In function 'send_get_fakem':
../../communicate.c:540:7: warning: variable 'l' set but not used [-Wunused-but-set-variable]
   int l;
       ^
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I../.. -O3 -Wall -MT libfakeroot_unix2003.lo -MD -MP -MF .deps/libfakeroot_unix2003.Tpo -c ../../libfakeroot_unix2003.c  -fPIC -DPIC -o .libs/libfakeroot_unix2003.o
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I../.. -O3 -Wall -MT libfakeroot_unix2003.lo -MD -MP -MF .deps/libfakeroot_unix2003.Tpo -c ../../libfakeroot_unix2003.c -o libfakeroot_unix2003.o >/dev/null 2>&1
mv -f .deps/libfakeroot_unix2003.Tpo .deps/libfakeroot_unix2003.Plo
gcc -DHAVE_CONFIG_H -I. -I../..     -O3 -Wall -MT faked.o -MD -MP -MF .deps/faked.Tpo -c -o faked.o ../../faked.c
../../faked.c: In function ‘process_chmod’:
../../faked.c:790:47: warning: suggest parentheses around operand of ‘!’ or change ‘&’ to ‘&&’ or ‘!’ to ‘~’ [-Wparentheses]
         ((buf->st.mode&S_IFMT) != S_IFREG || (!st->mode&(S_IFBLK|S_IFCHR)))) {
                                               ^
../../faked.c: In function ‘process_setxattr’:
../../faked.c:925:17: warning: unused variable ‘new_node’ [-Wunused-variable]
   xattr_node_t *new_node = NULL;
                 ^
../../faked.c:924:18: warning: unused variable ‘x_ref’ [-Wunused-variable]
   xattr_node_t **x_ref = NULL;
                  ^
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I../.. -O3 -Wall -MT communicate.lo -MD -MP -MF .deps/communicate.Tpo -c ../../communicate.c -o communicate.o >/dev/null 2>&1
mv -f .deps/communicate.Tpo .deps/communicate.Plo
gcc -DHAVE_CONFIG_H -I. -I../..     -O3 -Wall -MT simple.o -MD -MP -MF .deps/simple.Tpo -c -o simple.o ../../simple.c
mv -f .deps/faked.Tpo .deps/faked.Po
/bin/bash ./libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I../..     -O3 -Wall -MT libfakeroot.lo -MD -MP -MF .deps/libfakeroot.Tpo -c -o libfakeroot.lo ../../libfakeroot.c
mv -f .deps/simple.Tpo .deps/simple.Po
/bin/bash ./libtool  --tag=CC   --mode=link gcc  -O3 -Wall   -o libcommunicate.la  communicate.lo  -ldl 
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I../.. -O3 -Wall -MT libfakeroot.lo -MD -MP -MF .deps/libfakeroot.Tpo -c ../../libfakeroot.c  -fPIC -DPIC -o .libs/libfakeroot.o
../../libfakeroot.c:1646:9: error: conflicting types for 'setxattr'
 ssize_t setxattr(const char *path, const char *name, void *value, size_t size, int flags)
         ^
In file included from /usr/include/sys/capability.h:30:0,
                 from ../../libfakeroot.c:131:
/usr/include/i386-linux-gnu/sys/xattr.h:39:12: note: previous declaration of 'setxattr' was here
 extern int setxattr (const char *__path, const char *__name,
            ^
../../libfakeroot.c:1667:9: error: conflicting types for 'lsetxattr'
 ssize_t lsetxattr(const char *path, const char *name, void *value, size_t size, int flags)
         ^
In file included from /usr/include/sys/capability.h:30:0,
                 from ../../libfakeroot.c:131:
/usr/include/i386-linux-gnu/sys/xattr.h:46:12: note: previous declaration of 'lsetxattr' was here
 extern int lsetxattr (const char *__path, const char *__name,
            ^
../../libfakeroot.c:1688:9: error: conflicting types for 'fsetxattr'
 ssize_t fsetxattr(int fd, const char *name, void *value, size_t size, int flags)
         ^
In file included from /usr/include/sys/capability.h:30:0,
                 from ../../libfakeroot.c:131:
/usr/include/i386-linux-gnu/sys/xattr.h:52:12: note: previous declaration of 'fsetxattr' was here
 extern int fsetxattr (int __fd, const char *__name, const void *__value,
            ^
libtool: link: ar cru .libs/libcommunicate.a .libs/communicate.o 
libtool: link: ranlib .libs/libcommunicate.a
make[2]: *** [libfakeroot.lo] Fehler 1
make[2]: *** Warte auf noch nicht beendete Prozesse...
libtool: link: ( cd ".libs" && rm -f "libcommunicate.la" && ln -s "../libcommunicate.la" "libcommunicate.la" )
make[2]: Verlasse Verzeichnis '/home/hss/temp/Freetz/7390/trunk/source/host-tools/fakeroot-1.20/build/arch'
make[1]: *** [install-recursive] Fehler 1
make[1]: Verlasse Verzeichnis '/home/hss/temp/Freetz/7390/trunk/source/host-tools/fakeroot-1.20/build/arch'
make: *** [/home/hss/temp/Freetz/7390/trunk/tools/build/bin/fakeroot] Fehler 2

Anhänge (5)

.config (58.5 KB) - hinzugefügt von hssuhle vor 4 Jahren.
.config
make.out (46.1 KB) - hinzugefügt von hssuhle vor 4 Jahren.
make output
fix-xattr-prototypes.patch (4.5 KB) - hinzugefügt von er13 vor 4 Jahren.
.config.2 (56.3 KB) - hinzugefügt von hssuhle vor 4 Jahren.
.config.11946
make.2.out (449.6 KB) - hinzugefügt von hssuhle vor 4 Jahren.
make.out.11946

Alle Anhänge herunterladen als: .zip

Änderungshistorie (21)

Geändert vor 4 Jahren durch hssuhle

.config

Geändert vor 4 Jahren durch hssuhle

make output

comment:1 Geändert vor 4 Jahren durch hssuhle

Meinen eigenen Unfug gelöscht
Zuletzt geändert vor 4 Jahren von hssuhle (vorher) (Diff)

comment:2 Geändert vor 4 Jahren durch hssuhle

Zu früh gefreut.

Neuer Fehler

tools/freetz_download dl fakeroot_1.20.orig.tar.bz2 http://ftp.debian.org/debian/pool/main/f/fakeroot 9777a81d4d1878422447a1d0030c1f9f

--2014-04-22 18:56:50--  http://ftp.debian.org/debian/pool/main/f/fakeroot/fakeroot_1.20.orig.tar.bz2
Auflösen des Hostnamen »ftp.debian.org (ftp.debian.org)«... 2001:610:1908:b000::148:12, 130.89.148.12
Verbindungsaufbau zu ftp.debian.org (ftp.debian.org)|2001:610:1908:b000::148:12|:80... verbunden.
HTTP-Anforderung gesendet, warte auf Antwort... 200 OK
Länge: 321491 (314K) [application/x-bzip2]
In »»dl/fakeroot_1.20.orig.tar.bz2«« speichern.

     0K .......... .......... .......... .......... .......... 15%  277K 1s
    50K .......... .......... .......... .......... .......... 31%  610K 1s
   100K .......... .......... .......... .......... .......... 47%  366K 0s
   150K .......... .......... .......... .......... .......... 63%  526K 0s
   200K .......... .......... .......... .......... .......... 79%  432K 0s
   250K .......... .......... .......... .......... .......... 95%  390K 0s
   300K .......... ...                                        100%  983K=0,8s

2014-04-22 18:56:51 (417 KB/s) - »»dl/fakeroot_1.20.orig.tar.bz2«« gespeichert [321491/321491]

Download succeeded - "http://ftp.debian.org/debian/pool/main/f/fakeroot"  ->  saved to folder "dl"
MD5 verified for dl/fakeroot_1.20.orig.tar.bz2: 9777a81d4d1878422447a1d0030c1f9f
fakeroot: preload library `libfakeroot.so' not found, aborting.
make: *** [firmware-nocompile] Fehler 1

Geändert vor 4 Jahren durch er13

comment:3 Geändert vor 4 Jahren durch er13

Ubuntu's trusty fakeroot package contains the following patch. Haven't tested it myself yet, just from reading the patch - it looks like the patch is only needed on Ubuntu Trusty systems.

comment:4 Antwort: Geändert vor 4 Jahren durch ralf

Der Patch sieht sinnvoll aus, für alle Systeme, unabhängig davon, ob es im Moment benötigt wird oder nicht. Die Deklaration als int statt ssize_t entspricht der man page und den Kernel Headern. Das Problem zeigt sich nur nicht, wenn die entsprechenden Kernel Header nicht eingelesen werden, evtl. auch je nach Host System.

Das hat aber nichts mit dem Fehler aus comment:2 zu tun. Nach dem Download sollte das Archiv entpackt und übersetzt werden. Statt dessen sieht es aus, als würde hier wird versucht, fakeroot an einer Stelle aufzurufen, wo kein derartiger Aufruf hingehört.

comment:5 Geändert vor 4 Jahren durch er13

In 11946:

fakeroot:

  • add patch fixing xattr prototypes in fakeroot - the patch is expected to fix build problems on Ubuntu 14.04 LTS reported in #2442
  • all users experiencing this problem should call make fakeroot-distclean; make fakeroot after updating to this revision
  • refs #2442

comment:6 Geändert vor 4 Jahren durch er13

@hssuhle: könntest Du bitte testen, ob r11946 das Problem behebt. Bin zu faul, um dafür Ubuntu 14.04 zu installieren. Danke!

comment:7 als Antwort auf: ↑ 4 Geändert vor 4 Jahren durch er13

Replying to ralf:

Das hat aber nichts mit dem Fehler aus comment:2 zu tun.

Den Fehler aus comment:2 kann ich nicht nachstellen. Vermute aber, dass es die Folge des komischen Versuchs von hssuhle das Problem zu lösen: es wurde erst versucht fakeroot zu übersetzen (dies ist fehlgeschlagen), dann wurde das Tarball gelöscht (ohne den fehlgeschlagen Build-Versuch zu cleanen), danach wurde make erneut aufgerufen.


@hssuhle: Oder habe ich es falsch verstanden, wenn ja, was muss ich tun, um den Fehler aus comment:2 nachzustellen?

Zuletzt geändert vor 4 Jahren von er13 (vorher) (Diff)

comment:8 Geändert vor 4 Jahren durch hssuhle

@er13:
ja, genau so war es.

Im Moment läuft ein neuer Checkout durch.

Melde mich später.

comment:9 Antworten: Geändert vor 4 Jahren durch oliver

Ich habe den Fehler aus 2 auch schon öfter gesehen. Kann es sein, dass der Build manchmal nicht mehr angestoßen wird, obwohl nicht korrekt gebaut wurde? Eventuell sind alte Dateien mit neuen gemixt oder etwas ähnliches…

make fakeroot-dirclean half bis jetzt immer.

Zuletzt geändert vor 4 Jahren von oliver (vorher) (Diff)

Geändert vor 4 Jahren durch hssuhle

.config.11946

Geändert vor 4 Jahren durch hssuhle

make.out.11946

comment:10 Geändert vor 4 Jahren durch hssuhle

Sieht sehr gut aus!

@all: Danke für Eure unglaubliche Geschwindigkeit, diesen Incident zu fixen! Toll!

PS: Weiß eigentlich jemand, was mit downloads.sourceforge.net los ist? Was für ein elender lag!

Zuletzt geändert vor 4 Jahren von hssuhle (vorher) (Diff)

comment:11 Geändert vor 4 Jahren durch Whoopie

  • Komponente von unknown nach build-system geändert
  • Lösung auf fixed gesetzt
  • Meilenstein freetz-next gelöscht
  • Priorität von high nach normal geändert
  • Status von new nach closed geändert

comment:12 als Antwort auf: ↑ 9 Geändert vor 4 Jahren durch er13

Replying to oliver:

Kann es sein, dass der Build manchmal nicht mehr angestoßen wird, obwohl nicht korrekt gebaut wurde? Eventuell sind alte Dateien mit neuen gemixt oder etwas ähnliches…

Das wäre die Erklärung. Ich konnte es bisher, indem ich absichtlich Fehler in freetz-Makefiles bzw. in fakeroot-Quellcode eingebaut habe, nicht nachstellen. Vom Lesen her sehe ich den (möglichen) Fehler (in freetz-Makefiles) leider auch nicht.


Wenn jemand reproduzierbar den Fehler aus comment:2 nachstellen kann, bitte hier melden. Danke!

comment:13 Geändert vor 4 Jahren durch oliver

Ich habe es gerade ausprobiert. Ein mehrmaliges "make" unter Ubuntu 14.04 ohne den Patch führt immer wieder zum Build-Fehler von oben. Auch wenn ich den dl-Lösche. Dann wird das tar.gz neu runtergeladen, ausgepackt und es kommt wieder der Compile-Fehler.

Ich kann das Problem mit der fakeroot library aktuell nicht nachstellen.

Zuletzt geändert vor 4 Jahren von oliver (vorher) (Diff)

comment:14 Geändert vor 21 Monaten durch Bernd

Ich hatte das Problem vorhin auch, auf Ubuntu 14.04.4 LTS (trusty)
mit freetz-stable-2.0 @ Revision 13659.
Der Versuch, den Bug zu reproduzieren, scheiterte an einem anderen Bug (ncurses compilierte nicht), auch nach "make clean". Hab daher meinen Repo-Checkout gelöscht, alles komplett neu runtergeladen, alte config wieder rein, seitdem baut make die Images wieder sauber.

Wer also auf Nummer sicher gehen will, backuppe sein Projektverzeichnis vor dem ersten make. ;-)

Update: Hab gerade getestet, obs an inotify-tools 3.14 liegt, die waren zwischendurch fehlgeschlagen. Jetzt aber compilieren sogar die.

Zuletzt geändert vor 21 Monaten von Bernd (vorher) (Diff)

comment:15 als Antwort auf: ↑ 9 Geändert vor 21 Monaten durch Bernd

  • Lösung fixed gelöscht
  • Status von closed nach reopened geändert

Replying to oliver:

make fakeroot-dirclean half bis jetzt immer.

Könnte dann diesen Lösungsvorschlag evtl. jemand SVN-begabtes als Hinweis in die (vermutlich von make geschriebene) Fehlermeldung mit aufnehmen?
Wiedereröffnet wegen diesem Feature Request.

comment:16 Geändert vor 14 Monaten durch oliver

  • Lösung auf wontfix gesetzt
  • Status von reopened nach closed geändert

Wenn es irgendwo zu einem Fehler kommt sollte man immer make $package-dirclean oder sogar ein komplettes dirclean versuchen bevor man Tickets aufmacht…

Hinweis: Hilfe zur Verwendung von Tickets finden Sie in TracTickets.