logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[Debian\GCC] - Nierozpoznawana opcja kompilacji przez kompilator

ADI-mistrzu 22 Sie 2013 08:25 1524 5
REKLAMA
  • #1 12654222
    ADI-mistrzu
    Poziom 30  
    Posty: 2261
    Pomógł: 37
    Ocena: 308
    Witam,

    Staram się skompilować program przy pomocy cross gcc dla procesora armV7, problem mam tylko w tym że kompilator nie przyjmuje dwóch opcji:

    --min_array_alignment=4 
    --no_unaligned_access

    Zwraca wtedy:
    Kod: Bash
    Zaloguj się, aby zobaczyć kod

    Nie mogę dojść o co chodzi, a w dokumentacji toolchain'a od ARM (Link) jest wyraźnie pokazane że takie opcje istnieją.
    Próbowałem kompilować pod gcc w wersji 4.4 oraz 4.7, brak rezultatów.

    Pracuje na systemie Debian 7 64bit.

    Pozdrawiam
  • REKLAMA
  • Pomocny post
    #2 12655839
    McMonster
    Poziom 32  
    Posty: 1942
    Pomógł: 182
    Ocena: 57
    Jak wywołujesz kompilację? Jesteś pewien, że używasz takiego samego toolchaina pod debianem, jaki opisuje ta dokumentacja?
  • REKLAMA
  • #3 12659336
    ADI-mistrzu
    Poziom 30  
    Posty: 2261
    Pomógł: 37
    Ocena: 308
    Miałeś rację, różnica była w toolchain.

    Ale mam inne pytanie jeśli mogę jeszcze zadać w tym temacie:

    Zgłaszany jest mi taki oto problem:
    Kod: Bash
    Zaloguj się, aby zobaczyć kod

    Nr błędu odnosi się od tej linii:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

    I nie mogę dojść o co mu chodzi, ITP_ECN_... są zdefiniowane tak:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
  • REKLAMA
  • #4 12659513
    szelus
    Poziom 34  
    Posty: 1508
    Pomógł: 315
    Ocena: 53
    W linijce masz dwa wskaźniki - "einfo" i "e". Któryś z nich jest zadeklarowany z niekompletnym typem, coś w stylu:
    Kod: text
    Zaloguj się, aby zobaczyć kod
    podczas gdy struct costam pozostaje niezdefiniowane (np. brak dołączenia pliku nagłówkowego).
  • REKLAMA
  • #5 12672882
    ADI-mistrzu
    Poziom 30  
    Posty: 2261
    Pomógł: 37
    Ocena: 308
    Okazało się że dowiązania niektóre nie działały, po ich naprawie kompilacja ruszyła od razu, ale stanęła na czymś takim:
    Kod: Bash
    Zaloguj się, aby zobaczyć kod

    Odnosi się to do tej linni:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

    Chodzi mu o samą definicję BUILD_BUG_ON, która najpewniej jest tutaj:
    http://lxr.free-electrons.com/source/include/linux/bug.h#L21
    W necie znalazłem że bywa z tym problem, nie nie znalazłem rozwiązania, podobno wystarczy wyłączyć optymalizację -Os, ale wolał bym ją zostawić.
  • #6 12693114
    szelus
    Poziom 34  
    Posty: 1508
    Pomógł: 315
    Ocena: 53
    Chyba nie złapałeś funkcji celu. Makro BUID_BUG_ON jest specjalnie tak napisane, aby kompilacja się nie powiodła, gdy jest spełniony podany w nim warunek. Doprowadź do tego, aby warunek był niespełniony, czyli aby ta stała była równa rozmiarowi struktury osdv1_cdb.
REKLAMA