avr/4.8.3/../../../../avr/bin/ld: warning: -z relro ignored.

OP (Firma: TU Darmstadt) #4599805
Lesenswert?

Ich arbeite mit Opensuse 13.2 .

In meinen Nutzercode und Makefiles kommt das Wort "relro" nicht vor.
:~/devel/ethernut_sf/nut> grep -rl relro
Genausowenig in relevanten Files den avr Verzeichnissen:
:/opt/cross/avr> grep -rl relro
bin/avr-insight
bin/avr-gdbtui
bin/avr-gdb
:/opt/cross/avr> rpm -qf bin/avr-gdbtui
cross-avr-insight-6.8.1-36.1.x86_64

Ist das evt ein Compiletime Option, die Suse unguenstig gesetzt hat? 
Irgendeine Moeglichkeit, dass zu ueberschreiben?
Gast #4599836
Lesenswert?

Ich vermute Du kompilierst mit der AVR Toolchain. Woher hast Du die und 
welche Version? (Aargh, lesen, steht ja oben, sry).

Das es am SuSE liegt, glaube ich eher weniger.

Edit: Benutzt Du eine IDE? Wenn ja, welche?
OP (Firma: TU Darmstadt) #4599870
Lesenswert?

> which avr-gcc
/usr/bin/avr-gcc
> rpm -qfi /usr/bin/avr-gcc
Name        : cross-avr-gcc
Version     : 4.8.3
Release     : 1.1
Architecture: x86_64
Install Date: Mo 21 Mär 2016 17:59:20 CET
Group       : Development/Libraries/C and C++
Size        : 99543046
License     : GPL-3.0+
Signature   : DSA/SHA1, Fr 21 Nov 2014 16:34:24 CET, Key ID 
76b8164a5a4c615b
Source RPM  : cross-avr-gcc-4.8.3-1.1.src.rpm
Build Date  : Fr 21 Nov 2014 16:26:10 CET
Build Host  : build17
Relocations : (not relocatable)
Vendor      : obs://build.opensuse.org/CrossToolchain:avr
URL         : 
http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&t=42631
Summary     : The GNU C Compiler for Atmel AVR with xmega support
Description :
This compiler supports the C language on AVR microprocessors.
Also install cross-avr-binutils and avr-libc.
gcc built for Atmel AVR with the instrutions from wrightflyer.
Distribution: CrossToolchain:avr / openSUSE_13.2

> /usr/bin/avr-gcc -v
Using built-in specs.
COLLECT_GCC=/opt/cross/avr/bin/avr-gcc
COLLECT_LTO_WRAPPER=/opt/cross/avr/libexec/gcc/avr/4.8.3/lto-wrapper
Target: avr
Configured with: ../gcc-4.8.3/configure -v --target=avr --disable-nls 
--mandir=/opt/cross/avr/share/man --infodir=/opt/cross/avr/share/info 
--program-prefix=avr- --prefix=/opt/cross/avr --with-gnu-ld 
--with-gnu-as --enable-languages=c,c++ --disable-libssp --with-dwarf2
Thread model: single
gcc version 4.8.3 (GCC)

Ich arbeite ohne IDE. Das Ethernut Framework erzeugt aus gegebenen 
Konfigurationen Bibliotheken und beim Linken der Beispiele kommt dann 
die Warnung. Wie oben gezeigt, gibt es im gesamten Ethernut Framework 
kein vorkommen von "relro". Und die Treffer bei der Suche nach relro in 
/opt/cros/avr

/opt/cross/avr> grep -rli relro
lib/gcc/avr/4.8.3/plugin/include/output.h
bin/avr-insight
bin/avr-gdbtui
bin/avr-gdb

erscheinen mir auch nicht relevant fuer das Kompilieren und Linken.
OP (Firma: TU Darmstadt) #4599874
Lesenswert?

Johann L. schrieb:
> Wie ist denn das Kommando, das zu der Meldung gehört?

