Warum macht Apples Clang (aus Xcode 5) typefinfos private_extern für arm64?

8

Wenn Sie diese Datei p3.cxx kompilieren:

%Vor%

So:

%Vor%

und

%Vor%

und dann das Symbol der "typeinfo for foobarclass":

%Vor%

Warum ist das Symbol im Arm64-Fall schwach privat ? Dies bedeutet, dlsym () wird es zur Laufzeit nicht finden. Dies bricht bestimmte Low-Level-Sachen in der LibreOffice-Codebasis.

    
tml 23.12.2013, 23:41
quelle

2 Antworten

1

Ich habe die gleiche Frage im entsprechenden Apple Developer Forum gestellt und die Antwort erhalten, dass dies beabsichtigt ist, die Anzahl der global sichtbaren Symbole in einer ausführbaren Datei zu reduzieren. Also muss ich einfach damit leben.

    
tml 22.01.2014 10:32
quelle
-2

Setzen Sie die Architektur in der Build-Einstellung auf Standardarchitekturen (armv7, armv7s)

%Vor%

  

Xcode kann Ihre App sowohl mit 32-Bit- als auch 64-Bit-Binärdateien erstellen   inbegriffen. Diese kombinierte Binärdatei erfordert ein Mindesteinsatzziel von   iOS 7 oder höher.

     

Hinweis: Mit einer zukünftigen Version von Xcode können Sie eine einzelne App erstellen, die   unterstützt die 32-Bit-Laufzeit unter iOS 6 und höher und unterstützt die   64-Bit-Laufzeit auf iOS 7.

  • Xcode kann beide 64bit 32bit Binaries für eine einzelne App erstellen, aber die Das Implementierungsziel sollte iOS7 sein.
  • Sie sagen, in Zukunft wird es iOS 6.0 32-Bit-Binär wird funktioniert gut in iPhone 5S (64-Bit-Prozessor).

Aktualisierung In Xcode 5.0.1 wurde die Unterstützung für die Erstellung von 64-Bit-Binärdateien für iOS 5.1.1 hinzugefügt.

  

Xcode 5.0.1 kann Ihre App mit 32-Bit- und 64-Bit-Binärdateien erstellen   inbegriffen. Diese kombinierte Binärdatei erfordert ein Mindesteinsatzziel von   iOS 5.1.1 oder höher Die 64-Bit-Binärdatei wird nur auf 64-Bit-Geräten ausgeführt   mit iOS 7.0.3 und höher.

    
Vishal Khatri 22.01.2014 06:55
quelle

Tags und Links