OT: Apple 64-bit changes

classic Classic list List threaded Threaded
17 messages Options
Reply | Threaded
Open this post in threaded view
|

OT: Apple 64-bit changes

Randolph M. Fritz-2
I am unable to find anything from Apple on the specific changes that have been made to command line app compilation in Mojave.

I think what has been done is that /usr/include has been moved, and longs and pointers are now 64 bits. Do I have that right?

--
Randolph M. Fritz
Reply | Threaded
Open this post in threaded view
|

Re: OT: Apple 64-bit changes

Randolph M. Fritz-2
Here's a very old list from Apple; anyone care to say if it is still correct?


On Fri, Oct 19, 2018 at 2:06 PM Randolph M. Fritz <[hidden email]> wrote:
I am unable to find anything from Apple on the specific changes that have been made to command line app compilation in Mojave.

I think what has been done is that /usr/include has been moved, and longs and pointers are now 64 bits. Do I have that right?

--
Randolph M. Fritz
Reply | Threaded
Open this post in threaded view
|

Re: OT: Apple 64-bit changes

Joshua Root-8
In reply to this post by Randolph M. Fritz-2
On 2018-10-20 08:06 , Randolph M. Fritz wrote:
> I am unable to find anything from Apple on the specific changes that
> have been made to command line app compilation in Mojave.
>
> I think what has been done is that /usr/include has been moved, and
> longs and pointers are now 64 bits. Do I have that right?

64-bit has been the default for many OS versions now. The difference is
that the 10.14 SDK no longer allows compiling for 32-bit.

You are correct that the headers that were previously in /usr/include
are now only available in the SDK, but that change is unrelated to the
removal of 32-bit support.

- Josh
Reply | Threaded
Open this post in threaded view
|

Re: OT: Apple 64-bit changes

Joshua Root-8
In reply to this post by Randolph M. Fritz-2
That document is still correct as far as it goes.

- Josh

On 2018-10-20 08:14 , Randolph M. Fritz wrote:
> Here's a very old list from Apple; anyone care to say if it is still
> correct?
>
> https://developer.apple.com/library/archive/documentation/Darwin/Conceptual/64bitPorting/transition/transition.html
> --
> Randolph M. Fritz || +1 206 659-8617 || [hidden email]
> <mailto:[hidden email]>
Reply | Threaded
Open this post in threaded view
|

Re: OT: Apple 64-bit changes

Joshua Root-8
In reply to this post by Joshua Root-8
On 2018-10-20 08:39 , Joshua Root wrote:

> On 2018-10-20 08:06 , Randolph M. Fritz wrote:
>> I am unable to find anything from Apple on the specific changes that
>> have been made to command line app compilation in Mojave.
>>
>> I think what has been done is that /usr/include has been moved, and
>> longs and pointers are now 64 bits. Do I have that right?
>
> 64-bit has been the default for many OS versions now. The difference is
> that the 10.14 SDK no longer allows compiling for 32-bit.
>
> You are correct that the headers that were previously in /usr/include
> are now only available in the SDK, but that change is unrelated to the
> removal of 32-bit support.

These changes are documented here BTW:
<https://developer.apple.com/documentation/xcode_release_notes/xcode_10_release_notes>

- Josh
Reply | Threaded
Open this post in threaded view
|

Re: OT: Apple 64-bit changes

Christopher Jones
In reply to this post by Randolph M. Fritz-2

It is correct but has nothing really to do with the specific changes in macOS 10.14. The macOS has been 64 bit for a long time now.

Mojave depreciates the running of 32 bit applications, and removes the ability to build them, using the 10.14 SDK.

On 19 Oct 2018, at 10:14 pm, Randolph M. Fritz <[hidden email]> wrote:

Here's a very old list from Apple; anyone care to say if it is still correct?


On Fri, Oct 19, 2018 at 2:06 PM Randolph M. Fritz <[hidden email]> wrote:
I am unable to find anything from Apple on the specific changes that have been made to command line app compilation in Mojave.

I think what has been done is that /usr/include has been moved, and longs and pointers are now 64 bits. Do I have that right?

