You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by gn...@apache.org on 2020/05/01 16:48:25 UTC

[incubator-nuttx] branch master updated: sim: Suppress "has no symbols" warnings for macOS

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

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


The following commit(s) were added to refs/heads/master by this push:
     new c1beda5  sim: Suppress "has no symbols" warnings for macOS
c1beda5 is described below

commit c1beda50f8217a28f1397a92dc4e8b35854a2761
Author: Xiang Xiao <xi...@xiaomi.com>
AuthorDate: Fri May 1 22:25:32 2020 +0800

    sim: Suppress "has no symbols" warnings for macOS
    
    Signed-off-by: Xiang Xiao <xi...@xiaomi.com>
---
 boards/sim/sim/sim/include/dummy.h   | 46 ++++++++++++++++++++++++++++++++++++
 boards/sim/sim/sim/scripts/Make.defs |  5 ++++
 2 files changed, 51 insertions(+)

diff --git a/boards/sim/sim/sim/include/dummy.h b/boards/sim/sim/sim/include/dummy.h
new file mode 100644
index 0000000..21c0ada
--- /dev/null
+++ b/boards/sim/sim/sim/include/dummy.h
@@ -0,0 +1,46 @@
+/****************************************************************************
+ * boards/sim/sim/sim/include/dummy.h
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.  The
+ * ASF licenses this file to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the
+ * License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
+ * License for the specific language governing permissions and limitations
+ * under the License.
+ *
+ ****************************************************************************/
+
+#ifndef __BOARDS_SIM_SIM_SIM_INCLUDE_DUMMY_H
+#define __BOARDS_SIM_SIM_SIM_INCLUDE_DUMMY_H
+
+/****************************************************************************
+ * Pre-processor Definitions
+ ****************************************************************************/
+
+#define DUMMY_NAME(name) DUMMY_NAME_(dummy_, name)
+#define DUMMY_NAME_(prefix, name) prefix##name
+
+/****************************************************************************
+ * Public Function Prototypes
+ ****************************************************************************/
+
+/* ranlib on macOS will generate "has no symbols" warning if the static
+ * library don't expose any public symbol, so let's always generate a dummy
+ * global function to overcome this issue.
+ */
+
+#ifndef __ASSEMBLY__
+void DUMMY_NAME(CKSUM_SELF)(void)
+{
+}
+#endif
+
+#endif /* __BOARDS_SIM_SIM_SIM_INCLUDE_DUMMY_H */
diff --git a/boards/sim/sim/sim/scripts/Make.defs b/boards/sim/sim/sim/scripts/Make.defs
index 28e7112..727ab27 100644
--- a/boards/sim/sim/sim/scripts/Make.defs
+++ b/boards/sim/sim/sim/scripts/Make.defs
@@ -47,6 +47,11 @@ ARCHINCLUDES = -I. -isystem $(TOPDIR)/include
 ARCHINCLUDESXX = -I. -isystem $(TOPDIR)/include -isystem $(TOPDIR)/include/cxx
 ARCHSCRIPT =
 
+ifeq ($(CONFIG_HOST_MACOS),y)
+  ARCHDEFINES  += -DCKSUM_SELF=$(if $<,$(word 1,$(shell cksum $<)))
+  ARCHINCLUDES += -include $(TOPDIR)/boards/sim/sim/sim/include/dummy.h
+endif
+
 # Add -fno-common because macOS "ld -r" doesn't seem to pick objects
 # for common symbols.
 ARCHCPUFLAGS += -fno-common