Параллельные вычисления в ИММ УрО РАН
 
 

Синтаксис команды вызова компилятора

cc [-newc] [flag ...] file ...
cc -oldc [flag ...] file ...
cc -migrate [flag ...] file ...

Флаги по умолчанию:
cc -newc -assume aligned_objects -cpp -call_shared -double -fprm n -fptm n -g0 -I/usr/include -inline manual -member_alignment -no_fp_reorder -no_misalign -object -O1 -oldcomment -p0 -no_pg -preempt_symbol -signed -arch generic -std0 -tune generic -writable_strings

В будущем выпуске DIGITAL UNIX версия языка по умолчанию будет изменена с -std0 (K&R стиль программирования, до-ANSI C-стандарт) на -std (ANSI C-стандарт с некоторыми послаблениями). Самая заметная разница в трансляции с -std вместо -std0 будет в возросшем числе диагностических сообщений. В редких случаях трансляция с -std приведет к проблемам, требующим изменения программного кода или указания -std0 в командной строке.
Изменение умолчания с -std0 на -std позволит легче переносить программы на платформу DIGITAL UNIX, т.к. сделает компиляцию более совместимой с компиляторами других фирм. Также улучшится качество компиляции, т.к. будет больше информации для компилятора.

Команда cc может содержать флаги, относящиеся и к команде cc, и к команде ld (линкер). Когда компилятор распознает позиционно-чувствительные флаги линкера ( -L, -all, -exclude, -exported_symbol, -hidden, -hidden_symbol, -kl, -l, -none, -non_hidden и -no_archive), он сохраняет их последовательность для линкера.

Все входные файлы, плюс результаты трансляции, загружаются в заданном порядке, чтобы создать исполняемую программу с именем по умолчанию a.out. Компилятор может выдавать объектные файлы в расширенном COFF формате ( нормальный результат ). Он может также выдавать объектные файлы в текстовом ассемблерном формате, если вызван с флагом -S. Вызванный с флагом -oldc, он может выдавать двоичный ассемблерный код, двоичный ucode или символический ucode.

Чтобы облегчить установку флагов компилятора по умолчанию, можно создать конфигурационный файл опций с именем comp.config. Этот файл должен быть записан в целевом директории компилятора /usr/lib/cmplrs/cc и должен содержать одинокую строку флагов компилятора. Флаги обрабатываются до определенных пользователем флагов в командной строке. Строка может быть до 8191 (BUFSIZ-1) байтов длины, до 64 полей (разделенных пробелами и табуляцией). Флаги, определенные в командной строке, перевешивают определенные в конфигурационном файле.

Диагностика, производимая cc, сделана так, чтобы сама себя объяснять. Некоторые сообщения могут выдаваться ассемблером или загрузчиком.