Kompilatory języka C MIPS oraz MIPSpro C Compiler zostały zainstalowane na komputerach Silicon Graphics (kliper, fregata, galeon). Są one w pełni zgodne ze standardami ANSI X3.159-1989 i FIPS PUB 160. Akceputują mechanizmy: kopiowanie struktur, przekazywanie argumentów będących strukturami i zwracanie struktur w instrukcji "return". Akceptują dyrektywę "restrict" przy przenoszeniu kodu z maszyn Cray i Convex. Preferowane jest automatyczne zrównoleglanie kodu z opcją APO.

Można je wywołać wydając następujące komendy:

 

cc [ -o32 | -n32 | -64 ][ opcje ] nazwa pliku
c89 [ -o32 | -n32 | -64 ][ opcje ] nazwa pliku


Wspierają one trzy różne Binarne Interfejsy Aplikacji (ABI) w zależności od wybranej opcji: -o32, -n32 i -64 tworzą pliki wykonywalne w następujących formatach:

 

  • elf
  • pośrednie binarne
  • symboliczny asembler
  • binarne w unikodzie


Komendy linii poleceń umożliwiające wybór ABI oraz ISA (Zestawu Instrukcji):

 

  • -o32/-32 - generowanie 32-bitowego obiektu. Jest to opcja domyślna dla -mips2, pod warunkiem, że nie wybrano -mips1. Stosuje się ją także podczas kompilowania na architektury z wyjątkiem R8000
  • -64 - generowanie 64-bitowego obiektu. Jest to opcja domyślna dla -mips4, pod warunkiem, że nie wybrano -mips3. Stosuje się ją także podczas kompilowania na architektury R8000
  • -n32 - generowanie n32 obiektu. Jest to opcja domyślna dla -mips3, pod warunkiem, że nie wybrano -mips4
  • -mips1 - generowanie kodu używającego zestawu instrukcji architektur R2000/R3000 RISC i linkowanie bibliotek mips1.
  • -mips2 - generowanie kodu używającego zestawu instrukcji architektur MIPS II i linkowanie bibliotek mips2. Opcja domyślna dla -o32
  • -mips3 - generowanie kodu używającego pełnego zestawu instrukcji architektur MIPS III i linkowanie bibliotek mips3. Opcja domyślna dla -n32, jeżeli nie wybrano -64
  • -mips4 - generowanie kodu używającego pełnego zestawu instrukcji architektur MIPS IV linkowanie bibliotek mips2. Opcja domyślna dla -n32, jeżeli nie wybrano -64


Komendy linii poleceń:

  • -ansi - ANSI/ISO C
  • -ansiposix - ANSI/ISO C. Jest to opcja przestarzała i zostanie usunięta w następnych wersjach
  • -cckr - tradycyjna K&R/Version7 C z rozszerzeniami takimi: jak prototypowanie, void, void* oraz nowymi zdefiniowanymi symbolami preprocesora
  • -xansi - ANSI/ISO C z wszystkimi rozszerzeniami takimi jak w -cckr
  • -float - kompilator wykonuje operacje zmiennoprzecionkowe z pojedynczą precyzją dla wszystkich zmiennch float.
  • -L <katalog> - zmieniony zostaje algorytm poszukiwania bibliotek w trybie XPG4. Najpierw przeszukiwane są katalogi wyspecyfikowane w operandzie <katalog>, a następni domyślne foldery. Możliwe są wielokrotne wystąpienia opcji -L <katalog>
  • -l biblioteka - przeszukanie biblioteki lib.IRbiblioteka. Obowiązuje w trybie XPG4. Z związku z tym, że biblioteka jest przeszukiwana po wystąpienie -l biblioteka, ma znaczenie kolejność występowania operandów -l biblioteka. * -signed - wszystkie zmienna\e zadeklarowane jako char traktowane są jak signed char.
  • -sopt - wywołanie C źródło-źródło optymalizera. Jest to inny optimalizer, niż wywoływany z -O, -O2 lub -O3.
  • -use_readwrite_const - stałe zmienne i stringi umieszczne są w segnenci odczytu i zapisu
  • -Xcpluscomm - możliwe są komentarze // z C++
  • -c - ukrycie fazy ładowania podczas kompilacji i wytworzenie pliku nawet jeśli tylko jeden plik jest kompilowany
  • -g0 - nie dołączenia informacji dla debuggera. Wartość domyślna.
  • -g/-2 - włączenie informacji dla debuggera do symbolicznego debuggowania. Nie są wykonywane optymalizacje, które mogłyby ograniczyć możliwość debuowania.
  • -g3 - dodatkowe informacje dla debuggera dla wpełnia zoptymalizowanego kodu.Opcja ta sprawia, iż debugger jest niedokładny i może być używana razem z -O, -O1, -O2, -O3
  • -pednatic - ostrzeganie w trybie ANSI/ISO, że dyrektywa #ident jest niestandardowa
  • -fullwarn - wykonanie dodatkowych sprawdzeń i generowanie dodatkowych ostrzeżeń, które domyślnie są pomijane
  • -w - zatajenie ostrzeżeń
  • -w2 - ostrzeżenia traktowane są jako błędy
  • -ansiE - w środowiskuANSI/ISO C, użycie niestandardowych cech spowoduje wygenerowanie wiadomości diagnostycznych, które będą traktowane jako błędy
  • -ansiW - znaczenie takie samo jak - ansi
  • -woff all - zatajenie osrzeżeń
  • -woff <lista numerów> - w środowisku ANSI/ISO C, zatajenie ostrzeżeń których numery zostały wyspecyfikowane w <lista numerów>
  • -o <nazwa>- nadanie nazwy plikowy wyjściowenu nazwy <nazwa>
  • -On - wykonanie optymalizacji na poziomie n, gdzie n jest z przedziału 0..3
    • -O0 - wyłączenie optymalizacji. wartość domyślna
    • -O1 - włączenie lokalnej optymalizacji, która może zostać wykonana szybko
    • -O/-O2 - włączenie rozszerzonej optymalizacji
    • -O3 - włączenie "agresywnej" optymalizacji.
  • -S - skompilowanie pliku źródłowego i zapisanie wyniku w asemblerze symbolicznym
  • -M - uruchomienie tylko makro preprocesora oraz sporządzenie zależności dla make. Wynik przesyłany jest na standardowe wyjście

Centrum Informatyczne Trójmiejskiej Akademickiej Sieci Komputerowej
ul. G. Narutowicza 11/12, 80-233 Gdańsk   |   tel. 58-347-24-11
email: office@task.gda.pl   |   NIP: 584-020-35-93