Dear John Schmoller, In message <cover.1268416692.git.jschmol...@xes-inc.com> you wrote: > The first patch removes CONFIG_SYS_MAXARGS, replacing the staticly defined > array with a malloc'd array of the appropriate size. When a function has no > upper argument limit (ie, was set to CONFIG_SYS_MAXARGS), it is now set to 0 > to indicate this fact. Argument count is now unlimited, within reason and > malloc buffer size. > > The second patch removes cmdtp->maxargs and moves the checks to the individual > command functions. Since most functions do bounds checking anyway, it's a > a fairly cheap task (sometimes free) to remove this bounds check in > common/main.c. In addition, it's more intuitive (in my opinion) if all bounds > checking is done in only one place for each function. The second patch also > creates a CMD_ERR_USAGE return value, which prints usage when returned. The > overall effect of this patch is to reduce code size by an average of 200-250 > bytes and, I feel, make things a bit cleaner. > > I'm looking for comments on these two patches as they are quite invasive, and > will definitly cause problems for those people who maintain their own code > out-of-tree. They may also require an additional amount of testing.
Did you actually run MAKEALL after applying the patches? I tried to get a feeling for the impact on the memory footprint, but it doesn't work for me. I get tons of error messages like these: ... cmd_bdinfo.c:389:1: error: macro "U_BOOT_CMD" passed 6 arguments, but takes just 5 cmd_bdinfo.c:385: warning: data definition has no type or storage class cmd_bdinfo.c:385: warning: type defaults to 'int' in declaration of 'U_BOOT_CMD' ... cmd_bootm.c:466:65: error: macro "U_BOOT_CMD_MKENT" passed 6 arguments, but takes just 5 cmd_bootm.c:466: error: 'U_BOOT_CMD_MKENT' undeclared here (not in a function) cmd_bootm.c:467:67: error: macro "U_BOOT_CMD_MKENT" passed 6 arguments, but takes just 5 cmd_bootm.c:469:69: error: macro "U_BOOT_CMD_MKENT" passed 6 arguments, but takes just 5 cmd_bootm.c:474:72: error: macro "U_BOOT_CMD_MKENT" passed 6 arguments, but takes just 5 cmd_bootm.c:475:65: error: macro "U_BOOT_CMD_MKENT" passed 6 arguments, but takes just 5 cmd_bootm.c:476:66: error: macro "U_BOOT_CMD_MKENT" passed 6 arguments, but takes just 5 cmd_bootm.c:477:62: error: macro "U_BOOT_CMD_MKENT" passed 6 arguments, but takes just 5 cmd_bootm.c:1022:1: error: macro "U_BOOT_CMD" passed 6 arguments, but takes just 5 cmd_bootm.c:986: warning: data definition has no type or storage class cmd_bootm.c:986: warning: type defaults to 'int' in declaration of 'U_BOOT_CMD' cmd_bootm.c:1047:1: error: macro "U_BOOT_CMD" passed 6 arguments, but takes just 5 cmd_bootm.c:1043: warning: data definition has no type or storage class cmd_bootm.c:1043: warning: type defaults to 'int' in declaration of 'U_BOOT_CMD' cmd_bootm.c:1054:1: error: macro "U_BOOT_CMD" passed 6 arguments, but takes just 5 cmd_bootm.c:1050: warning: data definition has no type or storage class cmd_bootm.c:1050: warning: type defaults to 'int' in declaration of 'U_BOOT_CMD' cmd_bootm.c:1142:1: error: macro "U_BOOT_CMD" passed 6 arguments, but takes just 5 cmd_bootm.c:1135: warning: data definition has no type or storage class cmd_bootm.c:1135: warning: type defaults to 'int' in declaration of 'U_BOOT_CMD' cmd_bootm.c:1209:1: error: macro "U_BOOT_CMD" passed 6 arguments, but takes just 5 cmd_bootm.c:1203: warning: data definition has no type or storage class cmd_bootm.c:1203: warning: type defaults to 'int' in declaration of 'U_BOOT_CMD' cmd_boot.c:70:1: error: macro "U_BOOT_CMD" passed 6 arguments, but takes just 5 cmd_boot.c:65: warning: data definition has no type or storage class cmd_boot.c:65: warning: type defaults to 'int' in declaration of 'U_BOOT_CMD' cmd_boot.c:78:1: error: macro "U_BOOT_CMD" passed 6 arguments, but takes just 5 cmd_boot.c:74: warning: data definition has no type or storage class cmd_boot.c:74: warning: type defaults to 'int' in declaration of 'U_BOOT_CMD' ... I suggest you rebase your patches against current code, test that they actually compile, and repost. Thanks in advance. Best regards, Wolfgang Denk -- DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: w...@denx.de You can't have everything... where would you put it? - Steven Wright _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot