Questions tagged [bitcode]

An intermediate representation of an LLVM-compiled program, which can be used by Apple to optimize binaries submitted to their App Store(s) without requiring involvement from the original developer.

Coming to general attention during WWDC 2015, Bitcode is according to Apple's docs:

an intermediate representation of a compiled program. Apps you upload to iTunes Connect that contain bitcode will be compiled and linked on the App Store. Including bitcode will allow Apple to re-optimize your app binary in the future without the need to submit a new version of your app to the store.

Likely a direct usage of LLVM's Bitcode file format, or perhaps the name is being repurposed to market a higher-level system involving the same.

321 questions
1
vote
1 answer

What is the source of Xcode build settings defaults?

I have two Xcode projects. Neither of them have custom ENABLE_BITCODE setting .pbxproj file. But in one of them it's set by default to YES and in another one it's set to NO. If I enable Customized filter - it's empty in both project. Where the…
1
vote
0 answers

Modify a bitcode enabled IPA to load a framework or dylib

I have only a bitcode enabled IPA from a user and I need to modify the IPA such that it will load a framework or dylib and execute code from that dylib. Articles I read online talk about importing frameworks while working on the source code in Xcode…
localacct
  • 611
  • 5
  • 13
1
vote
1 answer

How to link the bitcodes of PostgreSQL

I want to run llvm-slicer (source) for PostgreSQL main executable file (i.e., PG_ROOT/src/backend/postgres) to carry backward slicing on PostgreSQL. llvm-slicer runs on top of bitcode (.bc file). I have compiled PostgreSQL via ./configure…
Tim He
  • 350
  • 2
  • 13
1
vote
0 answers

Define external c functions (dlopen) in LLVM Pass

I am trying to insert a call to dlopen in my LLVM Pass when processing bitcode files The function signature for dlopen (based on https://man7.org/linux/man-pages/man3/dlopen.3.html) is void *dlopen(const char *filename, int flags); Currently my…
localacct
  • 611
  • 5
  • 13
1
vote
2 answers

WatchOS App for React-Native IOS app is not uploading to App Store Connect (ITMS-90496: Invalid Executable)

We have developed a Watch App for our React-Native IOS app using SwiftUI. After the the integrations are completed, we've tried to upload the build to TestFlight for testing purposes. In the process, since enabling bitcode is mandatory for WatchOS…
1
vote
1 answer

Jit compiled LLVM IR can't call C functions on FreeBSD (but can on MacOS)

I suspect that this will end up linker related, but looking for any suggestions. Have a simple C++ code that loads an llvm IR file as a module, compiles it and executes a function from that module. IR module conversely declares a C function from the…
mrx
  • 21
  • 2
1
vote
0 answers

Affect on existing features in the app when Bitcode enabled vs disabled

Does enabling or disabling bitcode would affect the existing features of the app in any way ? For eg: If I choose to untick the option "Rebuild from bitcode" while sharing the ipa to QA team and on the other hand If I chose to enable bitcode when I…
jshivam
  • 46
  • 5
1
vote
0 answers

Getting Crashes but showing wrong/old Version number in Firebase Crashlytics

Bitcode: No Firebase Crashlytics: 8.5.0 (Latest) I integrated the Firebase Crashlytics in my app on version 3.1.8. On the testing device, it reports me correctly. but when I see the report of online users it reporting me crashes but the version is…
Usama Sadiq
  • 587
  • 1
  • 4
  • 21
1
vote
0 answers

Getting a persistent ID for an LLVM BasicBlock

I'm looking for a way -- using the LLVM API -- to obtain an identifier for a BasicBlock which I can use to look up (again via the API) the same block later. Whatever this ID is, I need it to be "stable over serialisation" (remain valid and refer to…
Edd Barrett
  • 3,425
  • 2
  • 29
  • 48
1
vote
0 answers

Bitcode issue when building a Universal (FAT) iOS Framework which has external dependancies integrated via a podspec

My goal is to build a universal framework that can be use in iOS devices and simulators. I want to be able to distribute this framework using cocoapods which also I was able to do successfully. My framework has some external dependancies, the main…
Shawn Frank
  • 4,381
  • 2
  • 19
  • 29
1
vote
2 answers

iOS - Archiving "bitcode bundle" could not be generated - Flutter

I am facing this issue and unable to release the app in Appstore. App is already in App Store and i want to release a new version now. This issue is in my latest build . I am able to build the product and its also running properly on iOS…
shruti tupkari
  • 1,149
  • 1
  • 6
  • 17
1
vote
1 answer

Alamofire 5.2.2 TestFlight watchOS build crashes on Apple Watch Series 3 devices (32-bit) (Bitcode related?)

I have a WatchOS Application on TestFlight that is crashing on startup on Apple Watch Series 3 devices (32-bit). It works flawlessly on Simulators (Xcode 11.7) and Apple Watch Series 4. I am using Alamofire 5.2.2 with Swift Package Manager. Latest…
marcus
  • 11
  • 1
1
vote
3 answers

How to make the LLVM Opt tool to report which analysis passes successfully used by each optimization -O1, -O2, etc?

I wonder if it is possible to make the LLVM opt tool to report in detail which optimization passes are successfully used during each optimization level like -O1,-O2, etc. For example, here is the naive bitcode of the file foo.bc: define dso_local…
Trung Ta
  • 1,582
  • 1
  • 16
  • 25
1
vote
1 answer

iOS cronet ld error with enable_ios_bitcode flag

I build iOS Cronet with flag 'enable_ios_bitcode=true'. However, I meet the error below: ld: section __bundle (address=0x003F8000, size=1136419986) would make the output executable exceed available address range for architecture armv7 clang: error:…
1
vote
1 answer

How to extract the __bitcode/__bundle section from a MachO binary

For a binary with embedded bitcode (i.e., compiled with -fembed-bitcode). How can i just extract that section such that I can use that bitcode file like any other bitcode file e.g, run opt or llvm-dis As a testcase i have this hello-world…
A. K.
  • 34,395
  • 15
  • 52
  • 89