Opened 11 months ago

Last modified 4 months ago

#67509 assigned defect

Building lame on Tiger fails as the SDK name is incorrect

Reported by: RealKGB (WhitetailAni) Owned by: barracuda156
Priority: Normal Milestone:
Component: ports Version: 2.8.1
Keywords: tiger Cc:
Port: lame

Description (last modified by ryandesign (Ryan Carsten Schmidt))

I am attempting to install ffmpeg on my iMac G5 running OS X 10.4.11. One of the required dependencies is lame, but when trying to build, it produces the log attached below. When looking in the log and looking up the errors, the reoccurring one is expected '=', ',', ';', 'asm' or '__attribute__' before 'size_t' - which means this is C++ code, that a C compiler is trying to compile. I've attached the log if that helps at all.

Attachments (1)

main.log (78.0 KB) - added by RealKGB (WhitetailAni) 11 months ago.
Log that occurs when building lame

Download all attachments as: .zip

Change History (15)

Changed 11 months ago by RealKGB (WhitetailAni)

Attachment: main.log added

Log that occurs when building lame

comment:1 Changed 11 months ago by kencu (Ken)

the problem is this recent commit is wrong for Tiger:

[ad0b70302b368b8da1342fd586db04ffce1f6fe5/macports-ports]

In Tiger, the SDK name is different than all other systems…. there is a “u” in it.

The commit needs to be rejigged to account for this.

Last edited 11 months ago by ryandesign (Ryan Carsten Schmidt) (previous) (diff)

comment:2 Changed 11 months ago by kencu (Ken)

Keywords: Tiger added
Owner: set to barracuda156
Status: newassigned
Summary: Building lame on OS X 10.4.11 on an iMac G5 fails; it seems to be attempting to build C++ code with a C compilerBuilding lame on Tiger fails as the SDK name is incorrect

comment:3 Changed 11 months ago by kencu (Ken)

also not all ppc systems support altivec, so that should be fixed too

comment:4 Changed 11 months ago by ryandesign (Ryan Carsten Schmidt)

Description: modified (diff)
Keywords: tiger added; Tiger removed

I wonder why that commit is setting the SDK path manually. Doesn't MacPorts already set it?

comment:5 Changed 11 months ago by kencu (Ken)

Yes, I believe ${configure.sdkroot} would be set to the proper path by base.

comment:6 in reply to:  3 ; Changed 11 months ago by barracuda156

Replying to kencu:

also not all ppc systems support altivec, so that should be fixed too

Should we disable optimizations for Tiger or how to handle it correctly?

comment:7 in reply to:  1 ; Changed 11 months ago by barracuda156

Replying to kencu:

In Tiger, the SDK name is different than all other systems…. there is a “u” in it.

The commit needs to be rejigged to account for this.

I know that, but I thought macosx_sdk_version already picks the correct name.

Last edited 11 months ago by barracuda156 (previous) (diff)

comment:8 in reply to:  7 Changed 11 months ago by kencu (Ken)

Replying to barracuda156:

Replying to kencu:

In Tiger, the SDK name is different than all other systems…. there is a “u” in it.

The commit needs to be rejigged to account for this.

I know that, but I thought macosx_sdk_version already picks the correct name.

see:

https://github.com/search?q=repo%3Amacports%2Fmacports-base%20macosx_sdk_version&type=code

and

https://github.com/search?q=repo%3Amacports%2Fmacports-base+configure_get_sdkroot&type=code

comment:9 in reply to:  6 ; Changed 11 months ago by kencu (Ken)

Replying to barracuda156:

Replying to kencu:

also not all ppc systems support altivec, so that should be fixed too

Should we disable optimizations for Tiger or how to handle it correctly?

disabling altivec on Tiger is the easy way out, but then is not quite right for Tiger systems that do have altivec…

testing for altivec during the build and enabling it if present is kinda better, but then breaks the prebuilt binaries from the buildbots if the buildbot supports altivec but the user does not.

testing for altivec during the build and enabling it if present, and also disabling prebuilt binaries for the port, works, but people will complain about no prebuilt binaries someday perhaps. As we will probably never have a Tiger builbot anyway, this is what we usually do.

building it both with and without altivec and determining “on the fly” if the machine can use altivec is really the way to go, but almost nobody knows how to properly do that :)

Last edited 11 months ago by kencu (Ken) (previous) (diff)

comment:10 in reply to:  9 Changed 11 months ago by barracuda156

Replying to kencu:

Replying to barracuda156:

Replying to kencu:

also not all ppc systems support altivec, so that should be fixed too

Should we disable optimizations for Tiger or how to handle it correctly?

disabling altivec on Tiger is the easy way out, but then is not quite right for Tiger systems that do have altivec…

testing for altivec during the build and enabling it if present is kinda better, but then breaks the prebuilt binaries from the buildbots if the buildbot supports altivec but the user does not.

testing for altivec during the build and enabling it if present, and also disabling prebuilt binaries for the port, works, but people will complain about no prebuilt binaries someday perhaps. As we will probably never have a Tiger builbot anyway, this is what we usually do.

building it both with and without altivec and determining “on the fly” if the machine can use altivec is really the way to go, but almost nobody knows how to properly do that :)

For 10.5, we can assume that no one gonna install it on a G3?

comment:11 Changed 11 months ago by RealKGB (WhitetailAni)

Work began on running 10.5 on G3's but it was never completed. I think one partially functional build was able to run but I would not assume anyone doing that expects MacPorts support

comment:12 in reply to:  5 Changed 4 months ago by barracuda156

Replying to kencu:

Yes, I believe ${configure.sdkroot} would be set to the proper path by base.

Apparently ${configure.sysroot} works fine.

comment:13 Changed 4 months ago by kencu (Ken)

Yes, that is a newer thing Josh added to macports, that is set to ${configure.sdkroot} or to “/“ if $configure.sdkroot} is empty.

We had been asking for base to set $configure.sdkroot} to “/“ if it was empty, but he felt that was incorrect and so came up with a new replacement token everyone should use instead.

So probably most portfiles should be using that instead of ${configure.sdkroot} now, and removing the code that sets ${configure.sdkroot} to “/“ manually seen everywhere in the ports tree.

It just takes a long time (years) for that to filter down through the ports tree as nobody wants to break things that are already working.

Last edited 4 months ago by kencu (Ken) (previous) (diff)

comment:14 Changed 4 months ago by barracuda156

Well, I can add a fix for this port, at least someone tried to install it on 10.4 :)

Note: See TracTickets for help on using tickets.