xiaoxiang781216 commented on code in PR #20568:
URL: https://github.com/apache/nuttx/pull/20568#discussion_r4274362350


##########
include/unistd.h:
##########
@@ -289,12 +289,19 @@
 #define getdtablesize(f)                 ((int)sysconf(_SC_OPEN_MAX))
 #define getpagesize(f)                   ((int)sysconf(_SC_PAGESIZE))
 
-/* Accessor functions associated with getopt(). */
+/* Accessor functions associated with getopt().  In the user space of a
+ * kernel build every process has its own copy of the C library data, so
+ * optarg, opterr, optind and optopt are the plain variables that POSIX
+ * specifies (see below).  Programs that bring their own getopt() depend
+ * on that.
+ */
 
-#define optarg                           (*(getoptargp()))
-#define opterr                           (*(getopterrp()))
-#define optind                           (*(getoptindp()))
-#define optopt                           (*(getoptoptp()))
+#if !defined(CONFIG_BUILD_KERNEL) || defined(__KERNEL__)

Review Comment:
   If I approve this change, user program use optarg as symbol will pass in 
kernel mode but fail in protect/flat mode. I would prefer three modes has the 
same behavior by rename the conflict symbol in the 3rd party code since they 
code need change anyway to pass the protected/flat mode.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to