angerman (Moritz Angermann)
User

Projects

User does not belong to any projects.

Today

  • Clear sailing ahead.

Tomorrow

  • Clear sailing ahead.

Tuesday

  • Clear sailing ahead.

User Details

User Since
Sep 11 2014, 7:17 AM (137 w, 3 d)
Availability
Available

Recent Activity

Fri, Apr 28

angerman added inline comments to D3447: [linker] Add ocInit/ocDeinit for ELF.
Fri, Apr 28, 9:10 PM
angerman added inline comments to D3496: Ignore ANN pragmas with no TH and no external interpreter..
Fri, Apr 28, 10:02 AM
angerman updated the summary of D3448: [linker] fix armv7 & add aarch64.
Fri, Apr 28, 5:40 AM
angerman updated the diff for D3448: [linker] fix armv7 & add aarch64.
  • arm64 -> aarch64; pragma once
Fri, Apr 28, 5:38 AM
angerman updated the diff for D3448: [linker] fix armv7 & add aarch64.
  • why mmap
  • arm64 -> aarch64; pragma once
Fri, Apr 28, 5:33 AM
angerman updated the diff for D3447: [linker] Add ocInit/ocDeinit for ELF.
  • rebase
Fri, Apr 28, 5:00 AM

Thu, Apr 27

angerman retitled D3448: [linker] fix armv7 & add aarch64 from [linker] fix armv7 & add arm64 to [linker] fix armv7 & add aarch64.
Thu, Apr 27, 11:11 PM
angerman planned changes to D3503: Cmake file for rts..

@bgamari, @simonmar I agree that this is a rather inelegant way to have it *in* ghc in it's current form; as it hardcodes a single architecture, and
can not build the .cmm files; for which it relies on them to be pre-existing.

Thu, Apr 27, 11:08 PM
angerman added a comment to D3448: [linker] fix armv7 & add aarch64.

Thank you @bgamari for the review.

Thu, Apr 27, 11:03 PM
angerman added a comment to D3447: [linker] Add ocInit/ocDeinit for ELF.

There are currently some build issues here.

Thu, Apr 27, 10:54 PM
angerman added inline comments to D3447: [linker] Add ocInit/ocDeinit for ELF.
Thu, Apr 27, 10:54 PM
angerman added a comment to D3290: Make LLVM output robust to -dead_strip on mach-o platforms.

Another way to look at it is that the mangler is a gigantic hack, whereas this diff addresses the problem at it's core. We use specific features and need to guard them properly.

Thu, Apr 27, 10:33 PM
angerman added a comment to D3290: Make LLVM output robust to -dead_strip on mach-o platforms.

I'm still not entirely sure why this is better than the mangler approach given that ultimately we will eventually need to move to some more permanent solution anyways, but fair enough.

Thu, Apr 27, 10:32 PM

Wed, Apr 26

angerman updated the diff for D3349: [libffi] use master..
  • fix libffi/ghc.mk
Wed, Apr 26, 9:16 AM

Tue, Apr 25

angerman updated the diff for D3349: [libffi] use master..
  • fix packages
Tue, Apr 25, 10:32 PM
angerman updated the diff for D3349: [libffi] use master..
  • [libffi] fix header.
  • Use libffi via submodule.
Tue, Apr 25, 9:32 PM
angerman updated the diff for D3352: Replace opt and llc with clang.
  • [clang-as] disable thumb code generation.
  • rebase
Tue, Apr 25, 9:18 PM
angerman updated the diff for D3351: Don’t force gold on me..
  • Use FIND_LD
  • Rebase
Tue, Apr 25, 9:18 PM
Herald added a reviewer for D3503: Cmake file for rts.: austin.
Tue, Apr 25, 9:01 PM
angerman updated the diff for D3290: Make LLVM output robust to -dead_strip on mach-o platforms.
  • don’t dead_strip dsps.
  • drop alt_entry
Tue, Apr 25, 9:01 PM
angerman created D3502: Support `embedFile` in iserv slave.
Tue, Apr 25, 8:51 PM
angerman added a dependent revision for D3469: [iserv] fix loadDLL: D3502: Support `embedFile` in iserv slave.
Tue, Apr 25, 8:51 PM
angerman updated the diff for D3469: [iserv] fix loadDLL.
  • Cleanup; add comments; rebase
Tue, Apr 25, 8:42 PM

Mon, Apr 24

angerman created D3493: Disable terminfo, if we don’t build it..
Mon, Apr 24, 7:53 AM

Thu, Apr 20

angerman added a comment to D3468: catch the case where there is no symCmd.

I'm confident that the windows build failure is not due to this diff. Independent of the placement of the oc->info = NULL (which would have been interesting anyway, if that would have been the source).
Therefore I've changed this commit back to it's original form.

