Opened 2 years ago

Closed 2 years ago

Last modified 2 years ago

#50771 closed defect (fixed)

openssl 1.0.2g_0 fails to build on Mac OS X 10.6.8

Reported by: floehlj@… Owned by: neverpanic (Clemens Lang)
Priority: High Milestone:
Component: ports Version: 2.3.4
Keywords: haspatch snowleopard upstream Cc: larryv (Lawrence Velázquez), devernay (Frédéric Devernay), Gravarty@…, SlaunchaMan@…, udbraumann, petrrr, gaport@…, ryandesign (Ryan Schmidt), gadcode@…, ivl1705, chillin-, mojca (Mojca Miklavec), robtron88@…
Port: openssl

Description

The following lines taken from the main.log seem to be the problem:

:info:build sha1-x86_64.s:1243:missing or invalid immediate expression `0b00011011' taken as 0
:info:build sha1-x86_64.s:1243:suffix or operands invalid for `pshufd'
:info:build sha1-x86_64.s:1245:missing or invalid immediate expression `0b00011011' taken as 0
:info:build sha1-x86_64.s:1245:suffix or operands invalid for `pshufd'
:info:build sha1-x86_64.s:1395:missing or invalid immediate expression `0b00011011' taken as 0
:info:build sha1-x86_64.s:1395:suffix or operands invalid for `pshufd'
:info:build sha1-x86_64.s:1396:missing or invalid immediate expression `0b00011011' taken as 0
:info:build sha1-x86_64.s:1396:suffix or operands invalid for `pshufd'
:info:build make[2]: *** [sha1-x86_64.o] Error 1

main.log attached

Attachments (5)

main.log (45.1 KB) - added by floehlj@… 2 years ago.
change-binary-literals-to-hex.patch (10.0 KB) - added by jmroot (Joshua Root) 2 years ago.
0001-Revert-perlasm-x86_64-xlate.pl-pass-pure-constants-v.patch (1.3 KB) - added by neverpanic (Clemens Lang) 2 years ago.
0002-RT3885-OpenSSL-fails-to-cross-compile-on-32-bit-64-b.patch (1.8 KB) - added by neverpanic (Clemens Lang) 2 years ago.
main.log.bz2 (56.1 KB) - added by ryandesign (Ryan Schmidt) 2 years ago.
log of successful build and test with clemens' patchfiles

Download all attachments as: .zip

Change History (46)

Changed 2 years ago by floehlj@…

Attachment: main.log added

comment:1 Changed 2 years ago by gnw3

A workaround is to build with clang36:

sudo port -s upgrade openssl configure.compiler=macports-clang-3.6

comment:2 in reply to:  1 Changed 2 years ago by floehlj@…

Replying to gnwiii@…:

A workaround is to build with clang36:

sudo port -s upgrade openssl configure.compiler=macports-clang-3.6

Thank you for your reply, but it seems, that this doesn't work for me:

$ port -s upgrade openssl configure.compiler=macports-clang-3.6
Error: port lookup failed: too many nested evaluations (infinite loop?)
To report a bug, follow the instructions in the guide:
    http://guide.macports.org/#project.tickets

comment:3 Changed 2 years ago by mf2k (Frank Schima)

Cc: larryv@… added
Owner: changed from macports-tickets@… to cal@…
Port: openssl added

In the future, please fill in the Port field and Cc the port maintainers (port info --maintainers openssl), if any.

comment:4 in reply to:  3 Changed 2 years ago by floehlj@…

Replying to mf2k@…:

In the future, please fill in the Port field and Cc the port maintainers (port info --maintainers openssl), if any.

Sorry for mistake - will do.

comment:5 Changed 2 years ago by devernay (Frédéric Devernay)

Cc: frederic.devernay@… added

Cc Me!

comment:6 in reply to:  1 Changed 2 years ago by Gravarty@…

Replying to gnwiii@…:

A workaround is to build with clang36:

sudo port -s upgrade openssl configure.compiler=macports-clang-3.6

well that's not possible because i need to install openssl first to actually install clang-3.6 ..

(i know it's for the upgrade .. but there's no way to install it on a fresh install right now ..)

Last edited 2 years ago by Gravarty@… (previous) (diff)

comment:7 Changed 2 years ago by Gravarty@…

Cc: Gravarty@… added
Last edited 2 years ago by Gravarty@… (previous) (diff)

comment:8 Changed 2 years ago by SlaunchaMan@…

I tried the workaround and got this error:

