Bowtie fails to build

  • Done
  • quality assurance status badge
Details
3 participants
  • Andreas Enge
  • Mark H Weaver
  • Ricardo Wurmus
Owner
unassigned
Submitted by
Andreas Enge
Severity
normal

Debbugs page

Andreas Enge wrote 10 years ago
(address . bug-guix@gnu.org)
20150127214727.GA6287@debian
Hello,

bowtie currently fails to build on all three architectures on hydra.

On i686, the error message is:
Makefile:146: *** bowtie2 compilation requires a 64-bit platform . Stop.

Surprisingly, the same error message is shown on mip64el (!).
From its description, I do not expect users to run the program on mips,
so it might be the safest option to disable the build of these two
architectures.

On x86_64, the error message is
g++: error: unrecognized command line option '-stdlib=libstdc++'

Andreas
Ricardo Wurmus wrote 10 years ago
(name . Andreas Enge)(address . andreas@enge.fr)(address . 19708@debbugs.gnu.org)
idjwq476lmt.fsf@bimsb-sys02.mdc-berlin.net
Andreas Enge writes:
Toggle quote (14 lines)
> bowtie currently fails to build on all three architectures on hydra.
>
> On i686, the error message is:
> Makefile:146: *** bowtie2 compilation requires a 64-bit platform . Stop.
>
> Surprisingly, the same error message is shown on mip64el (!).
> From its description, I do not expect users to run the program on mips,
> so it might be the safest option to disable the build of these two
> architectures.
>
> On x86_64, the error message is
> g++: error: unrecognized command line option '-stdlib=libstdc++'
> See http://hydra.gnu.org/build/204787 .

This is odd. The Makefile only adds this option on MacOS:

MACOS = 0
ifneq (,$(findstring Darwin,$(shell uname)))
MACOS = 1
ifneq (,$(findstring 13,$(shell uname -r)))
CPP = clang++
CC = clang
EXTRA_FLAGS += -stdlib=libstdc++
endif
endif

Whether or not a platform is 64-bit is determined with uname. Both
these errors relate to using uname.

Is it not available at build time?

I can build the package just fine with:

guix build -S bowtie
...
guix enviroment --pure bowtie
make


~~ Ricardo
Andreas Enge wrote 10 years ago
(name . Ricardo Wurmus)(address . ricardo.wurmus@mdc-berlin.de)(address . 19708@debbugs.gnu.org)
20150128165735.GA14986@debian.math.u-bordeaux1.fr
On Wed, Jan 28, 2015 at 03:11:06PM +0100, Ricardo Wurmus wrote:
Toggle quote (3 lines)
> Whether or not a platform is 64-bit is determined with uname. Both
> these errors relate to using uname.

Clearly, only x86_64 is supported. Citing from Makefile:
BITS=32
ifeq (x86_64,$(shell uname -m))
BITS=64
endif
# msys will always be 32 bit so look at the cpu arch instead.
ifneq (,$(findstring AMD64,$(PROCESSOR_ARCHITEW6432)))
ifeq (1,$(MINGW))
BITS=64
endif
endif
ifeq (32,$(BITS))
$(error bowtie2 compilation requires a 64-bit platform )
endif

So we should disable mips and i686.


Toggle quote (11 lines)
> This is odd. The Makefile only adds this option on MacOS:
> MACOS = 0
> ifneq (,$(findstring Darwin,$(shell uname)))
> MACOS = 1
> ifneq (,$(findstring 13,$(shell uname -r)))
> CPP = clang++
> CC = clang
> EXTRA_FLAGS += -stdlib=libstdc++
> endif
> endif

I see the following in my Makefile:
MACOS = 0
ifneq (,$(findstring Darwin,$(shell uname)))
MACOS = 1
endif

ifneq (,$(findstring 13,$(shell uname -r)))
CPP = clang++
CC = clang
EXTRA_FLAGS += -stdlib=libstdc++
endif

Notice the different placements of the "endif". Are we talking about different
versions of bowtie? I looked at the top Makefile from the result of
"guix build bowtie -S".

Andreas
Ricardo Wurmus wrote 10 years ago
(name . Andreas Enge)(address . andreas@enge.fr)(address . 19708@debbugs.gnu.org)
idjpp9x7vmz.fsf@bimsb-sys02.mdc-berlin.net
Andreas Enge writes:
Toggle quote (17 lines)
> Clearly, only x86_64 is supported. Citing from Makefile:
> BITS=32
> ifeq (x86_64,$(shell uname -m))
> BITS=64
> endif
> # msys will always be 32 bit so look at the cpu arch instead.
> ifneq (,$(findstring AMD64,$(PROCESSOR_ARCHITEW6432)))
> ifeq (1,$(MINGW))
> BITS=64
> endif
> endif
> ifeq (32,$(BITS))
> $(error bowtie2 compilation requires a 64-bit platform )
> endif
>
> So we should disable mips and i686.

Submitted a patch to the ML to do just that.

Toggle quote (27 lines)
>> This is odd. The Makefile only adds this option on MacOS:
>> MACOS = 0
>> ifneq (,$(findstring Darwin,$(shell uname)))
>> MACOS = 1
>> ifneq (,$(findstring 13,$(shell uname -r)))
>> CPP = clang++
>> CC = clang
>> EXTRA_FLAGS += -stdlib=libstdc++
>> endif
>> endif
>
> I see the following in my Makefile:
> MACOS = 0
> ifneq (,$(findstring Darwin,$(shell uname)))
> MACOS = 1
> endif
>
> ifneq (,$(findstring 13,$(shell uname -r)))
> CPP = clang++
> CC = clang
> EXTRA_FLAGS += -stdlib=libstdc++
> endif
>
> Notice the different placements of the "endif". Are we talking about different
> versions of bowtie? I looked at the top Makefile from the result of
> "guix build bowtie -S".

Oh, I must have been looking at master. In commit 4a99b0023[1] this was
changed to:

MACOS = 0
ifneq (,$(findstring Darwin,$(shell uname)))
MACOS = 1
ifneq (,$(findstring 13,$(shell uname -r)))
CPP = clang++
CC = clang
EXTRA_FLAGS += -stdlib=libstdc++
endif
endif

I'm not sure why it built the first time, though. (Compare [2] and
[3], both using the same release.) Anyway, I can go ahead and patch the
Makefile until a new release is out.

What do you think?

~~ Ricardo


Mark H Weaver wrote 10 years ago
(name . Ricardo Wurmus)(address . ricardo.wurmus@mdc-berlin.de)
87d25wp7zc.fsf@netris.org
Fixed in 241e12219. Thanks to Ricardo and Andreas for sorting this out!

Mark
Closed
?
Your comment

This issue is archived.

To comment on this conversation send an email to 19708@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 19708
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch
You may also tag this issue. See list of standard tags. For example, to set the confirmed and easy tags
mumi command -t +confirmed -t +easy
Or, remove the moreinfo tag and set the help tag
mumi command -t -moreinfo -t +help