malformed fasl-object header

25 views
Skip to first unread message

EdK

unread,
Nov 23, 2019, 11:24:26 AM11/23/19
to Racket Developers
I am running a 32-bit ubuntu 18.04 distribution and when I try to
build racket 7.5 with chez scheme I get the following error:

  cd cs/c; make setup-install
  make[3]: Entering directory '/usr/local/src/racket-7.5/src/build/cs/c'
  /usr/racket/bin/racket  -X "/usr/racket/share/racket/collects" -G "/usr/racket/etc/racket"    -N "raco" -l- setup 
  malformed fasl-object header in petite
  Makefile:403: recipe for target 'setup-install' failed

Just as an experiment I temporarily replaced the "strip" binary on my
machine with an executable shell script that does nothing, and then
reconfigured, rebuilt, and reinstalled, and except for having to
manually change the file permissions on the resulting racket
executable so that users other than root could execute it everything
seemed to work.

Please let me know what additional information I could provide.

EdK

Matthew Flatt

unread,
Nov 23, 2019, 4:31:29 PM11/23/19
to EdK, Racket Developers
Did you have "uuid-dev" installed when when you started compiling?

I tried a build on a fresh installation, and eventually got an error
about "uuid.h" missing. After installing it, the build continued but
eventually failed with a "malformed fasl-object header in petite"
error. The problem is that a `configure` step had gone bad (too
quietly) since "uuid.h" was missing.

So, I wonder if the issue is related to `strip`, or if it was just that
you re-ran `configure` after installing "uuid-dev".

I'll look into improving the `configure` script, in any case.
> --
> You received this message because you are subscribed to the Google Groups
> "Racket Developers" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to racket-dev+...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/racket-dev/4a2a87fc-5aa3-4472-8501-dc034dec67
> 43%40googlegroups.com.

Edmund Kademan

unread,
Nov 23, 2019, 8:20:48 PM11/23/19
to Matthew Flatt, Racket Developers
It's exactly as you said. When I ran make for the first time I failed
because uuid.h was missing, so I installed it and just ran make again
letting it pick up where it left off. This resulted in the "malformed
fasl-object header" problem when it came time to install. The strip
command had nothing to do with it.

My experiment was just a stab in the dark inspired by an answer you gave
on github about a year ago to someone with a similar problem. The real
reason it worked was that I started from the beginning by executing both
configure and make in an empty build directory and with uuid.h already
in place. (I have verified this on my system by rerunning it without
disabling strip.)

To summarize, the wrong thing to do was:
- configure
- make (and fail)
- install uuid.h
- make
- make install (and fail)

The right thing to do was:
- install uuid.h
- configure
- make
- make install

Thank you for your help.

EdK

Matthew Flatt writes:

> Did you have "uuid-dev" installed when when you started compiling?
>
> I tried a build on a fresh installation, and eventually got an error
> about "uuid.h" missing. After installing it, the build continued but
> eventually failed with a "malformed fasl-object header in petite"
> error. The problem is that a `configure` step had gone bad (too
> quietly) since "uuid.h" was missing.
>
> So, I wonder if the issue is related to `strip`, or if it was just that
> you re-ran `configure` after installing "uuid-dev".
>
> I'll look into improving the `configure` script, in any case.
>
> At Sat, 23 Nov 2019 08:24:25 -0800 (PST), EdK wrote:
signature.asc
Reply all
Reply to author
Forward
0 new messages