bash-3.2$ sudo sudo port -s upgrade openssl configure.compiler=macports-clang-3.6
Error: port lookup failed: too many nested evaluations (infinite loop?)

comment:9 in reply to:  8 Changed 2 years ago by SlaunchaMan@…

Replying to SlaunchaMan@…:

I tried the workaround and got this error:

bash-3.2$ sudo sudo port -s upgrade openssl configure.compiler=macports-clang-3.6
Error: port lookup failed: too many nested evaluations (infinite loop?)

To clarify: I’m on OS X 10.6.8, not the server version.

comment:10 Changed 2 years ago by SlaunchaMan@…

Cc: SlaunchaMan@… added

Cc Me!

comment:11 Changed 2 years ago by udbraumann

Cc: braumann@… added

Cc Me!

comment:12 Changed 2 years ago by petrrr

Cc: petr@… added

Cc Me!

comment:13 Changed 2 years ago by petrrr

This looks like being quite critical. Most of he builds on the SL buildbot seem to be broken due to openssl.

comment:14 in reply to:  13 Changed 2 years ago by udbraumann

FWIW, on 10.5.8 PPC 32bit there was no problem to upgrade to openssl @1.0.2g_0+universal.

comment:15 Changed 2 years ago by sixcolors@…

Same issue for me too...

comment:16 in reply to:  8 ; Changed 2 years ago by gaport@…

Replying to SlaunchaMan@…:

I tried the workaround and got this error:

bash-3.2$ sudo sudo port -s upgrade openssl configure.compiler=macports-clang-3.6
Error: port lookup failed: too many nested evaluations (infinite loop?)

I'm happy, since I found a previously installed clang; you may try:

sudo port installed | grep clang

I've found a clang-3.4, thus I did a (better clean before):

sudo port -s clean openssl
sudo port -s upgrade openssl configure.compiler=macports-clang-3.4

maybe this works for other clangs as well…. goog luck!

comment:17 Changed 2 years ago by gaport@…

Cc: gaport@… added

Cc Me!

comment:18 Changed 2 years ago by ben.pts@…

Still fails the same way, 10.6.8, user version, not server

Changed 2 years ago by jmroot (Joshua Root)

comment:19 Changed 2 years ago by jmroot (Joshua Root)

Keywords: haspatch added

The problem is just that the old as doesn't recognise binary literals. The attached patch got it to build and pass the test suite for me on 10.6/x86_64.

If upstream is still interested in being portable to older platforms, they'll need to fix this.

comment:20 in reply to:  19 Changed 2 years ago by floehlj@…

Replying to jmr@…:

The problem is just that the old as doesn't recognise binary literals. The attached patch got it to build and pass the test suite for me on 10.6/x86_64.

If upstream is still interested in being portable to older platforms, they'll need to fix this.

Thank you for your help. I tried your patch file and for me it works fine. The openssl 1.0.2g build completed without errors after applying your patch file. It was not neccessary for me to use a patch file before, so I was not too experienced with that process. Perhaps I made a mistake in regard to the source paths, because I manually had to drag and drop every single .pl file to the Terminal window which needed to be patched, but in the end it worked. Thank you again.

Last edited 2 years ago by floehlj@… (previous) (diff)

comment:21 Changed 2 years ago by ryandesign (Ryan Schmidt)

Cc: ryandesign@… added
Keywords: snowleopard added
Priority: NormalHigh
Summary: openssl 1.0.2g_0 fails to build on Mac OS X 10.6.8 Serveropenssl 1.0.2g_0 fails to build on Mac OS X 10.6.8

comment:22 in reply to:  16 Changed 2 years ago by gadcode@…

Replying to gaport@…:

I've found a clang-3.4, thus I did a (better clean before):

sudo port -s clean openssl
sudo port -s upgrade openssl configure.compiler=macports-clang-3.4

maybe this works for other clangs as well…. good luck!

My system did not have clang-3.4 installed. And attempting to install it ran into trouble, because various dependencies meant that openssl needed to be recompiled before compiling clang-3.4. However, there was a way around that problem.

I did:

sudo port selfupdate          # of course
sudo port installed outdated
sudo port rdeps clang-3.4

and then looked over the dependencies for clang which would cared about openssl. Those dependencies included two ports which (in my case) needed to be upgraded: scons and python27

So I:

sudo port update  -n python27
sudo port install -n clang-3.4
sudo port -s clean openssl     #  this is important!!
sudo port -s upgrade openssl configure.compiler=macports-clang-3.4

(hmm, I thought I had also done 'sudo port update -n scons', but looking over my bash history I had not done that).