> avr-gcc -c -I/devel/ethernut_sf/build/ethernut103/./include 
-I/devel/ethernut_sf/build/ethernut103/../../nut/include 
-I/devel/ethernut_sf/build/ethernut103/../../nut/include/contrib  -DETHERNUT1 
-DBOOTLOADER_OFFSET=0 -D__HARVARD_ARCH__  -MD -MP -mmcu=atmega103 -Os 
-ffunction-sections -fno-delete-null-pointer-checks -Wall -Wstrict-prototypes 
-Wa,-a=simple.lst  -o simple.o simple.c
hertz:~/devel/ethernut_sf/build/ethernut103/apps/simple> avr-gcc 
simple.o -mmcu=atmega103 -Wl,--gc-sections 
-Wl,--defsym=main=0,-Map=simple.map,--cref 
-L/devel/ethernut_sf/build/ethernut103/./lib -Wl,--start-group 
/devel/ethernut_sf/build/ethernut103/./lib/nutinit.o -lnutos -lnutarch 
-lnutdev -lnutarch -lnutcrt   -Wl,--end-group -o simple.elf
/opt/cross/avr/lib/gcc/avr/4.8.3/../../../../avr/bin/ld: warning: -z 
relro ignored.
OP (Firma: TU Darmstadt) #4599901
Lesenswert?

> avr-gcc simple.o -mmcu=atmega103 -Wl,--gc-sections 
-Wl,--defsym=main=0,-Map=simple.map,--cref 
-L/devel/ethernut_sf/build/ethernut103/./lib -Wl,--start-group 
/devel/ethernut_sf/build/ethernut103/./lib/nutinit.o -lnutos -lnutarch -lnutdev 
-lnutarch -lnutcrt -Wl,--end-group -o simple.elf -v -Wl,-v
Using built-in specs.
COLLECT_GCC=/opt/cross/avr/bin/avr-gcc
COLLECT_LTO_WRAPPER=/opt/cross/avr/libexec/gcc/avr/4.8.3/lto-wrapper
Target: avr
Configured with: ../gcc-4.8.3/configure -v --target=avr --disable-nls 
--mandir=/opt/cross/avr/share/man --infodir=/opt/cross/avr/share/info 
--program-prefix=avr- --prefix=/opt/cross/avr --with-gnu-ld 
--with-gnu-as --enable-languages=c,c++ --disable-libssp --with-dwarf2
Thread model: single
gcc version 4.8.3 (GCC)
COMPILER_PATH=/opt/cross/avr/libexec/gcc/avr/4.8.3/:/opt/cross/avr/libex 
ec/gcc/avr/4.8.3/:/opt/cross/avr/libexec/gcc/avr/:/opt/cross/avr/lib/gcc 
/avr/4.8.3/:/opt/cross/avr/lib/gcc/avr/:/opt/cross/avr/lib/gcc/avr/4.8.3 
/../../../../avr/bin/
LIBRARY_PATH=/opt/cross/avr/lib/gcc/avr/4.8.3/avr31/:/opt/cross/avr/lib/ 
gcc/avr/4.8.3/../../../../avr/lib/avr31/:/opt/cross/avr/lib/gcc/avr/4.8. 
3/:/opt/cross/avr/lib/gcc/avr/4.8.3/../../../../avr/lib/
COLLECT_GCC_OPTIONS='-mmcu=atmega103' 
'-L/devel/ethernut_sf/build/ethernut103/./lib' '-o' 'simple.elf' '-v'
 /opt/cross/avr/libexec/gcc/avr/4.8.3/collect2 -m avr31 -o simple.elf 
