Opened 5 years ago

Closed 5 years ago

Last modified 5 years ago

#58952 closed defect (fixed)

clang-8.0 fails to build in 10.9 buildbot.

Reported by: cjones051073 (Chris Jones) Owned by: ken-cunningham-webuse
Priority: Normal Milestone:
Component: ports Version: 2.5.4
Keywords: Cc: jeremyhu (Jeremy Huddleston Sequoia), kencu (Ken), larryv (Lawrence Velázquez)
Port: clang-8.0

Description

https://build.macports.org/builders/ports-10.9_x86_64-builder/builds/96524/steps/install-port/logs/stdio

8.0.0.src/projects/compiler-rt/lib/fuzzer/FuzzerInternal.h:151:10: error: thread-local storage is not supported for the current target
  static thread_local bool IsMyThread;
         ^

Change History (15)

comment:1 Changed 5 years ago by kencu (Ken)

Thanks. I think that's still this 58291 but looks like I need to move the blocker up one system.

comment:2 Changed 5 years ago by cjones051073 (Chris Jones)

10.9 seems the only one currently failing, so yes, looks like your fix needs to go up one version.

https://ports.macports.org/port/clang-8.0/summary

Last edited 5 years ago by cjones051073 (Chris Jones) (previous) (diff)

comment:3 Changed 5 years ago by cjones051073 (Chris Jones)

Note 8.0.1 has been out for a short while. Maybe update to this first to see if its fixed there ?

comment:4 Changed 5 years ago by kencu (Ken)

I saw that as well -- but felt guilty as I had just revbumped clang-8.0 on everyone a few days ago :>.

comment:5 Changed 5 years ago by cjones051073 (Chris Jones)

Thats what the build bots are for ;)

comment:6 Changed 5 years ago by kencu (Ken)

It looks like building it with clang-5.0 works. <https://build.macports.org/builders/ports-10.9_x86_64-builder/builds/96135/steps/install-port/logs/stdio> but building it with clang-3.7 does not.

I'll have to see what is going on here; we should have these ports building with the same compiler on 10.9.

Last edited 5 years ago by kencu (Ken) (previous) (diff)

comment:7 Changed 5 years ago by cjones051073 (Chris Jones)

Yeah, I was a little surprised to so clang-3.x being used here to build it. I would think 5.0 should be the minimum...

comment:8 Changed 5 years ago by cjones051073 (Chris Jones)

If the port previously was using 5.0 to build, why did it go back to using 3.7? Is this part of the changes made recently for the base 2.6.0 release ?

Last edited 5 years ago by cjones051073 (Chris Jones) (previous) (diff)

comment:9 Changed 5 years ago by jmroot (Joshua Root)

Building 3.4 and 3.7 and 5.0 and 6.0 and 7.0 and 8.0 before you can build anything else isn't great UX. That's what happens when 8.0 is the default compiler and each one uses the most recent other one possible to build. So 5.0 through 8.0 bootstrap with one version known to work, which was documented to be 3.7. (3.7 is needed to bootstrap cmake which is needed for the later clangs. 3.4 is needed to bootstrap libcxx and so is used to build 3.7.)

Note that none of the above is relevant if /usr/bin/clang is deemed suitable to use.

If 3.7 is not in fact able to build 8.0, please change it. But it seemed to work fine for me on 10.6.

comment:10 Changed 5 years ago by kencu (Ken)

I'll have to install MP 2.6beta on 10.9 to see that chaining behaviour you notice, so I can start in to fix it.

3.7 builds clang-8.0, but not with libfuzzer. Libfuzzer was already turned off on 10.8 and less. I was just about to turn it off on 10.9, when I noticed that clang-devel built with libfuzzer on 10.9, building with clang-5.0.

For right now, turning off libfuzzer on 10.9 is the easiest thing to do. As the port comment says, it may be fixable, if anyone cares to dig in enough on clang-8.0 to make libfuzzer work on 10.9. I would doubt that is a big audience, but I may get to it one day!

Last edited 5 years ago by kencu (Ken) (previous) (diff)

comment:11 Changed 5 years ago by cjones051073 (Chris Jones)

Personally, I would instead just make clang 5.0 the compiler to use for 6.0 onwards, particularly if it means the fuzzer could be re-instated..

Last edited 5 years ago by cjones051073 (Chris Jones) (previous) (diff)

comment:12 Changed 5 years ago by kencu (Ken)

Can't do that without rearranging the base compiler defaults, I believe. It currently bootstraps to 3.7 and then 8.0.

Last edited 5 years ago by kencu (Ken) (previous) (diff)

comment:13 Changed 5 years ago by cjones051073 (Chris Jones)

OK I see. I guess not many will actually miss libfuzzer on old systems anyway. still a shame though.

comment:14 Changed 5 years ago by ken-cunningham-webuse

Owner: set to ken-cunningham-webuse
Resolution: fixed
Status: newclosed

In 72fdf7eff7635f11ab5342d86683da10fb08eccd/macports-ports (master):

clang-7.0/8.0/devel: turn off libfuzzer on 10.9

most of the other analyzers are already turned off on 10.9
libfuzzer does not build on 10.9 with our current compiler defaults
which lead it to clang-3.7

it may be possible to rearrange these defaults to use another
macports-clang version to re-enable some of these supporting
features and analyzers on 10.9 (and perhaps earlier) if there
is interest

closes: #58952
see: #58291

comment:15 in reply to:  10 Changed 5 years ago by jmroot (Joshua Root)

Replying to kencu:

I'll have to install MP 2.6beta on 10.9 to see that chaining behaviour you notice, so I can start in to fix it.

It's already fixed, by going straight to 3.7. That version is needed for cmake anyway and seemingly worked. It wouldn't be hard to go to 5.0 instead, it would just be yet another step in the bootstrap chain.

Note: See TracTickets for help on using tickets.