- User Since
- Aug 19 2016, 10:21 AM (56 w, 5 d)
Fold inputs into test case
Bail out of function in case of error
Change to error
Mon, Sep 18
Again, I'm not sure how to create a test for this one without creating gigantic (> 2 GiB) intermediate object files. The .bss trick won't work here, since we can't have relocations in a .bss section.
Exit with correct error code.
Change to error and add test.
This seems fine as a workaround, though I'm curious about the root cause. Shouldn't there only be conflicts during an update if the update is bringing in pyc files of its own (i.e. if pyc files got committed to svn)?
I'm not sure how to write a test case for this without creating an object file with a section > 4 GiB (as in that object file will take upwards of 4 GiB on disk). Any ideas?
This fixes my use case; thank you! Waiting for @mclow.lists to confirm it works for him too.
Fri, Sep 15
Thu, Sep 14
Filed https://bugs.llvm.org/show_bug.cgi?id=34614 about the silent attribute ignoring.
Good point. It looks like clang actually ignores the attributes in that case as well; it just doesn't warn you about it :D
This depends on D37859 for the SOURCE_DIR parameter to llvm_check_source_file_list.
@mclow.lists, any final verdict here? I ended up doing this differently for my internal use case, so if you think this isn't generally useful, I'm happy to abandon.
Tue, Sep 12
Rebased and tested on Windows again.
Mon, Sep 11
Thanks for all the updates! I tested the updated set of patches against our internal builds, and everything is still looking good.
I'm seeing breakages caused by this as well. Thanks for the fix!
Looks good to me still.
Fri, Sep 8
Thu, Sep 7
Mostly nits again. The logic looks good to me, though I'm far from being completely familiar with all parts of the existing code.
Since the branch range we're supporting in this patch is ±16 MiB, in theory the thunk sections could be spaced 32 MiB apart instead of 16, with input sections jumping either forward or backward to thunks, correct? I understand it's probably not worth the additional complexity to support that, and I'm not suggesting changing it; I just wanted to confirm my understanding :)
Wed, Sep 6
Sorry about all the nits, but I figured I'd try to get all the mechanical issues out of the way, at least :)
Tue, Sep 5
This was committed in r311468 and reverted in r311497 because it broke bots. I'm re-opening now that @rafael is back from vacation.
Tue, Aug 29
It's really cool that you're getting the filesystem library to work on Windows :)
Thu, Aug 24
Tue, Aug 22
--dynamic-list and --version-script don't make sense together when building an executable, but the combination can be useful for a shared library. See D36499 for how the two should work together for a shared library.
Aug 15 2017
@mclow.lists does this seem reasonable to you?
@grimar, I believe @ruiu's point was that the real issue is that LLD versions symbols too early, so moving other things upwards in the driver (in this case, the processing of symbols defined in a linker script) to work around the versioning being too early doesn't feel right.
@ruiu, my understanding was that this change would make it less of a hack. It's not terribly difficult to work around as it stands though (you can define your own version of the symbol which got dropped, and in practice that symbol tends to only contain a few instructions); it would be nicer to have the linker handle it, but it's understandable if you think this isn't worthwhile. Thanks for the attempt, @grimar!
Aug 14 2017
There should probably be some documentation for this, but I couldn't think of the right place; the Using libc++ documentation only mentions the actual configuration macros, not their corresponding cmake defines. Any suggestions?
Aug 10 2017
This looks great. Thank you!
Aug 8 2017
Aug 7 2017
Aug 4 2017
Instead of duplicating the test, I can either generalize the existing test to handle both the regular and --export-dynamic cases by replacing hardcoded values with regular expressions where necessary, or just add multiple check prefixes to the existing test and handle the value differences that way. Let me know what's preferable.
Jul 30 2017
Jul 28 2017
Jul 27 2017
For whatever it's worth, I've been using these patches internally on a pretty large codebase, and they've worked really well; I haven't noticed any issues. It sounds like @ikudrin has been using them as well.
Jul 24 2017
Jul 22 2017
Jul 21 2017
Ping. I updated the description based on the email discussion with @majnemer.
Jul 19 2017
Thanks for the explanations @rafael. Everything makes sense now.
Jul 18 2017
(from @rafael's email) Correct, bfd complains. That is why you have to make foo weak, which is annoying.
I'm probably just misunderstanding the discussion here, but bfd complains about multiple definitions if you do .symver x, x@@VER: https://ghostbin.com/paste/c9b4t. Granted, I'm on an old version of binutils, so maybe that's changed?
Jul 17 2017
Add comment for isDWARF