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

[incubator-nuttx] branch master updated (093aa04 -> 19cc84e)

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

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


    from 093aa04  x86_64: Fix /dev/random rdrand implementation
     new 1195228  Revert "sim: Suppress "has no symbols" warnings for macOS"
     new 19cc84e  sim: Suppress no symbol warnings for macOS

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 boards/sim/sim/sim/configs/cxxtest/Make.defs |  3 +-
 boards/sim/sim/sim/include/dummy.h           | 46 ----------------------------
 boards/sim/sim/sim/scripts/Make.defs         |  8 ++---
 tools/macar-rcs.sh                           | 44 ++++++++++++++++++++++++++
 4 files changed, 48 insertions(+), 53 deletions(-)
 delete mode 100644 boards/sim/sim/sim/include/dummy.h
 create mode 100755 tools/macar-rcs.sh


[incubator-nuttx] 01/02: Revert "sim: Suppress "has no symbols" warnings for macOS"

Posted by xi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 1195228109cf852911b0925e8db24a12451fd1f3
Author: YAMAMOTO Takashi <ya...@midokura.com>
AuthorDate: Mon May 4 22:04:16 2020 +0900

    Revert "sim: Suppress "has no symbols" warnings for macOS"
    
    This reverts commit c1beda50f8217a28f1397a92dc4e8b35854a2761.
    
    IMO, it's too ugly hack just to surpress warnings.
---
 boards/sim/sim/sim/include/dummy.h   | 46 ------------------------------------
 boards/sim/sim/sim/scripts/Make.defs |  5 ----
 2 files changed, 51 deletions(-)

diff --git a/boards/sim/sim/sim/include/dummy.h b/boards/sim/sim/sim/include/dummy.h
deleted file mode 100644
index 21c0ada..0000000
--- a/boards/sim/sim/sim/include/dummy.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/****************************************************************************
- * 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 727ab27..28e7112 100644
--- a/boards/sim/sim/sim/scripts/Make.defs
+++ b/boards/sim/sim/sim/scripts/Make.defs
@@ -47,11 +47,6 @@ 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


[incubator-nuttx] 02/02: sim: Suppress no symbol warnings for macOS

Posted by xi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 19cc84ed4afe1df6c422b19339732b5f6b1d4942
Author: YAMAMOTO Takashi <ya...@midokura.com>
AuthorDate: Fri May 1 17:20:11 2020 +0900

    sim: Suppress no symbol warnings for macOS
---
 boards/sim/sim/sim/configs/cxxtest/Make.defs |  3 +-
 boards/sim/sim/sim/scripts/Make.defs         |  3 +-
 tools/macar-rcs.sh                           | 44 ++++++++++++++++++++++++++++
 3 files changed, 48 insertions(+), 2 deletions(-)

diff --git a/boards/sim/sim/sim/configs/cxxtest/Make.defs b/boards/sim/sim/sim/configs/cxxtest/Make.defs
index ec87630..165073a 100644
--- a/boards/sim/sim/sim/configs/cxxtest/Make.defs
+++ b/boards/sim/sim/sim/configs/cxxtest/Make.defs
@@ -62,10 +62,11 @@ CPP = $(CROSSDEV)cc -E
 LD = $(CROSSDEV)ld
 ifeq ($(CONFIG_HOST_MACOS),y)
 STRIP = $(CROSSDEV)strip
+AR = $(TOPDIR)/tools/macar-rcs.sh
 else
 STRIP = $(CROSSDEV)strip --strip-unneeded
-endif
 AR = $(CROSSDEV)ar rcs
+endif
 NM = $(CROSSDEV)nm
 OBJCOPY = $(CROSSDEV)objcopy
 OBJDUMP = $(CROSSDEV)objdump
diff --git a/boards/sim/sim/sim/scripts/Make.defs b/boards/sim/sim/sim/scripts/Make.defs
index 28e7112..ebf091b 100644
--- a/boards/sim/sim/sim/scripts/Make.defs
+++ b/boards/sim/sim/sim/scripts/Make.defs
@@ -64,10 +64,11 @@ CPP = $(CROSSDEV)cc -E -P -x c
 LD = $(CROSSDEV)ld
 ifeq ($(CONFIG_HOST_MACOS),y)
 STRIP = $(CROSSDEV)strip
+AR = $(TOPDIR)/tools/macar-rcs.sh
 else
 STRIP = $(CROSSDEV)strip --strip-unneeded
-endif
 AR = $(CROSSDEV)ar rcs
+endif
 NM = $(CROSSDEV)nm
 OBJCOPY = $(CROSSDEV)objcopy
 OBJDUMP = $(CROSSDEV)objdump
diff --git a/tools/macar-rcs.sh b/tools/macar-rcs.sh
new file mode 100755
index 0000000..8821f97
--- /dev/null
+++ b/tools/macar-rcs.sh
@@ -0,0 +1,44 @@
+#! /usr/bin/env bash
+
+# Licensed 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.
+
+# This is an "ar rcs" equivalent without "no symbols" warnings.
+
+# Background:
+#
+# NuttX assumes that it's ok to create
+#
+#  - An object without any symbols ("has no symbols")
+#  - A library without any symbols ("the table of contents is empty")
+#
+# While macOS's ranlib/libtool can handle those cases,
+# it produces warnings cited in the parentheses.
+# NuttX developers are not happy with those warnings.
+# NuttX developers are not happy with providing per-library dummy
+# objects either.
+#
+# The "has no symbols" warning can be supressed with
+# the -no_warning_for_no_symbols option if you are using
+# a recent enough version of ranlib/libtool.
+# (Unfortunately, ar doesn't have a way to pass the option to ranlib.)
+# However, there seems to be no way to suppress the
+# "the table of contents is empty" warning. (thus the grep below)
+#
+# Reference:
+#
+# https://opensource.apple.com/source/cctools/cctools-949.0.1/misc/
+
+set -e
+ar rcS "$@"
+# Note: the following line is using bash process substitution
+ranlib -no_warning_for_no_symbols "$1" 2> >(grep -F -v "the table of contents is empty")