Bei der Portierung von C-Quellprogrammen aus UNIX-Systemen in das POSIX-BS2000 muss die unterschiedliche, implementierungsabhängige Behandlung von extern sichtbaren Namen durch die Compiler beachtet werden.
Der BS2000-Compiler C/C++ erzeugt aus den externen Namen des Quellprogramms (z.B. Funktionsnamen) entsprechende externe Namen für den Binder (Entry-Namen). Dabei werden standardmäßig die Kleinbuchstaben in Großbuchstaben und die Unterstriche (_) in Dollarzeichen ($) umgewandelt (siehe auch
„Generierung der Entry-Namen bei LLMs“ (Optionen zur Objektgenerierung)). Durch diese Umwandlungen wird sichergestellt, dass die vom Compiler erzeugten Objekte auch mit anderen Objekten (z.B. von anderssprachigen BS2000-Compilern erzeugte Objekte oder Objekte im Objektmodul-Format) verknüpfbar sind.
Bei der Wahl der extern sichtbaren Namen in C-Quellprogrammen muss deshalb unbedingt darauf geachtet werden, dass sich zwei Namen nicht nur durch Groß-/Kleinschreibung unterscheiden. Z.B. werden die Funktionsnamen getc
und getC
standardmäßig auf den gleichen externen Namen GETC
abgebildet. Soweit keine Namen von anderssprachigen BS2000-Compilern betroffen sind, kann man dieses Verhalten mit der Option -K llm_case_lower
(siehe "Optionen zur Objektgenerierung") verhindern.