GNU bug report logs -
#20894
make libgnu.a doesn't generate everything it requires
Previous Next
Reported by: Glenn Morris <rgm <at> gnu.org>
Date: Thu, 25 Jun 2015 00:13:02 UTC
Severity: normal
Found in version 25.0.50
Fixed in version 25.1
Done: Glenn Morris <rgm <at> gnu.org>
Bug is archived. No further changes may be made.
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 20894 in the body.
You can then email your comments to 20894 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#20894
; Package
emacs
.
(Thu, 25 Jun 2015 00:13:02 GMT)
Full text and
rfc822 format available.
Message #3 received at submit <at> debbugs.gnu.org (full text, mbox):
Package: emacs
Version: 25.0.50
Current master on x86_64 RHEL7:
make maintainer-clean
configure
cd lib
make libgnu.a
Fails with:
In file included from binary-io.c:3:0:
binary-io.h: In function 'set_binary_mode':
binary-io.h:57:10: error: 'O_BINARY' undeclared (first use in this function)
'make libgnu.a' doesn't generate the lib/ version of fcntl.h, which is
what defines O_BINARY.
In contrast, 'make all' (in lib) does.
I noticed this because src/temacs depends on libgnu.a and calls 'make
libgnu.a' to create it (I would like 'make -C src emacs' to work).
Perhaps it should call 'make -C lib all' instead (an Emacs issue);
or perhaps 'make libgnu.a' should generate the files it requires
(a gnulib issue?).
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#20894
; Package
emacs
.
(Thu, 25 Jun 2015 00:16:02 GMT)
Full text and
rfc822 format available.
Message #6 received at 20894 <at> debbugs.gnu.org (full text, mbox):
Glenn Morris wrote:
> Perhaps it should call 'make -C lib all' instead (an Emacs issue);
Same thing for lib-src/Makefile.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#20894
; Package
emacs
.
(Thu, 25 Jun 2015 06:40:03 GMT)
Full text and
rfc822 format available.
Message #9 received at 20894 <at> debbugs.gnu.org (full text, mbox):
> 'make libgnu.a' doesn't generate the lib/ version of fcntl.h, which is
> what defines O_BINARY.
>
> In contrast, 'make all' (in lib) does.
That's a known problem with Automake, when dependency checking is turned on.
The short version is that it can't compute dependencies until it has the .h
files, and it can't make the .h files until it knows the dependencies. The
usual workaround is BUILT_SOURCES, but as the Automake manual says in
<http://www.gnu.org/software/automake/manual/html_node/Sources.html>:
=====
It might be important to emphasize that BUILT_SOURCES is honored only by ‘make
all’, ‘make check’ and ‘make install’. This means you cannot build a specific
target (e.g., ‘make foo’) in a clean tree if it depends on a built source.
However it will succeed if you have run ‘make all’ earlier, because accurate
dependencies are already available.
=====
Ways to work around this issue are described in
<http://www.gnu.org/software/automake/manual/html_node/Built-Sources-Example.html>.
They are all a bit of a pain, though, and the simplest thing is probably to
say “don't try to make libgnu.a by hand without doing an ordinary make first”....
> (I would like 'make -C src emacs' to work).
*That* we can arrange.
> Perhaps it should call 'make -C lib all' instead (an Emacs issue);
Yes, that's an easy way to arrange things. I installed that as part of commit
319eeeb0fb154a0cd1d36ec33c68029ff9d6c290. Good enough?
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#20894
; Package
emacs
.
(Thu, 25 Jun 2015 16:06:02 GMT)
Full text and
rfc822 format available.
Message #12 received at 20894 <at> debbugs.gnu.org (full text, mbox):
Paul Eggert wrote:
>> (I would like 'make -C src emacs' to work).
>
> *That* we can arrange.
>
>> Perhaps it should call 'make -C lib all' instead (an Emacs issue);
>
> Yes, that's an easy way to arrange things. I installed that as part
> of commit 319eeeb0fb154a0cd1d36ec33c68029ff9d6c290. Good enough?
'make -C src emacs' now works, but 'make -j8 -C src emacs' fails in lib with
GEN stddef.h
mv: cannot stat 'alloca.h-t': No such file or directory
make[2]: *** [alloca.h] Error 1
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#20894
; Package
emacs
.
(Thu, 25 Jun 2015 20:35:02 GMT)
Full text and
rfc822 format available.
Message #15 received at 20894 <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
Glenn Morris wrote:
> 'make -C src emacs' now works, but 'make -j8 -C src emacs' fails in lib with
>
> GEN stddef.h
> mv: cannot stat 'alloca.h-t': No such file or directory
Hmm, well, I'm sure there are other dependency bugs like that in the makefiles
somewhere. Anyway I fixed this bug with the attached.
[0001-Fix-submake-dependency-bug-with-.h-files.patch (text/x-diff, attachment)]
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#20894
; Package
emacs
.
(Thu, 25 Jun 2015 23:22:03 GMT)
Full text and
rfc822 format available.
Message #18 received at 20894 <at> debbugs.gnu.org (full text, mbox):
Thanks, it works now.
bug marked as fixed in version 25.1, send any further explanations to
20894 <at> debbugs.gnu.org and Glenn Morris <rgm <at> gnu.org>
Request was from
Glenn Morris <rgm <at> gnu.org>
to
control <at> debbugs.gnu.org
.
(Thu, 25 Jun 2015 23:22:05 GMT)
Full text and
rfc822 format available.
bug archived.
Request was from
Debbugs Internal Request <help-debbugs <at> gnu.org>
to
internal_control <at> debbugs.gnu.org
.
(Fri, 24 Jul 2015 11:24:04 GMT)
Full text and
rfc822 format available.
This bug report was last modified 10 years and 30 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.