This time openssl built without any errors. I then did 'sudo port upgrade cyrus-sasl2', 'sudo port upgrade ruby20', and 'sudo port upgrade net-snmp' (all of which require openssl), and all of those built fine.

Should I do something so this new (to me) clang-3.4 is preferred over clang-3.3 ?

comment:23 Changed 2 years ago by gadcode@…

Cc: gadcode@… added

Cc Me!

comment:24 Changed 2 years ago by neverpanic (Clemens Lang)

Keywords: upstream added

I've pushed the patch upstream as a github pull request at https://github.com/openssl/openssl/pull/792. I have also sent an email to OpenSSL's bug tracking system to get a ticket reference, but haven't received confirmation or a ticket number yet.

comment:25 Changed 2 years ago by neverpanic (Clemens Lang)

comment:26 Changed 2 years ago by ivl1705

Cc: listmember@… added

Cc Me!

comment:27 Changed 2 years ago by chillin-

Cc: chilli.namesake@… added

Cc Me!

comment:28 Changed 2 years ago by mojca (Mojca Miklavec)

Cc: mojca@… added

Cc Me!

comment:29 Changed 2 years ago by mojca (Mojca Miklavec)

Duplicate: #50823

comment:30 Changed 2 years ago by mojca (Mojca Miklavec)

Would it be possible to commit a patch (even if just for 10.6; if you think it works of course) even if upstream hasn't confirmed it yet, to avoid numerous build failures on the buildbot?

comment:31 Changed 2 years ago by robtron88@…

Cc: robtron88@… added

Cc Me!

comment:32 Changed 2 years ago by neverpanic (Clemens Lang)

I don't want to patch around this without getting upstream involved. I don't consider brokenness on 10.6 (an ancient platform) severe enough to second-guess upstream on this issue.

Additionally, it seems while the patch by jmr@ works, it's not really the right thing to do here, so I'd like to get this implemented correctly first.

Changed 2 years ago by neverpanic (Clemens Lang)

Changed 2 years ago by neverpanic (Clemens Lang)

comment:33 Changed 2 years ago by neverpanic (Clemens Lang)

Please try the two patches

  • 0001-Revert-perlasm-x86_64-xlate.pl-pass-pure-constants-v.patch
  • 0002-RT3885-OpenSSL-fails-to-cross-compile-on-32-bit-64-b.patch

instead and report back whether this fixes the issue. According to https://mta.openssl.org/pipermail/openssl-dev/2016-March/005623.html, it will, but I'd like to make sure and I don't have the resources to build on 10.6.

comment:34 Changed 2 years ago by ryandesign (Ryan Schmidt)

Thanks, works for me. Log of build and test attached.

Changed 2 years ago by ryandesign (Ryan Schmidt)

Attachment: main.log.bz2 added

log of successful build and test with clemens' patchfiles

comment:35 Changed 2 years ago by ryandesign (Ryan Schmidt)

Note that the port currently uses p0 patches but your patches are p1 and need to be changed to p0.

comment:36 Changed 2 years ago by neverpanic (Clemens Lang)

comment:37 Changed 2 years ago by neverpanic (Clemens Lang)

Resolution: fixed
Status: newclosed

Fixed in r146395. I did not bump the revision, because openssl did either build correctly, or not at all.

comment:38 Changed 2 years ago by chillin-

a little confused that this is closed... My 10.6 build is still failing. Will the patches be automatically applied on 10.6 systems, or must they be applied manually?

comment:39 Changed 2 years ago by ryandesign (Ryan Schmidt)

You run sudo port selfupdate to receive the changes.

comment:40 in reply to:  39 Changed 2 years ago by chillin-

Replying to ryandesign@…:

You run sudo port selfupdate to receive the changes.

I believe there may be a mysterious and possibly unexplainable latency of countless dozens of seconds between the instant a fix is resolved and when that resolution will be available through selfupdate on my hardware. Until there's a resolution for this, I found a workaround:

sleep 60

comment:41 Changed 2 years ago by ryandesign (Ryan Schmidt)

Yes, there can be a delay, which is not mysterious. If your MacPorts is configured to get its ports tree from the subversion repository, you'll get the fix immediately. If you're configured to use the main rsync server (that's the default), you may be delayed by up to 30 minutes because the Subversion repository is only copied to the rsync server every 30 minutes. If you use one of the mirror rsync servers, you may be delayed by up to 24 hours, depending on how often that mirror syncs with the main rsync server.

Note: See TracTickets for help on using tickets.