Thu, Apr 20, 7:14 PM
angerman updated the diff for D3468: catch the case where there is no symCmd.
  • info = NULL for all again.
Thu, Apr 20, 7:12 PM
angerman added inline comments to D3443: [iserv] Fixing the word size for RemotePtr and toWordArray.
Thu, Apr 20, 4:05 AM

Wed, Apr 19

angerman updated the diff for D3443: [iserv] Fixing the word size for RemotePtr and toWordArray.
  • Endianness notes, and check.
Wed, Apr 19, 7:49 PM
angerman retitled D3443: [iserv] Fixing the word size for RemotePtr and toWordArray from [iserv] Better LoadDLL handling; fixing the word size for RemotePtr and toWordArray to [iserv] Fixing the word size for RemotePtr and toWordArray.
Wed, Apr 19, 9:26 AM
angerman created D3469: [iserv] fix loadDLL.
Wed, Apr 19, 4:54 AM
angerman updated the diff for D3443: [iserv] Fixing the word size for RemotePtr and toWordArray.
  • drop the loadDLL part, as it's orthogonal to this.
Wed, Apr 19, 4:52 AM
angerman added a comment to D3468: catch the case where there is no symCmd.

The sad thing is that the windows validation fails for some reason. Let's see what it says this time...

Wed, Apr 19, 3:50 AM
angerman planned changes to D3443: [iserv] Fixing the word size for RemotePtr and toWordArray.
Wed, Apr 19, 1:14 AM

Tue, Apr 18

angerman added a comment to D3443: [iserv] Fixing the word size for RemotePtr and toWordArray.

This diff now subsumes D3456 and D3463 hoping that it would make reviewing easier?

Tue, Apr 18, 11:51 PM
angerman updated the diff for D3443: [iserv] Fixing the word size for RemotePtr and toWordArray.
Tue, Apr 18, 11:42 PM
angerman created D3468: catch the case where there is no symCmd.
Tue, Apr 18, 7:46 PM

Mon, Apr 17

angerman updated the diff for D3446: [linker] Adds elf_compat.h, util.h, elf_util.h.
  • rename Util.h to util.h (thank you macOS...)
Mon, Apr 17, 11:53 PM
angerman retitled D3446: [linker] Adds elf_compat.h, util.h, elf_util.h from [linker] Adds elf_compat.h, Util.h to [linker] Adds elf_compat.h, util.h, elf_util.h.
Mon, Apr 17, 11:25 PM
angerman updated the diff for D3447: [linker] Add ocInit/ocDeinit for ELF.
  • rebase
Mon, Apr 17, 10:46 PM
angerman added inline comments to D3447: [linker] Add ocInit/ocDeinit for ELF.
Mon, Apr 17, 10:43 PM
angerman updated the diff for D3446: [linker] Adds elf_compat.h, util.h, elf_util.h.
  • cleanup
Mon, Apr 17, 10:35 PM
angerman added inline comments to D3446: [linker] Adds elf_compat.h, util.h, elf_util.h.
Mon, Apr 17, 10:35 PM
angerman added a comment to D3445: [linker] Adds ElfTypes.

I've run validate on mac again... the test in question *does* take quite some time, however it *did* complete successfully for me on mac. Let's see what this CI iteration yields.

Mon, Apr 17, 10:35 PM
angerman updated the diff for D3445: [linker] Adds ElfTypes.
  • rebase
Mon, Apr 17, 10:20 PM
angerman created D3462: [iserv] drop cryptonite dependency..
Mon, Apr 17, 9:32 AM
angerman added a comment to D3448: [linker] fix armv7 & add aarch64.

I haven't done a complete review here, there's a lot I don't understand. Just a few questions below. My main concern is that we keep the elft/x86_64 parts of the linker working and don't introduce any perf regressions.

Mon, Apr 17, 9:23 AM
angerman added a comment to D3448: [linker] fix armv7 & add aarch64.

A high level view on the changes introduced here is the following:

  • Adds loading text/data sections into separate page, which could subsequently mprotected different (X^W).
  • Adds got logic (one got per object)
  • Adds plt logic (one plt section per section)
  • Adds the missing GOT relocations for elf/armv7
  • Adds a linker for elf/arm64
Mon, Apr 17, 9:23 AM

Sun, Apr 16

angerman updated the diff for D3448: [linker] fix armv7 & add aarch64.
  • rebase
Sun, Apr 16, 1:27 AM
angerman updated the diff for D3447: [linker] Add ocInit/ocDeinit for ELF.
  • rebase
Sun, Apr 16, 1:26 AM
angerman updated the diff for D3446: [linker] Adds elf_compat.h, util.h, elf_util.h.
  • rebase onto master
Sun, Apr 16, 1:26 AM
angerman updated the diff for D3445: [linker] Adds ElfTypes.
  • rebase
Sun, Apr 16, 1:23 AM
angerman updated the diff for D3448: [linker] fix armv7 & add aarch64.
  • add guards; fix bugs
Sun, Apr 16, 12:12 AM

Sat, Apr 15

angerman updated the summary of D3447: [linker] Add ocInit/ocDeinit for ELF.
Sat, Apr 15, 8:23 PM
angerman updated the diff for D3448: [linker] fix armv7 & add aarch64.
  • rebase
Sat, Apr 15, 10:32 AM
angerman updated the diff for D3447: [linker] Add ocInit/ocDeinit for ELF.
  • rebase
  • add D3459 dependency
Sat, Apr 15, 10:31 AM
angerman updated the diff for D3446: [linker] Adds elf_compat.h, util.h, elf_util.h.
  • rebase
Sat, Apr 15, 10:29 AM
angerman updated the diff for D3445: [linker] Adds ElfTypes.
  • rebase
Sat, Apr 15, 10:28 AM
angerman updated the diff for D3459: catch the case where there is no symCmd.
  • initialize the info field to zero
Sat, Apr 15, 10:15 AM
angerman added a comment to D3459: catch the case where there is no symCmd.

@adinapoli can you try adding +RTS -DS

Sat, Apr 15, 8:11 AM
angerman updated the diff for D3447: [linker] Add ocInit/ocDeinit for ELF.
  • Use Calloc instead of Malloc
Sat, Apr 15, 7:58 AM
angerman added a comment to D3459: catch the case where there is no symCmd.

Hey @angerman , thanks so much for this!

Definitely we made progress, but it seems we moved the segfault somewhere else:

(gdb) run
Starting program: /Users/adinapoli/programming/haskell/ghc/inplace/lib/bin/ghc-stage2 -B/Users/adinapoli/programming/haskell/ghc/inplace/lib --interactive
GHCi, version 8.3.20170413: http://www.haskell.org/ghc/  :? for help
[New Thread 0x120f of process 28529]
[New Thread 0x1403 of process 28529]
[New Thread 0x1503 of process 28529]
[New Thread 0x1603 of process 28529]

Thread 1 received signal SIGSEGV, Segmentation fault.
ocInit_MachO () at rts/linker/MachO.c:144
144             oc->info->n_macho_symbols = oc->info->symCmd->nsyms;
Sat, Apr 15, 5:52 AM
angerman updated the diff for D3448: [linker] fix armv7 & add aarch64.
  • rebase onto D3447 again
Sat, Apr 15, 4:11 AM
angerman updated the diff for D3447: [linker] Add ocInit/ocDeinit for ELF.
  • H= what?
Sat, Apr 15, 3:43 AM
angerman added a comment to D3459: catch the case where there is no symCmd.

@adinapoli, I could not reproduce the exact crash you listed, my lldb bailed out a few lines before. If you could confirm that this diff, fixes the --interactive issue you saw, that would be much appreciated!

Sat, Apr 15, 3:40 AM
Herald added a reviewer for D3459: catch the case where there is no symCmd: austin.
Sat, Apr 15, 3:32 AM
angerman updated the diff for D3447: [linker] Add ocInit/ocDeinit for ELF.
  • Adds extra guard for oc->info
  • no got yet.
Sat, Apr 15, 2:40 AM

Thu, Apr 13

angerman updated the diff for D3448: [linker] fix armv7 & add aarch64.
  • [armv7/arm64 linker] COMPAT_ prefix
  • fix arc lint
Thu, Apr 13, 9:13 PM
angerman updated the diff for D3447: [linker] Add ocInit/ocDeinit for ELF.
  • fix #if def -> #if defined
Thu, Apr 13, 8:47 PM
angerman updated the diff for D3448: [linker] fix armv7 & add aarch64.
  • rebase yet again
Thu, Apr 13, 10:45 AM
angerman updated the diff for D3447: [linker] Add ocInit/ocDeinit for ELF.
  • rebase again
Thu, Apr 13, 10:45 AM
angerman updated the diff for D3446: [linker] Adds elf_compat.h, util.h, elf_util.h.
  • Adds dragonfly ifdef back in again
Thu, Apr 13, 10:29 AM
angerman updated the diff for D3446: [linker] Adds elf_compat.h, util.h, elf_util.h.
  • enums instead of constants.
Thu, Apr 13, 10:16 AM
angerman updated the diff for D3448: [linker] fix armv7 & add aarch64.
  • [armv7/arm64 linker] COMPAT_ prefix
  • rebase
Thu, Apr 13, 10:01 AM
angerman updated the diff for D3447: [linker] Add ocInit/ocDeinit for ELF.
  • reabase
