PeterPawn / decoder

"secrets" decoding for FRITZ!OS devices
GNU General Public License v2.0
78 stars 18 forks source link

functions.h: Remove unused declaration #21

Closed juergenhoetzel closed 3 years ago

juergenhoetzel commented 3 years ago

This also fixes multiple definition errors when using gcc 10 (caused by omitting "extern"):

make -C src
make[1]: Entering directory '/home/juergen/tmp/decoder/src'
gcc -static -Wl,--gc-sections -L. -o decoder errors.o output.o base32.o base64.o hex.o encryption.o exportfile.o memory.o functions.o crypto_nettle.o options.o environ.o license.o crc32.o help.o decfile.o decexp.o deccb.o decompose.o decsngl.o pkpwd.o checksum.o userpw.o devpw.o pwfrdev.o b32dec.o b32enc.o b64dec.o b64enc.o hexdec.o hexenc.o decoder.o -lnettle
/usr/bin/ld: output.o:(.bss.usageScreen+0x0): multiple definition of `usageScreen'; errors.o:(.bss.usageScreen+0x0): first defined here
/usr/bin/ld: base32.o:(.bss.usageScreen+0x0): multiple definition of `usageScreen'; errors.o:(.bss.usageScreen+0x0): first defined here
/usr/bin/ld: base64.o:(.bss.usageScreen+0x0): multiple definition of `usageScreen'; errors.o:(.bss.usageScreen+0x0): first defined here
/usr/bin/ld: hex.o:(.bss.usageScreen+0x0): multiple definition of `usageScreen'; errors.o:(.bss.usageScreen+0x0): first defined here
/usr/bin/ld: encryption.o:(.bss.usageScreen+0x0): multiple definition of `usageScreen'; errors.o:(.bss.usageScreen+0x0): first defined here
/usr/bin/ld: exportfile.o:(.bss.usageScreen+0x0): multiple definition of `usageScreen'; errors.o:(.bss.usageScreen+0x0): first defined here
/usr/bin/ld: memory.o:(.bss.usageScreen+0x0): multiple definition of `usageScreen'; errors.o:(.bss.usageScreen+0x0): first defined here
/usr/bin/ld: functions.o:(.bss.usageScreen+0x0): multiple definition of `usageScreen'; errors.o:(.bss.usageScreen+0x0): first defined here
/usr/bin/ld: crypto_nettle.o:(.bss.usageScreen+0x0): multiple definition of `usageScreen'; errors.o:(.bss.usageScreen+0x0): first defined here
/usr/bin/ld: options.o:(.bss.usageScreen+0x0): multiple definition of `usageScreen'; errors.o:(.bss.usageScreen+0x0): first defined here
/usr/bin/ld: environ.o:(.bss.usageScreen+0x0): multiple definition of `usageScreen'; errors.o:(.bss.usageScreen+0x0): first defined here
/usr/bin/ld: license.o:(.bss.usageScreen+0x0): multiple definition of `usageScreen'; errors.o:(.bss.usageScreen+0x0): first defined here
/usr/bin/ld: crc32.o:(.bss.usageScreen+0x0): multiple definition of `usageScreen'; errors.o:(.bss.usageScreen+0x0): first defined here
/usr/bin/ld: help.o:(.bss.usageScreen+0x0): multiple definition of `usageScreen'; errors.o:(.bss.usageScreen+0x0): first defined here
collect2: error: ld returned 1 exit status
make[1]: *** [Makefile:746: decoder] Error 1
make[1]: Leaving directory '/home/juergen/tmp/decoder/src'
make: *** [Makefile:24: decoder] Error 2

GCC 10 porting guide

PeterPawn commented 3 years ago

Ich bin da ohnehin gerade dran, weil es noch ein weiteres Problem gibt: https://www.ip-phone-forum.de/threads/wie-funktioniert-eigentlich-die-avm-verschl%C3%BCsselung-f%C3%BCr-die-einstellungen.295101/post-2392827

Dabei habe ich dann auch feststellen müssen, daß der GCC 10 (mein openSuse Tumbleweed ist mittlerweile auch bei 10.2.1) sich an dem (ohnehin unbenutzten) Prototypen stört, was frühere Compiler trotz "-Wall" nicht mal zu einem müden Lächeln verleitete ... und natürlich ist diese Definition unnötig und zwar praktisch von Beginn an.

Zusätzlich habe ich noch ein Problem beim Verifizieren der Nettle-Quellen gehabt - der Download des passenden Keys vom Server anhand der Key-ID findet nichts (erst recht nicht auf "keys.gnupg.net") und daher habe ich da auch noch geändert.

Außerdem bin ich auf der Suche nach dem "segmentation fault", wenn man das "Hauptprogramm" mit einer (falschen) Option aufruft ... der hat mich doch einigermaßen überrascht.

Im Zuge dessen fliegt auch der o.a. Prototyp raus - ich würde den PR jetzt nicht explizit mergen (ich arbeite ohnehin mit lokalen Repos und der Export hier nach GitHub ist üblicherweise der allerletzte Schritt), wenn Du damit leben kannst.

juergenhoetzel commented 3 years ago

Im Zuge dessen fliegt auch der o.a. Prototyp raus - ich würde den PR jetzt nicht explizit mergen (ich arbeite ohnehin mit lokalen Repos und der Export hier nach GitHub ist üblicherweise der allerletzte Schritt), wenn Du damit leben kannst.

Aber sicher :+1: Danke für das praktische tool