Kompilierung schlägt mit OpenMP unter Mac OS X Lion fehl (memcpy und SSE intrinsics)

Ich bin auf folgendes Problem gestoßen. Das folgende Code-Snippet lässt sich unter Mac OS X nicht mit einem von mir getesteten Xcode verknüpfen (4.4, 4.5)

#include <stdlib.h>
#include <string.h>
#include <emmintrin.h>

int main(int argc, char *argv[])
{
  char *temp;
#pragma omp parallel
  {
    __m128d v_a, v_ar;
    memcpy(temp, argv[0], 10);
    v_ar = _mm_shuffle_pd(v_a, v_a, _MM_SHUFFLE2 (0,1));
  }
}

Der Code dient nur als Beispiel und würde beim Ausführen einen Fehler verursachen. Der Punkt ist, dass es nicht kompiliert. Die Zusammenstellung erfolgt in der folgenden Zeile

/Applications/Xcode.app/Contents/Developer/usr/bin/gcc test.c -arch x86_64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk -mmacosx-version-min=10.7 -fopenmp

 Undefined symbols for architecture x86_64:
"___builtin_ia32_shufpd", referenced from:
    _main.omp_fn.0 in ccJM7RAw.o
"___builtin_object_size", referenced from:
    _main.omp_fn.0 in ccJM7RAw.o
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status

Der Code kompiliert einwandfrei, wennnicht Verwendung der-fopenmp Fahne angcc. Jetzt googelte ich herum und fand eine Lösung für das erste Problem, das damit zusammenhängtmemcpy, das fügt hinzu-fno-builtin, oder-D_FORTIFY_SOURCE=0 zugcc Argumentliste. Ich habe es nicht geschafft, das zweite Problem zu lösen (sse intrinsic).

Kann mir jemand helfen, das zu lösen? Die Fragen:

am wichtigsten: Wie wird man den Fehler "___builtin_ia32_shufpd" los?Was genau ist der Grund für diememcpy Problem, und was macht die-D_FORTIFY_SOURCE=0 Flagge irgendwann tun?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage