Ergebnis 1 bis 12 von 12

Thema: tinyproxy und der cross compiler

  1. #1
    IPPF-Aufsteiger Avatar von mathisdt
    Registriert seit
    29.01.2006
    Beiträge
    39

    tinyproxy und der cross compiler

    Juhu! Busybox ist gebaut.

    Jetzt wollte ich tinyproxy 1.7.0 konfigurieren und bin streng nach Tutorial vorgegangen. Fehler:
    Code:
    checking whether the system's regex library is broken... yes
    configure: error: Your system's regexec() function is broken.
    bei tinyproxy 1.6.3 geht das besser, da kommt die Meldung
    Code:
    checking whether the system's regex library is broken... yes
    configure: Using the included GNU regex instead.
    und alles geht zu kompilieren.

    Meine Frage (vor allem an olistudent, der 1.7.0 gebaut bekommen hat): was muss ich tun, um diesen Fehler zu umgehen?

  2. #2
    Semi-Moderator Avatar von olistudent
    Registriert seit
    19.10.2004
    Ort
    Kaiserslautern
    Beiträge
    14.292
    Da kann ich dir jetzt gar nicht sagen was ich gemacht hab. Wahrscheinlich hab ich das exit im configure-Skript an dieser Stelle auskommentiert.

    MfG Oliver
    Router: Fritz!Box Fon WLAN 7570, 7390, 7320, 7270, 3170
    Anbindung: T-Online DSL 16.000 RAM

    Visit ##fritzbox on Freenode for help
    Spenden für Freetz

  3. #3
    IPPF-Fünfhundert-Club Avatar von knox
    Registriert seit
    20.05.2006
    Beiträge
    577
    Zitat Zitat von mathisdt
    Code:
    checking whether the system's regex library is broken... yes
    configure: error: Your system's regexec() function is broken.
    merkwürdiger weise verhält sich das configure script sehr defensiv:
    Code:
      if test "$cross_compiling" = yes; then
      tinyproxy_cv_regex_broken=yes
    daher übergebe ein "tinyproxy_cv_regex_broken=no" und es lässt sich configuren.
    Freiheit statt Angst - Stoppt den Überwachungswahn! - 11.10. Berlin Alexanderplatz, ab 14:00 Uhr

  4. #4
    IPPF-Tausend-VIP
    Registriert seit
    13.03.2006
    Beiträge
    1.444

    Daumen hoch Eine Odyssee zum verzweifeln, ähh zum TinyProxy kompilieren.

    Das letzte Binary, welches ich im Forum gefunden habe, war leider ohne REVERSE_SUPPORT. Also wollte ich 1.8.2 selbst kompilieren und befolge die Anleitung.
    "Natürlich" schlägt das fehl, denn ich hatte ja das vergessen (man beachte das letzte Kommentar).
    "Natürlich" schlägt es immer noch fehl, denn ich hatte ja das vergessen. Damit funktioniert es "logischerweise" immer noch nicht, denn es wird Wissenstransfer verlangt, dass dasselbe noch für ac_cv_func_realloc_0_nonnull durchzuführen ist.

    Am Ende gibt's kein ermunterndes "You did it!", sondern nur das im Verzeichnis X und Y nicht viel zu tun ist. Aha. Dass das tinyproxy-Binary im src-Verzeichnis liegt, sagt das Skript "natürlich" nicht. Aber wer den Quatsch davor hinbekommt, der weiß sowas längst...
    Leider funktioniert dieses Binary immer noch nicht. Warum? "file src/tinyproxy" sagt es handelt sich um ein i386-Binary! Fehler lag darin, dass Freetz-Download und "make menuconfig" noch keine Toolchain erstellt, sondern man erst "make precompiled" aufrufen muss (siehe hier, Abschnitt "Es dürfte allgemein bekannt sein..."). Ein nicht vorhandener, aber angegebener Compiler wird also einfach ignoriert.

    Nun erstellt make endlich ein MIPS-Binary. Aber dieses ist trotzdem noch dynamisch gelinkt (libresolv.so.0 müsste man dann dazu packen). Es ist ein weiterer Fehler im configure-Skript, der die Umgebungsvariable überschreibt, statt zu ergänzen. Also im Skript noch den fetten Teil hinzufügen: LDFLAGS="-Wl,-z,defs $LDFLAGS"

    Jetzt ist es Zeit für <Klick>

    ---

    Wem das alles zu schwierig ist, der nutzt einfach Freetz: "make menuconfig", PP<Enter>T<Enter>,[*] Tinyproxy,[*] Enable reverse,[*] Build statically und raus. "make tinyproxy-precompiled".
    Geändert von Chatty (07.02.2011 um 22:29 Uhr)
    Router: . .Fritz!Box 6360 mit FW 85.05.29-24335, dahinter Fritz!Box 7270 mit FW 54.05.27-23577 (letzte Labor mit altem WDS)
    Internet: KDG 106.000/6.360 kBit/s an Arris-CMTS seit 20.12.11
    Router: . .Fritz!Box 6360 mit FW 85.05.28-23625
    Internet: UM 33.792/1.128 kBit/s an Cisco-CMTS seit 15.12.10

    Tipps: . . .Google Voice

  5. #5
    IPPF-Fünftausend-VIP
    Registriert seit
    01.02.2005
    Beiträge
    5.942
    Puh, ist der Thread aber alt, und dann auch noch vom Thema "nice"

    Zum Thema: Der letzte Satz besagt, dass freetz kein statisches Programm gebaut hat, oder dass du nicht weißt, warum es zuvor nicht geklappt hat??
    Geändert von MaxMuster (07.02.2011 um 09:22 Uhr) Grund: War noch nicht wach.
    (FR) Eumex 300IP FW 06.04.49 (englisch) und "relativ aktuellem" freetz-devel mit openvpn und dropbear hinter AGFEO TK-HomeServer
    Fritz!BoxFon WLAN FW 08.04.27 mit ds-0.2.9-p7 und openvpn-2.1_rc2

  6. #6
    IPPF-Aufsteiger Avatar von mathisdt
    Registriert seit
    29.01.2006
    Beiträge
    39
    Es gibt die (inzwischen etwas veraltete) Version 1.7.0 hier zum Download. Vielleicht hilft sie Dir, auch wenn sie noch für DS-MOD gebaut wurde. Auf jeden Fall ist dort Reverse-Support einkompiliert.

    Gruß, Mathis
    Fritz!Box Fon 7170 WLAN und Fritz!Box Fon 7270 WLAN mit ziemlich aktuellen Freetz-Versionen - Subversion rules!

  7. #7
    IPPF-Fünftausend-VIP
    Registriert seit
    01.02.2005
    Beiträge
    5.942
    Hab es gerade mal versucht, bei mir hat es gebaut (alles ausgewählt und dann "make tinyproxy-precompiled") :
    Code:
    joerg@joerg-desktop:~/freetz-trunk-new$ 
    joerg@joerg-desktop:~/freetz-trunk-new$ PATH=$PATH:~/freetz-trunk-new/toolchain/build/mipsel_gcc-4.4.5_uClibc-0.9.29/mipsel-linux-uclibc/bin
    joerg@joerg-desktop:~/freetz-trunk-new$ mipsel-linux-ldd packages/target-mipsel_uClibc-0.9.29/tinyproxy-1.8.2/root/usr/sbin/tinyproxy	not a dynamic executable
    joerg@joerg-desktop:~/freetz-trunk-new$ scp packages/target-mipsel_uClibc-0.9.29/tinyproxy-1.8.2/root/usr/sbin/tinyproxy root@192.168.178.1:/tmp
    root@192.168.178.1's password: 
    tinyproxy                                                                                                                                                     100%  208KB 207.6KB/s   00:00    
    joerg@joerg-desktop:~/freetz-trunk-new$ ssh root@192.168.178.1
    root@192.168.178.1's password: 
       __  _   __  __ ___ __
      |__ |_) |__ |__  |   /
      |   |\  |__ |__  |  /_
    
       The fun has just begun ...
    
    
    BusyBox v1.18.1 (2011-01-14 17:36:14 CET) built-in shell (ash)
    Enter 'help' for a list of built-in commands.
    
    root@fritz:/var/mod/root# cd /tmp
    root@fritz:/var/tmp# ./tinyproxy -h
    Usage: tinyproxy [options]
    
    Options are:
      -d        Do not daemonize (run in foreground).
      -c FILE   Use an alternate configuration file.
      -h        Display this usage information.
      -l        Display the license.
      -v        Display version information.
    
    Features compiled in:
        XTinyproxy header
        Filtering
        Transparent proxy support
        Reverse proxy support
        Upstream proxy support
    
    For bug reporting instructions, please see:
    <https://www.banu.com/tinyproxy/>.
    root@fritz:/var/tmp# 
    root@fritz:/var/tmp# ./tinyproxy -v
    tinyproxy 1.8.2
    root@fritz:/var/tmp#
    Jörg
    Angehängte Dateien Angehängte Dateien
    (FR) Eumex 300IP FW 06.04.49 (englisch) und "relativ aktuellem" freetz-devel mit openvpn und dropbear hinter AGFEO TK-HomeServer
    Fritz!BoxFon WLAN FW 08.04.27 mit ds-0.2.9-p7 und openvpn-2.1_rc2

  8. #8
    IPPF-Tausend-VIP
    Registriert seit
    13.03.2006
    Beiträge
    1.444
    Hey, vielen Dank für eure zahlreiche Hilfe. Ich hatte mich wohl etwas unklar ausgedrückt. Mit Freetz konnte ich problemlos ein statisches Binary erzeugen. Ich wollte aber die (immer noch groben) Details verstehen und im tinyproxy-Verzeichnis "make" aufrufen können - also nur die Freetz-Toolchain nutzen. Dann entsteht aber ein dynamisches Binary, welches noch eine libresolv benötigt. Das ging im IPPF schon vielen so. Eine Lösung hatte ich bisher nicht gefunden.

    Außerdem sollte mein Beitrag mal die typische Linux-Anfänger-Situation beleuchten und an wieviel Stellen es noch zu schrauben gilt, bevor noch unbedarftere Anfänger als ich es bin, Linux nutzen können/wollen/sollen...
    Geändert von Chatty (07.02.2011 um 13:18 Uhr)
    Router: . .Fritz!Box 6360 mit FW 85.05.29-24335, dahinter Fritz!Box 7270 mit FW 54.05.27-23577 (letzte Labor mit altem WDS)
    Internet: KDG 106.000/6.360 kBit/s an Arris-CMTS seit 20.12.11
    Router: . .Fritz!Box 6360 mit FW 85.05.28-23625
    Internet: UM 33.792/1.128 kBit/s an Cisco-CMTS seit 15.12.10

    Tipps: . . .Google Voice

  9. #9
    IPPF-Fünftausend-VIP
    Registriert seit
    01.02.2005
    Beiträge
    5.942
    Also...
    Im Prinzip musst du dafür sorgen, dass der letzte Aufruf vom Compiler (der eigentlich als "Linker" fungiert, und die Teile zusammenfügt), den Parameter "-static" mit drin hat. Meist reicht es, den Aufruf vom "make" so zu ergänzen, dass der Parameter in den "LDFLAGS" mit drin ist, also insgesamt ein:

    make LDFLAGS="-static ...."

    Manchmal kann man das auch schon dem "configure" mit übergeben, dann kann man neben dem Setzen des Compilers eben auch die Linker Flags mit setzen. Es hängt aber vom Programm und dem Makefile ab, ob und an welcher Stelle man das mit angeben kann....

    "Zur Not" geht eigenlich immer folgendes, wenn das Programm nicht statisch gebaut wurde:
    Den letzten Aufruf vom make kopieren und mit einem "-static" ergänzen. Oft fehlen dann am Ende noch die Library dl, also ans Ende noch ein "-ldl". Wenn man sich dazu das Tinyproxy mal ansieht, ist der letzte Aufruf (bei "make V=99"):
    Code:
    joerg@joerg-desktop:~/freetz-trunk-new/source/target-mipsel_uClibc-0.9.29/tinyproxy-1.8.2/src$ ~/freetz-trunk-new/toolchain/build/mipsel_gcc-4.4.5_uClibc-0.9.29/mipsel-linux-uclibc/bin/mipsel-linux-uclibc-gcc -DNDEBUG -Os -pipe -march=4kc -Wa,--trap -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -fdiagnostics-show-option -Wall -Wextra -Wno-unused-parameter -Wmissing-prototypes -Wstrict-prototypes -Wmissing-declarations -Wfloat-equal -Wundef -Wformat=2 -Wlogical-op -Wmissing-include-dirs -Wformat-nonliteral -Wold-style-definition -Wpointer-arith -Waggregate-return -Winit-self -Wpacked --std=c89 -ansi -pedantic -Wc++-compat -Wno-long-long -Wno-overlength-strings -Wdeclaration-after-statement -Wredundant-decls -Wmissing-noreturn -Wshadow -Wendif-labels -Wcast-qual -Wcast-align -Wwrite-strings -Wp,-D_FORTIFY_SOURCE=2 -fno-common  -Wl,-z,defs -o tinyproxy acl.o anonymous.o buffer.o child.o conf.o conns.o daemon.o hashmap.o heap.o html-error.o http-message.o log.o network.o reqs.o sock.o stats.o text.o main.o utils.o vector.o upstream.o connect-ports.o filter.o reverse-proxy.o transparent-proxy.o -lresolv -lnsl 
    joerg@joerg-desktop:~/freetz-trunk-new/source/target-mipsel_uClibc-0.9.29/tinyproxy-1.8.2/src$ 
    joerg@joerg-desktop:~/freetz-trunk-new/source/target-mipsel_uClibc-0.9.29/tinyproxy-1.8.2/src$ file tinyproxy 
    tinyproxy: ELF 32-bit LSB executable, MIPS, MIPS32 version 1, dynamically linked (uses shared libs), with unknown capability 0xf41 = 0x756e6700, not stripped
    Wenn man jetzt das oben genannte anwendet und "-static" hinzufügt, funktioniert das tatsächlich
    Code:
    joerg@joerg-desktop:~/freetz-trunk-new/source/target-mipsel_uClibc-0.9.29/tinyproxy-1.8.2/src$ 
    joerg@joerg-desktop:~/freetz-trunk-new/source/target-mipsel_uClibc-0.9.29/tinyproxy-1.8.2/src$ ~/freetz-trunk-new/toolchain/build/mipsel_gcc-4.4.5_uClibc-0.9.29/mipsel-linux-uclibc/bin/mipsel-linux-uclibc-gcc -static -DNDEBUG -Os -pipe -march=4kc -Wa,--trap -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -fdiagnostics-show-option -Wall -Wextra -Wno-unused-parameter -Wmissing-prototypes -Wstrict-prototypes -Wmissing-declarations -Wfloat-equal -Wundef -Wformat=2 -Wlogical-op -Wmissing-include-dirs -Wformat-nonliteral -Wold-style-definition -Wpointer-arith -Waggregate-return -Winit-self -Wpacked --std=c89 -ansi -pedantic -Wc++-compat -Wno-long-long -Wno-overlength-strings -Wdeclaration-after-statement -Wredundant-decls -Wmissing-noreturn -Wshadow -Wendif-labels -Wcast-qual -Wcast-align -Wwrite-strings -Wp,-D_FORTIFY_SOURCE=2 -fno-common  -Wl,-z,defs -o tinyproxy acl.o anonymous.o buffer.o child.o conf.o conns.o daemon.o hashmap.o heap.o html-error.o http-message.o log.o network.o reqs.o sock.o stats.o text.o main.o utils.o vector.o upstream.o connect-ports.o filter.o reverse-proxy.o transparent-proxy.o -lresolv -lnsl -ldl
    joerg@joerg-desktop:~/freetz-trunk-new/source/target-mipsel_uClibc-0.9.29/tinyproxy-1.8.2/src$ file tinyproxy 
    tinyproxy: ELF 32-bit LSB executable, MIPS, MIPS32 version 1, statically linked, with unknown capability 0xf41 = 0x756e6700, not stripped
    joerg@joerg-desktop:~/freetz-trunk-new/source/target-mipsel_uClibc-0.9.29/tinyproxy-1.8.2/src$
    Jörg
    (FR) Eumex 300IP FW 06.04.49 (englisch) und "relativ aktuellem" freetz-devel mit openvpn und dropbear hinter AGFEO TK-HomeServer
    Fritz!BoxFon WLAN FW 08.04.27 mit ds-0.2.9-p7 und openvpn-2.1_rc2

  10. #10
    IPPF-Tausend-VIP
    Registriert seit
    13.03.2006
    Beiträge
    1.444
    Danke für die Infos. Das probiere ich heute Abend mal. Aber wäre eine saubere Lösung nicht die Anpassung des Makefile (da anscheinend "make LDFLAGS="-static ...."" nicht funktioniert, sonst hätte ich configure.ac gesagt)?
    Router: . .Fritz!Box 6360 mit FW 85.05.29-24335, dahinter Fritz!Box 7270 mit FW 54.05.27-23577 (letzte Labor mit altem WDS)
    Internet: KDG 106.000/6.360 kBit/s an Arris-CMTS seit 20.12.11
    Router: . .Fritz!Box 6360 mit FW 85.05.28-23625
    Internet: UM 33.792/1.128 kBit/s an Cisco-CMTS seit 15.12.10

    Tipps: . . .Google Voice

  11. #11
    IPPF-Fünftausend-VIP
    Registriert seit
    01.02.2005
    Beiträge
    5.942
    Also ganz konkret beim Tinyproxy sollten die LDFLAGS aber funktionieren:
    Code:
    joerg@joerg-desktop:~/freetz-trunk-new/source/target-mipsel_uClibc-0.9.29/tinyproxy-1.8.2/src$ rm tinyproxy 
    joerg@joerg-desktop:~/freetz-trunk-new/source/target-mipsel_uClibc-0.9.29/tinyproxy-1.8.2/src$ make
      CCLD   tinyproxy
    joerg@joerg-desktop:~/freetz-trunk-new/source/target-mipsel_uClibc-0.9.29/tinyproxy-1.8.2/src$ file tinyproxy 
    tinyproxy: ELF 32-bit LSB executable, MIPS, MIPS32 version 1, dynamically linked (uses shared libs), with unknown capability 0xf41 = 0x756e6700, not stripped
    joerg@joerg-desktop:~/freetz-trunk-new/source/target-mipsel_uClibc-0.9.29/tinyproxy-1.8.2/src$ rm tinyproxy 
    joerg@joerg-desktop:~/freetz-trunk-new/source/target-mipsel_uClibc-0.9.29/tinyproxy-1.8.2/src$ make LDFLAGS="-static"
      CCLD   tinyproxy
    joerg@joerg-desktop:~/freetz-trunk-new/source/target-mipsel_uClibc-0.9.29/tinyproxy-1.8.2/src$ file tinyproxy 
    tinyproxy: ELF 32-bit LSB executable, MIPS, MIPS32 version 1, statically linked, with unknown capability 0xf41 = 0x756e6700, not stripped
    joerg@joerg-desktop:~/freetz-trunk-new/source/target-mipsel_uClibc-0.9.29/tinyproxy-1.8.2/src$
    Jörg
    (FR) Eumex 300IP FW 06.04.49 (englisch) und "relativ aktuellem" freetz-devel mit openvpn und dropbear hinter AGFEO TK-HomeServer
    Fritz!BoxFon WLAN FW 08.04.27 mit ds-0.2.9-p7 und openvpn-2.1_rc2

  12. #12
    IPPF-Tausend-VIP
    Registriert seit
    13.03.2006
    Beiträge
    1.444
    Wenn das make-File doch den Parameter beachtet, dann musste es ja doch am configure-Teil liegen. Habs eben noch probiert und meine obige Odyssee hat nun endlich ihr Ende gefunden. Vielen Dank für deine Hilfe Jörg! mathisdt könnte jetzt ein [gelöst] in den Threadtitel einbauen.

    An alle libresolv.so.0 SuFu-Nutzer: die Lösung steht in #4!
    Router: . .Fritz!Box 6360 mit FW 85.05.29-24335, dahinter Fritz!Box 7270 mit FW 54.05.27-23577 (letzte Labor mit altem WDS)
    Internet: KDG 106.000/6.360 kBit/s an Arris-CMTS seit 20.12.11
    Router: . .Fritz!Box 6360 mit FW 85.05.28-23625
    Internet: UM 33.792/1.128 kBit/s an Cisco-CMTS seit 15.12.10

    Tipps: . . .Google Voice

Ähnliche Themen

  1. [gelöst] Cross-Compiler für die Horstbox gesucht
    Von snoboy im Forum HorstBox-Modifikationen
    Antworten: 4
    Letzter Beitrag: 14.08.2009, 23:58
  2. Freetz Cross-Compiler für original Firmware
    Von 2Gay2Play2Day im Forum Freetz
    Antworten: 1
    Letzter Beitrag: 16.02.2009, 19:30
  3. Antworten: 9
    Letzter Beitrag: 11.02.2007, 16:19
  4. Asterisk & Cross Compiler
    Von iwankoenig im Forum Asterisk Allgemein
    Antworten: 1
    Letzter Beitrag: 26.09.2006, 08:48
  5. SP501 Problem mit screen und cross compiler
    Von RoyceMcKnight im Forum AVM OEM-Produkte
    Antworten: 4
    Letzter Beitrag: 18.09.2006, 12:32

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •