
I try "sh validate" with profiled libraries and get libraries/dph/ghc.mk:134: *** Cannot build profiled GHC with DPH; try deleting libraries/dph and trying again. Stop. So I obediently remove libraries/dph, and try again. But that fails too: Error: libraries/dph/LICENSE doesn't exist. Maybe you haven't done './sync-all get'? at boot line 74, <PACKAGES> line 84. Seems a bit Catch-22 ish. I'm not sure how to fix this. Thanks Simon Microsoft Research Limited (company number 03369488) is registered in England and Wales Registered office is at 21 Station Road, Cambridge, CB1 2FB

I was actually looking at this exact code very recently since I was
fixing the build system with Stage1Only a little last night.
We do something like this in ./ghc.mk:
----------------------------------------
define addExtraPackage
ifeq "$2" "-"
# Do nothing; this package is already handled above
else ifeq "$2 $$(GhcProfiled)" "dph YES"
# Ignore the package: These packages need TH, which is incompatible
# with a profiled GHC
else
PACKAGES_STAGE2 += $1
endif
endef
---------------------------------------
So it skips adding dph to the list of stage2 packages if GhcProfiled is 'YES'
Simon, this is speculation, but can you try:
$ make show VALUE=GhcProfiled
I think it's possible the value of GhcProfiled may have whitespace in
it, which would cause this `ifeq` to fail.
On Tue, Aug 27, 2013 at 10:06 AM, Simon Peyton-Jones
I try “sh validate” with profiled libraries and get
libraries/dph/ghc.mk:134: *** Cannot build profiled GHC with DPH; try deleting libraries/dph and trying again. Stop.
So I obediently remove libraries/dph, and try again. But that fails too:
Error: libraries/dph/LICENSE doesn't exist.
Maybe you haven't done './sync-all get'? at boot line 74, <PACKAGES> line 84.
Seems a bit Catch-22 ish. I’m not sure how to fix this.
Thanks
Simon
Microsoft Research Limited (company number 03369488) is registered in England and Wales
Registered office is at 21 Station Road, Cambridge, CB1 2FB
_______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://www.haskell.org/mailman/listinfo/ghc-devs
-- Regards, Austin - PGP: 4096R/0x91384671

ha ha!
bash$ make show VALUE=GhcProfiled
Makefile:39: mk/config.mk: No such file or directory
Makefile:41: *** Please run ./configure first. Stop.
===============
OK, so I did "perl boot; ./configure". Then
bash$ make show VALUE=GhcProfiled
make -r --no-print-directory -f ghc.mk show
ghc.mk:158: *** dyn is not in $(GhcLibWays), but $(DYNAMIC_GHC_PROGRAMS) is YES. Stop.
make: *** [show] Error 2
bash$
oh dear. Should "make show" depend on these other checks?
Simon
| -----Original Message-----
| From: Austin Seipp [mailto:aseipp@pobox.com]
| Sent: 27 August 2013 16:23
| To: Simon Peyton-Jones
| Cc: ghc-devs
| Subject: Re: Buidling profiled fails
|
| I was actually looking at this exact code very recently since I was
| fixing the build system with Stage1Only a little last night.
|
| We do something like this in ./ghc.mk:
|
| ----------------------------------------
| define addExtraPackage
| ifeq "$2" "-"
| # Do nothing; this package is already handled above
| else ifeq "$2 $$(GhcProfiled)" "dph YES"
| # Ignore the package: These packages need TH, which is incompatible
| # with a profiled GHC
| else
| PACKAGES_STAGE2 += $1
| endif
| endef
| ---------------------------------------
|
| So it skips adding dph to the list of stage2 packages if GhcProfiled is
| 'YES'
|
| Simon, this is speculation, but can you try:
|
| $ make show VALUE=GhcProfiled
|
| I think it's possible the value of GhcProfiled may have whitespace in
| it, which would cause this `ifeq` to fail.
|
| On Tue, Aug 27, 2013 at 10:06 AM, Simon Peyton-Jones
|

Well, depending on ./configure is reasonable, but I'm not sure how to
easily make it work around these checks just for the 'show' target.
Hm, what platform is this, Win64? (I need to get a win64 test env up.)
You might possibly have an out of date mk/build.mk file, but if this
is a recent checkout then I doubt it. Otherwise there might be a
glitch in the build system that things you can support dynamic ghc,
but not shared libraries.
You should be able to turn this off in the mean time. You can put:
DYNAMIC_BY_DEFAULT=NO
DYNAMIC_GHC_PROGRAMS=NO
in mk/build.mk, anywhere above this line:
------
GhcLibWays = $(if $(filter $(DYNAMIC_GHC_PROGRAMS),YES),v dyn,v)
------
I really need to double back on and look over all the shared library
stuff this week.
On Tue, Aug 27, 2013 at 12:08 PM, Simon Peyton-Jones
ha ha!
bash$ make show VALUE=GhcProfiled Makefile:39: mk/config.mk: No such file or directory Makefile:41: *** Please run ./configure first. Stop.
=============== OK, so I did "perl boot; ./configure". Then
bash$ make show VALUE=GhcProfiled make -r --no-print-directory -f ghc.mk show ghc.mk:158: *** dyn is not in $(GhcLibWays), but $(DYNAMIC_GHC_PROGRAMS) is YES. Stop. make: *** [show] Error 2 bash$
oh dear. Should "make show" depend on these other checks?
Simon
| -----Original Message----- | From: Austin Seipp [mailto:aseipp@pobox.com] | Sent: 27 August 2013 16:23 | To: Simon Peyton-Jones | Cc: ghc-devs | Subject: Re: Buidling profiled fails | | I was actually looking at this exact code very recently since I was | fixing the build system with Stage1Only a little last night. | | We do something like this in ./ghc.mk: | | ---------------------------------------- | define addExtraPackage | ifeq "$2" "-" | # Do nothing; this package is already handled above | else ifeq "$2 $$(GhcProfiled)" "dph YES" | # Ignore the package: These packages need TH, which is incompatible | # with a profiled GHC | else | PACKAGES_STAGE2 += $1 | endif | endef | --------------------------------------- | | So it skips adding dph to the list of stage2 packages if GhcProfiled is | 'YES' | | Simon, this is speculation, but can you try: | | $ make show VALUE=GhcProfiled | | I think it's possible the value of GhcProfiled may have whitespace in | it, which would cause this `ifeq` to fail. | | On Tue, Aug 27, 2013 at 10:06 AM, Simon Peyton-Jones |
wrote: | > I try “sh validate” with profiled libraries and get | > | > libraries/dph/ghc.mk:134: *** Cannot build profiled GHC with DPH; try | > deleting libraries/dph and trying again. Stop. | > | > | > | > So I obediently remove libraries/dph, and try again. But that fails | too: | > | > Error: libraries/dph/LICENSE doesn't exist. | > | > Maybe you haven't done './sync-all get'? at boot line 74, <PACKAGES> | line | > 84. | > | > | > | > Seems a bit Catch-22 ish. I’m not sure how to fix this. | > | > Thanks | > | > | > Simon | > | > | > | > Microsoft Research Limited (company number 03369488) is registered in | > England and Wales | > | > Registered office is at 21 Station Road, Cambridge, CB1 2FB | > | > | > | > | > _______________________________________________ | > ghc-devs mailing list | > ghc-devs@haskell.org | > http://www.haskell.org/mailman/listinfo/ghc-devs | > | | | | -- | Regards, | Austin - PGP: 4096R/0x91384671
-- Regards, Austin - PGP: 4096R/0x91384671

Actually this is 64-bit Linux.
However I found that my build.mk might have been an old one, since it's hand-written. I'll try again, starting from build.mk.sample.
Simon
| -----Original Message-----
| From: Austin Seipp [mailto:aseipp@pobox.com]
| Sent: 27 August 2013 18:40
| To: Simon Peyton-Jones
| Cc: Austin Seipp; ghc-devs
| Subject: Re: Buidling profiled fails
|
| Well, depending on ./configure is reasonable, but I'm not sure how to
| easily make it work around these checks just for the 'show' target.
|
| Hm, what platform is this, Win64? (I need to get a win64 test env up.)
| You might possibly have an out of date mk/build.mk file, but if this
| is a recent checkout then I doubt it. Otherwise there might be a
| glitch in the build system that things you can support dynamic ghc,
| but not shared libraries.
|
| You should be able to turn this off in the mean time. You can put:
|
| DYNAMIC_BY_DEFAULT=NO
| DYNAMIC_GHC_PROGRAMS=NO
|
| in mk/build.mk, anywhere above this line:
|
| ------
| GhcLibWays = $(if $(filter $(DYNAMIC_GHC_PROGRAMS),YES),v dyn,v)
| ------
|
| I really need to double back on and look over all the shared library
| stuff this week.
|
|
| On Tue, Aug 27, 2013 at 12:08 PM, Simon Peyton-Jones
|
participants (2)
-
Austin Seipp
-
Simon Peyton-Jones