All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/3] icecc-create-env: a tool to create icecc toolchain tarballs
@ 2011-09-16  6:55 Dmitry Eremin-Solenikov
  2011-09-16  6:55 ` [PATCH 2/3] icecc.bbclass: replace with updated version Dmitry Eremin-Solenikov
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Dmitry Eremin-Solenikov @ 2011-09-16  6:55 UTC (permalink / raw)
  To: openembedded-core; +Cc: Dmitry Eremin-Solenikov

IceCC needs tarballs with toolchains to work correctly. This is a
version largely based on one from org.openembedded.dev, plus a patch to
support recent compilers, LTO, etc.

Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
---
 .../icecc-create-env/icecc-lto-update.patch        |  103 ++++++++++++++++++++
 .../icecc-create-env/icecc-create-env_0.1.bb       |   29 ++++++
 2 files changed, 132 insertions(+), 0 deletions(-)
 create mode 100644 meta/recipes-devtools/icecc-create-env/icecc-create-env/icecc-lto-update.patch
 create mode 100644 meta/recipes-devtools/icecc-create-env/icecc-create-env_0.1.bb

diff --git a/meta/recipes-devtools/icecc-create-env/icecc-create-env/icecc-lto-update.patch b/meta/recipes-devtools/icecc-create-env/icecc-create-env/icecc-lto-update.patch
new file mode 100644
index 0000000..b396261
--- /dev/null
+++ b/meta/recipes-devtools/icecc-create-env/icecc-create-env/icecc-lto-update.patch
@@ -0,0 +1,103 @@
+--- a/icecc-create-env	2006-12-14 09:50:46.000000000 +0300
++++ b/icecc-create-env	2011-08-31 17:52:45.000000000 +0400
+@@ -27,9 +27,6 @@
+   # readlink is not portable enough. 
+   path=`ls -H $path`
+   toadd="$name=$path"
+-  if test "$name" = "$path"; then
+-    toadd=$path
+-  fi
+   is_contained "$toadd" && return
+   if test -z "$silent"; then
+   echo "adding file $toadd"
+@@ -117,6 +114,14 @@
+   add_file "$specfile"
+ fi
+ 
++ltofile=`$added_gcc -print-prog-name=lto1`
++pluginfile="${ltofile%lto1}liblto_plugin.so"
++if test -r "$pluginfile"
++then
++  add_file $pluginfile  ${pluginfile#*usr}
++  add_file $pluginfile  /usr${pluginfile#*usr}
++fi
++
+ tempdir=`mktemp -d /tmp/iceccenvXXXXXX`
+ new_target_files=
+ for i in $target_files; do 
+@@ -140,49 +147,44 @@
+ done
+ 
+ #sort the files
+- target_files=`for i in $new_target_files; do echo $i; done | sort`
++target_files=`for i in $new_target_files; do echo $i; done | sort`
+ 
+ #test if an archive name was supplied
+ #if not use the md5 of all files as the archive name
+ if test -z "$archive_name"; then
+-md5sum=NONE
+-for file in /usr/bin/md5sum /bin/md5 /usr/bin/md5; do
+-   if test -x $file; then
+-	md5sum=$file
+-        break
+-   fi
+-done
++  md5sum=NONE
++  for file in /usr/bin/md5sum /bin/md5 /usr/bin/md5; do
++    if test -x $file; then
++      md5sum=$file
++      break
++    fi
++  done
+ 
+-#calculate md5 and use it as the archive name
+-archive_name=`for i in $target_files; do $md5sum $tempdir/$i; done | sed -e 's/ .*$//' | $md5sum | sed -e 's/ .*$//'` || {
+-  if test -z "$silent"; then
+-   echo "Couldn't compute MD5 sum."
++  #calculate md5 and use it as the archive name
++  archive_name=`for i in $target_files; do test -f $tempdir/$i && $md5sum $tempdir/$i; done | sed -e 's/ .*$//' | $md5sum | sed -e 's/ .*$//'`.tar.gz || {
++    if test -z "$silent"; then
++     echo "Couldn't compute MD5 sum."
++    fi
++    exit 2
++  }
++  mydir=`pwd`
++else
++  mydir="`dirname "$archive_name"`"
++ 
++  #check if we have a full path or only a filename
++  if test "$mydir" = "." ; then
++    mydir=`pwd`
++  else
++    mydir=""
+   fi
+-  exit 2
+-}
+-
+ fi
+ 
+ if test -z "$silent"; then
+-echo "creating $archive_name.tar.gz"
++echo "creating $archive_name"
+ fi
+ 
+-if test -z "$archive_name"; then
+- mydir=`pwd`
+-else
+-# mydir=dirname ${archive_name}
+-  mydir=${archive_name%/*}
+- 
+-#check if we have a full path or only a filename
+- if test -z "$mydir"; then
+-  mydir=`pwd`
+- else
+-  mydir=""
+- fi
+-
+-fi
+ cd $tempdir
+-tar -czhf "$mydir/$archive_name".tar.gz $target_files || {
++tar -czhf "$mydir/$archive_name" $target_files || {
+  if test -z "$silent"; then
+   echo "Couldn't create archive"
+  fi
diff --git a/meta/recipes-devtools/icecc-create-env/icecc-create-env_0.1.bb b/meta/recipes-devtools/icecc-create-env/icecc-create-env_0.1.bb
new file mode 100644
index 0000000..9a440ba
--- /dev/null
+++ b/meta/recipes-devtools/icecc-create-env/icecc-create-env_0.1.bb
@@ -0,0 +1,29 @@
+DESCRIPTION = "This is a modified version of the icecc-create-env script in order to\
+make it work with OE."
+SECTION = "base"
+PRIORITY = "optional"
+# source file has just a "GPL" word, but upstream is GPLv2+.
+# most probably just GPL would be a mistake
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://icecc-create-env;beginline=2;endline=5;md5=ae1df3d6a058bfda40b66094c5f6065f"
+
+PR = "r1"
+
+DEPENDS = ""
+INHIBIT_DEFAULT_DEPS = "1"
+
+inherit native
+
+PATCHTOOL = "patch"
+SRC_URI = "http://www.digital-opsis.com/openembedded/icecc-create-env-${PV}.tar.gz \
+	   file://icecc-lto-update.patch "
+
+S = "${WORKDIR}"
+
+do_install() {
+    install -d ${D}/${bindir}
+    install -m 0755 ${WORKDIR}/icecc-create-env ${D}/${bindir}
+}
+
+SRC_URI[md5sum] = "641ec45fe377529c7fd914f77b11b44f"
+SRC_URI[sha256sum] = "9ff8360375432a7a5c476cc6d55b3fdea9d6f3edc080d295a60421d8f47b1834"
-- 
1.7.2.5




^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2011-09-16 16:41 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-09-16  6:55 [PATCH 1/3] icecc-create-env: a tool to create icecc toolchain tarballs Dmitry Eremin-Solenikov
2011-09-16  6:55 ` [PATCH 2/3] icecc.bbclass: replace with updated version Dmitry Eremin-Solenikov
2011-09-16  6:55 ` [PATCH 3/3] bugzilla.bbclass: add a class to report build problems to bugzilla Dmitry Eremin-Solenikov
2011-09-16 16:35 ` [PATCH 1/3] icecc-create-env: a tool to create icecc toolchain tarballs Richard Purdie

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.