This is an automated email from the ASF dual-hosted git repository.

xiaoxiang781216 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nuttx.git

commit d9f1f5fc95e62026ed54a928e322026b1d0ca497
Author: Marco Casaroli <[email protected]>
AuthorDate: Tue Oct 27 17:16:43 2026 +0100

    include: Declare the global data with extern instead of EXTERN.
    
    The 20 headers of include/ that declare global data used the macro
    EXTERN (extern "C" for C++, extern for C) and undefined it at their end.
    The declarations are inside the extern "C" block of the header, so
    plain extern gives them C linkage in C++ too: the macro adds nothing.
    
    But EXTERN is not a reserved name.  A program that defines its own
    EXTERN (Tcl's tcl.h) lost it when it included one of these headers after
    the definition, and time.h is one of them: stdio.h, signal.h, pthread.h
    and sys/stat.h include it.
    
    Declare the data with extern, as other C libraries do, and remove the
    definitions of EXTERN from these headers.
    
    Assisted-by: Claude Code:claude-opus-5-5
    Signed-off-by: Marco Casaroli <[email protected]>
---
 include/netdb.h                                    |  6 +-----
 include/netinet/in.h                               |  9 ++-------
 include/nuttx/arch.h                               | 11 +++--------
 include/nuttx/init.h                               |  6 +-----
 include/nuttx/lib/builtin.h                        |  8 ++------
 include/nuttx/mm/mm.h                              |  9 ++-------
 include/nuttx/mtd/nand_model.h                     |  6 +-----
 include/nuttx/mtd/nand_ram.h                       | 10 +++-------
 include/nuttx/mtd/nand_scheme.h                    | 12 ++++--------
 include/nuttx/net/ethernet.h                       |  8 ++------
 include/nuttx/net/loopback.h                       | 14 +++++---------
 include/nuttx/pthread.h                            |  6 +-----
 include/nuttx/sched.h                              | 17 ++++++-----------
 include/nuttx/usb/usbdev_trace.h                   | 15 +++++----------
 include/nuttx/wireless/cc1101.h                    | 11 +++--------
 include/nuttx/wireless/ieee802154/ieee802154_mac.h |  6 +-----
 include/nuttx/zoneinfo.h                           |  8 ++------
 include/sys/syscall.h                              |  8 ++------
 include/time.h                                     | 11 +++--------
 include/unistd.h                                   | 13 ++++---------
 20 files changed, 53 insertions(+), 141 deletions(-)

diff --git a/include/netdb.h b/include/netdb.h
index cf4bb7bddf3..1c30080c2ae 100644
--- a/include/netdb.h
+++ b/include/netdb.h
@@ -258,11 +258,8 @@ struct addrinfo
  ****************************************************************************/
 
 #ifdef __cplusplus
-#define EXTERN extern "C"
 extern "C"
 {
-#else
-#define EXTERN extern
 #endif
 
 /* When the <netdb.h> header is included, h_errno shall be available as a
@@ -275,7 +272,7 @@ extern "C"
 
 /* REVISIT:  This should at least be per-task? */
 
-EXTERN int h_errno;
+extern int h_errno;
 
 /****************************************************************************
  * Public Function Prototypes
@@ -368,7 +365,6 @@ int getprotobynumber_r(int proto,
 
 #endif /* CONFIG_LIBC_NETDB */
 
-#undef EXTERN
 #ifdef __cplusplus
 }
 #endif
diff --git a/include/netinet/in.h b/include/netinet/in.h
index 5f31d4e84df..927a022d9c2 100644
--- a/include/netinet/in.h
+++ b/include/netinet/in.h
@@ -378,19 +378,15 @@ struct in6_ifreq
  * Public Data
  ****************************************************************************/
 
-#undef EXTERN
 #if defined(__cplusplus)
-#define EXTERN extern "C"
 extern "C"
 {
-#else
-#define EXTERN extern
 #endif
 
 /* Global IPv6 in6addr_any and in6addr_loopback */
 
-EXTERN const struct in6_addr in6addr_any;
-EXTERN const struct in6_addr in6addr_loopback;
+extern const struct in6_addr in6addr_any;
+extern const struct in6_addr in6addr_loopback;
 
 /****************************************************************************
  * Public Function Prototypes
@@ -414,7 +410,6 @@ uint32_t    htonl(uint32_t hl);
 uint16_t    htons(uint16_t hs);
 uint64_t    htonq(uint64_t hq);
 
-#undef EXTERN
 #if defined(__cplusplus)
 }
 #endif
diff --git a/include/nuttx/arch.h b/include/nuttx/arch.h
index 83fd3dc9848..405fa92af6c 100644
--- a/include/nuttx/arch.h
+++ b/include/nuttx/arch.h
@@ -183,13 +183,9 @@ typedef CODE void (*debug_callback_t)(int type, FAR void 
*addr, size_t size,
  * Public Data
  ****************************************************************************/
 
-#undef EXTERN
 #if defined(__cplusplus)
-#define EXTERN extern "C"
 extern "C"
 {
-#else
-#define EXTERN extern
 #endif
 
 #ifdef CONFIG_SCHED_TICKLESS_LIMIT_MAX_SLEEP
@@ -207,7 +203,7 @@ extern "C"
  * value (in ticks).
  */
 
-EXTERN uint32_t g_oneshot_maxticks;
+extern uint32_t g_oneshot_maxticks;
 #endif
 
 #ifdef CONFIG_RTC
@@ -218,7 +214,7 @@ EXTERN uint32_t g_oneshot_maxticks;
  * some reason fails.
  */
 
-EXTERN volatile bool g_rtc_enabled;
+extern volatile bool g_rtc_enabled;
 #endif
 
 #ifdef CONFIG_ARCH_MINIMAL_VECTORTABLE
@@ -227,7 +223,7 @@ EXTERN volatile bool g_rtc_enabled;
  * in the configuration.  See declaration in include/nuttx/irq.h
  */
 
-/* EXTERN const irq_mapped_t g_irqmap[NR_IRQS]; */
+/* extern const irq_mapped_t g_irqmap[NR_IRQS]; */
 
 #endif
 
@@ -3127,7 +3123,6 @@ void up_memtag_tag_mem(const void *addr, size_t size);
 
 #endif /* CONFIG_ARCH_HAVE_MEMTAG */
 
-#undef EXTERN
 #if defined(__cplusplus)
 }
 #endif
diff --git a/include/nuttx/init.h b/include/nuttx/init.h
index bcc9a24c2f0..627bffaa8df 100644
--- a/include/nuttx/init.h
+++ b/include/nuttx/init.h
@@ -82,11 +82,8 @@ enum nx_initstate_e
  ****************************************************************************/
 
 #ifdef __cplusplus
-#define EXTERN extern "C"
 extern "C"
 {
-#else
-#define EXTERN extern
 #endif
 
 /* This is the current initialization state.  The level of initialization
@@ -94,7 +91,7 @@ extern "C"
  * hardware resources may not yet be available to the OS-internal logic.
  */
 
-EXTERN volatile enum nx_initstate_e g_nx_initstate;  /* See enum 
nx_initstate_e */
+extern volatile enum nx_initstate_e g_nx_initstate;  /* See enum 
nx_initstate_e */
 
 /****************************************************************************
  * Public Function Prototypes
@@ -106,7 +103,6 @@ EXTERN volatile enum nx_initstate_e g_nx_initstate;  /* See 
enum nx_initstate_e
 
 void nx_start(void);
 
-#undef EXTERN
 #ifdef __cplusplus
 }
 #endif
diff --git a/include/nuttx/lib/builtin.h b/include/nuttx/lib/builtin.h
index bd17a25753f..519ed96c42c 100644
--- a/include/nuttx/lib/builtin.h
+++ b/include/nuttx/lib/builtin.h
@@ -58,11 +58,8 @@ struct builtin_s
  ****************************************************************************/
 
 #if defined(__cplusplus)
-#define EXTERN extern "C"
 extern "C"
 {
-#else
-#define EXTERN extern
 #endif
 
 #if defined(CONFIG_BUILD_PROTECTED) && defined(__KERNEL__)
@@ -77,8 +74,8 @@ extern "C"
  * address space.  These globals must be provided the application layer.
  */
 
-EXTERN const struct builtin_s g_builtins[];
-EXTERN const int g_builtin_count;
+extern const struct builtin_s g_builtins[];
+extern const int g_builtin_count;
 #endif
 
 /****************************************************************************
@@ -203,7 +200,6 @@ int builtin_getmode(int index);
 
 #endif
 
-#undef EXTERN
 #if defined(__cplusplus)
 }
 #endif
diff --git a/include/nuttx/mm/mm.h b/include/nuttx/mm/mm.h
index 4f8c928b8e2..3f3b9d57db2 100644
--- a/include/nuttx/mm/mm.h
+++ b/include/nuttx/mm/mm.h
@@ -212,13 +212,9 @@ struct mempool_init_s
  * Public Data
  ****************************************************************************/
 
-#undef EXTERN
 #if defined(__cplusplus)
-#define EXTERN extern "C"
 extern "C"
 {
-#else
-#define EXTERN extern
 #endif
 
 #ifdef CONFIG_MM_BACKTRACE_SEQNO
@@ -251,13 +247,13 @@ extern unsigned long g_mm_seqno;
 #if defined(CONFIG_BUILD_FLAT) || !defined(__KERNEL__)
 /* Otherwise, the user heap data structures are in common .bss */
 
-EXTERN FAR struct mm_heap_s *g_mmheap;
+extern FAR struct mm_heap_s *g_mmheap;
 #endif
 
 #ifdef CONFIG_MM_KERNEL_HEAP
 /* This is the kernel heap */
 
-EXTERN FAR struct mm_heap_s *g_kmmheap;
+extern FAR struct mm_heap_s *g_kmmheap;
 #endif
 
 /****************************************************************************
@@ -497,7 +493,6 @@ void mm_notify_pressure(size_t remaining, size_t largest);
 #  define mm_notify_pressure(remaining, largest)
 #endif
 
-#undef EXTERN
 #ifdef __cplusplus
 }
 #endif
diff --git a/include/nuttx/mtd/nand_model.h b/include/nuttx/mtd/nand_model.h
index 0c82a5fcd36..cb473d3e395 100644
--- a/include/nuttx/mtd/nand_model.h
+++ b/include/nuttx/mtd/nand_model.h
@@ -88,16 +88,13 @@ struct nand_model_s
 #ifndef __ASSEMBLY__
 
 #ifdef __cplusplus
-#define EXTERN extern "C"
 extern "C"
 {
-#else
-#define EXTERN extern
 #endif
 
 /* List of NandFlash models which can be recognized by the software */
 
-EXTERN const struct nand_model_s g_nandmodels[NAND_NMODELS];
+extern const struct nand_model_s g_nandmodels[NAND_NMODELS];
 
 /****************************************************************************
  * Public Function Prototypes
@@ -370,7 +367,6 @@ unsigned int nandmodel_getsparesize(FAR const struct 
nand_model_s *model);
 
 #define nandmodel_havecopyback(m) (((m)->options & NANDMODEL_COPYBACK) != 0)
 
-#undef EXTERN
 #ifdef __cplusplus
 }
 #endif
diff --git a/include/nuttx/mtd/nand_ram.h b/include/nuttx/mtd/nand_ram.h
index e1004fdca20..b1b1d258b44 100644
--- a/include/nuttx/mtd/nand_ram.h
+++ b/include/nuttx/mtd/nand_ram.h
@@ -68,16 +68,13 @@
  ****************************************************************************/
 
 #ifdef __cplusplus
-#define EXTERN extern "C"
 extern "C"
 {
-#else
-#define EXTERN extern
 #endif
 
-EXTERN FAR struct mtd_dev_s    *g_nand_ram_mtd_wrapper;
-EXTERN FAR struct mtd_dev_s    *g_nand_ram_mtd_under;
-EXTERN FAR struct nand_raw_s   *g_nand_mtd_raw;
+extern FAR struct mtd_dev_s    *g_nand_ram_mtd_wrapper;
+extern FAR struct mtd_dev_s    *g_nand_ram_mtd_under;
+extern FAR struct nand_raw_s   *g_nand_mtd_raw;
 
 /****************************************************************************
  * Inline Functions
@@ -95,7 +92,6 @@ int nand_ram_rawwrite(FAR struct nand_raw_s *raw, off_t block,
                       FAR const void *spare);
 FAR struct mtd_dev_s *nand_ram_initialize(struct nand_raw_s *raw);
 
-#undef EXTERN
 #ifdef __cplusplus
 }
 #endif
diff --git a/include/nuttx/mtd/nand_scheme.h b/include/nuttx/mtd/nand_scheme.h
index 66da618f7e5..53f237263c8 100644
--- a/include/nuttx/mtd/nand_scheme.h
+++ b/include/nuttx/mtd/nand_scheme.h
@@ -75,17 +75,14 @@ struct nand_scheme_s
 #ifndef __ASSEMBLY__
 
 #ifdef __cplusplus
-#define EXTERN extern "C"
 extern "C"
 {
-#else
-#define EXTERN extern
 #endif
 
-EXTERN const struct nand_scheme_s g_nand_sparescheme256;
-EXTERN const struct nand_scheme_s g_nand_sparescheme512;
-EXTERN const struct nand_scheme_s g_nand_sparescheme2048;
-EXTERN const struct nand_scheme_s g_nand_sparescheme4096;
+extern const struct nand_scheme_s g_nand_sparescheme256;
+extern const struct nand_scheme_s g_nand_sparescheme512;
+extern const struct nand_scheme_s g_nand_sparescheme2048;
+extern const struct nand_scheme_s g_nand_sparescheme4096;
 
 /****************************************************************************
  * Public Function Prototypes
@@ -305,7 +302,6 @@ void nandscheme_writeextra(FAR const struct nand_scheme_s 
*scheme,
 int nandscheme_build4096(FAR struct nand_scheme_s *scheme,
                          unsigned int sparesize, unsigned int eccoffset);
 
-#undef EXTERN
 #ifdef __cplusplus
 }
 #endif
diff --git a/include/nuttx/net/ethernet.h b/include/nuttx/net/ethernet.h
index 55add2af07d..5a2edd6af1d 100644
--- a/include/nuttx/net/ethernet.h
+++ b/include/nuttx/net/ethernet.h
@@ -121,23 +121,19 @@ struct eth_8021qhdr_s
  ****************************************************************************/
 
 #ifdef __cplusplus
-#define EXTERN extern "C"
 extern "C"
 {
-#else
-#define EXTERN extern
 #endif
 
 #if defined(CONFIG_NET_ICMPv6_AUTOCONF) || defined(CONFIG_NET_ICMPv6_ROUTER)
-EXTERN const struct ether_addr g_ipv6_ethallnodes;    /* All link local nodes 
*/
-EXTERN const struct ether_addr g_ipv6_ethallrouters;  /* All link local 
routers */
+extern const struct ether_addr g_ipv6_ethallnodes;    /* All link local nodes 
*/
+extern const struct ether_addr g_ipv6_ethallrouters;  /* All link local 
routers */
 #endif
 
 /****************************************************************************
  * Public Function Prototypes
  ****************************************************************************/
 
-#undef EXTERN
 #ifdef __cplusplus
 }
 #endif
diff --git a/include/nuttx/net/loopback.h b/include/nuttx/net/loopback.h
index 44b07aec362..37e98ea12a0 100644
--- a/include/nuttx/net/loopback.h
+++ b/include/nuttx/net/loopback.h
@@ -39,29 +39,26 @@
  ****************************************************************************/
 
 #ifdef __cplusplus
-#define EXTERN extern "C"
 extern "C"
 {
-#else
-#define EXTERN extern
 #endif
 
 #ifdef CONFIG_LIBC_NETDB
 /* Local loopback hostname */
 
-EXTERN const char           g_lo_hostname[];
+extern const char           g_lo_hostname[];
 #endif
 
 /* Local loopback addresses */
 
 #ifdef CONFIG_NET_IPv4
-EXTERN const in_addr_t      g_lo_ipv4addr;
-EXTERN const in_addr_t      g_lo_ipv4mask;
+extern const in_addr_t      g_lo_ipv4addr;
+extern const in_addr_t      g_lo_ipv4mask;
 #endif
 
 #ifdef CONFIG_NET_IPv6
-EXTERN const net_ipv6addr_t g_lo_ipv6addr;
-EXTERN const net_ipv6addr_t g_lo_ipv6mask;
+extern const net_ipv6addr_t g_lo_ipv6addr;
+extern const net_ipv6addr_t g_lo_ipv6mask;
 #endif
 
 /****************************************************************************
@@ -84,7 +81,6 @@ EXTERN const net_ipv6addr_t g_lo_ipv6mask;
 
 int localhost_initialize(void);
 
-#undef EXTERN
 #ifdef __cplusplus
 }
 #endif
diff --git a/include/nuttx/pthread.h b/include/nuttx/pthread.h
index a2d7114e9fa..9063fbbdccc 100644
--- a/include/nuttx/pthread.h
+++ b/include/nuttx/pthread.h
@@ -105,11 +105,8 @@
  ****************************************************************************/
 
 #ifdef __cplusplus
-#define EXTERN extern "C"
 extern "C"
 {
-#else
-#define EXTERN extern
 #endif
 
 /****************************************************************************
@@ -120,7 +117,7 @@ extern "C"
  * kernel- or within the user- address space.
  */
 
-EXTERN const pthread_attr_t g_default_pthread_attr;
+extern const pthread_attr_t g_default_pthread_attr;
 
 /****************************************************************************
  * Public Function Prototypes
@@ -168,7 +165,6 @@ int nx_pthread_create(pthread_trampoline_t trampoline, FAR 
pthread_t *thread,
 
 void nx_pthread_exit(FAR void *exit_value) noreturn_function;
 
-#undef EXTERN
 #ifdef __cplusplus
 }
 #endif
diff --git a/include/nuttx/sched.h b/include/nuttx/sched.h
index cc912629f8f..6293d6c2976 100644
--- a/include/nuttx/sched.h
+++ b/include/nuttx/sched.h
@@ -849,37 +849,33 @@ struct smp_call_data_s
  ****************************************************************************/
 
 #ifndef __ASSEMBLY__
-#undef EXTERN
 #if defined(__cplusplus)
-#define EXTERN extern "C"
 extern "C"
 {
-#else
-#define EXTERN extern
 #endif
 
 /* Maximum time with pre-emption disabled or within critical section. */
 
 #if CONFIG_SCHED_CRITMONITOR_MAXTIME_PREEMPTION >= 0
-EXTERN clock_t g_preemp_max[CONFIG_SMP_NCPUS];
+extern clock_t g_preemp_max[CONFIG_SMP_NCPUS];
 #endif /* CONFIG_SCHED_CRITMONITOR_MAXTIME_PREEMPTION  >= 0 */
 
 #if CONFIG_SCHED_CRITMONITOR_MAXTIME_CSECTION >= 0
-EXTERN clock_t g_crit_max[CONFIG_SMP_NCPUS];
+extern clock_t g_crit_max[CONFIG_SMP_NCPUS];
 #endif /* CONFIG_SCHED_CRITMONITOR_MAXTIME_CSECTION >= 0 */
 
 #if CONFIG_SCHED_CRITMONITOR_MAXTIME_BUSYWAIT >= 0
-EXTERN clock_t g_busywait_max[CONFIG_SMP_NCPUS];
-EXTERN clock_t g_busywait_total[CONFIG_SMP_NCPUS];
+extern clock_t g_busywait_max[CONFIG_SMP_NCPUS];
+extern clock_t g_busywait_total[CONFIG_SMP_NCPUS];
 #endif /* CONFIG_SCHED_CRITMONITOR_MAXTIME_BUSYWAIT >= 0 */
 
 /* g_running_tasks[] holds a references to the running task for each CPU.
  * It is valid only when up_interrupt_context() returns true.
  */
 
-EXTERN FAR struct tcb_s *g_running_tasks[CONFIG_SMP_NCPUS];
+extern FAR struct tcb_s *g_running_tasks[CONFIG_SMP_NCPUS];
 
-EXTERN const struct tcbinfo_s g_tcbinfo;
+extern const struct tcbinfo_s g_tcbinfo;
 
 /****************************************************************************
  * Public Function Prototypes
@@ -1910,7 +1906,6 @@ void nxsched_sleep(unsigned int sec);
 int nxsched_nanosleep(FAR const struct timespec *rqtp,
                       FAR struct timespec *rmtp);
 
-#undef EXTERN
 #if defined(__cplusplus)
 }
 #endif
diff --git a/include/nuttx/usb/usbdev_trace.h b/include/nuttx/usb/usbdev_trace.h
index eb01d78e852..c7becd623a1 100644
--- a/include/nuttx/usb/usbdev_trace.h
+++ b/include/nuttx/usb/usbdev_trace.h
@@ -428,13 +428,9 @@ typedef CODE int (*trprintf_t)(FAR const char *fmt, ...) 
printf_like(1, 2);
  * Public Data
  ****************************************************************************/
 
-#undef EXTERN
 #if defined(__cplusplus)
-#  define EXTERN extern "C"
 extern "C"
 {
-#else
-#  define EXTERN extern
 #endif
 
 /* If CONFIG_USBDEV_TRACE_STRINGS is defined, then the USB class driver and
@@ -443,11 +439,11 @@ extern "C"
  */
 
 #ifdef CONFIG_USBDEV_TRACE_STRINGS
-EXTERN const struct trace_msg_t g_usb_trace_strings_clsapi[];
-EXTERN const struct trace_msg_t g_usb_trace_strings_clsstate[];
-EXTERN const struct trace_msg_t g_usb_trace_strings_clserror[];
-EXTERN const struct trace_msg_t g_usb_trace_strings_deverror[];
-EXTERN const struct trace_msg_t g_usb_trace_strings_intdecode[];
+extern const struct trace_msg_t g_usb_trace_strings_clsapi[];
+extern const struct trace_msg_t g_usb_trace_strings_clsstate[];
+extern const struct trace_msg_t g_usb_trace_strings_clserror[];
+extern const struct trace_msg_t g_usb_trace_strings_deverror[];
+extern const struct trace_msg_t g_usb_trace_strings_intdecode[];
 #endif
 
 /****************************************************************************
@@ -523,7 +519,6 @@ int usbtrace_enumerate(trace_callback_t callback, void 
*arg);
 
 void usbtrace_trprintf(trprintf_t trprintf, uint16_t event, uint16_t value);
 
-#undef EXTERN
 #if defined(__cplusplus)
 }
 #endif
diff --git a/include/nuttx/wireless/cc1101.h b/include/nuttx/wireless/cc1101.h
index d902bc55223..23e62fc9e1d 100644
--- a/include/nuttx/wireless/cc1101.h
+++ b/include/nuttx/wireless/cc1101.h
@@ -247,13 +247,9 @@
  ****************************************************************************/
 
 #ifndef __ASSEMBLY__
-#undef EXTERN
 #if defined(__cplusplus)
-#  define EXTERN extern "C"
 extern "C"
 {
-#else
-#  define EXTERN extern
 #endif
 
 typedef CODE int (*wait_cc1101_ready)(FAR struct cc1101_dev_s *dev,
@@ -428,7 +424,7 @@ struct c1101_rfsettings_s
  *   ISM-Band and Short Range Device Regulatory Compliance Overview
  */
 
-EXTERN const struct c1101_rfsettings_s
+extern const struct c1101_rfsettings_s
     cc1101_rfsettings_ISM1_868MHzGFSK100kbps;
 
 /* 905 MHz, GFSK, 250 kbps, ISM Region 2 (America only)
@@ -441,10 +437,10 @@ EXTERN const struct c1101_rfsettings_s
  * Military radar        1000 kW
  */
 
-EXTERN const struct c1101_rfsettings_s
+extern const struct c1101_rfsettings_s
     cc1101_rfsettings_ISM2_905MHzGFSK250kbps;
 
-EXTERN const struct c1101_rfsettings_s
+extern const struct c1101_rfsettings_s
     cc1101_rfsettings_ISM2_433MHzMSK500kbps;
 
 /****************************************************************************
@@ -646,7 +642,6 @@ int cc1101_register(FAR const char *path, FAR struct 
cc1101_dev_s *dev);
 void cc1101_isr_process(FAR void *arg);
 int cc1101_isr(int irq, FAR void *context, FAR void *arg);
 
-#undef EXTERN
 #if defined(__cplusplus)
 }
 #endif
diff --git a/include/nuttx/wireless/ieee802154/ieee802154_mac.h 
b/include/nuttx/wireless/ieee802154/ieee802154_mac.h
index ee5ab20fd44..fb05b140119 100644
--- a/include/nuttx/wireless/ieee802154/ieee802154_mac.h
+++ b/include/nuttx/wireless/ieee802154/ieee802154_mac.h
@@ -1716,18 +1716,15 @@ struct ieee802154_netmac_s
 typedef FAR void *MACHANDLE;
 
 #ifdef __cplusplus
-#define EXTERN extern "C"
 extern "C"
 {
-#else
-#define EXTERN extern
 #endif
 
 /*****************************************************************************
  * Public Data
  *****************************************************************************/
 
-EXTERN FAR const char *g_ieee802154_status_string[];
+extern FAR const char *g_ieee802154_status_string[];
 
 /*****************************************************************************
  * Public Function Prototypes
@@ -1867,7 +1864,6 @@ FAR struct ieee802154_primitive_s 
*ieee802154_primitive_allocate(void);
 
 void ieee802154_primitive_free(FAR struct ieee802154_primitive_s *prim);
 
-#undef EXTERN
 #ifdef __cplusplus
 }
 #endif
diff --git a/include/nuttx/zoneinfo.h b/include/nuttx/zoneinfo.h
index 1b79a46f15f..ad4e16a33c0 100644
--- a/include/nuttx/zoneinfo.h
+++ b/include/nuttx/zoneinfo.h
@@ -40,11 +40,8 @@
  ****************************************************************************/
 
 #ifdef __cplusplus
-#define EXTERN extern "C"
 extern "C"
 {
-#else
-#define EXTERN extern
 #endif
 
 /* If the TZ database is built as a ROMFS file system, then these variables
@@ -54,14 +51,13 @@ extern "C"
  * mount the ROMF file system.
  */
 
-EXTERN unsigned char romfs_zoneinfo_img[];
-EXTERN unsigned int  romfs_zoneinfo_img_len;
+extern unsigned char romfs_zoneinfo_img[];
+extern unsigned int  romfs_zoneinfo_img_len;
 
 /****************************************************************************
  * Public Function Prototypes
  ****************************************************************************/
 
-#undef EXTERN
 #ifdef __cplusplus
 }
 #endif
diff --git a/include/sys/syscall.h b/include/sys/syscall.h
index ed1fbf9f9b3..4b6a2b38744 100644
--- a/include/sys/syscall.h
+++ b/include/sys/syscall.h
@@ -71,11 +71,8 @@ enum
  ****************************************************************************/
 
 #ifdef __cplusplus
-#define EXTERN extern "C"
 extern "C"
 {
-#else
-#define EXTERN extern
 #endif
 
 #ifdef CONFIG_LIB_SYSCALL
@@ -86,7 +83,7 @@ extern "C"
  * This table is only available during the kernel phase of a kernel build.
  */
 
-EXTERN const uintptr_t g_stublookup[SYS_nsyscalls];
+extern const uintptr_t g_stublookup[SYS_nsyscalls];
 
 #endif
 
@@ -94,13 +91,12 @@ EXTERN const uintptr_t g_stublookup[SYS_nsyscalls];
  * provides the name of the function.
  */
 
-EXTERN const char *g_funcnames[SYS_nsyscalls];
+extern const char *g_funcnames[SYS_nsyscalls];
 
 /****************************************************************************
  * Public Function Prototypes
  ****************************************************************************/
 
-#undef EXTERN
 #ifdef __cplusplus
 }
 #endif
diff --git a/include/time.h b/include/time.h
index 0ff75587ed5..244b070d549 100644
--- a/include/time.h
+++ b/include/time.h
@@ -158,30 +158,26 @@ struct sigevent;
  * Public Data
  ****************************************************************************/
 
-#undef EXTERN
 #if defined(__cplusplus)
-#define EXTERN extern "C"
 extern "C"
 {
-#else
-#define EXTERN extern
 #endif
 
 #ifdef CONFIG_LIBC_LOCALTIME
 
 /* daylight - Daylight savings time flag */
 
-/* EXTERN int daylight; not supported */
+/* extern int daylight; not supported */
 
 /* timezone - Difference from UTC and local standard time */
 
-/* EXTERN long int timezone; not supported */
+/* extern long int timezone; not supported */
 
 /* tzname[] - Timezone strings
  * Setup by tzset()
  */
 
-EXTERN FAR char *tzname[2];
+extern FAR char *tzname[2];
 #endif
 
 /****************************************************************************
@@ -239,7 +235,6 @@ int nanosleep(FAR const struct timespec *rqtp, FAR struct 
timespec *rmtp);
 
 void tzset(void);
 
-#undef EXTERN
 #if defined(__cplusplus)
 }
 #endif
diff --git a/include/unistd.h b/include/unistd.h
index 4a02ba06479..37f9cbb5cb1 100644
--- a/include/unistd.h
+++ b/include/unistd.h
@@ -338,13 +338,9 @@
  * Public Data
  ****************************************************************************/
 
-#undef EXTERN
 #if defined(__cplusplus)
-#define EXTERN extern "C"
 extern "C"
 {
-#else
-#define EXTERN extern
 #endif
 
 /****************************************************************************
@@ -500,10 +496,10 @@ FAR int   *getoptindp(void);  /* Index into argv */
 FAR int   *getoptoptp(void);  /* Unrecognized option character */
 
 #ifdef NUTTX_NO_GETOPT_MACROS
-EXTERN FAR char *optarg;      /* Optional argument following option */
-EXTERN int       opterr;      /* Print error message */
-EXTERN int       optind;      /* Index into argv */
-EXTERN int       optopt;      /* Unrecognized option character */
+extern FAR char *optarg;      /* Optional argument following option */
+extern int       opterr;      /* Print error message */
+extern int       optind;      /* Index into argv */
+extern int       optopt;      /* Unrecognized option character */
 #endif
 
 int     gethostname(FAR char *name, size_t namelen);
@@ -624,7 +620,6 @@ fortify_function(write) ssize_t write(int fd, FAR const 
void *buf,
 }
 #endif
 
-#undef EXTERN
 #if defined(__cplusplus)
 }
 #endif

Reply via email to