The getopt_long(3) use introduced by commit 8df90dec2bfd8c876ddd4cea010f40550d4e24aa broke backwards compatibility. Old behavior: $ i386 uname -m i686 New behavior: $ i386 uname -m i386: invalid option -- m Linux Traditional method to fix it is to disable program arguments reordering by prefixing getopt_long's optstring with '+' character. --- sys-utils/setarch.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/sys-utils/setarch.c b/sys-utils/setarch.c index aa7c810..bc6a12d 100644 --- a/sys-utils/setarch.c +++ b/sys-utils/setarch.c @@ -236,7 +236,7 @@ int main(int argc, char *argv[]) } #endif - while ((c = getopt_long(argc, argv, "hv3BFILRSTXZ", longopts, NULL)) != -1) { + while ((c = getopt_long(argc, argv, "+hv3BFILRSTXZ", longopts, NULL)) != -1) { switch (c) { case 'h': show_help(); -- ldv -- To unsubscribe from this list: send the line "unsubscribe util-linux-ng" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html