Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 7943525
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 4, 20262026-06-04T00:17:46+00:00 2026-06-04T00:17:46+00:00

I have two 3rd party libraries. One just has a build for armv6 and

  • 0

I have two 3rd party libraries. One just has a build for armv6 and the other just has a build for armv7. I need to use both of them in my iOS enterprise application. I’ve asked the armv6 library vendors to supply a armv7 version, but they haven’t been able to do so. (Note: I’ve already got the answer and will provide it. Someone else asked this in a comment and there wasn’t enough room to answer, so I’ve created its own question, and will provide my answer.)

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-04T00:17:48+00:00Added an answer on June 4, 2026 at 12:17 am

    The answer is to hack the armv6 library into thinking it’s an armv7 library. This will get you running until the vendor supplies the library. The reason this works is because the arm spec requires all arm architectures to be able to run code generated by previous architectures. So if an armv6 library told the linker it’s an armv7, the processor should still be able to run the code. Of course, you can’t go the other way. Use otool -h on both libraries to see the cputype and cpusubtype. On my libraries it was 12 for both cputypes, and 6 and 9 for the subtypes, indicating armv6 and armv7.
    Using a hex editor, look for the hex string 0xcefaedfe which is the marker MH_MAGIC (0xfeedface) reversed due to big/little endian.

    Following that, there’s a whole word with just 0xC. That’s the 12 for the cputype. Next is a word for 0x6. Change that to 0x9 for all cases.
    Now ld will think your library is an armv7, and act accordingly.

    You’re probably not done, because the armv6 may have linked in some thumbs library routines. If you get link errors (I got some for switch8 and switch16), you need to find the Darwin code that has them. Look for the file lib1funcs.asm on the web. This will probably have your missing functions. They’re probably conditionaled out, so adjust the #ifdefs and make sure they’re being compiled. This file tries to open some includes at the end, but since they’re at the end, they don’t affect anything, so just comment them out.

    Yes, it is a tremendous hack, but it gets you up and running. If you get your revised library, you just have to drop it in. No code change required. If it works for you, you’re still using Apple’s code, and it would be the same code you’d be running if you were armv6 only.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have to use two native libraries: one is my own and the other
I'm using two 3rd party libraries, which both implement their own 2D vector class.
I have two 3rd party libraries A.so and B.so that I am linking together
I have two WCF clients consuming a 3rd party web service. These two clients
I have 3rd party user control (a captcha control), which has a captcha image,
I have a project that uses 3 other projects as libraries and has quite
Let's say a 3rd-party DLL X has a global variable G I write two
What is best practice to use and distribute 3rd party jars? Approach one: Keep
I have a 3rd party .a library, which is apparently compiled for only armv6
Have two actionsheet buttons and one modalviewcontroller on mainviewcontroller in application. Now for two

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.