PTHREAD_STACK_MIN undefiniert mit -std=c99 oder --ansi
-
Hi!
Ich hab ein kleines Problem beim Kompilieren einer Library. Letzten Endes laeuft das Ganze darauf hinaus, dass im je nach Compiler-Schalter anscheinend die Variable PTHREAD_STACK_MIN nicht definiert ist.Folgendes Minimalbeispiel
#include <pthread.h> #include <limits.h> #include <stdio.h> int main() { printf("%d\n", PTHREAD_STACK_MIN); return 0; }
Kompilieren weder mit GCC noch mit ICC, wenn ich einen der Schalter -std=c99 oder --ansi mitgebe. Warum ist das so bzw. viel wichtiger: gibt es ein Workaround? (die Library, die ich kompilieren will, benoetigt std=c99 und verwendet die Variable an unzaehligen Orten, den Quellcode zu aendern ist KEINE Option).
-
Selbst definieren!
-
heh
stimmt, darauf bin ich noch nicht gekommen. Thx!
Werd ich morgen probieren.
Aber was wenn noch weitere Symbole undefiniert sind. Ich hatte gehofft das ist vllt. ein bekannteres Problem mit einem allgemeinen Workaround....
-
Naja, was erwartest du?
Wenn du dem Compiler sagst "mach ansi", dann wird er dir nicht die ganzen Compilererweiterungen zur Verfügung stellen, immerhin sagst du ihm ja explizit, dass du die gerade NICHT haben willst.
Also würde ich mal schätzen, dass deine Compilerflags falsch sind, wenn du doch die Erweiterungen brauchst.
-
Na ja, ich erwarte zumindest nicht, dass gewisse Teile von PThreads ploetzlich nicht mehr funktionieren, nur weil ich dem Compiler sag, ich will C99 verwenden.
-
Naja, das ist halt ein Problem. POSIX kennt PTHREAD_STACK_MIN nicht. Das ist eine Erweiterung. Und indem du dem gcc sagst: "sei ansi", schaltet er das mit ab. eventuell wird das mit nem define in den headern geregelt