Thu, Apr 13, 9:38 AM
angerman updated the diff for D3446: [linker] Adds elf_compat.h, util.h, elf_util.h.
  • fix macro
Thu, Apr 13, 9:20 AM
angerman added inline comments to D3445: [linker] Adds ElfTypes.
Thu, Apr 13, 2:39 AM

Wed, Apr 12

angerman updated the diff for D3445: [linker] Adds ElfTypes.
  • x86_64 is 64bit
Wed, Apr 12, 11:31 PM
angerman updated the diff for D3445: [linker] Adds ElfTypes.
  • rebase onto master
  • #ifdef -> if defined
Wed, Apr 12, 9:43 PM
angerman added inline comments to D3443: [iserv] Fixing the word size for RemotePtr and toWordArray.
Wed, Apr 12, 9:21 AM
angerman added a comment to D3451: Drop special handling of iOS.

Please also note that

BuildFlavour = quick-cross
ifneq "$(BuildFlavour)" ""
include mk/flavours/$(BuildFlavour).mk
endif
STRIP_CMD = :
DYNAMIC_GHC_PROGRAMS = YES
DYNAMIC_TOO = YES

is now a valid receipt for compiling ios/arm64

Wed, Apr 12, 9:14 AM
angerman created D3451: Drop special handling of iOS.
Wed, Apr 12, 9:13 AM

Tue, Apr 11

angerman updated the diff for D3351: Don’t force gold on me..
  • Use FIND_LD
Tue, Apr 11, 11:33 PM
angerman updated the diff for D3443: [iserv] Fixing the word size for RemotePtr and toWordArray.
  • [iserv] fix comments/array
Tue, Apr 11, 10:44 PM
angerman added a comment to D3446: [linker] Adds elf_compat.h, util.h, elf_util.h.

It's a bit unfortunate how the new enum variant names lack any sort indication that they are relocation types, but I suppose this is fine.

Tue, Apr 11, 8:06 PM
angerman added a comment to D3351: Don’t force gold on me..

Maybe it's clang on darwin specific?

I think you just don't have gold installed.

This change will definitely break things for people who have a buggy ld.bfd installed, which they will find out when programs compiled for the target system segfault. How should they know that they have to use gold? I really think this is worse than whatever issue you are having that causes you to want to remove this.

Tue, Apr 11, 7:59 PM
angerman updated the diff for D3448: [linker] fix armv7 & add aarch64.
  • rebase
Tue, Apr 11, 12:31 AM
angerman updated the diff for D3447: [linker] Add ocInit/ocDeinit for ELF.
  • rebase
Tue, Apr 11, 12:26 AM
angerman updated the diff for D3446: [linker] Adds elf_compat.h, util.h, elf_util.h.
  • Add guard
Tue, Apr 11, 12:26 AM
Herald added a reviewer for D3448: [linker] fix armv7 & add aarch64: austin.
Tue, Apr 11, 12:22 AM
Herald added a reviewer for D3447: [linker] Add ocInit/ocDeinit for ELF: austin.
Tue, Apr 11, 12:22 AM
angerman updated the diff for D3446: [linker] Adds elf_compat.h, util.h, elf_util.h.
  • rebase proper
Tue, Apr 11, 12:22 AM
angerman updated the diff for D3446: [linker] Adds elf_compat.h, util.h, elf_util.h.
  • [linker] Adds Util.c
Tue, Apr 11, 12:22 AM
angerman updated the summary of D3446: [linker] Adds elf_compat.h, util.h, elf_util.h.
Tue, Apr 11, 12:06 AM
angerman added a dependent revision for D3444: [linker] Remove dead code (ELF_FUNCTION_DESC): D3446: [linker] Adds elf_compat.h, util.h, elf_util.h.
Tue, Apr 11, 12:06 AM
angerman added a dependent revision for D3445: [linker] Adds ElfTypes: D3446: [linker] Adds elf_compat.h, util.h, elf_util.h.
Tue, Apr 11, 12:06 AM
Herald added a reviewer for D3446: [linker] Adds elf_compat.h, util.h, elf_util.h: austin.
Tue, Apr 11, 12:06 AM
Herald added a reviewer for D3445: [linker] Adds ElfTypes: austin.
Tue, Apr 11, 12:06 AM
Herald added a reviewer for D3444: [linker] Remove dead code (ELF_FUNCTION_DESC): austin.
Tue, Apr 11, 12:01 AM

Mon, Apr 10

angerman planned changes to D3443: [iserv] Fixing the word size for RemotePtr and toWordArray.
Mon, Apr 10, 10:21 PM
angerman updated the diff for D3352: Replace opt and llc with clang.
  • [clang-as] disable thumb code generation.
  • rebase onto master
Mon, Apr 10, 10:13 PM