--
Randolph M. Fritz
Reply | Threaded
Open this post in threaded view
|

Re: OT: Apple 64-bit changes

Randolph M. Fritz-2
Thanks. So – what does that mean for a command line application? Or does it make any difference at all?
--
Randolph M. Fritz || +1 206 659-8617 || [hidden email]


On Sat, Oct 20, 2018 at 1:18 AM Chris Jones <[hidden email]> wrote:

It is correct but has nothing really to do with the specific changes in macOS 10.14. The macOS has been 64 bit for a long time now.

Mojave depreciates the running of 32 bit applications, and removes the ability to build them, using the 10.14 SDK.

On 19 Oct 2018, at 10:14 pm, Randolph M. Fritz <[hidden email]> wrote:

Here's a very old list from Apple; anyone care to say if it is still correct?


On Fri, Oct 19, 2018 at 2:06 PM Randolph M. Fritz <[hidden email]> wrote:
I am unable to find anything from Apple on the specific changes that have been made to command line app compilation in Mojave.

I think what has been done is that /usr/include has been moved, and longs and pointers are now 64 bits. Do I have that right?

--
Randolph M. Fritz
Reply | Threaded
Open this post in threaded view
|

Re: OT: Apple 64-bit changes

Christopher Jones


On 20 Oct 2018, at 11:54 am, Randolph M. Fritz <[hidden email]> wrote:

Thanks. So – what does that mean for a command line application? Or does it make any difference at all?

Depends what you mean, building or running ?

The bottom line is the writing has been on the wall for 32 bit applications in macOS for a while, and the changes in 10.14 are the start of the process to completely remove support. Rather than looking for ways to keep 32 bit builds going, I would suggest your effort is better spent migrating any applications you use to 64 bit builds.

It would help if you had any specific examples, rather than to talk in generalities.

Chris

--
Randolph M. Fritz || +1 206 659-8617 || [hidden email]


On Sat, Oct 20, 2018 at 1:18 AM Chris Jones <[hidden email]> wrote:

It is correct but has nothing really to do with the specific changes in macOS 10.14. The macOS has been 64 bit for a long time now.

Mojave depreciates the running of 32 bit applications, and removes the ability to build them, using the 10.14 SDK.

On 19 Oct 2018, at 10:14 pm, Randolph M. Fritz <[hidden email]> wrote:

Here's a very old list from Apple; anyone care to say if it is still correct?


On Fri, Oct 19, 2018 at 2:06 PM Randolph M. Fritz <[hidden email]> wrote:
I am unable to find anything from Apple on the specific changes that have been made to command line app compilation in Mojave.

I think what has been done is that /usr/include has been moved, and longs and pointers are now 64 bits. Do I have that right?

--
Randolph M. Fritz


