Chyba paměti manipulační část

hlasů
8

Dostávám chybu link čas:

WARNING: /home/gulevich/development/camac-fedorov/camac/linux/k0607-lsi6/camac-k0607-lsi6.o (.ctors): unexpected non-allocatable section.
Did you forget to use ax/aw in a .S file?
Note that for example <linux/init.h> contains
section definitions for use in .S files.

Kód způsobuje chybu (montáž v zdroj C):

# if   defined(__ELF__)
#  define __SECTION_FLAGS , \aw\ , @progbits
 /* writable flag needed for ld .[cd]tors sections bug workaround) */
# elif defined(__COFF__)
#  define __SECTION_FLAGS , \dr\
 /* untested, may be writable flag needed */
# endif


asm
(
 .section .ctors __SECTION_FLAGS \n
 .globl __ctors_begin__\n
 __ctors_begin__:\n
 .previous\n
);

Existuje nějaký způsob, jak to opravit? Myšlenka je dát varaible __ctors_begin__na začátku určitého úseku paměti. Tento kód je dědictví, které fungovalo s použitím jiného sestavení systému a starší kompilátoru.

Význam tohoto assembleru je vysvětleno v odpovědi na mou předchozí otázku .

Položena 16/04/2010 v 06:45
zdroj uživatelem
V jiných jazycích...                            


4 odpovědí

hlasů
1

velmi dlouhý záběr, ale je sekce .ctors je definována jako chcete ve spojce skriptu? ld IIRC má podrobný možnost zobrazit linker skript.

Odpovězeno 24/04/2010 v 22:23
zdroj uživatelem

hlasů
0

Sekce fungovat dobře. Takže budu ignorovat toto upozornění.

Odpovězeno 20/07/2010 v 13:46
zdroj uživatelem

hlasů
0

Já bych dobule zkontrolovat hodnotu __SECTION_FLAGSjen proto, aby se ujistili, že skutečně obsahuje sekeru nebo AW. Já bych také být jisti, že __COFF__není definován a že __ELF__je. Pokud tak neučiní, může to být čas, aby chytit (možná) předchozí nebo budoucí verze kompilátoru / spojkou a vidět, jestli to řeší váš problém. Možná byste mohli sestavit svůj kód jako C ++ a nějak nechat překladač / linker / odkazů scritps dělají to, co mají dělat? Nevím úplně, ale to je místo, kde bych začít.

Odpovězeno 22/04/2010 v 19:17
zdroj uživatelem

hlasů
0

Dlouhý záběr: Možná vaše linker čeká ve formátu ELF (namísto COFF), az nějakého důvodu __ELF__není definováno? Ptal jste se výstup preprocesoru pro tento konkrétní verzi?

Odpovězeno 20/04/2010 v 12:19
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more