https://bugs.dragonflybsd.org/https://bugs.dragonflybsd.org/favicon.ico?16293952082013-02-04T10:52:31ZDragonFlyBSD bugtrackerDragonFlyBSD - Bug #2505: i386 buildkernel cc1: error: too many filenames given /usr/obj/usr/src/world_i386/usr/include: No such file or directoryhttps://bugs.dragonflybsd.org/issues/2505?journal_id=112442013-02-04T10:52:31Zyellowrabbit2010
<ul></ul><p>Same for x86_64:</p>
<p>gcc44 works, gcc47 shows interesting COLLECT_GCC_OPTIONS and can't construct correct search list.</p>
<ul>
<li>gcc44 ***<br />/usr/obj/usr/src/sys/X86_64_GENERIC/usr/src/sys/bus/cam/cam $ CCVER=gcc44 MKDEP_CPP_OPTS="-M -v" mkdep -f .depend -a -nostdinc -D_KERNEL -DKLD_MODULE -I. -I@ -I/usr/obj/usr/src/sys/X86_64_GENERIC -I/usr/obj/usr/src/sys/X86_64_GENERIC/include -I@/../include -I/usr/obj/usr/src/world_x86_64/usr/include -std=c99 -std=gnu99 -std=c99 /usr/src/sys/bus/cam/cam/../cam.c /usr/src/sys/bus/cam/cam/../cam_periph.c /usr/src/sys/bus/cam/cam/../cam_queue.c /usr/src/sys/bus/cam/cam/../cam_sim.c /usr/src/sys/bus/cam/cam/../cam_xpt.c /usr/src/sys/bus/cam/cam/../cam_extend.c /usr/src/sys/bus/cam/cam/../scsi/scsi_all.c /usr/src/sys/bus/cam/cam/../scsi/scsi_cd.c /usr/src/sys/bus/cam/cam/../scsi/scsi_ch.c /usr/src/sys/bus/cam/cam/../scsi/scsi\<br />_da.c /usr/src/sys/bus/cam/cam/../scsi/scsi_pass.c /usr/src/sys/bus/cam/cam/../scsi/scsi_pt.c /usr/src/sys/bus/cam/cam/../scsi/scsi_sa.c /usr/src/sys/bus/cam/cam/../scsi/scsi_ses.c /usr/src/sys/bus/cam/cam/../scsi/scsi_targ_bh.c /usr/src/sys/bus/cam/cam/../scsi/scsi_target.c<br />Using built-in specs.<br />Target: x86_64-pc-dragonflybsd<br />Configured with: DragonFly/x86_64 system compiler<br />Thread model: posix<br />gcc version 4.4.7 2012.03.13 (DragonFly)<br />COLLECT_GCC_OPTIONS='-E' '-M' '-v' '-nostdinc' '-D_KERNEL' '-DKLD_MODULE' '-I.' '-I@' '-I/usr/obj/usr/src/sys/X86_64_GENERIC' '-I/usr/obj/usr/src/sys/X86_64_GENERIC/include' '-I@/../include' '-I/usr/obj/usr/src/world_x86_64/usr/include' '-std=c99' '-std=gnu99' '-std=c99'<br /> /usr/libexec/gcc44/cc1 -E -quiet -nostdinc -v -I. -I@ -I/usr/obj/usr/src/sys/X86_64_GENERIC -I/usr/obj/usr/src/sys/X86_64_GENERIC/include -I@/../include -I/usr/obj/usr/src/world_x86_64/usr/include -M -D_KERNEL -DKLD_MODULE /usr/src/sys/bus/cam/cam/../cam.c -std=c99 -std=gnu99 -std=c99<br />#include "..." search starts here:<br />#include <...> search starts here:<br /> .<br /> <code><br /> /usr/obj/usr/src/sys/X86_64_GENERIC<br /> /usr/obj/usr/src/sys/X86_64_GENERIC/include<br /> </code>/../include<br /> /usr/obj/usr/src/world_x86_64/usr/include<br />End of search list.<br />.....</li>
</ul>
<ul>
<li>gcc47 ***<br />/usr/obj/usr/src/sys/X86_64_GENERIC/usr/src/sys/bus/cam/cam $ CCVER=gcc47 MKDEP_CPP_OPTS="-M -v" mkdep -f .depend -a -nostdinc -D_KERNEL -DKLD_MODULE -I. -I@ -I/usr/obj/usr/src/sys/X86_64_GENERIC -I/usr/obj/usr/src/sys/X86_64_GENERIC/include -I@/../include -I/usr/obj/usr/src/world_x86_64/usr/include -std=c99 -std=gnu99 -std=c99 /usr/src/sys/bus/cam/cam/../cam.c /usr/src/sys/bus/cam/cam/../cam_periph.c /usr/src/sys/bus/cam/cam/../cam_queue.c /usr/src/sys/bus/cam/cam/../cam_sim.c /usr/src/sys/bus/cam/cam/../cam_xpt.c /usr/src/sys/bus/cam/cam/../cam_extend.c /usr/src/sys/bus/cam/cam/../scsi/scsi_all.c /usr/src/sys/bus/cam/cam/../scsi/scsi_cd.c /usr/src/sys/bus/cam/cam/../scsi/scsi_ch.c /usr/src/sys/bus/cam/cam/../scsi/scsi_da.c /usr/src/sys/bus/cam/cam/../scsi/scsi_pass.c /usr/src/sys/bus/cam/cam/../scsi/scsi_pt.c /usr/src/sys/bus/cam/cam/../scsi/scsi_sa.c /usr/src/sys/bus/cam/cam/../scsi/scsi_ses.c /usr/src/sys/bus/cam/cam/../scsi/scsi_targ_bh.c /usr/src/sys/bus/cam/cam/../scsi/scsi_target.c<br />Using built-in specs.<br />COLLECT_GCC=/usr/libexec/gcc47/cc<br />Target: x86_64-pc-dragonflybsd<br />Configured with: DragonFly/x86_64 system compiler (c, c++, objc, LTO)<br />Thread model: posix<br />gcc version 4.7.2 [DragonFly] Release/2012-09-20<br />COLLECT_GCC_OPTIONS='-E' '-M' '-v' '-nostdinc' '-D' '_KERNEL' '-D' 'KLD_MODULE' '-I' '.' '-I' '<code>' '-I' '/usr/obj/usr/src/sys/X86_64_GENERIC' '-I' '/usr/obj/usr/src/sys/X86_64_GENERIC/include' '-I' '</code>/../include' '-I' '/usr/obj/usr/src/world_x86_64/usr/include' '-std=c99' '-std=gnu99' '-std=c99'<br /> /usr/libexec/gcc47/cc1 -E -quiet -nostdinc -v -I . -I <code> -I /usr/obj/usr/src/sys/X86_64_GENERIC -I /usr/obj/usr/src/sys/X86_64_GENERIC/include -I </code>/../include -I /usr/obj/usr/src/world_x86_64/usr/include -M -D _KERNEL -D KLD_MODULE /usr/src/sys/bus/cam/cam/../cam.c -std=c99 -std=gnu99 -std=c99<br />ignoring nonexistent directory "-I" <br />#include "..." search starts here:<br />#include <...> search starts here:<br /> .<br /> @<br /> /usr/obj/usr/src/sys/X86_64_GENERIC<br /> /usr/obj/usr/src/sys/X86_64_GENERIC/include<br />End of search list.<br />cc1: error: too many filenames given. Type cc1 --help for usage<br />cc1: fatal error: /usr/obj/usr/src/world_x86_64/usr/include: No such file or directory<br />compilation terminated.</li>
</ul> DragonFlyBSD - Bug #2505: i386 buildkernel cc1: error: too many filenames given /usr/obj/usr/src/world_i386/usr/include: No such file or directoryhttps://bugs.dragonflybsd.org/issues/2505?journal_id=112452013-02-04T12:01:39Zswildner
<ul></ul><p>On Mon, 04 Feb 2013 08:12:36 +0100, David Shao via Redmine <br /><<a class="email" href="mailto:bugtracker-admin@leaf.dragonflybsd.org">bugtracker-admin@leaf.dragonflybsd.org</a>> wrote:</p>
<blockquote>
<p>Issue <a class="issue tracker-1 status-5 priority-4 priority-default closed" title="Bug: i386 buildkernel cc1: error: too many filenames given /usr/obj/usr/src/world_i386/usr/include: N... (Closed)" href="https://bugs.dragonflybsd.org/issues/2505">#2505</a> has been reported by davshao.</p>
<p>----------------------------------------<br />Bug <a class="issue tracker-1 status-5 priority-4 priority-default closed" title="Bug: i386 buildkernel cc1: error: too many filenames given /usr/obj/usr/src/world_i386/usr/include: N... (Closed)" href="https://bugs.dragonflybsd.org/issues/2505">#2505</a>: i386 buildkernel cc1: error: too many filenames given <br />/usr/obj/usr/src/world_i386/usr/include: No such file or directory<br /><a class="external" href="http://bugs.dragonflybsd.org/issues/2505">http://bugs.dragonflybsd.org/issues/2505</a></p>
<p>Author: davshao<br />Status: New<br />Priority: Normal<br />Assignee:<br />Category:<br />Target version:</p>
<p>On a i386 build updating from</p>
<p>commit e2a099cf1b1188b60aecc18de449444f7dca0f6a<br />Date: Fri Feb 1 13:47:37 2013 -0800</p>
<p>kernel - Fix kernel panic caused by rename race</p>
<p>to</p>
<p>commit 6de060a4493ce25dda4287f3ab00041b698ba2b8<br />Date: Sun Feb 3 13:32:01 2013 +0100</p>
<p>Unbreak world with NO_GCC44</p>
<p>with /etc/make.conf</p>
<p>CFLAGS+=-g<br />STRIP=</p>
</blockquote>
<p>A shorter way for this is to just set</p>
<p>DEBUG_FLAGS=-g</p>
<p>in make.conf (the STRIP isn't needed in this case).</p>
<p>S.</p> DragonFlyBSD - Bug #2505: i386 buildkernel cc1: error: too many filenames given /usr/obj/usr/src/world_i386/usr/include: No such file or directoryhttps://bugs.dragonflybsd.org/issues/2505?journal_id=112492013-02-07T03:33:18Zyellowrabbit2010
<ul></ul><p>May be there is a problem with ``response files'' thing? Like, if you pass "@file" as an argument to a program, the file is read, and the contents are treated as command-line options?</p>
<p>Then '-I@/../include -I/usr/obj/usr/src/world_x86_64/usr/include' is Ok, <br />but '-I' '@/../include -I/usr/obj/usr/src/world_x86_64/usr/include' is terribly wrong.</p>
<p>Can we throw away '-Isomething' -> '-I' 'something' conversion somehow?</p> DragonFlyBSD - Bug #2505: i386 buildkernel cc1: error: too many filenames given /usr/obj/usr/src/world_i386/usr/include: No such file or directoryhttps://bugs.dragonflybsd.org/issues/2505?journal_id=112532013-02-08T17:53:59Zdavshao
<ul></ul><p>Right now I am building world with defaults and setting CCVER=gcc44 for buildkernel</p>
<ol>
<li>make buildworld</li>
<li>make CCVER=gcc44 buildkernel</li>
</ol>
<p>Is there going to be some problem with the kernel being built with gcc44 separately?</p>
<p>Does all of userspace need to be rebuilt with the switch to gcc47 as the default, in particular, all of pkgsrc? See</p>
<p><a class="external" href="http://bugs.dragonflybsd.org/issues/2511">http://bugs.dragonflybsd.org/issues/2511</a></p>
<p>for an example of problems I am experiencing.</p> DragonFlyBSD - Bug #2505: i386 buildkernel cc1: error: too many filenames given /usr/obj/usr/src/world_i386/usr/include: No such file or directoryhttps://bugs.dragonflybsd.org/issues/2505?journal_id=112572013-02-09T19:46:00Zftigeot
<ul></ul><p>I also see the same errors with buildkernel</p>
<p>Strangely, make nativekernel succeeds with the same src/ tree</p> DragonFlyBSD - Bug #2505: i386 buildkernel cc1: error: too many filenames given /usr/obj/usr/src/world_i386/usr/include: No such file or directoryhttps://bugs.dragonflybsd.org/issues/2505?journal_id=112582013-02-11T10:47:00Zftigeot
<ul></ul><p>I have rebuilt gcc47 with an additional fprintf() line</p>
<p>gcc apparently tries to compile /usr/include:</p>
<p>mkdep -f .depend -a -nostdinc -D_KERNEL -DKLD_MODULE -I. -I@ -I/usr/obj/usr/src/sys/X86_64_GENERIC -I/usr/obj/usr/src/sys/X86_64_GENERIC/include -I@/../include -I/usr/include -std=c99 -std=gnu99 -std=c99 /usr/src/sys/bus/cam/cam/../cam.c /usr/src/sys/bus/cam/cam/../cam_periph.c /usr/src/sys/bus/cam/cam/../cam_queue.c /usr/src/sys/bus/cam/cam/../cam_sim.c /usr/src/sys/bus/cam/cam/../cam_xpt.c /usr/src/sys/bus/cam/cam/../cam_extend.c /usr/src/sys/bus/cam/cam/../scsi/scsi_all.c /usr/src/sys/bus/cam/cam/../scsi/scsi_cd.c /usr/src/sys/bus/cam/cam/../scsi/scsi_ch.c /usr/src/sys/bus/cam/cam/../scsi/scsi_da.c /usr/src/sys/bus/cam/cam/../scsi/scsi_pass.c /usr/src/sys/bus/cam/cam/../scsi/scsi_pt.c /usr/src/sys/bus/cam/cam/../scsi/scsi_sa.c /usr/src/sys/bus/cam/cam/../scsi/scsi_ses.c /usr/src/sys/bus/cam/cam/../scsi/scsi_targ_bh.c /usr/src/sys/bus/cam/cam/../scsi/scsi_target.c<br />add_input_filename(): /usr/include<br />add_input_filename(): /usr/src/sys/bus/cam/cam/../cam.c<br />cc1: error: too many filenames given. Type cc1 --help for usage<br />cc1: fatal error: /usr/include: No such file or directory<br />compilation terminated.</p> DragonFlyBSD - Bug #2505: i386 buildkernel cc1: error: too many filenames given /usr/obj/usr/src/world_i386/usr/include: No such file or directoryhttps://bugs.dragonflybsd.org/issues/2505?journal_id=112602013-02-11T20:48:51Zyellowrabbit2010
<ul></ul><p>It tries to compile /usr/include porpably because of this conversion:<br />1. -I@/../include -I/usr/include<br />2. '-I' '@/../include' '-I' '/usr/include'<br />3. '-I' '-I' '/usr/include'<br />4. ignore '-I' '-I' (it seems like -I with ivalid include dir '-I')<br />5. '/usr/include'</p> DragonFlyBSD - Bug #2505: i386 buildkernel cc1: error: too many filenames given /usr/obj/usr/src/world_i386/usr/include: No such file or directoryhttps://bugs.dragonflybsd.org/issues/2505?journal_id=112612013-02-11T22:39:58Zyellowrabbit2010
<ul></ul><p>What happens if GCC try use @some-dir-name as ``response file''?<br />Filesystem matters.</p>
<p>Simple test:</p>
<p>===== test-resp.c =====<br />#include <stdio.h></p>
<p>int<br />main(int argc, char *argv[])
{<br /> FILE *f;<br /> char str<sup><a href="#fn200">200</a></sup>;</p>
<pre><code>f = fopen("dir", "r");<br /> if (!f) {<br /> printf("Cannot open.\n");<br /> return(1);<br /> }</code></pre>
<pre><code>if (!fgets(str, sizeof(str), f)) {<br /> printf("NULL read.\n");<br /> return(1);<br /> }<br /> printf("Read is OK.\n");<br /> printf("'%s'\n", str);<br /> fclose(f);<br /> return(0);<br />}</code></pre>
===== HAMMER =====
<ol>
<li>cc -o test-resp test-resp.c</li>
<li>mkdir dir</li>
<li>touch dir/file-0</li>
<li>./test-resp<br />NULL read.
#</li>
</ol>
===== NFS =====
<ol>
<li>mount -t nfs 192.168.3.1:/var/xchg /mnt/xchg</li>
<li>cpdup ./ /mnt/xchg/test-resp</li>
<li>cd /mnt/xchg/test-resp</li>
<li>./test-resp<br />Read is OK.<br />'<some garbage>'
#</li>
</ol> DragonFlyBSD - Bug #2505: i386 buildkernel cc1: error: too many filenames given /usr/obj/usr/src/world_i386/usr/include: No such file or directoryhttps://bugs.dragonflybsd.org/issues/2505?journal_id=112832013-02-19T18:01:51Zftigeot
<ul><li><strong>Status</strong> changed from <i>New</i> to <i>In Progress</i></li><li><strong>% Done</strong> changed from <i>0</i> to <i>10</i></li></ul><p>I could complete a buildworld+buildkernel sequence in a chroot on a machine where I can't buildkernel in /usr/src without encountering this issue.</p>
<p>I mounted /usr/src in the chroot using a nullfs mount.</p>
<p>It is very likely this gcc47 bug is caused by something present in the world environment.</p> DragonFlyBSD - Bug #2505: i386 buildkernel cc1: error: too many filenames given /usr/obj/usr/src/world_i386/usr/include: No such file or directoryhttps://bugs.dragonflybsd.org/issues/2505?journal_id=112852013-02-19T22:08:49Zftigeot
<ul><li><strong>% Done</strong> changed from <i>10</i> to <i>50</i></li></ul><p>Old files present in /usr/include were likely the reason make buildkernel failed on my machines.</p>
<p>I was able to complete a whole buildworld+kernel sequence with gcc47 after having nuked /usr/include.</p> DragonFlyBSD - Bug #2505: i386 buildkernel cc1: error: too many filenames given /usr/obj/usr/src/world_i386/usr/include: No such file or directoryhttps://bugs.dragonflybsd.org/issues/2505?journal_id=112862013-02-21T05:47:59Zdavshao
<ul></ul><p>Can I have specific instructions how to replace /usr/include?</p>
I have tried
<ol>
<li>make buildworld<br />moving /usr/include to /usr/include.old</li>
<li>make installworld</li>
</ol>
and rebooting, but
<ol>
<li>make buildkernel<br />still fails in the same way.</li>
</ol>
<p>The old files diff-ing /usr/include.old and /usr/include were some meteor files and an ata.h.</p> DragonFlyBSD - Bug #2505: i386 buildkernel cc1: error: too many filenames given /usr/obj/usr/src/world_i386/usr/include: No such file or directoryhttps://bugs.dragonflybsd.org/issues/2505?journal_id=112892013-02-21T10:34:58Zftigeot
<ul></ul><blockquote>
<p>Can I have specific instructions how to replace /usr/include?</p>
I have tried
<ol>
<li>make buildworld<br />moving /usr/include to /usr/include.old</li>
<li>make installworld</li>
</ol>
</blockquote>
<p>This is exactly what I did.<br />It obviously wasn't enough to fix all machines.</p>
<p>I had a few different files:<br /> stdlib.h.gch<br /> sys/bitstring.h<br /> gelf.h<br /> libelf.h</p>
<p>Can you try building world+kernel in a brand new chroot and see if this makes a difference ?</p>
<p>mkdir /chroot<br />cd /usr/src && make installworld DESTDIR=/chroot<br />cd /usr/src/etc && make distribution DESTDIR=/chroot<br />mount -t null /dev /chroot/dev<br />mount -t null /usr/src /chroot/usr/src<br />chroot /chroot</p>
<p>should be enough to give you a clean environment</p> DragonFlyBSD - Bug #2505: i386 buildkernel cc1: error: too many filenames given /usr/obj/usr/src/world_i386/usr/include: No such file or directoryhttps://bugs.dragonflybsd.org/issues/2505?journal_id=112942013-02-23T01:19:41Zyellowrabbit2010
<ul></ul><p>I was able to build kernel with gcc47 after rm -rf /include. Why /include ?</p>
<p>=== /usr/src/contrib/gcc-4.7/libiberty/argv.c ==<br />void<br />expandargv (int <strong>argcp, char *</strong>*argvp)
{<br />...<br /> size_t file_argc;<br /> /* We are only interested in options of the form "<code>file". */<br /> filename = (*argvp)[i];<br /> if (filename[0] != '</code>')<br /> continue;<br />...<br /> /* Read the contents of the file. */<br /> f = fopen (++filename, "r");<br /> if (!f)<br /> continue;<br />...
===</p>
<p>So:<br /><del>I @/../include -</del>> try open /../include --> try open /include.</p> DragonFlyBSD - Bug #2505: i386 buildkernel cc1: error: too many filenames given /usr/obj/usr/src/world_i386/usr/include: No such file or directoryhttps://bugs.dragonflybsd.org/issues/2505?journal_id=112972013-02-25T07:16:53Zdavshao
<ul></ul><p>THANK YOU for taking so much time and effort to track down a solution to this problem. I have been able to successfully update multiple x86_64 and i386 machines to now use gcc 4.7 as the default compiler for both world and kernel.</p> DragonFlyBSD - Bug #2505: i386 buildkernel cc1: error: too many filenames given /usr/obj/usr/src/world_i386/usr/include: No such file or directoryhttps://bugs.dragonflybsd.org/issues/2505?journal_id=143482022-06-04T11:46:51Ztuxillo
<ul><li><strong>Description</strong> updated (<a title="View differences" href="/journals/14348/diff?detail_id=4011">diff</a>)</li><li><strong>Category</strong> set to <i>Userland</i></li><li><strong>Status</strong> changed from <i>In Progress</i> to <i>Closed</i></li><li><strong>Assignee</strong> set to <i>davshao</i></li></ul><p>No i386 support anymore plus davshao reported success.</p> DragonFlyBSD - Bug #2505: i386 buildkernel cc1: error: too many filenames given /usr/obj/usr/src/world_i386/usr/include: No such file or directoryhttps://bugs.dragonflybsd.org/issues/2505?journal_id=143492022-06-04T11:47:01Ztuxillo
<ul><li><strong>% Done</strong> changed from <i>50</i> to <i>100</i></li></ul>