/opt/cross/avr/lib/gcc/avr/4.8.3/../../../../avr/lib/avr31/crtm103.o 
-L/devel/ethernut_sf/build/ethernut103/./lib 
-L/opt/cross/avr/lib/gcc/avr/4.8.3/avr31 
-L/opt/cross/avr/lib/gcc/avr/4.8.3/../../../../avr/lib/avr31 
-L/opt/cross/avr/lib/gcc/avr/4.8.3 
-L/opt/cross/avr/lib/gcc/avr/4.8.3/../../../../avr/lib simple.o 
--gc-sections --defsym=main=0 -Map=simple.map --cref --start-group 
/devel/ethernut_sf/build/ethernut103/./lib/nutinit.o -lnutos -lnutarch 
-lnutdev -lnutarch -lnutcrt --end-group -v --start-group -lgcc -lm -lc 
--end-group
collect2 version 4.8.3
/opt/cross/avr/lib/gcc/avr/4.8.3/../../../../avr/bin/ld -m avr31 -o 
simple.elf 
/opt/cross/avr/lib/gcc/avr/4.8.3/../../../../avr/lib/avr31/crtm103.o 
-L/devel/ethernut_sf/build/ethernut103/./lib 
-L/opt/cross/avr/lib/gcc/avr/4.8.3/avr31 
-L/opt/cross/avr/lib/gcc/avr/4.8.3/../../../../avr/lib/avr31 
-L/opt/cross/avr/lib/gcc/avr/4.8.3 
-L/opt/cross/avr/lib/gcc/avr/4.8.3/../../../../avr/lib simple.o 
--gc-sections --defsym=main=0 -Map=simple.map --cref --start-group 
/devel/ethernut_sf/build/ethernut103/./lib/nutinit.o -lnutos -lnutarch 
-lnutdev -lnutarch -lnutcrt --end-group -v --start-group -lgcc -lm -lc 
--end-group
GNU ld (GNU Binutils; devel:gcc / openSUSE_13.2) 2.26.0.20160318-244
/opt/cross/avr/lib/gcc/avr/4.8.3/../../../../avr/bin/ld: warning: -z 
relro ignored


Im Mapfile m eine ich, dass dort keine Objekte sind.

.gnu.version_r
 *(.gnu.version_r)

.rel.init
 *(.rel.init)
...
.rela.plt
 *(.rela.plt)
OP (Firma: TU Darmstadt) #4599960
Lesenswert?

Die Warnung kommt aus dem avr-ld selbst:

> avr-ld
avr-ld: warning: -z relro ignored.
avr-ld: no input files

> which avr-ld
/usr/bin/avr-ld

> rpm -qfi /usr/bin/avr-ld
Name        : cross-avr-binutils
Version     : 2.26
Release     : 244.1
Architecture: x86_64
Install Date: Mo 21 Mär 2016 17:59:21 CET
Group       : Development/Tools/Building
Size        : 12053141
License     : GFDL-1.3 and GPL-3.0+
Signature   : DSA/SHA1, Fr 18 Mär 2016 09:09:29 CET, Key ID 
927f5cc86300dadb
Source RPM  : cross-avr-binutils-2.26-244.1.src.rpm
Build Date  : Fr 18 Mär 2016 09:08:37 CET
Build Host  : wildcard2
Relocations : (not relocatable)
Vendor      : obs://build.opensuse.org/devel:gcc
URL         : http://www.gnu.org/software/binutils/
Summary     : GNU Binutils
Description :
C compiler utilities: ar, as, gprof, ld, nm, objcopy, objdump, ranlib,
size, strings, and strip. These utilities are needed whenever you want
to compile a program or kernel.
Distribution: devel:gcc / openSUSE_13.2

Gibt es andere relativ aktuelle AVR-GCC Pakete?
Persönliche Seite #4599970
Lesenswert?

Ich würd da fast aufn Problem bei Binutils tippen, d.h. für weitere Info 
ld debuggen :-) oder direkt in der Binutils Mailingliste 
(binutils@sourceware.org) nachfragen, siehe 
http://sourceware.org/binutils/ unter "Mailing Lists".  Mit den ganzen 
Libs ist das aber für andere nicht leicht nachzuvollzuiehen.

Interessant wäre auch, ob das für ein "normales" Projekt oder 
Minibeispiel ohne Ethernut-Libs und -Startup auch auftritt, und ob es 
stört dass ein *.o in --start-group --end-group steht.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren