diff mbox

[RFC] Fix "/usr/bin/xargs: rm: Argument list too long" during make distclean

Message ID 502957D5.1070800@koe-americas.com (mailing list archive)
State New, archived
Headers show

Commit Message

David Cullen Aug. 13, 2012, 7:39 p.m. UTC
When running "make distclean" in a cross chroot environment, the
following messages are emitted:

    [user@host:/home/work/linux]: make distclean
    /usr/bin/xargs: rm: Argument list too long
    make: *** [clean] Error 126

I use the following patch to get around the problem:



Is there another way to solve this problem that does not require
a patch to the Makefile?
--
To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

H. Peter Anvin Aug. 13, 2012, 8:38 p.m. UTC | #1
On 08/13/2012 12:39 PM, David Cullen wrote:
> When running "make distclean" in a cross chroot environment, the
> following messages are emitted:
> 
>     [user@host:/home/work/linux]: make distclean
>     /usr/bin/xargs: rm: Argument list too long
>     make: *** [clean] Error 126
> 

That sounds like a bug in xargs...

	-hpa

--
To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
David Cullen Aug. 13, 2012, 8:56 p.m. UTC | #2
On 8/13/2012 4:38 PM, H. Peter Anvin wrote:
> On 08/13/2012 12:39 PM, David Cullen wrote:

>> When running "make distclean" in a cross chroot environment, the

>> following messages are emitted:

>>

>>     [user@host:/home/work/linux]: make distclean

>>     /usr/bin/xargs: rm: Argument list too long

>>     make: *** [clean] Error 126

>>

> 

> That sounds like a bug in xargs...

> 

> 	-hpa

> 


In my specific case, qemu-arm-static calls xargs (In fact, in my
cross chroot, qemu-arm-static is used to run every user mode process).

Do you mean that qemu-arm-static is exposing a latent defect in xargs?

Does qemu-arm-static steal some of the command line space that would
normally be available for xargs? If so, how would xargs figure out
this was happening and handle the problem?

-- 
Thank you,
David Cullen
H. Peter Anvin Aug. 13, 2012, 9:01 p.m. UTC | #3
On 08/13/2012 01:56 PM, David Cullen wrote:
>>
>> That sounds like a bug in xargs...
>>
> 
> In my specific case, qemu-arm-static calls xargs (In fact, in my
> cross chroot, qemu-arm-static is used to run every user mode process).
> 
> Do you mean that qemu-arm-static is exposing a latent defect in xargs?
> 
> Does qemu-arm-static steal some of the command line space that would
> normally be available for xargs? If so, how would xargs figure out
> this was happening and handle the problem?
> 

I have no idea.  Perhaps strace can help you see what is happening, I
don't know.  More likely it is qemu-arm-static that is broken and it is
trying to enforce the old 128K limit that we used to have before 2.6.23.
 This could cause a mismatch between what sysconf(_SC_ARG_MAX) returns
and what the actual limit is.

Anyway, even more so the reason to reject this patch.

	-hpa
--
To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
David Cullen Aug. 14, 2012, 12:54 p.m. UTC | #4
On 8/13/2012 5:01 PM, H. Peter Anvin wrote:
> On 08/13/2012 01:56 PM, David Cullen wrote:

>>>

>>> That sounds like a bug in xargs...

>>>

>>

>> In my specific case, qemu-arm-static calls xargs (In fact, in my

>> cross chroot, qemu-arm-static is used to run every user mode process).

>>

>> Do you mean that qemu-arm-static is exposing a latent defect in xargs?

>>

>> Does qemu-arm-static steal some of the command line space that would

>> normally be available for xargs? If so, how would xargs figure out

>> this was happening and handle the problem?

>>

> 

> I have no idea.  Perhaps strace can help you see what is happening, I

> don't know.  More likely it is qemu-arm-static that is broken and it is

> trying to enforce the old 128K limit that we used to have before 2.6.23.

>  This could cause a mismatch between what sysconf(_SC_ARG_MAX) returns

> and what the actual limit is.

> 

> Anyway, even more so the reason to reject this patch.



I submitted a bug report on xargs:

    http://savannah.gnu.org/bugs/index.php?37093

I also submitted a bug report on QEMU:

    https://bugs.launchpad.net/qemu/+bug/1036645
diff mbox

Patch

diff --git a/Makefile b/Makefile
index b771af5..e2bca8e 100644
--- a/Makefile
+++ b/Makefile
@@ -1033,7 +1033,7 @@  distclean: mrproper
                -o -name '*.bak' -o -name '#*#' -o -name '.*.orig' \
                -o -name '.*.rej' \
                -o -name '*%' -o -name '.*.cmd' -o -name 'core' \) \
-               -type f -print | xargs rm -f
+               -type f -print | xargs -s 122880 rm -f


 # Packaging of the kernel to various formats
@@ -1242,7 +1242,7 @@  clean: $(clean-dirs)
                -o -name '.*.d' -o -name '.*.tmp' -o -name '*.mod.c' \
                -o -name '*.symtypes' -o -name 'modules.order' \
                -o -name modules.builtin -o -name '.tmp_*.o.*' \
-               -o -name '*.gcno' \) -type f -print | xargs rm -f
+               -o -name '*.gcno' \) -type f -print | xargs -s 122880 rm -f

 # Generate tags for editors
 # ---------------------------------------------------------------------------