smime.p7s (2K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: OT: Apple 64-bit changes

Jack Howarth
    Currently in 10.14, the depreciation of the 32-bit support is achieved through restricting the linker behavior when the 10.14 SDK is in use. Using the 10.14 SDK results in the libSystem.tbd being used instead of libSystem.dylib. The libSystem.tbd file masks the i386 symbols contained in libSystem.dylib. So you can still compile i386 code in 10.14 on the command line but have to either avoid specifying the 10.14 SDK or play with the linkage flags to make sure that /usr/lib/libSystem.dylib is found before libSystem.tbd.

Jack

On Sat, Oct 20, 2018 at 7:14 AM Christopher Jones <[hidden email]> wrote:


On 20 Oct 2018, at 11:54 am, Randolph M. Fritz <[hidden email]> wrote:

Thanks. So – what does that mean for a command line application? Or does it make any difference at all?

Depends what you mean, building or running ?

The bottom line is the writing has been on the wall for 32 bit applications in macOS for a while, and the changes in 10.14 are the start of the process to completely remove support. Rather than looking for ways to keep 32 bit builds going, I would suggest your effort is better spent migrating any applications you use to 64 bit builds.

It would help if you had any specific examples, rather than to talk in generalities.

Chris

--
Randolph M. Fritz || +1 206 659-8617 || [hidden email]


On Sat, Oct 20, 2018 at 1:18 AM Chris Jones <[hidden email]> wrote:

It is correct but has nothing really to do with the specific changes in macOS 10.14. The macOS has been 64 bit for a long time now.

Mojave depreciates the running of 32 bit applications, and removes the ability to build them, using the 10.14 SDK.

On 19 Oct 2018, at 10:14 pm, Randolph M. Fritz <[hidden email]> wrote:

Here's a very old list from Apple; anyone care to say if it is still correct?


On Fri, Oct 19, 2018 at 2:06 PM Randolph M. Fritz <[hidden email]> wrote:
I am unable to find anything from Apple on the specific changes that have been made to command line app compilation in Mojave.

I think what has been done is that /usr/include has been moved, and longs and pointers are now 64 bits. Do I have that right?

--
Randolph M. Fritz

Reply | Threaded
Open this post in threaded view
|

Re: OT: Apple 64-bit changes

Mark Anderson-10
In reply to this post by Randolph M. Fritz-2
When I run a 32 bit command line app, I get the popup warning that this “Isn’t optimized for my Mac”. It’s kind of annoying that they’re removing the possibility when things like wine really need a 32bit space since Windows is no where near as far along on 32->64 bit. I hope they’re planning to spin up hypervisor.framrwork or something to fix that. 

On Sat, Oct 20, 2018 at 6:54 AM Randolph M. Fritz <[hidden email]> wrote:
Thanks. So – what does that mean for a command line application? Or does it make any difference at all?

--
Randolph M. Fritz || +1 206 659-8617 || [hidden email]


On Sat, Oct 20, 2018 at 1:18 AM Chris Jones <[hidden email]> wrote:

It is correct but has nothing really to do with the specific changes in macOS 10.14. The macOS has been 64 bit for a long time now.

Mojave depreciates the running of 32 bit applications, and removes the ability to build them, using the 10.14 SDK.

On 19 Oct 2018, at 10:14 pm, Randolph M. Fritz <[hidden email]> wrote:

Here's a very old list from Apple; anyone care to say if it is still correct?


On Fri, Oct 19, 2018 at 2:06 PM Randolph M. Fritz <[hidden email]> wrote:
I am unable to find anything from Apple on the specific changes that have been made to command line app compilation in Mojave.

I think what has been done is that /usr/include has been moved, and longs and pointers are now 64 bits. Do I have that right?

--
Randolph M. Fritz
--
Sent from Gmail Mobile on iPhone
Reply | Threaded
Open this post in threaded view
|

Re: OT: Apple 64-bit changes

Ryan Schmidt-24


On Oct 21, 2018, at 11:57, Mark Anderson wrote:

> When I run a 32 bit command line app, I get the popup warning that this “Isn’t optimized for my Mac”.

You will get that popup when you run *any* 32-bit app.

> It’s kind of annoying that they’re removing the possibility when things like wine really need a 32bit space since Windows is no where near as far along on 32->64 bit.

Apple appears not to care.

> I hope they’re planning to spin up hypervisor.framrwork or something to fix that.

It depends who you mean by "they". If you mean Apple, then no; they are clearly moving the Mac along a path of removing 32-bit support. On the other hand, CodeWeavers, one of the developers of Wine, has been working on a way to continue to run 32-bit Windows apps in Wine on macOS even after Apple removes the ability to run 32-bit programs. I do not know the specifics of how they plan to accomplish this.

Reply | Threaded
Open this post in threaded view
|

Re: OT: Apple 64-bit changes

Mark Anderson-10
Oh yeah, I mean CodeWeavers / WineHQ - Apple doesn't care at all. I've been to enough WWDCs to know that. Good to know they are on it.

—Mark
_______________________
Mark E. Anderson <[hidden email]>


On Mon, Oct 22, 2018 at 12:13 AM Ryan Schmidt <[hidden email]> wrote:


On Oct 21, 2018, at 11:57, Mark Anderson wrote:

> When I run a 32 bit command line app, I get the popup warning that this “Isn’t optimized for my Mac”.

You will get that popup when you run *any* 32-bit app.

> It’s kind of annoying that they’re removing the possibility when things like wine really need a 32bit space since Windows is no where near as far along on 32->64 bit.

Apple appears not to care.

> I hope they’re planning to spin up hypervisor.framrwork or something to fix that.

It depends who you mean by "they". If you mean Apple, then no; they are clearly moving the Mac along a path of removing 32-bit support. On the other hand, CodeWeavers, one of the developers of Wine, has been working on a way to continue to run 32-bit Windows apps in Wine on macOS even after Apple removes the ability to run 32-bit programs. I do not know the specifics of how they plan to accomplish this.

Reply | Threaded
Open this post in threaded view
|

Re: OT: Apple 64-bit changes

Randolph M. Fritz-2
Thanks, everyone, for the discussion. I'll have to look into how it applies specifically to our app.
--
Randolph M. Fritz || +1 206 659-8617 || [hidden email]


On Mon, Oct 22, 2018 at 8:54 PM Mark Anderson <[hidden email]> wrote:
Oh yeah, I mean CodeWeavers / WineHQ - Apple doesn't care at all. I've been to enough WWDCs to know that. Good to know they are on it.

—Mark
_______________________
Mark E. Anderson <[hidden email]>


On Mon, Oct 22, 2018 at 12:13 AM Ryan Schmidt <[hidden email]> wrote:


On Oct 21, 2018, at 11:57, Mark Anderson wrote:

> When I run a 32 bit command line app, I get the popup warning that this “Isn’t optimized for my Mac”.

You will get that popup when you run *any* 32-bit app.

> It’s kind of annoying that they’re removing the possibility when things like wine really need a 32bit space since Windows is no where near as far along on 32->64 bit.

Apple appears not to care.

> I hope they’re planning to spin up hypervisor.framrwork or something to fix that.

It depends who you mean by "they". If you mean Apple, then no; they are clearly moving the Mac along a path of removing 32-bit support. On the other hand, CodeWeavers, one of the developers of Wine, has been working on a way to continue to run 32-bit Windows apps in Wine on macOS even after Apple removes the ability to run 32-bit programs. I do not know the specifics of how they plan to accomplish this.

Reply | Threaded
Open this post in threaded view
|

Re: OT: Apple 64-bit changes

Randolph M. Fritz-2
I found Joshua Root's messages in the spam trap, so now I understand a bit more.

When you say "The difference is that the 10.14 SDK no longer allows compiling for 32-bit" does that mean that particular capabilities have been removed from the compiler, the libraries, or Xcode?
--
Randolph M. Fritz


On Tue, Oct 23, 2018 at 8:29 PM Randolph M. Fritz <[hidden email]> wrote:
Thanks, everyone, for the discussion. I'll have to look into how it applies specifically to our app.
--
Randolph M. Fritz || +1 206 659-8617 || [hidden email]


On Mon, Oct 22, 2018 at 8:54 PM Mark Anderson <[hidden email]> wrote:
Oh yeah, I mean CodeWeavers / WineHQ - Apple doesn't care at all. I've been to enough WWDCs to know that. Good to know they are on it.

—Mark
_______________________
Mark E. Anderson <[hidden email]>


On Mon, Oct 22, 2018 at 12:13 AM Ryan Schmidt <[hidden email]> wrote:


On Oct 21, 2018, at 11:57, Mark Anderson wrote:

> When I run a 32 bit command line app, I get the popup warning that this “Isn’t optimized for my Mac”.

You will get that popup when you run *any* 32-bit app.

> It’s kind of annoying that they’re removing the possibility when things like wine really need a 32bit space since Windows is no where near as far along on 32->64 bit.

Apple appears not to care.

> I hope they’re planning to spin up hypervisor.framrwork or something to fix that.

It depends who you mean by "they". If you mean Apple, then no; they are clearly moving the Mac along a path of removing 32-bit support. On the other hand, CodeWeavers, one of the developers of Wine, has been working on a way to continue to run 32-bit Windows apps in Wine on macOS even after Apple removes the ability to run 32-bit programs. I do not know the specifics of how they plan to accomplish this.

Reply | Threaded
Open this post in threaded view
|

Re: OT: Apple 64-bit changes

Mark Anderson-10
My understanding is library and XCode. Clang will still compile 32bit I think since it compiles 32 bit everywhere else.

On Wed, Oct 24, 2018 at 4:55 PM Randolph M. Fritz <[hidden email]> wrote:
I found Joshua Root's messages in the spam trap, so now I understand a bit more.

When you say "The difference is that the 10.14 SDK no longer allows compiling for 32-bit" does that mean that particular capabilities have been removed from the compiler, the libraries, or Xcode?

--
Randolph M. Fritz


On Tue, Oct 23, 2018 at 8:29 PM Randolph M. Fritz <[hidden email]> wrote:
Thanks, everyone, for the discussion. I'll have to look into how it applies specifically to our app.
--
Randolph M. Fritz || +1 206 659-8617 || [hidden email]


On Mon, Oct 22, 2018 at 8:54 PM Mark Anderson <[hidden email]> wrote:
Oh yeah, I mean CodeWeavers / WineHQ - Apple doesn't care at all. I've been to enough WWDCs to know that. Good to know they are on it.

—Mark
_______________________
Mark E. Anderson <[hidden email]>


On Mon, Oct 22, 2018 at 12:13 AM Ryan Schmidt <[hidden email]> wrote:


On Oct 21, 2018, at 11:57, Mark Anderson wrote:

> When I run a 32 bit command line app, I get the popup warning that this “Isn’t optimized for my Mac”.

You will get that popup when you run *any* 32-bit app.

> It’s kind of annoying that they’re removing the possibility when things like wine really need a 32bit space since Windows is no where near as far along on 32->64 bit.

Apple appears not to care.

> I hope they’re planning to spin up hypervisor.framrwork or something to fix that.

It depends who you mean by "they". If you mean Apple, then no; they are clearly moving the Mac along a path of removing 32-bit support. On the other hand, CodeWeavers, one of the developers of Wine, has been working on a way to continue to run 32-bit Windows apps in Wine on macOS even after Apple removes the ability to run 32-bit programs. I do not know the specifics of how they plan to accomplish this.

--
Sent from Gmail Mobile on iPhone
Reply | Threaded
Open this post in threaded view
|

Re: OT: Apple 64-bit changes

Joshua Root-8
In reply to this post by Randolph M. Fritz-2
On 2018-10-25 07:55 , Randolph M. Fritz wrote:
> I found Joshua Root's messages in the spam trap, so now I understand a
> bit more.
>
> When you say "The difference is that the 10.14 SDK no longer allows
> compiling for 32-bit" does that mean that particular capabilities have
> been removed from the compiler, the libraries, or Xcode?

Not from the compiler, and definitely not from the libraries since that
would prevent existing 32-bit apps from running. The SDK is the set of
files in
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk
which includes headers and library stubs.

The library stubs are text files containing metadata about the
libraries, including which architectures they are built for. In the
10.14 SDK, they all claim to only be x86_64, so the linker will error
out if you try to link a 32-bit program against any of them.

- Josh
Reply | Threaded
Open this post in threaded view
|

Re: OT: Apple 64-bit changes

Mark Anderson-10
The real downside is in 10.15, 32-bit programs will not run at all. I understand why they did this for iOS but I’m less clear on the macOS side.

—Mark

On Wed, Oct 24, 2018 at 5:41 PM Joshua Root <[hidden email]> wrote:
On 2018-10-25 07:55 , Randolph M. Fritz wrote:
> I found Joshua Root's messages in the spam trap, so now I understand a
> bit more.
>
> When you say "The difference is that the 10.14 SDK no longer allows
> compiling for 32-bit" does that mean that particular capabilities have
> been removed from the compiler, the libraries, or Xcode?

Not from the compiler, and definitely not from the libraries since that
would prevent existing 32-bit apps from running. The SDK is the set of
files in
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk
which includes headers and library stubs.

The library stubs are text files containing metadata about the
libraries, including which architectures they are built for. In the
10.14 SDK, they all claim to only be x86_64, so the linker will error
out if you try to link a 32-bit program against any of them.

- Josh
--
Sent from Gmail Mobile on iPhone