summaryrefslogtreecommitdiffstats
path: root/mkspecs/macx-ios-clang/rename_main.sh
diff options
context:
space:
mode:
authorFrederik Gladhorn <frederik.gladhorn@digia.com>2014-01-10 18:27:48 +0100
committerFrederik Gladhorn <frederik.gladhorn@digia.com>2014-01-10 18:27:49 +0100
commit7917dfbf1c54150d0ca3a79285767c22e6f9d770 (patch)
treea05973334097df480afe32d07db42f381b460e74 /mkspecs/macx-ios-clang/rename_main.sh
parentb9362903b339e57362a7a3296904504521d0e26f (diff)
parentb088e4827f427189334e8a1c5b4f2b8b0b713fc2 (diff)
Merge remote-tracking branch 'origin/stable' into dev
Diffstat (limited to 'mkspecs/macx-ios-clang/rename_main.sh')
-rwxr-xr-xmkspecs/macx-ios-clang/rename_main.sh63
1 files changed, 63 insertions, 0 deletions
diff --git a/mkspecs/macx-ios-clang/rename_main.sh b/mkspecs/macx-ios-clang/rename_main.sh
new file mode 100755
index 0000000000..b30eb160d0
--- /dev/null
+++ b/mkspecs/macx-ios-clang/rename_main.sh
@@ -0,0 +1,63 @@
+#!/bin/bash
+
+#############################################################################
+##
+## Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+## Contact: http://www.qt-project.org/legal
+##
+## This file is the build configuration utility of the Qt Toolkit.
+##
+## $QT_BEGIN_LICENSE:LGPL$
+## Commercial License Usage
+## Licensees holding valid commercial Qt licenses may use this file in
+## accordance with the commercial license agreement provided with the
+## Software or, alternatively, in accordance with the terms contained in
+## a written agreement between you and Digia. For licensing terms and
+## conditions see http://qt.digia.com/licensing. For further information
+## use the contact form at http://qt.digia.com/contact-us.
+##
+## GNU Lesser General Public License Usage
+## Alternatively, this file may be used under the terms of the GNU Lesser
+## General Public License version 2.1 as published by the Free Software
+## Foundation and appearing in the file LICENSE.LGPL included in the
+## packaging of this file. Please review the following information to
+## ensure the GNU Lesser General Public License version 2.1 requirements
+## will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+##
+## In addition, as a special exception, Digia gives you certain additional
+## rights. These rights are described in the Digia Qt LGPL Exception
+## version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+##
+## GNU General Public License Usage
+## Alternatively, this file may be used under the terms of the GNU
+## General Public License version 3.0 as published by the Free Software
+## Foundation and appearing in the file LICENSE.GPL included in the
+## packaging of this file. Please review the following information to
+## ensure the GNU General Public License version 3.0 requirements will be
+## met: http://www.gnu.org/copyleft/gpl.html.
+##
+##
+## $QT_END_LICENSE$
+##
+#############################################################################
+
+if [ $# -eq 0 ]; then
+ echo "usage: $0 <path to object files>"
+else
+ for f in $(find $1 -name '*.o'); do
+ # Skip object files without the _main symbol
+ nm $f | grep -q 'T _main$' || continue
+
+ echo "Found main() in ${f#$1/}"
+
+ strings -t d - $f | grep '_main\(\.eh\)\?$' | while read match; do
+ offset=$(echo $match | cut -d ' ' -f 1)
+ symbol=$(echo $match | cut -d ' ' -f 2)
+
+ echo " Renaming '$symbol' at offset $offset to '${symbol/main/qtmn}'"
+
+ # In-place rename the string (keeping the same length)
+ printf '_qtmn' | dd of=$f bs=1 seek=$offset conv=notrunc >/dev/null 2>&1
+ done
+ done
+fi \ No newline at end of file