mirror of
https://git.yoctoproject.org/poky
synced 2026-05-30 00:20:08 +00:00
Major layout change to the packages directory
Having one monolithic packages directory makes it hard to find things and is generally overwhelming. This commit splits it into several logical sections roughly based on function, recipes.txt gives more information about the classifications used. The opportunity is also used to switch from "packages" to "recipes" as used in OpenEmbedded as the term "packages" can be confusing to people and has many different meanings. Not all recipes have been classified yet, this is just a first pass at separating things out. Some packages are moved to meta-extras as they're no longer actively used or maintained. Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
Add missing includes required when building with modern toolchain, based on
|
||||
patch from Debian bugzilla:
|
||||
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=505954
|
||||
|
||||
Should no longer be required once upgraded to 0.7.22 or later.
|
||||
|
||||
Index: apt-0.7.14/apt-pkg/acquire.cc
|
||||
===================================================================
|
||||
--- apt-0.7.14.orig/apt-pkg/acquire.cc 2008-05-28 14:22:13.000000000 +0100
|
||||
+++ apt-0.7.14/apt-pkg/acquire.cc 2010-07-23 17:30:11.494883936 +0100
|
||||
@@ -22,6 +22,7 @@
|
||||
|
||||
#include <apti18n.h>
|
||||
|
||||
+#include <cstdio>
|
||||
#include <iostream>
|
||||
#include <sstream>
|
||||
|
||||
Index: apt-0.7.14/apt-pkg/contrib/sha256.h
|
||||
===================================================================
|
||||
--- apt-0.7.14.orig/apt-pkg/contrib/sha256.h 2008-05-28 14:22:14.000000000 +0100
|
||||
+++ apt-0.7.14/apt-pkg/contrib/sha256.h 2010-07-23 17:30:11.494883936 +0100
|
||||
@@ -14,6 +14,7 @@
|
||||
#ifndef APTPKG_SHA256_H
|
||||
#define APTPKG_SHA256_H
|
||||
|
||||
+#include <stdint.h>
|
||||
#include <string>
|
||||
#include <cstring>
|
||||
#include <algorithm>
|
||||
Index: apt-0.7.14/apt-pkg/deb/dpkgpm.cc
|
||||
===================================================================
|
||||
--- apt-0.7.14.orig/apt-pkg/deb/dpkgpm.cc 2008-05-28 14:22:14.000000000 +0100
|
||||
+++ apt-0.7.14/apt-pkg/deb/dpkgpm.cc 2010-07-23 17:30:36.960856870 +0100
|
||||
@@ -20,6 +20,7 @@
|
||||
#include <stdlib.h>
|
||||
#include <fcntl.h>
|
||||
#include <sys/select.h>
|
||||
+#include <sys/stat.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/wait.h>
|
||||
#include <signal.h>
|
||||
@@ -0,0 +1,9 @@
|
||||
---
|
||||
po/LINGUAS | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
--- apt-0.7.14.orig/po/LINGUAS
|
||||
+++ apt-0.7.14/po/LINGUAS
|
||||
@@ -1 +1 @@
|
||||
-ar bg bs ca cs cy da de dz el en_GB es eu fi fr gl he hu it ja km ko ku mr nb ne nl nn pl pt pt_BR ro ru sk sl sv th tl uk vi zh_CN zh_TW
|
||||
+ar bg bs ca cs cy da de dz el en_GB es eu fi fr gl he hu it ja km ku mr nb ne nl nn pl pt pt_BR ro ru sk sl sv th tl uk vi zh_CN zh_TW
|
||||
@@ -0,0 +1,35 @@
|
||||
---
|
||||
apt-pkg/packagemanager.cc | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
--- apt-0.6.45exp2.orig/apt-pkg/packagemanager.cc
|
||||
+++ apt-0.6.45exp2/apt-pkg/packagemanager.cc
|
||||
@@ -534,10 +534,12 @@ bool pkgPackageManager::SmartUnPack(PkgI
|
||||
|
||||
List->Flag(Pkg,pkgOrderList::UnPacked,pkgOrderList::States);
|
||||
|
||||
+#if 0
|
||||
// Perform immedate configuration of the package.
|
||||
if (List->IsFlag(Pkg,pkgOrderList::Immediate) == true)
|
||||
if (SmartConfigure(Pkg) == false)
|
||||
return _error->Error("Internal Error, Could not perform immediate configuration (2) on %s",Pkg.Name());
|
||||
+#endif
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -609,6 +611,7 @@ pkgPackageManager::OrderResult pkgPackag
|
||||
DoneSomething = true;
|
||||
}
|
||||
|
||||
+#if 0
|
||||
// Final run through the configure phase
|
||||
if (ConfigureAll() == false)
|
||||
return Failed;
|
||||
@@ -623,6 +626,7 @@ pkgPackageManager::OrderResult pkgPackag
|
||||
return Failed;
|
||||
}
|
||||
}
|
||||
+#endif
|
||||
|
||||
return Completed;
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
---
|
||||
Makefile | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
--- apt-0.7.14.orig/Makefile
|
||||
+++ apt-0.7.14/Makefile
|
||||
@@ -15,11 +15,11 @@ all headers library clean veryclean bina
|
||||
$(MAKE) -C apt-inst $@
|
||||
$(MAKE) -C methods $@
|
||||
$(MAKE) -C cmdline $@
|
||||
$(MAKE) -C ftparchive $@
|
||||
$(MAKE) -C dselect $@
|
||||
- $(MAKE) -C doc $@
|
||||
+# $(MAKE) -C doc $@
|
||||
$(MAKE) -C po $@
|
||||
|
||||
# Some very common aliases
|
||||
.PHONY: maintainer-clean dist-clean distclean pristine sanity
|
||||
maintainer-clean dist-clean distclean pristine sanity: veryclean
|
||||
@@ -0,0 +1,44 @@
|
||||
---
|
||||
buildlib/sizetable | 4 +++-
|
||||
configure.in | 2 +-
|
||||
2 files changed, 4 insertions(+), 2 deletions(-)
|
||||
|
||||
--- apt-0.7.14.orig/buildlib/sizetable
|
||||
+++ apt-0.7.14/buildlib/sizetable
|
||||
@@ -9,16 +9,19 @@
|
||||
#
|
||||
# This is used primarily for the MD5 algorithm.
|
||||
# The format is:-
|
||||
# CPU endian sizeof: char, int, short, long
|
||||
i386 little 1 4 2 4
|
||||
+i486 little 1 4 2 4
|
||||
+i586 little 1 4 2 4
|
||||
+i686 little 1 4 2 4
|
||||
armeb big 1 4 2 4
|
||||
arm little 1 4 2 4
|
||||
alpha little 1 4 2 8
|
||||
mipsel little 1 4 2 4
|
||||
sparc big 1 4 2 4
|
||||
sparc64 big 1 4 2 8
|
||||
m68k big 1 4 2 4
|
||||
powerpc big 1 4 2 4
|
||||
mips big 1 4 2 4
|
||||
hppa big 1 4 2 4
|
||||
-m32r big 1 4 2 4
|
||||
\ No newline at end of file
|
||||
+m32r big 1 4 2 4
|
||||
--- apt-0.7.14.orig/configure.in
|
||||
+++ apt-0.7.14/configure.in
|
||||
@@ -86,11 +86,11 @@ AC_SUBST(BDBLIB)
|
||||
dnl Converts the ARCH to be something singular for this general CPU family
|
||||
dnl This is often the dpkg architecture string.
|
||||
dnl First check against the full canonical canoncial-system-type in $target
|
||||
dnl and if that fails, just look for the cpu
|
||||
AC_MSG_CHECKING(debian architecture)
|
||||
-archset="`dpkg-architecture -qDEB_HOST_ARCH`"
|
||||
+archset="`echo $host_alias|cut -d'-' -f1`"
|
||||
if test "x$archset" = "x"; then
|
||||
AC_MSG_ERROR([failed: use --host= or output from dpkg-architecture])
|
||||
fi
|
||||
AC_MSG_RESULT($archset)
|
||||
AC_DEFINE_UNQUOTED(COMMON_ARCH,"$archset")
|
||||
@@ -0,0 +1,63 @@
|
||||
require apt.inc
|
||||
inherit native
|
||||
|
||||
DEPENDS += "dpkg-native gettext-native"
|
||||
PACKAGES = ""
|
||||
USE_NLS = "yes"
|
||||
|
||||
SRC_URI += "file://db_linking_hack.patch"
|
||||
|
||||
python do_install () {
|
||||
bb.build.exec_func('do_install_base', d)
|
||||
bb.build.exec_func('do_install_config', d)
|
||||
}
|
||||
|
||||
python do_install_config () {
|
||||
indir = os.path.dirname(bb.data.getVar('FILE',d,1))
|
||||
infile = file(os.path.join(indir, 'files', 'apt.conf'), 'r')
|
||||
data = infile.read()
|
||||
infile.close()
|
||||
|
||||
data = bb.data.expand(data, d)
|
||||
|
||||
outdir = os.path.join(bb.data.getVar('D', d, 1), bb.data.getVar('sysconfdir', d, 1), 'apt')
|
||||
if not os.path.exists(outdir):
|
||||
os.makedirs(outdir)
|
||||
outpath = os.path.join(outdir, 'apt.conf.sample')
|
||||
|
||||
outfile = file(outpath, 'w')
|
||||
outfile.write(data)
|
||||
outfile.close()
|
||||
}
|
||||
|
||||
do_install_base () {
|
||||
install -d ${D}${bindir}
|
||||
install -m 0755 bin/apt-cdrom ${D}${bindir}/
|
||||
install -m 0755 bin/apt-get ${D}${bindir}/
|
||||
install -m 0755 bin/apt-config ${D}${bindir}/
|
||||
install -m 0755 bin/apt-cache ${D}${bindir}/
|
||||
install -m 0755 bin/apt-sortpkgs ${D}${bindir}/
|
||||
install -m 0755 bin/apt-extracttemplates ${D}${bindir}/
|
||||
|
||||
eval `cat environment.mak | grep ^GLIBC_VER | sed -e's, = ,=,'`
|
||||
oe_libinstall -so -C bin libapt-pkg$GLIBC_VER-6 ${D}${libdir}/
|
||||
ln -sf libapt-pkg$GLIBC_VER-6.so ${D}${libdir}/libapt-pkg.so
|
||||
oe_libinstall -so -C bin libapt-inst$GLIBC_VER-6 ${D}${libdir}/
|
||||
ln -sf libapt-inst$GLIBC_VER-6.so ${D}${libdir}/libapt-inst.so
|
||||
|
||||
install -d ${D}${libdir}/apt/methods
|
||||
install -m 0755 bin/methods/* ${D}${libdir}/apt/methods/
|
||||
|
||||
install -d ${D}${libdir}/dpkg/methods/apt
|
||||
install -m 0644 dselect/desc.apt ${D}${libdir}/dpkg/methods/apt/
|
||||
install -m 0644 dselect/names ${D}${libdir}/dpkg/methods/apt/
|
||||
install -m 0755 dselect/install ${D}${libdir}/dpkg/methods/apt/
|
||||
install -m 0755 dselect/setup ${D}${libdir}/dpkg/methods/apt/
|
||||
install -m 0755 dselect/update ${D}${libdir}/dpkg/methods/apt/
|
||||
|
||||
install -d ${D}${sysconfdir}/apt
|
||||
install -d ${D}${localstatedir}/lib/apt/lists/partial
|
||||
install -d ${D}${localstatedir}/cache/apt/archives/partial
|
||||
|
||||
install -d ${D}${localstatedir}/log/apt/
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
require apt-native.inc
|
||||
|
||||
PR = "r3"
|
||||
|
||||
SRC_URI += "file://nodoc.patch \
|
||||
file://noconfigure.patch \
|
||||
file://no-curl.patch \
|
||||
file://includes-fix.patch"
|
||||
@@ -0,0 +1,104 @@
|
||||
apt-manpages="doc/apt-cache.8 \
|
||||
doc/apt-cdrom.8 \
|
||||
doc/apt-config.8 \
|
||||
doc/apt-get.8 \
|
||||
doc/apt.8 \
|
||||
doc/apt.conf.5 \
|
||||
doc/apt_preferences.5 \
|
||||
doc/fr/apt-cache.fr.8 \
|
||||
doc/fr/apt-cdrom.fr.8 \
|
||||
doc/fr/apt-config.fr.8 \
|
||||
doc/fr/apt-get.fr.8 \
|
||||
doc/fr/apt.conf.fr.5 \
|
||||
doc/fr/apt_preferences.fr.5 \
|
||||
doc/fr/sources.list.fr.5 \
|
||||
doc/es/apt.es.8 \
|
||||
doc/es/apt-cache.es.8 \
|
||||
doc/es/apt-cdrom.es.8 \
|
||||
doc/es/apt-config.es.8 \
|
||||
doc/es/apt-get.es.8 \
|
||||
doc/es/apt.conf.es.5 \
|
||||
doc/es/apt_preferences.es.5 \
|
||||
doc/es/sources.list.es.5 \
|
||||
doc/pt_BR/apt_preferences.pt_BR.5 \
|
||||
doc/ja/apt-cache.ja.8 \
|
||||
doc/ja/apt-cdrom.ja.8 \
|
||||
doc/ja/apt-get.ja.8 \
|
||||
doc/ja/apt.conf.ja.5 \
|
||||
doc/sources.list.5"
|
||||
apt-utils-manpages="doc/apt-extracttemplates.1 \
|
||||
doc/apt-sortpkgs.1 \
|
||||
doc/fr/apt-extracttemplates.fr.1 \
|
||||
doc/fr/apt-sortpkgs.fr.1"
|
||||
# doc/fr/apt-ftparchive.fr.1
|
||||
# doc/apt-ftparchive.1
|
||||
|
||||
def get_files_apt_doc(d, bb, manpages):
|
||||
import re
|
||||
manpages = re.sub(r'\bdoc/(\S+)/(\S+)\.\1\.(.)\b', r'${mandir}/\1/man\3/\2.\3', manpages)
|
||||
manpages = re.sub(r'\bdoc/(\S+)\.(.)\b', r'${mandir}/man\2/\1.\2', manpages)
|
||||
return manpages
|
||||
|
||||
def get_commands_apt_doc(d, bb, manpages):
|
||||
import os
|
||||
s = list()
|
||||
__dir_cache__ = list()
|
||||
for m in manpages.split():
|
||||
dest = get_files_apt_doc(d, bb, m)
|
||||
dir = os.path.dirname(dest)
|
||||
if not dir in __dir_cache__:
|
||||
s.append("install -d ${D}/%s" % dir)
|
||||
__dir_cache__.append(dir)
|
||||
s.append("install -m 0644 %s ${D}/%s" % (m, dest))
|
||||
return "\n".join(s)
|
||||
|
||||
PACKAGES += "${PN}-utils ${PN}-utils-doc"
|
||||
FILES_${PN} = "${bindir}/apt-cdrom ${bindir}/apt-get \
|
||||
${bindir}/apt-config ${bindir}/apt-cache \
|
||||
${libdir}/apt ${libdir}/libapt*.so.* \
|
||||
${localstatedir} ${sysconfdir} \
|
||||
${libdir}/dpkg"
|
||||
FILES_${PN}-utils = "${bindir}/apt-sortpkgs ${bindir}/apt-extracttemplates"
|
||||
FILES_${PN}-doc = "${@get_files_apt_doc(d, bb, bb.data.getVar('apt-manpages', d, 1))} \
|
||||
${docdir}/apt"
|
||||
FILES_${PN}-utils-doc = "${@get_files_apt_doc(d, bb, bb.data.getVar('apt-utils-manpages', d, 1))}"
|
||||
FILES_${PN}-dev = "${libdir}/libapt*.so"
|
||||
|
||||
do_install () {
|
||||
set -x
|
||||
${@get_commands_apt_doc(d, bb, bb.data.getVar('apt-manpages', d, 1))}
|
||||
${@get_commands_apt_doc(d, bb, bb.data.getVar('apt-utils-manpages', d, 1))}
|
||||
install -d ${D}${bindir}
|
||||
install -m 0755 bin/apt-cdrom ${D}${bindir}/
|
||||
install -m 0755 bin/apt-get ${D}${bindir}/
|
||||
install -m 0755 bin/apt-config ${D}${bindir}/
|
||||
install -m 0755 bin/apt-cache ${D}${bindir}/
|
||||
|
||||
install -m 0755 bin/apt-sortpkgs ${D}${bindir}/
|
||||
install -m 0755 bin/apt-extracttemplates ${D}${bindir}/
|
||||
|
||||
eval `cat environment.mak | grep ^GLIBC_VER | sed -e's, = ,=,'`
|
||||
oe_libinstall -so -C bin libapt-pkg$GLIBC_VER-6 ${D}${libdir}/
|
||||
ln -sf libapt-pkg$GLIBC_VER-6.so ${D}${libdir}/libapt-pkg.so
|
||||
oe_libinstall -so -C bin libapt-inst$GLIBC_VER-6 ${D}${libdir}/
|
||||
ln -sf libapt-inst$GLIBC_VER-6.so ${D}${libdir}/libapt-inst.so
|
||||
|
||||
install -d ${D}${libdir}/apt/methods
|
||||
install -m 0755 bin/methods/* ${D}${libdir}/apt/methods/
|
||||
|
||||
install -d ${D}${libdir}/dpkg/methods/apt
|
||||
install -m 0644 dselect/desc.apt ${D}${libdir}/dpkg/methods/apt/
|
||||
install -m 0644 dselect/names ${D}${libdir}/dpkg/methods/apt/
|
||||
install -m 0755 dselect/install ${D}${libdir}/dpkg/methods/apt/
|
||||
install -m 0755 dselect/setup ${D}${libdir}/dpkg/methods/apt/
|
||||
install -m 0755 dselect/update ${D}${libdir}/dpkg/methods/apt/
|
||||
|
||||
install -d ${D}${sysconfdir}/apt
|
||||
install -d ${D}${localstatedir}/lib/apt/lists/partial
|
||||
install -d ${D}${localstatedir}/cache/apt/archives/partial
|
||||
install -d ${D}${docdir}/apt/examples
|
||||
install -m 0644 doc/examples/* ${D}${docdir}/apt/examples/
|
||||
|
||||
install -d ${D}${includedir}/apt-pkg/
|
||||
install -m 0644 include/apt-pkg/*.h ${D}${includedir}/apt-pkg/
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
DESCRIPTION = "Advanced front-end for dpkg."
|
||||
LICENSE = "GPL"
|
||||
SECTION = "base"
|
||||
|
||||
SRC_URI = "${DEBIAN_MIRROR}/main/a/apt/apt_${PV}.tar.gz \
|
||||
file://no-ko-translation.patch \
|
||||
file://use-host.patch \
|
||||
"
|
||||
|
||||
inherit autotools gettext
|
||||
|
||||
EXTRA_AUTORECONF = "--exclude=autopoint,autoheader"
|
||||
|
||||
# Apt wants to know the glibc version by running a binary file, which will
|
||||
# fail, so we have to tell configure which version to use Since I don't know
|
||||
# the impliations of setting a wrong value I only provide one for angstrom,
|
||||
# which uses glibc 2.5 (which claims to be 2.4)
|
||||
# Koen - 20070327
|
||||
EXTRA_OECONF_append_angstrom = " ac_cv_glibc_ver=libc6.4"
|
||||
|
||||
# under Debian it is set to libc6.3 as they use glibc 2.3
|
||||
# They also provide glibc 2.5 in 'experimental' and it works with APT built
|
||||
# for 2.3 so we set it in same way
|
||||
EXTRA_OECONF_append = " ac_cv_glibc_ver=libc6.3"
|
||||
|
||||
FILES_${PN}-dbg += "${libdir}/apt/methods/.debug/"
|
||||
@@ -0,0 +1,15 @@
|
||||
DEPENDS = "curl db"
|
||||
RDEPENDS = "dpkg"
|
||||
|
||||
require apt.inc
|
||||
|
||||
PR = "r3"
|
||||
|
||||
SRC_URI += "file://nodoc.patch \
|
||||
file://includes-fix.patch"
|
||||
|
||||
require apt-package.inc
|
||||
|
||||
FILES_${PN} += "${bindir}/apt-key"
|
||||
apt-manpages += "doc/apt-key.8"
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
Dir "${STAGING_DIR_NATIVE}/"
|
||||
{
|
||||
State "var/lib/apt/"
|
||||
{
|
||||
Lists "lists/";
|
||||
status "${IMAGE_ROOTFS}/var/dpkg/status";
|
||||
};
|
||||
Cache "var/cache/apt/"
|
||||
{
|
||||
Archives "archives/";
|
||||
pkgcache "";
|
||||
srcpkgcache "";
|
||||
};
|
||||
Bin "${STAGING_BINDIR_NATIVE}/"
|
||||
{
|
||||
methods "${STAGING_LIBDIR}/apt/methods/";
|
||||
gzip "/bin/gzip";
|
||||
dpkg "dpkg";
|
||||
dpkg-source "dpkg-source";
|
||||
dpkg-buildpackage "dpkg-buildpackage";
|
||||
apt-get "apt-get";
|
||||
apt-cache "apt-cache";
|
||||
};
|
||||
Etc "etc/apt/"
|
||||
{
|
||||
Preferences "preferences";
|
||||
};
|
||||
};
|
||||
|
||||
APT
|
||||
{
|
||||
Install-Recommends "true";
|
||||
Immediate-Configure "false";
|
||||
Architecture "i586";
|
||||
Get
|
||||
{
|
||||
Assume-Yes "true";
|
||||
Force-Yes "true"
|
||||
};
|
||||
};
|
||||
|
||||
DPkg::Options {"--root=${IMAGE_ROOTFS}";"--admindir=${IMAGE_ROOTFS}/var/dpkg";"--force-all";"--no-debsig"};
|
||||
};
|
||||
@@ -0,0 +1,27 @@
|
||||
Index: apt-0.7.3/configure.in
|
||||
===================================================================
|
||||
--- apt-0.7.3.orig/configure.in 2007-07-01 10:38:45.000000000 +0000
|
||||
+++ apt-0.7.3/configure.in 2007-08-21 13:39:26.000000000 +0000
|
||||
@@ -67,8 +67,20 @@
|
||||
[AC_DEFINE(HAVE_BDB)
|
||||
BDBLIB="-ldb"
|
||||
AC_MSG_RESULT(yes)],
|
||||
- [BDBLIB=""
|
||||
- AC_MSG_RESULT(no)]
|
||||
+
|
||||
+ LIBS="$LIBS -lpthread"
|
||||
+ [AC_MSG_CHECKING(if we can link against BerkeleyDB with pthread)
|
||||
+ AC_LINK_IFELSE(
|
||||
+ [AC_LANG_PROGRAM(
|
||||
+ [#include <db.h>],
|
||||
+ [int r, s, t; db_version(&r, &s, &t);]
|
||||
+ )],
|
||||
+ [AC_DEFINE(HAVE_BDB)
|
||||
+ BDBLIB="-ldb -lpthread"
|
||||
+ AC_MSG_RESULT(yes)],
|
||||
+ [BDBLIB=""
|
||||
+ AC_MSG_RESULT(no)]
|
||||
+ )]
|
||||
)]
|
||||
)
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
Index: apt-0.6.46.2/buildlib/environment.mak.in
|
||||
===================================================================
|
||||
--- apt-0.6.46.2.orig/buildlib/environment.mak.in 2007-03-29 11:38:58.000000000 +0100
|
||||
+++ apt-0.6.46.2/buildlib/environment.mak.in 2007-03-29 11:39:12.000000000 +0100
|
||||
@@ -62,7 +62,7 @@
|
||||
|
||||
# Shared library things
|
||||
HOST_OS = @host_os@
|
||||
-ifneq ($(words $(filter linux-gnu gnu% %gnu,$(HOST_OS))),0)
|
||||
+ifneq ($(words $(filter linux-gnu linux-gnueabi gnu% %gnu,$(HOST_OS))),0)
|
||||
SONAME_MAGIC=-Wl,-soname -Wl,
|
||||
LFLAGS_SO=
|
||||
else
|
||||
@@ -0,0 +1,44 @@
|
||||
---
|
||||
configure.in | 6 ------
|
||||
methods/makefile | 7 -------
|
||||
2 files changed, 13 deletions(-)
|
||||
|
||||
--- apt-0.7.14.orig/configure.in
|
||||
+++ apt-0.7.14/configure.in
|
||||
@@ -84,16 +84,10 @@ AC_CHECK_HEADER(db.h,
|
||||
)]
|
||||
)
|
||||
|
||||
LIBS="$saveLIBS"
|
||||
|
||||
-AC_CHECK_LIB(curl, curl_easy_init,
|
||||
- [AC_CHECK_HEADER(curl/curl.h,
|
||||
- curl_ok=yes,
|
||||
- curl_ok=no)],
|
||||
- AC_MSG_ERROR([failed: I need CURL due https support]),
|
||||
-)
|
||||
|
||||
AC_SUBST(BDBLIB)
|
||||
|
||||
dnl Converts the ARCH to be something singular for this general CPU family
|
||||
dnl This is often the dpkg architecture string.
|
||||
--- apt-0.7.14.orig/methods/makefile
|
||||
+++ apt-0.7.14/methods/makefile
|
||||
@@ -50,17 +50,10 @@ PROGRAM=http
|
||||
SLIBS = -lapt-pkg $(SOCKETLIBS)
|
||||
LIB_MAKES = apt-pkg/makefile
|
||||
SOURCE = http.cc rfc2553emu.cc connect.cc
|
||||
include $(PROGRAM_H)
|
||||
|
||||
-# The https method
|
||||
-PROGRAM=https
|
||||
-SLIBS = -lapt-pkg -lcurl
|
||||
-LIB_MAKES = apt-pkg/makefile
|
||||
-SOURCE = https.cc
|
||||
-include $(PROGRAM_H)
|
||||
-
|
||||
# The ftp method
|
||||
PROGRAM=ftp
|
||||
SLIBS = -lapt-pkg $(SOCKETLIBS)
|
||||
LIB_MAKES = apt-pkg/makefile
|
||||
SOURCE = ftp.cc rfc2553emu.cc connect.cc
|
||||
@@ -0,0 +1,36 @@
|
||||
Index: lib/autoconf/libs.m4
|
||||
===================================================================
|
||||
RCS file: /cvsroot/autoconf/autoconf/lib/autoconf/libs.m4,v
|
||||
retrieving revision 1.13
|
||||
diff -p -u -r1.13 libs.m4
|
||||
--- autoconf-2.59/lib/autoconf/libs.m4 6 Sep 2005 15:34:06 -0000 1.13
|
||||
+++ autoconf-2.59/lib/autoconf/libs.m4 18 Sep 2005 17:09:58 -0000
|
||||
@@ -265,13 +265,13 @@ ac_x_header_dirs='
|
||||
/usr/openwin/share/include'
|
||||
|
||||
if test "$ac_x_includes" = no; then
|
||||
- # Guess where to find include files, by looking for Intrinsic.h.
|
||||
+ # Guess where to find include files, by looking for Xlib.h.
|
||||
# First, try using that file with no special directory specified.
|
||||
- AC_PREPROC_IFELSE([AC_LANG_SOURCE([@%:@include <X11/Intrinsic.h>])],
|
||||
+ AC_PREPROC_IFELSE([AC_LANG_SOURCE([@%:@include <X11/Xlib.h>])],
|
||||
[# We can compile using X headers with no special include directory.
|
||||
ac_x_includes=],
|
||||
[for ac_dir in $ac_x_header_dirs; do
|
||||
- if test -r "$ac_dir/X11/Intrinsic.h"; then
|
||||
+ if test -r "$ac_dir/X11/Xlib.h"; then
|
||||
ac_x_includes=$ac_dir
|
||||
break
|
||||
fi
|
||||
@@ -284,9 +284,9 @@ if test "$ac_x_libraries" = no; then
|
||||
# Don't add to $LIBS permanently.
|
||||
ac_save_LIBS=$LIBS
|
||||
- LIBS="-lXt $LIBS"
|
||||
- AC_LINK_IFELSE([AC_LANG_PROGRAM([@%:@include <X11/Intrinsic.h>],
|
||||
- [XtMalloc (0)])],
|
||||
+ LIBS="-lX11 $LIBS"
|
||||
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([@%:@include <X11/Xlib.h>],
|
||||
+ [XrmInitialize ()])],
|
||||
[LIBS=$ac_save_LIBS
|
||||
# We can link X programs with no special library path.
|
||||
ac_x_libraries=],
|
||||
@@ -0,0 +1,13 @@
|
||||
--- autoconf-2.59/bin/autoheader.in~ 2003-10-10 14:52:56.000000000 +0100
|
||||
+++ autoconf-2.59/bin/autoheader.in 2004-05-03 01:36:45.000000000 +0100
|
||||
@@ -272,8 +272,8 @@
|
||||
}
|
||||
|
||||
}
|
||||
- exit 1
|
||||
- if keys %symbol;
|
||||
+# exit 1
|
||||
+# if keys %symbol;
|
||||
}
|
||||
|
||||
update_file ("$tmp/config.hin", "$config_h_in");
|
||||
@@ -0,0 +1,137 @@
|
||||
Index: autoconf-2.63/bin/autoreconf.in
|
||||
===================================================================
|
||||
--- autoconf-2.63.orig/bin/autoreconf.in 2008-12-31 17:39:01.000000000 +0000
|
||||
+++ autoconf-2.63/bin/autoreconf.in 2008-12-31 17:43:38.000000000 +0000
|
||||
@@ -76,6 +76,7 @@
|
||||
-i, --install copy missing auxiliary files
|
||||
--no-recursive don't rebuild sub-packages
|
||||
-s, --symlink with -i, install symbolic links instead of copies
|
||||
+ -x, --exclude=STEPS steps we should not run
|
||||
-m, --make when applicable, re-run ./configure && make
|
||||
-W, --warnings=CATEGORY report the warnings falling in CATEGORY [syntax]
|
||||
|
||||
@@ -136,6 +137,13 @@
|
||||
# Recurse into subpackages
|
||||
my $recursive = 1;
|
||||
|
||||
+# Steps to exclude
|
||||
+my @exclude;
|
||||
+my @ex;
|
||||
+
|
||||
+my $uses_gettext;
|
||||
+my $configure_ac;
|
||||
+
|
||||
## ---------- ##
|
||||
## Routines. ##
|
||||
## ---------- ##
|
||||
@@ -153,6 +161,7 @@
|
||||
'B|prepend-include=s' => \@prepend_include,
|
||||
'i|install' => \$install,
|
||||
's|symlink' => \$symlink,
|
||||
+ 'x|exclude=s' => \@exclude,
|
||||
'm|make' => \$run_make,
|
||||
'recursive!' => \$recursive);
|
||||
|
||||
@@ -162,6 +171,8 @@
|
||||
parse_WARNINGS;
|
||||
parse_warnings '--warnings', @warning;
|
||||
|
||||
+ @exclude = map { split /,/ } @exclude;
|
||||
+
|
||||
# Even if the user specified a configure.ac, trim to get the
|
||||
# directory, and look for configure.ac again. Because (i) the code
|
||||
# is simpler, and (ii) we are still able to diagnose simultaneous
|
||||
@@ -255,6 +266,11 @@
|
||||
{
|
||||
my ($aclocal, $flags) = @_;
|
||||
|
||||
+ @ex = grep (/^aclocal$/, @exclude);
|
||||
+ if ($#ex != -1) {
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
# aclocal 1.8+ does all this for free. It can be recognized by its
|
||||
# --force support.
|
||||
if ($aclocal_supports_force)
|
||||
@@ -368,7 +384,10 @@
|
||||
}
|
||||
else
|
||||
{
|
||||
- xsystem_hint ("autopoint is needed because this package uses Gettext", "$autopoint");
|
||||
+ @ex = grep (/^autopoint$/, @exclude);
|
||||
+ if ($#ex == -1) {
|
||||
+ xsystem_hint ("autopoint is needed because this package uses Gettext", "$autopoint");
|
||||
+ }
|
||||
}
|
||||
|
||||
|
||||
@@ -532,16 +551,17 @@
|
||||
{
|
||||
$libtoolize .= " --ltdl";
|
||||
}
|
||||
- xsystem_hint ("libtoolize is needed because this package uses Libtool", $libtoolize);
|
||||
- $rerun_aclocal = 1;
|
||||
+ @ex = grep (/^libtoolize$/, @exclude);
|
||||
+ if ($#ex == -1) {
|
||||
+ xsystem_hint ("libtoolize is needed because this package uses Libtool", $libtoolize);
|
||||
+ $rerun_aclocal = 1;
|
||||
+ }
|
||||
}
|
||||
else
|
||||
{
|
||||
verb "$configure_ac: not running libtoolize: --install not given";
|
||||
}
|
||||
|
||||
-
|
||||
-
|
||||
# ------------------- #
|
||||
# Rerunning aclocal. #
|
||||
# ------------------- #
|
||||
@@ -572,7 +592,10 @@
|
||||
# latter runs the former, and (ii) autoconf is stricter than
|
||||
# autoheader. So all in all, autoconf should give better error
|
||||
# messages.
|
||||
- xsystem ($autoconf);
|
||||
+ @ex = grep (/^autoconf$/, @exclude);
|
||||
+ if ($#ex == -1) {
|
||||
+ xsystem ("$autoconf");
|
||||
+ }
|
||||
|
||||
|
||||
# -------------------- #
|
||||
@@ -593,7 +616,10 @@
|
||||
}
|
||||
else
|
||||
{
|
||||
- xsystem ($autoheader);
|
||||
+ @ex = grep (/^autoheader$/, @exclude);
|
||||
+ if ($#ex == -1) {
|
||||
+ xsystem ("$autoheader");
|
||||
+ }
|
||||
}
|
||||
|
||||
|
||||
@@ -610,7 +636,10 @@
|
||||
# We should always run automake, and let it decide whether it shall
|
||||
# update the file or not. In fact, the effect of `$force' is already
|
||||
# included in `$automake' via `--no-force'.
|
||||
- xsystem ($automake);
|
||||
+ @ex = grep (/^automake$/, @exclude);
|
||||
+ if ($#ex == -1) {
|
||||
+ xsystem ("$automake");
|
||||
+ }
|
||||
}
|
||||
|
||||
|
||||
@@ -634,7 +663,10 @@
|
||||
}
|
||||
else
|
||||
{
|
||||
- xsystem ("$make");
|
||||
+ @ex = grep (/^make$/, @exclude);
|
||||
+ if ($#ex == -1) {
|
||||
+ xsystem ("$make");
|
||||
+ }
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
--- autoconf-2.59/bin/autoreconf.in~autoreconf-foreign 2004-05-09 20:55:06.000000000 -0400
|
||||
+++ autoconf-2.59/bin/autoreconf.in 2004-05-09 20:55:55.000000000 -0400
|
||||
@@ -184,6 +184,8 @@
|
||||
|
||||
$aclocal_supports_force = `$aclocal --help` =~ /--force/;
|
||||
|
||||
+ $automake .= ' --foreign';
|
||||
+
|
||||
# Dispatch autoreconf's option to the tools.
|
||||
# --include;
|
||||
$autoconf .= join (' --include=', '', @include);
|
||||
@@ -0,0 +1,37 @@
|
||||
|
||||
#
|
||||
# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
|
||||
#
|
||||
|
||||
Index: autoconf-2.63/bin/autoreconf.in
|
||||
===================================================================
|
||||
--- autoconf-2.63.orig/bin/autoreconf.in 2008-12-31 17:43:55.000000000 +0000
|
||||
+++ autoconf-2.63/bin/autoreconf.in 2008-12-31 17:46:16.000000000 +0000
|
||||
@@ -58,7 +58,7 @@
|
||||
$help = "Usage: $0 [OPTION]... [DIRECTORY]...
|
||||
|
||||
Run `autoconf' (and `autoheader', `aclocal', `automake', `autopoint'
|
||||
-(formerly `gettextize'), and `libtoolize' where appropriate)
|
||||
+(formerly `gettextize'), `libtoolize', and `gnu-configize' where appropriate)
|
||||
repeatedly to remake the GNU Build System files in specified
|
||||
DIRECTORIES and their subdirectories (defaulting to `.').
|
||||
|
||||
@@ -115,6 +115,7 @@
|
||||
my $libtoolize = $ENV{'LIBTOOLIZE'} || 'libtoolize';
|
||||
my $autopoint = $ENV{'AUTOPOINT'} || 'autopoint';
|
||||
my $make = $ENV{'MAKE'} || 'make';
|
||||
+my $gnuconfigize = $ENV{'GNUCONFIGIZE'} || 'gnu-configize';
|
||||
|
||||
# --install -- as --add-missing in other tools.
|
||||
my $install = 0;
|
||||
@@ -644,6 +645,10 @@
|
||||
}
|
||||
}
|
||||
|
||||
+ @ex = grep (/^gnu-configize$/, @exclude);
|
||||
+ if ($#ex == -1) {
|
||||
+ xsystem ("$gnuconfigize");
|
||||
+ }
|
||||
|
||||
# -------------- #
|
||||
# Running make. #
|
||||
@@ -0,0 +1,12 @@
|
||||
Index: autoconf-2.63/bin/autoreconf.in
|
||||
===================================================================
|
||||
--- autoconf-2.63.orig/bin/autoreconf.in 2008-08-28 03:08:10.000000000 +0100
|
||||
+++ autoconf-2.63/bin/autoreconf.in 2008-12-31 17:38:40.000000000 +0000
|
||||
@@ -190,6 +190,7 @@
|
||||
$autoconf .= join (' --prepend-include=', '', map { shell_quote ($_) } @prepend_include);
|
||||
$autoheader .= join (' --include=', '', map { shell_quote ($_) } @include);
|
||||
$autoheader .= join (' --prepend-include=', '', map { shell_quote ($_) } @prepend_include);
|
||||
+ $aclocal .= join (' -I ', '', map { shell_quote ($_) } @include);
|
||||
|
||||
# --install and --symlink;
|
||||
if ($install)
|
||||
@@ -0,0 +1,29 @@
|
||||
Poky provides a list of site files in CONFIG_SITE whereas autoconf
|
||||
only expects one file. This patch changes autoconf to accept a list of
|
||||
them.
|
||||
|
||||
RP 1/2/10
|
||||
|
||||
Index: autoconf-2.65/lib/autoconf/general.m4
|
||||
===================================================================
|
||||
--- autoconf-2.65.orig/lib/autoconf/general.m4 2010-02-01 12:41:32.329073138 +0000
|
||||
+++ autoconf-2.65/lib/autoconf/general.m4 2010-02-01 12:41:56.769040799 +0000
|
||||
@@ -1863,17 +1863,10 @@
|
||||
m4_define([AC_SITE_LOAD],
|
||||
[# Prefer an explicitly selected file to automatically selected ones.
|
||||
ac_site_file1=NONE
|
||||
-ac_site_file2=NONE
|
||||
if test -n "$CONFIG_SITE"; then
|
||||
ac_site_file1=$CONFIG_SITE
|
||||
-elif test "x$prefix" != xNONE; then
|
||||
- ac_site_file1=$prefix/share/config.site
|
||||
- ac_site_file2=$prefix/etc/config.site
|
||||
-else
|
||||
- ac_site_file1=$ac_default_prefix/share/config.site
|
||||
- ac_site_file2=$ac_default_prefix/etc/config.site
|
||||
fi
|
||||
-for ac_site_file in "$ac_site_file1" "$ac_site_file2"
|
||||
+for ac_site_file in $ac_site_file1
|
||||
do
|
||||
test "x$ac_site_file" = xNONE && continue
|
||||
if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then
|
||||
@@ -0,0 +1,118 @@
|
||||
We don't build xmkmf so any values returned from it are going to be wrong.
|
||||
Using any paths in /usr/ for x headers/libs is a bad idea when cross compiling.
|
||||
This patch removes them to stop any confusion.
|
||||
|
||||
RP - 20071115
|
||||
|
||||
Index: autoconf-2.65/lib/autoconf/libs.m4
|
||||
===================================================================
|
||||
--- autoconf-2.65.orig/lib/autoconf/libs.m4 2009-10-29 01:53:41.000000000 +0000
|
||||
+++ autoconf-2.65/lib/autoconf/libs.m4 2010-01-29 13:40:13.000000000 +0000
|
||||
@@ -159,53 +159,6 @@
|
||||
# --------------------- #
|
||||
|
||||
|
||||
-# _AC_PATH_X_XMKMF
|
||||
-# ----------------
|
||||
-# Internal subroutine of _AC_PATH_X.
|
||||
-# Set ac_x_includes and/or ac_x_libraries.
|
||||
-m4_define([_AC_PATH_X_XMKMF],
|
||||
-[AC_ARG_VAR(XMKMF, [Path to xmkmf, Makefile generator for X Window System])dnl
|
||||
-rm -f -r conftest.dir
|
||||
-if mkdir conftest.dir; then
|
||||
- cd conftest.dir
|
||||
- cat >Imakefile <<'_ACEOF'
|
||||
-incroot:
|
||||
- @echo incroot='${INCROOT}'
|
||||
-usrlibdir:
|
||||
- @echo usrlibdir='${USRLIBDIR}'
|
||||
-libdir:
|
||||
- @echo libdir='${LIBDIR}'
|
||||
-_ACEOF
|
||||
- if (export CC; ${XMKMF-xmkmf}) >/dev/null 2>/dev/null && test -f Makefile; then
|
||||
- # GNU make sometimes prints "make[1]: Entering...", which would confuse us.
|
||||
- for ac_var in incroot usrlibdir libdir; do
|
||||
- eval "ac_im_$ac_var=\`\${MAKE-make} $ac_var 2>/dev/null | sed -n 's/^$ac_var=//p'\`"
|
||||
- done
|
||||
- # Open Windows xmkmf reportedly sets LIBDIR instead of USRLIBDIR.
|
||||
- for ac_extension in a so sl dylib la dll; do
|
||||
- if test ! -f "$ac_im_usrlibdir/libX11.$ac_extension" &&
|
||||
- test -f "$ac_im_libdir/libX11.$ac_extension"; then
|
||||
- ac_im_usrlibdir=$ac_im_libdir; break
|
||||
- fi
|
||||
- done
|
||||
- # Screen out bogus values from the imake configuration. They are
|
||||
- # bogus both because they are the default anyway, and because
|
||||
- # using them would break gcc on systems where it needs fixed includes.
|
||||
- case $ac_im_incroot in
|
||||
- /usr/include) ac_x_includes= ;;
|
||||
- *) test -f "$ac_im_incroot/X11/Xos.h" && ac_x_includes=$ac_im_incroot;;
|
||||
- esac
|
||||
- case $ac_im_usrlibdir in
|
||||
- /usr/lib | /usr/lib64 | /lib | /lib64) ;;
|
||||
- *) test -d "$ac_im_usrlibdir" && ac_x_libraries=$ac_im_usrlibdir ;;
|
||||
- esac
|
||||
- fi
|
||||
- cd ..
|
||||
- rm -f -r conftest.dir
|
||||
-fi
|
||||
-])# _AC_PATH_X_XMKMF
|
||||
-
|
||||
-
|
||||
# _AC_PATH_X_DIRECT
|
||||
# -----------------
|
||||
# Internal subroutine of _AC_PATH_X.
|
||||
@@ -213,44 +166,7 @@
|
||||
m4_define([_AC_PATH_X_DIRECT],
|
||||
[# Standard set of common directories for X headers.
|
||||
# Check X11 before X11Rn because it is often a symlink to the current release.
|
||||
-ac_x_header_dirs='
|
||||
-/usr/X11/include
|
||||
-/usr/X11R7/include
|
||||
-/usr/X11R6/include
|
||||
-/usr/X11R5/include
|
||||
-/usr/X11R4/include
|
||||
-
|
||||
-/usr/include/X11
|
||||
-/usr/include/X11R7
|
||||
-/usr/include/X11R6
|
||||
-/usr/include/X11R5
|
||||
-/usr/include/X11R4
|
||||
-
|
||||
-/usr/local/X11/include
|
||||
-/usr/local/X11R7/include
|
||||
-/usr/local/X11R6/include
|
||||
-/usr/local/X11R5/include
|
||||
-/usr/local/X11R4/include
|
||||
-
|
||||
-/usr/local/include/X11
|
||||
-/usr/local/include/X11R7
|
||||
-/usr/local/include/X11R6
|
||||
-/usr/local/include/X11R5
|
||||
-/usr/local/include/X11R4
|
||||
-
|
||||
-/usr/X386/include
|
||||
-/usr/x386/include
|
||||
-/usr/XFree86/include/X11
|
||||
-
|
||||
-/usr/include
|
||||
-/usr/local/include
|
||||
-/usr/unsupported/include
|
||||
-/usr/athena/include
|
||||
-/usr/local/x11r5/include
|
||||
-/usr/lpp/Xamples/include
|
||||
-
|
||||
-/usr/openwin/include
|
||||
-/usr/openwin/share/include'
|
||||
+ac_x_header_dirs=''
|
||||
|
||||
if test "$ac_x_includes" = no; then
|
||||
# Guess where to find include files, by looking for Xlib.h.
|
||||
@@ -299,7 +215,6 @@
|
||||
[AC_CACHE_VAL(ac_cv_have_x,
|
||||
[# One or both of the vars are not set, and there is no cached value.
|
||||
ac_x_includes=no ac_x_libraries=no
|
||||
-_AC_PATH_X_XMKMF
|
||||
_AC_PATH_X_DIRECT
|
||||
case $ac_x_includes,$ac_x_libraries in #(
|
||||
no,* | *,no | *\'*)
|
||||
@@ -0,0 +1,126 @@
|
||||
Index: autoconf-2.59/bin/autoheader.in
|
||||
===================================================================
|
||||
--- autoconf-2.59.orig/bin/autoheader.in 2005-03-09 16:27:17.933878952 -0500
|
||||
+++ autoconf-2.59/bin/autoheader.in 2005-03-09 16:29:57.360642400 -0500
|
||||
@@ -1,8 +1,8 @@
|
||||
-#! @PERL@
|
||||
+#! @bindir@/env perl
|
||||
# -*- Perl -*-
|
||||
# @configure_input@
|
||||
|
||||
-eval 'case $# in 0) exec @PERL@ -S "$0";; *) exec @PERL@ -S "$0" "$@";; esac'
|
||||
+eval 'case $# in 0) exec @bindir@/env perl -S "$0";; *) exec @bindir@/env perl -S "$0" "$@";; esac'
|
||||
if 0;
|
||||
|
||||
# autoheader -- create `config.h.in' from `configure.ac'
|
||||
Index: autoconf-2.59/bin/autom4te.in
|
||||
===================================================================
|
||||
--- autoconf-2.59.orig/bin/autom4te.in 2003-10-28 03:48:36.000000000 -0500
|
||||
+++ autoconf-2.59/bin/autom4te.in 2005-03-09 16:30:14.957967200 -0500
|
||||
@@ -1,8 +1,10 @@
|
||||
-#! @PERL@ -w
|
||||
+#! @bindir@/env perl
|
||||
# -*- perl -*-
|
||||
# @configure_input@
|
||||
|
||||
-eval 'case $# in 0) exec @PERL@ -S "$0";; *) exec @PERL@ -S "$0" "$@";; esac'
|
||||
+use warnings;
|
||||
+
|
||||
+eval 'case $# in 0) exec @bindir@/env perl -S "$0";; *) exec @PERL@ -S "$0" "$@";; esac'
|
||||
if 0;
|
||||
|
||||
# autom4te - Wrapper around M4 libraries.
|
||||
@@ -87,7 +89,7 @@
|
||||
my $freeze = 0;
|
||||
|
||||
# $M4.
|
||||
-my $m4 = $ENV{"M4"} || '@M4@';
|
||||
+my $m4 = $ENV{"M4"} || '@bindir@/env m4';
|
||||
# Some non-GNU m4's don't reject the --help option, so give them /dev/null.
|
||||
fatal "need GNU m4 1.4 or later: $m4"
|
||||
if system "$m4 --help </dev/null 2>&1 | grep reload-state >/dev/null";
|
||||
Index: autoconf-2.59/bin/autoreconf.in
|
||||
===================================================================
|
||||
--- autoconf-2.59.orig/bin/autoreconf.in 2005-03-09 16:27:17.354966960 -0500
|
||||
+++ autoconf-2.59/bin/autoreconf.in 2005-03-09 16:31:19.572144352 -0500
|
||||
@@ -1,8 +1,10 @@
|
||||
-#! @PERL@ -w
|
||||
+#! @bindir@/env perl
|
||||
# -*- perl -*-
|
||||
# @configure_input@
|
||||
|
||||
-eval 'case $# in 0) exec @PERL@ -S "$0";; *) exec @PERL@ -S "$0" "$@";; esac'
|
||||
+use warnings;
|
||||
+
|
||||
+eval 'case $# in 0) exec @bindir@/env perl -S "$0";; *) exec @PERL@ -S "$0" "$@";; esac'
|
||||
if 0;
|
||||
|
||||
# autoreconf - install the GNU Build System in a directory tree
|
||||
Index: autoconf-2.59/bin/autoscan.in
|
||||
===================================================================
|
||||
--- autoconf-2.59.orig/bin/autoscan.in 2003-09-26 08:57:49.000000000 -0400
|
||||
+++ autoconf-2.59/bin/autoscan.in 2005-03-09 16:30:18.136483992 -0500
|
||||
@@ -1,4 +1,4 @@
|
||||
-#! @PERL@ -w
|
||||
+#! @bindir@/env perl
|
||||
# -*- perl -*-
|
||||
# autoscan - Create configure.scan (a preliminary configure.ac) for a package.
|
||||
# Copyright (C) 1994, 1999, 2000, 2001, 2002, 2003
|
||||
@@ -21,7 +21,9 @@
|
||||
|
||||
# Written by David MacKenzie <djm@gnu.ai.mit.edu>.
|
||||
|
||||
-eval 'case $# in 0) exec @PERL@ -S "$0";; *) exec @PERL@ -S "$0" "$@";; esac'
|
||||
+use warnings;
|
||||
+
|
||||
+eval 'case $# in 0) exec @bindir@/env perl -S "$0";; *) exec @PERL@ -S "$0" "$@";; esac'
|
||||
if 0;
|
||||
|
||||
BEGIN
|
||||
Index: autoconf-2.59/bin/autoupdate.in
|
||||
===================================================================
|
||||
--- autoconf-2.59.orig/bin/autoupdate.in 2003-08-27 07:26:32.000000000 -0400
|
||||
+++ autoconf-2.59/bin/autoupdate.in 2005-03-09 16:30:19.912214040 -0500
|
||||
@@ -1,4 +1,4 @@
|
||||
-#! @PERL@ -w
|
||||
+#! @bindir@/env perl
|
||||
# -*- perl -*-
|
||||
# autoupdate - modernize an Autoconf file.
|
||||
# Copyright (C) 1994, 1999, 2000, 2001, 2002, 2003
|
||||
@@ -22,7 +22,9 @@
|
||||
# Originally written by David MacKenzie <djm@gnu.ai.mit.edu>.
|
||||
# Rewritten by Akim Demaille <akim@freefriends.org>.
|
||||
|
||||
-eval 'case $# in 0) exec @PERL@ -S "$0";; *) exec @PERL@ -S "$0" "$@";; esac'
|
||||
+use warnings;
|
||||
+
|
||||
+eval 'case $# in 0) exec @bindir@/env perl -S "$0";; *) exec @PERL@ -S "$0" "$@";; esac'
|
||||
if 0;
|
||||
|
||||
BEGIN
|
||||
@@ -54,7 +56,7 @@
|
||||
my @include = ('@datadir@');
|
||||
my $force = 0;
|
||||
# m4.
|
||||
-my $m4 = $ENV{"M4"} || '@M4@';
|
||||
+my $m4 = $ENV{"M4"} || '@bindir@/env m4';
|
||||
|
||||
|
||||
# $HELP
|
||||
Index: autoconf-2.59/bin/ifnames.in
|
||||
===================================================================
|
||||
--- autoconf-2.59.orig/bin/ifnames.in 2003-10-10 09:52:56.000000000 -0400
|
||||
+++ autoconf-2.59/bin/ifnames.in 2005-03-09 16:30:22.656796800 -0500
|
||||
@@ -1,8 +1,10 @@
|
||||
-#! @PERL@ -w
|
||||
+#! @bindir@/env perl
|
||||
# -*- perl -*-
|
||||
# @configure_input@
|
||||
|
||||
-eval 'case $# in 0) exec @PERL@ -S "$0";; *) exec @PERL@ -S "$0" "$@";; esac'
|
||||
+use warnings;
|
||||
+
|
||||
+eval 'case $# in 0) exec @bindir@/env perl -S "$0";; *) exec @PERL@ -S "$0" "$@";; esac'
|
||||
if 0;
|
||||
|
||||
# ifnames - print the identifiers used in C preprocessor conditionals
|
||||
@@ -0,0 +1,19 @@
|
||||
|
||||
#
|
||||
# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
|
||||
#
|
||||
|
||||
--- autoconf-2.57/lib/autoconf/general.m4~program_prefix
|
||||
+++ autoconf-2.57/lib/autoconf/general.m4
|
||||
@@ -1676,8 +1676,9 @@
|
||||
# The aliases save the names the user supplied, while $host etc.
|
||||
# will get canonicalized.
|
||||
test -n "$target_alias" &&
|
||||
- test "$program_prefix$program_suffix$program_transform_name" = \
|
||||
- NONENONEs,x,x, &&
|
||||
+ test "$target_alias" != "$host_alias" &&
|
||||
+ test "$program_prefix$program_suffix$program_transform_name" = \
|
||||
+ NONENONEs,x,x, &&
|
||||
program_prefix=${target_alias}-[]dnl
|
||||
])# AC_CANONICAL_TARGET
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
DESCRIPTION = "A package of M4 macros to produce scripts to \
|
||||
automatically configure sourcecode."
|
||||
LICENSE = "GPLv3"
|
||||
HOMEPAGE = "http://www.gnu.org/software/autoconf/"
|
||||
SECTION = "devel"
|
||||
DEPENDS += "m4-native"
|
||||
RDEPENDS_${PN} = "m4 gnu-config"
|
||||
|
||||
SRC_URI = "${GNU_MIRROR}/autoconf/autoconf-${PV}.tar.bz2 \
|
||||
file://program_prefix.patch;patch=1"
|
||||
|
||||
inherit autotools
|
||||
@@ -0,0 +1,23 @@
|
||||
require autoconf.inc
|
||||
|
||||
PR = "r2"
|
||||
|
||||
PARALLEL_MAKE = ""
|
||||
|
||||
DEPENDS += "m4-native"
|
||||
RDEPENDS_${PN} = "m4 gnu-config"
|
||||
|
||||
SRC_URI += "file://autoreconf-include.patch;patch=1 \
|
||||
file://autoreconf-exclude.patch;patch=1 \
|
||||
file://autoreconf-foreign.patch;patch=1 \
|
||||
file://autoreconf-gnuconfigize.patch;patch=1 \
|
||||
file://autoheader-nonfatal-warnings.patch;patch=1 \
|
||||
${@['file://path_prog_fixes.patch;patch=1', ''][bb.data.inherits_class('native', d)]} \
|
||||
file://config_site.patch;patch=1"
|
||||
|
||||
DEPENDS_virtclass-native = "m4-native gnu-config-native"
|
||||
RDEPENDS_${PN}_virtclass-native = "m4-native gnu-config-native"
|
||||
|
||||
SRC_URI_append_virtclass-native = " file://fix_path_xtra.patch;patch=1"
|
||||
|
||||
BBCLASSEXTEND = "native"
|
||||
@@ -0,0 +1,13 @@
|
||||
DESCRIPTION = "A tool for automatically generating Makefiles."
|
||||
LICENSE = "GPLv2"
|
||||
HOMEPAGE = "http://www.gnu.org/software/automake/"
|
||||
SECTION = "devel"
|
||||
PR = "r1"
|
||||
|
||||
SRC_URI = "${GNU_MIRROR}/automake/automake-${PV}.tar.bz2 "
|
||||
|
||||
inherit autotools
|
||||
|
||||
export AUTOMAKE = "${@bb.which('automake', bb.data.getVar('PATH', d, 1))}"
|
||||
|
||||
FILES_${PN} += "${datadir}/automake* ${datadir}/aclocal*"
|
||||
@@ -0,0 +1,67 @@
|
||||
---
|
||||
Makefile.am | 3 ++-
|
||||
Makefile.in | 3 ++-
|
||||
aclocal.in | 4 ++--
|
||||
automake.in | 6 ++++--
|
||||
4 files changed, 10 insertions(+), 6 deletions(-)
|
||||
|
||||
Index: automake-1.10.1/Makefile.am
|
||||
===================================================================
|
||||
--- automake-1.10.1.orig/Makefile.am 2008-01-21 22:28:58.000000000 +0000
|
||||
+++ automake-1.10.1/Makefile.am 2008-10-10 17:21:20.000000000 +0100
|
||||
@@ -75,7 +75,8 @@
|
||||
-e 's,[@]SHELL[@],$(SHELL),g' \
|
||||
-e 's,[@]VERSION[@],$(VERSION),g' \
|
||||
-e 's,[@]configure_input[@],Generated from $@.in; do not edit by hand.,g' \
|
||||
- -e 's,[@]datadir[@],$(datadir),g'
|
||||
+ -e 's,[@]datadir[@],$(datadir),g' \
|
||||
+ -e 's,[@]bindir[@],$(bindir),g'
|
||||
|
||||
## These files depend on Makefile so they are rebuilt if $(VERSION),
|
||||
## $(datadir) or other do_subst'ituted variables change.
|
||||
Index: automake-1.10.1/Makefile.in
|
||||
===================================================================
|
||||
--- automake-1.10.1.orig/Makefile.in 2008-01-21 22:29:10.000000000 +0000
|
||||
+++ automake-1.10.1/Makefile.in 2008-10-10 17:22:21.000000000 +0100
|
||||
@@ -185,7 +185,8 @@
|
||||
-e 's,[@]SHELL[@],$(SHELL),g' \
|
||||
-e 's,[@]VERSION[@],$(VERSION),g' \
|
||||
-e 's,[@]configure_input[@],Generated from $@.in; do not edit by hand.,g' \
|
||||
- -e 's,[@]datadir[@],$(datadir),g'
|
||||
+ -e 's,[@]datadir[@],$(datadir),g' \
|
||||
+ -e 's,[@]bindir[@],$(bindir),g'
|
||||
|
||||
WGET = wget
|
||||
WGET_SV_CVS = $(WGET) http://savannah.gnu.org/cgi-bin/viewcvs/~checkout~/
|
||||
Index: automake-1.10.1/aclocal.in
|
||||
===================================================================
|
||||
--- automake-1.10.1.orig/aclocal.in 2008-01-21 22:11:41.000000000 +0000
|
||||
+++ automake-1.10.1/aclocal.in 2008-10-10 17:21:20.000000000 +0100
|
||||
@@ -1,8 +1,8 @@
|
||||
-#!@PERL@ -w
|
||||
+#!@bindir@/env perl
|
||||
# -*- perl -*-
|
||||
# @configure_input@
|
||||
|
||||
-eval 'case $# in 0) exec @PERL@ -S "$0";; *) exec @PERL@ -S "$0" "$@";; esac'
|
||||
+eval 'case $# in 0) exec @bindir@/env perl -S "$0";; *) exec @bindir@/env perl -S "$0" "$@";; esac'
|
||||
if 0;
|
||||
|
||||
# aclocal - create aclocal.m4 by scanning configure.ac
|
||||
Index: automake-1.10.1/automake.in
|
||||
===================================================================
|
||||
--- automake-1.10.1.orig/automake.in 2008-01-21 22:11:41.000000000 +0000
|
||||
+++ automake-1.10.1/automake.in 2008-10-10 17:21:20.000000000 +0100
|
||||
@@ -1,8 +1,10 @@
|
||||
-#!@PERL@ -w
|
||||
+#!@bindir@/env perl
|
||||
# -*- perl -*-
|
||||
# @configure_input@
|
||||
|
||||
-eval 'case $# in 0) exec @PERL@ -S "$0";; *) exec @PERL@ -S "$0" "$@";; esac'
|
||||
+use warnings;
|
||||
+
|
||||
+eval 'case $# in 0) exec @bindir@/env perl -S "$0";; *) exec @bindir@/env perl -S "$0" "$@";; esac'
|
||||
if 0;
|
||||
|
||||
# automake - create Makefile.in from Makefile.am
|
||||
@@ -0,0 +1,41 @@
|
||||
require automake.inc
|
||||
|
||||
DEPENDS_virtclass-native = "autoconf-native"
|
||||
|
||||
RDEPENDS_automake += "\
|
||||
autoconf \
|
||||
perl \
|
||||
perl-module-bytes \
|
||||
perl-module-constant \
|
||||
perl-module-cwd \
|
||||
perl-module-data-dumper \
|
||||
perl-module-dynaloader \
|
||||
perl-module-errno \
|
||||
perl-module-exporter-heavy \
|
||||
perl-module-file-basename \
|
||||
perl-module-file-compare \
|
||||
perl-module-file-copy \
|
||||
perl-module-file-glob \
|
||||
perl-module-file-spec-unix \
|
||||
perl-module-file-stat \
|
||||
perl-module-getopt-long \
|
||||
perl-module-io \
|
||||
perl-module-io-file \
|
||||
perl-module-posix \
|
||||
perl-module-strict \
|
||||
perl-module-text-parsewords \
|
||||
perl-module-vars "
|
||||
|
||||
RDEPENDS_automake-native = "autoconf-native perl-native-runtime"
|
||||
|
||||
PATHFIXPATCH = "file://path_prog_fixes.patch;patch=1"
|
||||
PATHFIXPATCH_virtclass-native = ""
|
||||
|
||||
SRC_URI += "${PATHFIXPATCH}"
|
||||
|
||||
do_install () {
|
||||
oe_runmake 'DESTDIR=${D}' install
|
||||
install -d ${D}${datadir}
|
||||
}
|
||||
|
||||
BBCLASSEXTEND = "native"
|
||||
@@ -0,0 +1,22 @@
|
||||
--- /tmp/configure.ac 2008-06-22 14:14:59.000000000 +0200
|
||||
+++ binutils-2.18.50.0.7/configure.ac 2008-06-22 14:15:30.000000000 +0200
|
||||
@@ -561,7 +561,7 @@
|
||||
noconfigdirs="$noconfigdirs target-libffi target-qthreads"
|
||||
libgloss_dir=arm
|
||||
;;
|
||||
- arm*-*-linux-gnueabi)
|
||||
+ arm*-*-linux-gnueabi | arm*-*-linux-uclibcgnueabi)
|
||||
noconfigdirs="$noconfigdirs target-qthreads"
|
||||
noconfigdirs="$noconfigdirs target-libobjc"
|
||||
case ${with_newlib} in
|
||||
--- /tmp/configure 2008-06-22 14:17:11.000000000 +0200
|
||||
+++ binutils-2.18.50.0.7/configure 2008-06-22 14:17:56.000000000 +0200
|
||||
@@ -2307,7 +2307,7 @@
|
||||
noconfigdirs="$noconfigdirs target-libffi target-qthreads"
|
||||
libgloss_dir=arm
|
||||
;;
|
||||
- arm*-*-linux-gnueabi)
|
||||
+ arm*-*-linux-gnueabi | arm*-*-linux-uclibcgnueabi)
|
||||
noconfigdirs="$noconfigdirs target-qthreads"
|
||||
noconfigdirs="$noconfigdirs target-libobjc"
|
||||
case ${with_newlib} in
|
||||
@@ -0,0 +1,18 @@
|
||||
Adds support for Freescale Power architecture e300c2 and e300c3 cores.
|
||||
http://www.bitshrine.org/gpp/tc-fsl-x86lnx-e300c3-nptl-4.0.2-2.src.rpm
|
||||
|
||||
Leon Woestenberg <leonw@mailcan.com>
|
||||
|
||||
Index: binutils-2.19.51.0.3/opcodes/ppc-dis.c
|
||||
===================================================================
|
||||
--- binutils-2.19.51.0.3.orig/opcodes/ppc-dis.c 2009-04-16 00:38:45.000000000 -0700
|
||||
+++ binutils-2.19.51.0.3/opcodes/ppc-dis.c 2009-04-16 00:43:56.000000000 -0700
|
||||
@@ -132,6 +132,8 @@
|
||||
| PPC_OPCODE_POWER6 | PPC_OPCODE_POWER7 | PPC_OPCODE_ALTIVEC
|
||||
| PPC_OPCODE_VSX),
|
||||
0 },
|
||||
+ { "pmr", (PPC_OPCODE_PMR),
|
||||
+ 0 },
|
||||
{ "ppc", (PPC_OPCODE_PPC | PPC_OPCODE_CLASSIC | PPC_OPCODE_32),
|
||||
0 },
|
||||
{ "ppc32", (PPC_OPCODE_PPC | PPC_OPCODE_CLASSIC | PPC_OPCODE_32),
|
||||
@@ -0,0 +1,67 @@
|
||||
This is because libdir has a trailing slash which breaks the comparision.
|
||||
|
||||
RP 2/1/10
|
||||
|
||||
Index: binutils-2.20.1/ltmain.sh
|
||||
===================================================================
|
||||
--- binutils-2.20.1.orig/ltmain.sh 2009-09-01 00:59:32.000000000 +0800
|
||||
+++ binutils-2.20.1/ltmain.sh 2010-07-29 09:41:14.000000000 +0800
|
||||
@@ -2156,8 +2156,12 @@
|
||||
dir="$dir$objdir"
|
||||
|
||||
if test -n "$relink_command"; then
|
||||
+ # Strip any trailing slash from the destination.
|
||||
+ func_stripname '' '/' "$libdir"
|
||||
+ destlibdir=$func_stripname_result
|
||||
+
|
||||
# Determine the prefix the user has applied to our future dir.
|
||||
- inst_prefix_dir=`$ECHO "X$destdir" | $Xsed -e "s%$libdir\$%%"`
|
||||
+ inst_prefix_dir=`$ECHO "X$destdir" | $Xsed -e "s%$destlibdir\$%%"`
|
||||
|
||||
# Don't allow the user to place us outside of our expected
|
||||
# location b/c this prevents finding dependent libraries that
|
||||
@@ -5570,8 +5574,14 @@
|
||||
absdir="$abs_ladir"
|
||||
libdir="$abs_ladir"
|
||||
else
|
||||
- dir="$libdir"
|
||||
- absdir="$libdir"
|
||||
+ # Adding 'libdir' from the .la file to our library search paths
|
||||
+ # breaks crosscompilation horribly. We cheat here and don't add
|
||||
+ # it, instead adding the path where we found the .la. -CL
|
||||
+ dir="$abs_ladir"
|
||||
+ absdir="$abs_ladir"
|
||||
+ libdir="$abs_ladir"
|
||||
+ #dir="$libdir"
|
||||
+ #absdir="$libdir"
|
||||
fi
|
||||
test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
|
||||
else
|
||||
@@ -5942,8 +5952,6 @@
|
||||
add="$libdir/$linklib"
|
||||
fi
|
||||
else
|
||||
- # We cannot seem to hardcode it, guess we'll fake it.
|
||||
- add_dir="-L$libdir"
|
||||
# Try looking first in the location we're being installed to.
|
||||
if test -n "$inst_prefix_dir"; then
|
||||
case $libdir in
|
||||
@@ -6089,7 +6097,17 @@
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
- path="-L$absdir/$objdir"
|
||||
+ # OE sets installed=no in staging. We need to look in $objdir and $absdir,
|
||||
+ # preferring $objdir. RP 31/04/2008
|
||||
+ if test -f "$absdir/$objdir/$depdepl" ; then
|
||||
+ depdepl="$absdir/$objdir/$depdepl"
|
||||
+ path="-L$absdir/$objdir"
|
||||
+ elif test -f "$absdir/$depdepl" ; then
|
||||
+ depdepl="$absdir/$depdepl"
|
||||
+ path="-L$absdir"
|
||||
+ else
|
||||
+ path="-L$absdir/$objdir"
|
||||
+ fi
|
||||
;;
|
||||
esac
|
||||
else
|
||||
@@ -0,0 +1,29 @@
|
||||
# "-fPIE" always triggers segmentation fault in ld.so.1 on mips platform,
|
||||
# which was first saw on dbus-daemon. Below borrow the binutils fix from
|
||||
# binutils bugzilla:
|
||||
#
|
||||
# http://sourceware.org/bugzilla/show_bug.cgi?id=10858
|
||||
#
|
||||
# Its commit message says:
|
||||
# * elfxx-mips.c (mips_elf_create_dynamic_relocation): Use section
|
||||
# sym dynindx for relocs against defined syms in PIEs.
|
||||
#
|
||||
# It's in upstream CVS now (rev 1.267), but not in current release
|
||||
#
|
||||
# By Kevin Tian <kevin.tian@intel.com>, 2010-07-15
|
||||
|
||||
diff --git a/elfxx-mips.c b/elfxx-mips.c
|
||||
index 3a1c8ba..f6c2c1c 100644
|
||||
--- binutils-2.20.1.orig/bfd/elfxx-mips.c
|
||||
+++ binutils-2.20.1/bfd/elfxx-mips.c
|
||||
@@ -5688,9 +5688,7 @@ mips_elf_create_dynamic_relocation (bfd *output_bfd,
|
||||
|
||||
/* We must now calculate the dynamic symbol table index to use
|
||||
in the relocation. */
|
||||
- if (h != NULL
|
||||
- && (!h->root.def_regular
|
||||
- || (info->shared && !info->symbolic && !h->root.forced_local)))
|
||||
+ if (h != NULL && ! SYMBOL_REFERENCES_LOCAL (info, &h->root))
|
||||
{
|
||||
indx = h->root.dynindx;
|
||||
if (SGI_COMPAT (output_bfd))
|
||||
@@ -0,0 +1,34 @@
|
||||
--- binutils-2.18.orig/configure
|
||||
+++ binutils-2.18/configure
|
||||
@@ -2206,7 +2206,7 @@
|
||||
am33_2.0-*-linux*)
|
||||
noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
|
||||
;;
|
||||
- sh-*-linux*)
|
||||
+ sh*-*-linux*)
|
||||
noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
|
||||
;;
|
||||
sh*-*-pe|mips*-*-pe|*arm-wince-pe)
|
||||
@@ -2504,7 +2504,7 @@
|
||||
romp-*-*)
|
||||
noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes target-libgloss ${libgcj}"
|
||||
;;
|
||||
- sh-*-* | sh64-*-*)
|
||||
+ sh*-*-* | sh64-*-*)
|
||||
case "${host}" in
|
||||
i[3456789]86-*-vsta) ;; # don't add gprof back in
|
||||
i[3456789]86-*-go32*) ;; # don't add gprof back in
|
||||
--- binutils-2.18.orig/gprof/configure
|
||||
+++ binutils-2.18/gprof/configure
|
||||
@@ -4124,6 +4124,11 @@
|
||||
lt_cv_deplibs_check_method=pass_all
|
||||
;;
|
||||
|
||||
+linux-uclibc*)
|
||||
+ lt_cv_deplibs_check_method=pass_all
|
||||
+ lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
|
||||
+ ;;
|
||||
+
|
||||
netbsd*)
|
||||
if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
|
||||
lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
|
||||
+50
@@ -0,0 +1,50 @@
|
||||
#!/bin/sh -e
|
||||
## 001_ld_makefile_patch.dpatch
|
||||
##
|
||||
## All lines beginning with `## DP:' are a description of the patch.
|
||||
## DP: Description: correct where ld scripts are installed
|
||||
## DP: Author: Chris Chimelis <chris@debian.org>
|
||||
## DP: Upstream status: N/A
|
||||
## DP: Date: ??
|
||||
|
||||
if [ $# -ne 1 ]; then
|
||||
echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
|
||||
patch_opts="${patch_opts:--f --no-backup-if-mismatch}"
|
||||
|
||||
case "$1" in
|
||||
-patch) patch $patch_opts -p1 < $0;;
|
||||
-unpatch) patch $patch_opts -p1 -R < $0;;
|
||||
*)
|
||||
echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
|
||||
exit 1;;
|
||||
esac
|
||||
|
||||
exit 0
|
||||
|
||||
@DPATCH@
|
||||
--- binutils-2.16.91.0.1/ld/Makefile.am
|
||||
+++ binutils-2.16.91.0.1/ld/Makefile.am
|
||||
@@ -20,7 +20,7 @@
|
||||
# We put the scripts in the directory $(scriptdir)/ldscripts.
|
||||
# We can't put the scripts in $(datadir) because the SEARCH_DIR
|
||||
# directives need to be different for native and cross linkers.
|
||||
-scriptdir = $(tooldir)/lib
|
||||
+scriptdir = $(libdir)
|
||||
|
||||
EMUL = @EMUL@
|
||||
EMULATION_OFILES = @EMULATION_OFILES@
|
||||
--- binutils-2.16.91.0.1/ld/Makefile.in
|
||||
+++ binutils-2.16.91.0.1/ld/Makefile.in
|
||||
@@ -268,7 +268,7 @@
|
||||
# We put the scripts in the directory $(scriptdir)/ldscripts.
|
||||
# We can't put the scripts in $(datadir) because the SEARCH_DIR
|
||||
# directives need to be different for native and cross linkers.
|
||||
-scriptdir = $(tooldir)/lib
|
||||
+scriptdir = $(libdir)
|
||||
BASEDIR = $(srcdir)/..
|
||||
BFDDIR = $(BASEDIR)/bfd
|
||||
INCDIR = $(BASEDIR)/include
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
#!/bin/sh -e
|
||||
## 006_better_file_error.dpatch by David Kimdon <dwhedon@gordian.com>
|
||||
##
|
||||
## All lines beginning with `## DP:' are a description of the patch.
|
||||
## DP: Specify which filename is causing an error if the filename is a
|
||||
## DP: directory. (#45832)
|
||||
|
||||
if [ $# -ne 1 ]; then
|
||||
echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
|
||||
patch_opts="${patch_opts:--f --no-backup-if-mismatch}"
|
||||
|
||||
case "$1" in
|
||||
-patch) patch $patch_opts -p1 < $0;;
|
||||
-unpatch) patch $patch_opts -p1 -R < $0;;
|
||||
*)
|
||||
echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
|
||||
exit 1;;
|
||||
esac
|
||||
|
||||
exit 0
|
||||
|
||||
@DPATCH@
|
||||
diff -urNad /home/james/debian/packages/binutils/binutils-2.14.90.0.6/bfd/opncls.c binutils-2.14.90.0.6/bfd/opncls.c
|
||||
--- /home/james/debian/packages/binutils/binutils-2.14.90.0.6/bfd/opncls.c 2003-07-23 16:08:09.000000000 +0100
|
||||
+++ binutils-2.14.90.0.6/bfd/opncls.c 2003-09-10 22:35:00.000000000 +0100
|
||||
@@ -150,6 +150,13 @@
|
||||
{
|
||||
bfd *nbfd;
|
||||
const bfd_target *target_vec;
|
||||
+ struct stat s;
|
||||
+
|
||||
+ if (stat (filename, &s) == 0)
|
||||
+ if (S_ISDIR(s.st_mode)) {
|
||||
+ bfd_set_error (bfd_error_file_not_recognized);
|
||||
+ return NULL;
|
||||
+ }
|
||||
|
||||
nbfd = _bfd_new_bfd ();
|
||||
if (nbfd == NULL)
|
||||
+47
@@ -0,0 +1,47 @@
|
||||
#!/bin/sh -e
|
||||
## 012_check_ldrunpath_length.dpatch by Chris Chimelis <chris@debian.org>
|
||||
##
|
||||
## All lines beginning with `## DP:' are a description of the patch.
|
||||
## DP: Only generate an RPATH entry if LD_RUN_PATH is not empty, for
|
||||
## DP: cases where -rpath isn't specified. (#151024)
|
||||
|
||||
if [ $# -ne 1 ]; then
|
||||
echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
|
||||
patch_opts="${patch_opts:--f --no-backup-if-mismatch}"
|
||||
|
||||
case "$1" in
|
||||
-patch) patch $patch_opts -p1 < $0;;
|
||||
-unpatch) patch $patch_opts -p1 -R < $0;;
|
||||
*)
|
||||
echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
|
||||
exit 1;;
|
||||
esac
|
||||
|
||||
exit 0
|
||||
|
||||
@DPATCH@
|
||||
diff -urNad /home/james/debian/packages/binutils/new/binutils-2.15/ld/emultempl/elf32.em binutils-2.15/ld/emultempl/elf32.em
|
||||
--- /home/james/debian/packages/binutils/new/binutils-2.15/ld/emultempl/elf32.em 2004-05-21 23:12:58.000000000 +0100
|
||||
+++ binutils-2.15/ld/emultempl/elf32.em 2004-05-21 23:12:59.000000000 +0100
|
||||
@@ -692,6 +692,8 @@
|
||||
&& command_line.rpath == NULL)
|
||||
{
|
||||
lib_path = (const char *) getenv ("LD_RUN_PATH");
|
||||
+ if ((lib_path) && (strlen (lib_path) == 0))
|
||||
+ lib_path = NULL;
|
||||
if (gld${EMULATION_NAME}_search_needed (lib_path, &n,
|
||||
force))
|
||||
break;
|
||||
@@ -871,6 +873,8 @@
|
||||
rpath = command_line.rpath;
|
||||
if (rpath == NULL)
|
||||
rpath = (const char *) getenv ("LD_RUN_PATH");
|
||||
+ if ((rpath) && (strlen (rpath) == 0))
|
||||
+ rpath = NULL;
|
||||
if (! (bfd_elf_size_dynamic_sections
|
||||
(output_bfd, command_line.soname, rpath,
|
||||
command_line.filter_shlib,
|
||||
@@ -0,0 +1,38 @@
|
||||
Source: Khem Raj <raj.khem@gmail.com>
|
||||
Disposition: submit upstream.
|
||||
|
||||
Description:
|
||||
|
||||
We do not need to have the libtool patch anymore for binutils after
|
||||
libtool has been updated upstream it include support for it. However
|
||||
for building gas natively on uclibc systems we have to link it with
|
||||
-lm so that it picks up missing symbols.
|
||||
|
||||
/local/build_area/BUILD/arm_v5t_le_uclibc/binutils-2.17.50/objdir/libiberty/pic/libiberty.a(floatformat.o): In function `floatformat_from_double':
|
||||
floatformat.c:(.text+0x1ec): undefined reference to `frexp'
|
||||
floatformat.c:(.text+0x2f8): undefined reference to `ldexp'
|
||||
/local/build_area/BUILD/arm_v5t_le_uclibc/binutils-2.17.50/objdir/libiberty/pic/libiberty.a(floatformat.o): In function `floatformat_to_double':
|
||||
floatformat.c:(.text+0x38a): undefined reference to `ldexp'
|
||||
floatformat.c:(.text+0x3d2): undefined reference to `ldexp'
|
||||
floatformat.c:(.text+0x43e): undefined reference to `ldexp' floatformat.c:(.text+0x4e2): undefined reference to `ldexp'
|
||||
collect2: ld returned 1 exit status
|
||||
make[4]: *** [as-new] Error 1
|
||||
|
||||
Index: binutils-2.17.50/gas/configure.tgt
|
||||
===================================================================
|
||||
--- binutils-2.17.50.orig/gas/configure.tgt
|
||||
+++ binutils-2.17.50/gas/configure.tgt
|
||||
@@ -408,6 +408,12 @@ case ${generic_target} in
|
||||
*-*-netware) fmt=elf em=netware ;;
|
||||
esac
|
||||
|
||||
+case ${generic_target} in
|
||||
+ arm-*-*uclibc*)
|
||||
+ need_libm=yes
|
||||
+ ;;
|
||||
+esac
|
||||
+
|
||||
case ${cpu_type} in
|
||||
alpha | arm | i386 | ia64 | mips | ns32k | pdp11 | ppc | sparc | z80 | z8k)
|
||||
bfd_gas=yes
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
#!/bin/sh -e
|
||||
## 127_x86_64_i386_biarch.dpatch
|
||||
##
|
||||
## DP: Description: Add (/usr)/lib32 to the search paths on x86_64.
|
||||
## DP: Author: Aurelien Jarno <aurel32.debian.org>
|
||||
## DP: Upstream status: Debian specific
|
||||
#
|
||||
# Hacked to apply with quilt
|
||||
# Adapted to binutils 2.18.50.0.7
|
||||
|
||||
--- binutils/ld/emulparams/elf_i386.sh
|
||||
+++ binutils/ld/emulparams/elf_i386.sh
|
||||
@@ -12,3 +12,13 @@
|
||||
SEPARATE_GOTPLT=12
|
||||
SHARABLE_SECTIONS=yes
|
||||
IREL_IN_PLT=
|
||||
+
|
||||
+# Linux modify the default library search path to first include
|
||||
+# a 32-bit specific directory.
|
||||
+case "$target" in
|
||||
+ x86_64*-linux* | i[3-7]86*-linux* | x86_64*-kfreebsd*-gnu | i[3-7]86*-kfreebsd*-gnu)
|
||||
+ case "$EMULATION_NAME" in
|
||||
+ *i386*) LIBPATH_SUFFIX=32 ;;
|
||||
+ esac
|
||||
+ ;;
|
||||
+esac
|
||||
@@ -0,0 +1,20 @@
|
||||
don't let the distro compiler point to the wrong installation location
|
||||
|
||||
Thanks to RP for helping find the source code causing the issue.
|
||||
|
||||
2010/08/13
|
||||
Nitin A Kamble <nitin.a.kamble@intel.com>
|
||||
Index: binutils-2.20.1/libiberty/Makefile.in
|
||||
===================================================================
|
||||
--- binutils-2.20.1.orig/libiberty/Makefile.in
|
||||
+++ binutils-2.20.1/libiberty/Makefile.in
|
||||
@@ -327,7 +327,8 @@ install: install_to_$(INSTALL_DEST) inst
|
||||
# multilib-specific flags, it's overridden by FLAGS_TO_PASS from the
|
||||
# default multilib, so we have to take CFLAGS into account as well,
|
||||
# since it will be passed the multilib flags.
|
||||
-MULTIOSDIR = `$(CC) $(CFLAGS) -print-multi-os-directory`
|
||||
+#MULTIOSDIR = `$(CC) $(CFLAGS) -print-multi-os-directory`
|
||||
+MULTIOSDIR = ""
|
||||
install_to_libdir: all
|
||||
${mkinstalldirs} $(DESTDIR)$(libdir)/$(MULTIOSDIR)
|
||||
$(INSTALL_DATA) $(TARGETLIB) $(DESTDIR)$(libdir)/$(MULTIOSDIR)/$(TARGETLIB)n
|
||||
@@ -0,0 +1,16 @@
|
||||
inherit cross-canadian
|
||||
DEPENDS = "flex-native bison-native virtual/${HOST_PREFIX}gcc-crosssdk virtual/libc-nativesdk zlib-nativesdk gettext-nativesdk"
|
||||
EXTRA_OECONF = "--with-sysroot=${SDKPATH}/sysroots/${TARGET_SYS} \
|
||||
--program-prefix=${TARGET_PREFIX}"
|
||||
|
||||
do_install () {
|
||||
autotools_do_install
|
||||
|
||||
# We're not interested in the libs or headers, these would come from the
|
||||
# nativesdk or target version of the binutils recipe
|
||||
rm -rf ${D}${prefix}/${TARGET_SYS}
|
||||
rm -f ${D}${libdir}/libbfd*
|
||||
rm -f ${D}${libdir}/libiberty*
|
||||
rm -f ${D}${libdir}/libopcodes*
|
||||
rm -f ${D}${includedir}/*.h
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
require binutils_${PV}.bb
|
||||
require binutils-cross-canadian.inc
|
||||
PR = "r4"
|
||||
@@ -0,0 +1,25 @@
|
||||
inherit cross
|
||||
PROVIDES = "virtual/${TARGET_PREFIX}binutils"
|
||||
|
||||
EXTRA_OECONF = "--with-sysroot=${STAGING_DIR_TARGET} \
|
||||
--program-prefix=${TARGET_PREFIX} \
|
||||
--disable-install-libbfd \
|
||||
--disable-werror"
|
||||
|
||||
do_install () {
|
||||
oe_runmake 'DESTDIR=${D}' install
|
||||
|
||||
# We don't really need these, so we'll remove them...
|
||||
rm -rf ${D}${STAGING_DIR_NATIVE}${libdir_native}/libiberty.a
|
||||
rm -rf ${D}${STAGING_DIR_NATIVE}${prefix_native}/${TARGET_SYS}
|
||||
rm -rf ${D}${STAGING_DIR_NATIVE}${prefix_native}/lib/ldscripts
|
||||
rm -rf ${D}${STAGING_DIR_NATIVE}${prefix_native}/share/info
|
||||
rm -rf ${D}${STAGING_DIR_NATIVE}${prefix_native}/share/locale
|
||||
rm -rf ${D}${STAGING_DIR_NATIVE}${prefix_native}/share/man
|
||||
rmdir ${D}${STAGING_DIR_NATIVE}${prefix_native}/share || :
|
||||
rmdir ${D}${STAGING_DIR_NATIVE}${prefix_native}/${libdir}/gcc-lib || :
|
||||
rmdir ${D}${STAGING_DIR_NATIVE}${prefix_native}/${libdir}64/gcc-lib || :
|
||||
rmdir ${D}${STAGING_DIR_NATIVE}${prefix_native}/${libdir} || :
|
||||
rmdir ${D}${STAGING_DIR_NATIVE}${prefix_native}/${libdir}64 || :
|
||||
rmdir ${D}${STAGING_DIR_NATIVE}${prefix_native}/${prefix} || :
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
require binutils_${PV}.bb
|
||||
require binutils-cross.inc
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
require binutils_csl-arm-2008q1.bb
|
||||
require binutils-cross.inc
|
||||
PR = "r1"
|
||||
@@ -0,0 +1,12 @@
|
||||
require binutils-cross_${PV}.bb
|
||||
|
||||
inherit crosssdk
|
||||
|
||||
PROVIDES = "virtual/${TARGET_PREFIX}binutils-crosssdk"
|
||||
|
||||
PR = "r3"
|
||||
|
||||
do_configure_prepend () {
|
||||
sed -i 's#/usr/local/lib /lib /usr/lib#${SDKPATHNATIVE}/lib ${SDKPATHNATIVE}/usr/lib /usr/local/lib /lib /usr/lib#' ${S}/ld/configure.tgt
|
||||
}
|
||||
|
||||
@@ -0,0 +1,146 @@
|
||||
DESCRIPTION = "A GNU collection of binary utilities"
|
||||
HOMEPAGE = "http://www.gnu.org/software/binutils/"
|
||||
BUGTRACKER = "http://sourceware.org/bugzilla/"
|
||||
SECTION = "devel"
|
||||
LICENSE = "GPLv2"
|
||||
|
||||
DEPENDS = "flex-native bison-native"
|
||||
|
||||
inherit autotools gettext
|
||||
|
||||
PACKAGES += "${PN}-symlinks"
|
||||
|
||||
FILES_${PN} = " \
|
||||
${bindir}/${TARGET_PREFIX}* \
|
||||
${libdir}/lib*-*.so \
|
||||
${prefix}/${TARGET_SYS}/bin/*"
|
||||
|
||||
FILES_${PN}-dev = " \
|
||||
${includedir} \
|
||||
${libdir}/*.a \
|
||||
${libdir}/*.la \
|
||||
${libdir}/libbfd.so \
|
||||
${libdir}/libopcodes.so"
|
||||
|
||||
FILES_${PN}-symlinks = " \
|
||||
${bindir}/addr2line \
|
||||
${bindir}/as \
|
||||
${bindir}/c++filt \
|
||||
${bindir}/gprof \
|
||||
${bindir}/ld \
|
||||
${bindir}/nm \
|
||||
${bindir}/objcopy \
|
||||
${bindir}/objdump \
|
||||
${bindir}/ranlib \
|
||||
${bindir}/readelf \
|
||||
${bindir}/size \
|
||||
${bindir}/strip"
|
||||
|
||||
B = "${S}/build.${HOST_SYS}.${TARGET_SYS}"
|
||||
|
||||
EXTRA_OECONF = "--program-prefix=${TARGET_PREFIX} \
|
||||
--enable-install-libbfd \
|
||||
--enable-shared"
|
||||
|
||||
EXTRA_OECONF_virtclass-native = "--enable-target=all --enable-64-bit-bfd --enable-install-libbfd"
|
||||
|
||||
# This is necessary due to a bug in the binutils Makefiles
|
||||
# EXTRA_OEMAKE = "configure-build-libiberty all"
|
||||
|
||||
export AR = "${HOST_PREFIX}ar"
|
||||
export AS = "${HOST_PREFIX}as"
|
||||
export LD = "${HOST_PREFIX}ld"
|
||||
export NM = "${HOST_PREFIX}nm"
|
||||
export RANLIB = "${HOST_PREFIX}ranlib"
|
||||
export OBJCOPY = "${HOST_PREFIX}objcopy"
|
||||
export OBJDUMP = "${HOST_PREFIX}objdump"
|
||||
|
||||
export AR_FOR_TARGET = "${TARGET_PREFIX}ar"
|
||||
export AS_FOR_TARGET = "${TARGET_PREFIX}as"
|
||||
export LD_FOR_TARGET = "${TARGET_PREFIX}ld"
|
||||
export NM_FOR_TARGET = "${TARGET_PREFIX}nm"
|
||||
export RANLIB_FOR_TARGET = "${TARGET_PREFIX}ranlib"
|
||||
|
||||
export CC_FOR_HOST = "${CCACHE}${HOST_PREFIX}gcc ${HOST_CC_ARCH}"
|
||||
export CXX_FOR_HOST = "${CCACHE}${HOST_PREFIX}gcc ${HOST_CC_ARCH}"
|
||||
|
||||
export CC_FOR_BUILD = "${BUILD_CC}"
|
||||
export CPP_FOR_BUILD = "${BUILD_CPP}"
|
||||
export CFLAGS_FOR_BUILD = "${BUILD_CFLAGS}"
|
||||
|
||||
export CC = "${CCACHE}${HOST_PREFIX}gcc ${HOST_CC_ARCH}"
|
||||
|
||||
do_configure () {
|
||||
(cd ${S}; gnu-configize) || die "Failed to run gnu-configize"
|
||||
oe_runconf
|
||||
#
|
||||
# must prime config.cache to ensure the build of libiberty
|
||||
#
|
||||
mkdir -p ${B}/build-${BUILD_SYS}
|
||||
for i in ${CONFIG_SITE}; do
|
||||
cat $i >> ${B}/build-${BUILD_SYS}/config.cache
|
||||
done
|
||||
}
|
||||
|
||||
do_install () {
|
||||
autotools_do_install
|
||||
|
||||
# We don't really need these, so we'll remove them...
|
||||
rm -rf ${D}${libdir}/ldscripts
|
||||
|
||||
# Fix the /usr/${TARGET_SYS}/bin/* links
|
||||
for l in ${D}${prefix}/${TARGET_SYS}/bin/*; do
|
||||
rm -f $l
|
||||
ln -sf `echo ${prefix}/${TARGET_SYS}/bin \
|
||||
| tr -s / \
|
||||
| sed -e 's,^/,,' -e 's,[^/]*,..,g'`${bindir}/${TARGET_PREFIX}`basename $l` $l
|
||||
done
|
||||
|
||||
# Install the libiberty header
|
||||
install -d ${D}${includedir}
|
||||
install -m 644 ${S}/include/ansidecl.h ${D}${includedir}
|
||||
install -m 644 ${S}/include/libiberty.h ${D}${includedir}
|
||||
|
||||
cd ${D}${bindir}
|
||||
|
||||
# Symlinks for ease of running these on the native target
|
||||
for p in ${TARGET_SYS}-* ; do
|
||||
ln -sf $p `echo $p | sed -e s,${TARGET_SYS}-,,`
|
||||
done
|
||||
|
||||
rm ${D}${bindir}/ar ${D}${bindir}/strings
|
||||
}
|
||||
|
||||
do_install_virtclass-native () {
|
||||
autotools_do_install
|
||||
|
||||
# Install the libiberty header
|
||||
install -d ${D}${includedir}
|
||||
install -m 644 ${S}/include/ansidecl.h ${D}${includedir}
|
||||
install -m 644 ${S}/include/libiberty.h ${D}${includedir}
|
||||
|
||||
# We only want libiberty, libbfd and libopcodes
|
||||
rm -rf ${D}${bindir}
|
||||
rm -rf ${D}${prefix}/${TARGET_SYS}
|
||||
rm -rf ${D}${prefix}/lib/ldscripts
|
||||
rm -rf ${D}${prefix}/share/info
|
||||
rm -rf ${D}${prefix}/share/locale
|
||||
rm -rf ${D}${prefix}/share/man
|
||||
rmdir ${D}${prefix}/share || :
|
||||
rmdir ${D}/${libdir}/gcc-lib || :
|
||||
rmdir ${D}/${libdir}64/gcc-lib || :
|
||||
rmdir ${D}/${libdir} || :
|
||||
rmdir ${D}/${libdir}64 || :
|
||||
}
|
||||
|
||||
pkg_postinst_${PN}-symlinks () {
|
||||
update-alternatives --install ${bindir}/ar ar ${TARGET_SYS}-ar 100
|
||||
update-alternatives --install ${bindir}/strings strings ${TARGET_SYS}-strings 100
|
||||
}
|
||||
|
||||
|
||||
pkg_prerm_${PN}-symlinks () {
|
||||
update-alternatives --remove ar ${TARGET_SYS}-ar
|
||||
update-alternatives --remove strings ${TARGET_SYS}-strings
|
||||
}
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
require binutils.inc
|
||||
|
||||
PR = "r2"
|
||||
|
||||
LIC_FILES_CHKSUM="\
|
||||
file://src-release;endline=17;md5=4830a9ef968f3b18dd5e9f2c00db2d35\
|
||||
file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552\
|
||||
file://COPYING.LIB;md5=9f604d8a4f8e74f4f5140845a21b6674\
|
||||
file://COPYING3;md5=d32239bcb673463ab874e80d47fae504\
|
||||
file://COPYING3.LIB;md5=6a6a8e020838b23406c81b19c1d46df6\
|
||||
file://gas/COPYING;md5=d32239bcb673463ab874e80d47fae504\
|
||||
file://include/COPYING;md5=59530bdf33659b29e73d4adb9f9f6552\
|
||||
file://include/COPYING3;md5=d32239bcb673463ab874e80d47fae504\
|
||||
file://libiberty/COPYING.LIB;md5=a916467b91076e631dd8edb7424769c7\
|
||||
file://bfd/COPYING;md5=d32239bcb673463ab874e80d47fae504\
|
||||
"
|
||||
|
||||
SRC_URI = "\
|
||||
${GNU_MIRROR}/binutils/binutils-${PV}.tar.bz2;name=tarball \
|
||||
file://binutils-uclibc-100-uclibc-conf.patch \
|
||||
file://110-arm-eabi-conf.patch \
|
||||
file://binutils-uclibc-300-001_ld_makefile_patch.patch \
|
||||
file://binutils-uclibc-300-006_better_file_error.patch \
|
||||
file://binutils-uclibc-300-012_check_ldrunpath_length.patch \
|
||||
file://binutils-uclibc-gas-needs-libm.patch \
|
||||
file://binutils-x86_64_i386_biarch.patch \
|
||||
file://binutils-mips-pie.patch \
|
||||
file://binutils-libtool.patch \
|
||||
file://libiberty_path_fix.patch \
|
||||
"
|
||||
|
||||
# powerpc patches
|
||||
SRC_URI += "\
|
||||
file://binutils-2.16.1-e300c2c3.patch \
|
||||
"
|
||||
|
||||
BBCLASSEXTEND = "native"
|
||||
@@ -0,0 +1,25 @@
|
||||
require binutils.inc
|
||||
|
||||
DEFAULT_PREFERENCE = "-1"
|
||||
|
||||
SRC_URI = "\
|
||||
http://www.codesourcery.com/gnu_toolchains/arm/portal/package2553/public/arm-none-eabi/arm-2008q1-126-arm-none-eabi.src.tar.bz2 \
|
||||
file://binutils-2.16.91.0.6-objcopy-rename-errorcode.patch;patch=1 \
|
||||
file://binutils-uclibc-100-uclibc-conf.patch;patch=1 \
|
||||
file://110-arm-eabi-conf.patch;patch=1 \
|
||||
file://binutils-uclibc-300-001_ld_makefile_patch.patch;patch=1 \
|
||||
file://binutils-uclibc-300-006_better_file_error.patch;patch=1 \
|
||||
file://binutils-uclibc-300-012_check_ldrunpath_length.patch;patch=1 \
|
||||
file://docs_hack2.patch;patch=1 \
|
||||
"
|
||||
|
||||
PV = "2.18+csl-arm-2008q1-126"
|
||||
|
||||
S = "${WORKDIR}/binutils-stable"
|
||||
|
||||
do_unpack2() {
|
||||
cd ${WORKDIR}
|
||||
tar -xvjf ./arm-2008q1-126-arm-none-eabi/binutils-2008q1-126.tar.bz2
|
||||
}
|
||||
|
||||
addtask unpack2 after do_unpack before do_patch
|
||||
@@ -0,0 +1,17 @@
|
||||
diff -urN binutils-2.11.92.0.5/bfd/opncls.c binutils-2.11.92.0.5.new/bfd/opncls.c
|
||||
--- binutils-2.11.92.0.5/bfd/opncls.c Mon Oct 1 18:25:21 2001
|
||||
+++ binutils-2.11.92.0.5.new/bfd/opncls.c Sat Oct 13 11:26:59 2001
|
||||
@@ -127,6 +127,13 @@
|
||||
{
|
||||
bfd *nbfd;
|
||||
const bfd_target *target_vec;
|
||||
+ struct stat s;
|
||||
+
|
||||
+ if (stat (filename, &s) == 0)
|
||||
+ if (S_ISDIR(s.st_mode)) {
|
||||
+ bfd_set_error (bfd_error_file_not_recognized);
|
||||
+ return NULL;
|
||||
+ }
|
||||
|
||||
nbfd = _bfd_new_bfd ();
|
||||
if (nbfd == NULL)
|
||||
@@ -0,0 +1,22 @@
|
||||
--- binutils-2.11.90.0.19.orig/ld/Makefile.am
|
||||
+++ binutils-2.11.90.0.19/ld/Makefile.am
|
||||
@@ -19,7 +19,7 @@
|
||||
# We put the scripts in the directory $(scriptdir)/ldscripts.
|
||||
# We can't put the scripts in $(datadir) because the SEARCH_DIR
|
||||
# directives need to be different for native and cross linkers.
|
||||
-scriptdir = $(tooldir)/lib
|
||||
+scriptdir = $(libdir)
|
||||
|
||||
EMUL = @EMUL@
|
||||
EMULATION_OFILES = @EMULATION_OFILES@
|
||||
--- binutils-2.11.90.0.19.orig/ld/Makefile.in
|
||||
+++ binutils-2.11.90.0.19/ld/Makefile.in
|
||||
@@ -123,7 +123,7 @@
|
||||
# We put the scripts in the directory $(scriptdir)/ldscripts.
|
||||
# We can't put the scripts in $(datadir) because the SEARCH_DIR
|
||||
# directives need to be different for native and cross linkers.
|
||||
-scriptdir = $(tooldir)/lib
|
||||
+scriptdir = $(libdir)
|
||||
|
||||
EMUL = @EMUL@
|
||||
EMULATION_OFILES = @EMULATION_OFILES@
|
||||
@@ -0,0 +1,134 @@
|
||||
From binutils-return-38148-listarch-binutils=sources dot redhat dot com at sources dot redhat dot com Tue Feb 22 19:24:15 2005
|
||||
Return-Path: <binutils-return-38148-listarch-binutils=sources dot redhat dot com at sources dot redhat dot com>
|
||||
Delivered-To: listarch-binutils at sources dot redhat dot com
|
||||
Received: (qmail 4446 invoked by alias); 22 Feb 2005 19:24:15 -0000
|
||||
Mailing-List: contact binutils-help at sources dot redhat dot com; run by ezmlm
|
||||
Precedence: bulk
|
||||
List-Subscribe: <mailto:binutils-subscribe at sources dot redhat dot com>
|
||||
List-Archive: <http://sources.redhat.com/ml/binutils/>
|
||||
List-Post: <mailto:binutils at sources dot redhat dot com>
|
||||
List-Help: <mailto:binutils-help at sources dot redhat dot com>, <http://sources dot redhat dot com/ml/#faqs>
|
||||
Sender: binutils-owner at sources dot redhat dot com
|
||||
Delivered-To: mailing list binutils at sources dot redhat dot com
|
||||
Received: (qmail 4401 invoked from network); 22 Feb 2005 19:24:08 -0000
|
||||
Received: from unknown (HELO bgo1smout1.broadpark.no) (217.13.4.94)
|
||||
by sourceware dot org with SMTP; 22 Feb 2005 19:24:08 -0000
|
||||
Received: from bgo1sminn1.broadpark.no ([217.13.4.93])
|
||||
by bgo1smout1 dot broadpark dot no
|
||||
(Sun Java System Messaging Server 6 dot 1 HotFix 0 dot 05 (built Oct 21 2004))
|
||||
with ESMTP id <0ICB007QZUZCC0C0 at bgo1smout1 dot broadpark dot no> for
|
||||
binutils at sources dot redhat dot com; Tue, 22 Feb 2005 20:18:48 +0100 (CET)
|
||||
Received: from [127.0.0.1] ([80.202.165.9]) by bgo1sminn1.broadpark.no
|
||||
(Sun Java System Messaging Server 6 dot 1 HotFix 0 dot 05 (built Oct 21 2004))
|
||||
with ESMTP id <0ICB006NCVBVHE21 at bgo1sminn1 dot broadpark dot no> for
|
||||
binutils at sources dot redhat dot com; Tue, 22 Feb 2005 20:26:20 +0100 (CET)
|
||||
Date: Tue, 22 Feb 2005 20:24:08 +0100
|
||||
From: =?ISO-8859-1?Q?Stig_Petter_Olsr=F8d?= <stigpo at users dot sourceforge dot net>
|
||||
Subject: [PATCH] objdump relocation fixes for ARM disassembly
|
||||
To: binutils at sources dot redhat dot com
|
||||
Message-id: <421B86D8.8080604@users.sourceforge.net>
|
||||
MIME-version: 1.0
|
||||
Content-type: text/plain; charset=ISO-8859-1; format=flowed
|
||||
Content-transfer-encoding: 7BIT
|
||||
User-Agent: Mozilla Thunderbird 1.0 (Windows/20041206)
|
||||
|
||||
Hello,
|
||||
|
||||
objdump disassembly did not relocate correctly for the ARM processor. It seems
|
||||
that the test for triggering the INSN_HAS_RELOC flag was void (one test killed the other,
|
||||
since octets would always be zero) and all relocations would thus fail. I changed the test
|
||||
so the flag is set when we are about to disassemble an insn that the current relocation
|
||||
entry points to. I also changed objdump_print_addr to use the current relocation entry if
|
||||
the insn has such an entry. This causes the symbol printed to be correct for both external
|
||||
symbols (from the undefined section) and local symbols.
|
||||
|
||||
This has only been tested for the ARM processor, but I don't think it should break other
|
||||
DISASSEMBLER_NEEDS_RELOCS processors either.
|
||||
|
||||
|
||||
binutils/
|
||||
|
||||
2005-02-22 Stig Petter Olsroed <stigpo@users.sourceforge.net>
|
||||
|
||||
* objdump.c (disassemble_bytes): Fixed relocation check for
|
||||
DISASSEMBLER_NEEDS_RELOCS platforms to properly trigger the
|
||||
INSN_HAS_RELOC flag. Set the current relocation entry in
|
||||
objdump_disasm_info to allow printing the proper symbol.
|
||||
(objdump_print_addr): Use the relocation entry in
|
||||
objdump_disasm_info to lookup the correct symbol for
|
||||
DISASSEMBLER_NEEDS_RELOCS platforms.
|
||||
|
||||
--- 1/binutils/objdump.c 2005-02-22 01:50:06.000000000 +0100
|
||||
+++ 2/binutils/objdump.c 2005-02-22 14:27:33.066960900 +0100
|
||||
@@ -128,6 +128,7 @@
|
||||
arelent ** dynrelbuf;
|
||||
long dynrelcount;
|
||||
disassembler_ftype disassemble_fn;
|
||||
+ arelent * reloc;
|
||||
};
|
||||
|
||||
/* Architecture to disassemble for, or default if NULL. */
|
||||
@@ -852,6 +853,8 @@
|
||||
{
|
||||
struct objdump_disasm_info *aux;
|
||||
asymbol *sym;
|
||||
+ arelent *q;
|
||||
+ int skip_find = 0;
|
||||
|
||||
if (sorted_symcount < 1)
|
||||
{
|
||||
@@ -861,6 +864,22 @@
|
||||
}
|
||||
|
||||
aux = (struct objdump_disasm_info *) info->application_data;
|
||||
+
|
||||
+ q = aux->reloc;
|
||||
+ if (q != NULL)
|
||||
+ {
|
||||
+ if (q->sym_ptr_ptr != NULL && *q->sym_ptr_ptr != NULL)
|
||||
+ {
|
||||
+ /* Adjust the vma to the reloc */
|
||||
+ vma += bfd_asymbol_value (*q->sym_ptr_ptr);
|
||||
+ if (bfd_is_und_section (bfd_get_section (*q->sym_ptr_ptr)))
|
||||
+ {
|
||||
+ skip_find = 1;
|
||||
+ sym = *q->sym_ptr_ptr;
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+ if (!skip_find)
|
||||
sym = find_symbol_for_address (vma, info, NULL);
|
||||
objdump_print_addr_with_sym (aux->abfd, aux->sec, sym, vma, info,
|
||||
skip_zeroes);
|
||||
@@ -1350,16 +1369,22 @@
|
||||
info->bytes_per_chunk = 0;
|
||||
|
||||
#ifdef DISASSEMBLER_NEEDS_RELOCS
|
||||
- /* FIXME: This is wrong. It tests the number of octets
|
||||
- in the last instruction, not the current one. */
|
||||
- if (*relppp < relppend
|
||||
- && (**relppp)->address >= rel_offset + addr_offset
|
||||
- && ((**relppp)->address
|
||||
- < rel_offset + addr_offset + octets / opb))
|
||||
+ /* Check if the current relocation entry applies to the
|
||||
+ instruction we are about to disassemble.
|
||||
+ This works for ARM at least.
|
||||
+ */
|
||||
+ if ((*relppp) < relppend
|
||||
+ && ((**relppp)->address == rel_offset + addr_offset))
|
||||
+ {
|
||||
info->flags = INSN_HAS_RELOC;
|
||||
+ aux->reloc = **relppp;
|
||||
+ }
|
||||
else
|
||||
#endif
|
||||
+ {
|
||||
info->flags = 0;
|
||||
+ aux->reloc = NULL;
|
||||
+ }
|
||||
|
||||
octets = (*disassemble_fn) (section->vma + addr_offset, info);
|
||||
info->fprintf_func = (fprintf_ftype) fprintf;
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
--- binutils/bfd/elf32-arm.h.orig 2004-04-22 22:11:15.000000000 -0400
|
||||
+++ binutils/bfd/elf32-arm.h 2004-04-22 22:28:37.000000000 -0400
|
||||
@@ -2229,6 +2229,8 @@ elf32_arm_relocate_section (output_bfd,
|
||||
case R_ARM_PC24:
|
||||
case R_ARM_ABS32:
|
||||
case R_ARM_THM_PC22:
|
||||
+ case R_ARM_PLT32:
|
||||
+
|
||||
if (info->shared
|
||||
&& (
|
||||
(!info->symbolic && h->dynindx != -1)
|
||||
@@ -2262,11 +2264,6 @@ elf32_arm_relocate_section (output_bfd,
|
||||
relocation = 0;
|
||||
break;
|
||||
|
||||
- case R_ARM_PLT32:
|
||||
- if (h->plt.offset != (bfd_vma)-1)
|
||||
- relocation = 0;
|
||||
- break;
|
||||
-
|
||||
default:
|
||||
if (unresolved_reloc)
|
||||
_bfd_error_handler
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
diff -urN binutils-2.11.92.0.12.3/opcodes/i386-dis.c binutils-2.11.92.0.12.3.new/opcodes/i386-dis.c
|
||||
--- binutils-2.11.92.0.12.3/opcodes/i386-dis.c Fri Nov 16 17:05:55 2001
|
||||
+++ binutils-2.11.92.0.12.3.new/opcodes/i386-dis.c Mon Dec 31 15:55:04 2001
|
||||
@@ -1830,7 +1830,7 @@
|
||||
* The function returns the length of this instruction in bytes.
|
||||
*/
|
||||
|
||||
-static char intel_syntax;
|
||||
+static signed char intel_syntax;
|
||||
static char open_char;
|
||||
static char close_char;
|
||||
static char separator_char;
|
||||
@@ -0,0 +1,18 @@
|
||||
help2man is looking at the generated binary for help output. This does not work for cross compilations. So taking out the local PREPATH (../src) directory from path so that help2 man can find the native version of the bison in the native sysroot directory.
|
||||
|
||||
Date: 2010/06/28
|
||||
Signed-Off-By: Nitin A Kamble <nitin.a.kamble@intel.com>
|
||||
|
||||
Index: bison-2.4.2/doc/Makefile.am
|
||||
===================================================================
|
||||
--- bison-2.4.2.orig/doc/Makefile.am
|
||||
+++ bison-2.4.2/doc/Makefile.am
|
||||
@@ -77,7 +77,7 @@ PREPATH = $(top_builddir)/src
|
||||
(cd $$dir && $(MAKE) $(AM_MAKEFLAGS) $$program) || exit; \
|
||||
done
|
||||
@echo "Updating man page $@"
|
||||
- PATH="$(PREPATH)$(PATH_SEPARATOR)$$PATH"; \
|
||||
+# PATH="$(PREPATH)$(PATH_SEPARATOR)$$PATH";
|
||||
export PATH; \
|
||||
$(HELP2MAN) \
|
||||
--include=$*.x \
|
||||
@@ -0,0 +1,544 @@
|
||||
|
||||
#
|
||||
# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
|
||||
#
|
||||
|
||||
Index: bison-2.4.2/m4/lcmessage.m4
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ bison-2.4.2/m4/lcmessage.m4
|
||||
@@ -0,0 +1,32 @@
|
||||
+# lcmessage.m4 serial 3 (gettext-0.11.3)
|
||||
+dnl Copyright (C) 1995-2002 Free Software Foundation, Inc.
|
||||
+dnl This file is free software, distributed under the terms of the GNU
|
||||
+dnl General Public License. As a special exception to the GNU General
|
||||
+dnl Public License, this file may be distributed as part of a program
|
||||
+dnl that contains a configuration script generated by Autoconf, under
|
||||
+dnl the same distribution terms as the rest of that program.
|
||||
+dnl
|
||||
+dnl This file can can be used in projects which are not available under
|
||||
+dnl the GNU General Public License or the GNU Library General Public
|
||||
+dnl License but which still want to provide support for the GNU gettext
|
||||
+dnl functionality.
|
||||
+dnl Please note that the actual code of the GNU gettext library is covered
|
||||
+dnl by the GNU Library General Public License, and the rest of the GNU
|
||||
+dnl gettext package package is covered by the GNU General Public License.
|
||||
+dnl They are *not* in the public domain.
|
||||
+
|
||||
+dnl Authors:
|
||||
+dnl Ulrich Drepper <drepper@cygnus.com>, 1995.
|
||||
+
|
||||
+# Check whether LC_MESSAGES is available in <locale.h>.
|
||||
+
|
||||
+AC_DEFUN([AM_LC_MESSAGES],
|
||||
+[
|
||||
+ AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES,
|
||||
+ [AC_TRY_LINK([#include <locale.h>], [return LC_MESSAGES],
|
||||
+ am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)])
|
||||
+ if test $am_cv_val_LC_MESSAGES = yes; then
|
||||
+ AC_DEFINE(HAVE_LC_MESSAGES, 1,
|
||||
+ [Define if your <locale.h> file defines LC_MESSAGES.])
|
||||
+ fi
|
||||
+])
|
||||
Index: bison-2.4.2/m4/uintmax_t.m4
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ bison-2.4.2/m4/uintmax_t.m4
|
||||
@@ -0,0 +1,29 @@
|
||||
+# uintmax_t.m4 serial 6 (gettext-0.11)
|
||||
+dnl Copyright (C) 1997-2002 Free Software Foundation, Inc.
|
||||
+dnl This file is free software, distributed under the terms of the GNU
|
||||
+dnl General Public License. As a special exception to the GNU General
|
||||
+dnl Public License, this file may be distributed as part of a program
|
||||
+dnl that contains a configuration script generated by Autoconf, under
|
||||
+dnl the same distribution terms as the rest of that program.
|
||||
+
|
||||
+dnl From Paul Eggert.
|
||||
+
|
||||
+AC_PREREQ(2.13)
|
||||
+
|
||||
+# Define uintmax_t to `unsigned long' or `unsigned long long'
|
||||
+# if <inttypes.h> does not exist.
|
||||
+
|
||||
+AC_DEFUN([jm_AC_TYPE_UINTMAX_T],
|
||||
+[
|
||||
+ AC_REQUIRE([jm_AC_HEADER_INTTYPES_H])
|
||||
+ AC_REQUIRE([jm_AC_HEADER_STDINT_H])
|
||||
+ if test $jm_ac_cv_header_inttypes_h = no && test $jm_ac_cv_header_stdint_h = no; then
|
||||
+ AC_REQUIRE([jm_AC_TYPE_UNSIGNED_LONG_LONG])
|
||||
+ test $ac_cv_type_unsigned_long_long = yes \
|
||||
+ && ac_type='unsigned long long' \
|
||||
+ || ac_type='unsigned long'
|
||||
+ AC_DEFINE_UNQUOTED(uintmax_t, $ac_type,
|
||||
+ [Define to unsigned long or unsigned long long
|
||||
+ if <inttypes.h> and <stdint.h> don't define.])
|
||||
+ fi
|
||||
+])
|
||||
Index: bison-2.4.2/m4/glibc21.m4
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ bison-2.4.2/m4/glibc21.m4
|
||||
@@ -0,0 +1,32 @@
|
||||
+# glibc21.m4 serial 2 (fileutils-4.1.3, gettext-0.10.40)
|
||||
+dnl Copyright (C) 2000-2002 Free Software Foundation, Inc.
|
||||
+dnl This file is free software, distributed under the terms of the GNU
|
||||
+dnl General Public License. As a special exception to the GNU General
|
||||
+dnl Public License, this file may be distributed as part of a program
|
||||
+dnl that contains a configuration script generated by Autoconf, under
|
||||
+dnl the same distribution terms as the rest of that program.
|
||||
+
|
||||
+# Test for the GNU C Library, version 2.1 or newer.
|
||||
+# From Bruno Haible.
|
||||
+
|
||||
+AC_DEFUN([jm_GLIBC21],
|
||||
+ [
|
||||
+ AC_CACHE_CHECK(whether we are using the GNU C Library 2.1 or newer,
|
||||
+ ac_cv_gnu_library_2_1,
|
||||
+ [AC_EGREP_CPP([Lucky GNU user],
|
||||
+ [
|
||||
+#include <features.h>
|
||||
+#ifdef __GNU_LIBRARY__
|
||||
+ #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2)
|
||||
+ Lucky GNU user
|
||||
+ #endif
|
||||
+#endif
|
||||
+ ],
|
||||
+ ac_cv_gnu_library_2_1=yes,
|
||||
+ ac_cv_gnu_library_2_1=no)
|
||||
+ ]
|
||||
+ )
|
||||
+ AC_SUBST(GLIBC21)
|
||||
+ GLIBC21="$ac_cv_gnu_library_2_1"
|
||||
+ ]
|
||||
+)
|
||||
Index: bison-2.4.2/m4/stdint_h.m4
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ bison-2.4.2/m4/stdint_h.m4
|
||||
@@ -0,0 +1,28 @@
|
||||
+# stdint_h.m4 serial 2 (gettext-0.11.4)
|
||||
+dnl Copyright (C) 1997-2002 Free Software Foundation, Inc.
|
||||
+dnl This file is free software, distributed under the terms of the GNU
|
||||
+dnl General Public License. As a special exception to the GNU General
|
||||
+dnl Public License, this file may be distributed as part of a program
|
||||
+dnl that contains a configuration script generated by Autoconf, under
|
||||
+dnl the same distribution terms as the rest of that program.
|
||||
+
|
||||
+dnl From Paul Eggert.
|
||||
+
|
||||
+# Define HAVE_STDINT_H_WITH_UINTMAX if <stdint.h> exists,
|
||||
+# doesn't clash with <sys/types.h>, and declares uintmax_t.
|
||||
+
|
||||
+AC_DEFUN([jm_AC_HEADER_STDINT_H],
|
||||
+[
|
||||
+ AC_CACHE_CHECK([for stdint.h], jm_ac_cv_header_stdint_h,
|
||||
+ [AC_TRY_COMPILE(
|
||||
+ [#include <sys/types.h>
|
||||
+#include <stdint.h>],
|
||||
+ [uintmax_t i = (uintmax_t) -1;],
|
||||
+ jm_ac_cv_header_stdint_h=yes,
|
||||
+ jm_ac_cv_header_stdint_h=no)])
|
||||
+ if test $jm_ac_cv_header_stdint_h = yes; then
|
||||
+ AC_DEFINE_UNQUOTED(HAVE_STDINT_H_WITH_UINTMAX, 1,
|
||||
+[Define if <stdint.h> exists, doesn't clash with <sys/types.h>,
|
||||
+ and declares uintmax_t. ])
|
||||
+ fi
|
||||
+])
|
||||
Index: bison-2.4.2/m4/inttypes_h.m4
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ bison-2.4.2/m4/inttypes_h.m4
|
||||
@@ -0,0 +1,28 @@
|
||||
+# inttypes_h.m4 serial 4 (gettext-0.11.4)
|
||||
+dnl Copyright (C) 1997-2002 Free Software Foundation, Inc.
|
||||
+dnl This file is free software, distributed under the terms of the GNU
|
||||
+dnl General Public License. As a special exception to the GNU General
|
||||
+dnl Public License, this file may be distributed as part of a program
|
||||
+dnl that contains a configuration script generated by Autoconf, under
|
||||
+dnl the same distribution terms as the rest of that program.
|
||||
+
|
||||
+dnl From Paul Eggert.
|
||||
+
|
||||
+# Define HAVE_INTTYPES_H_WITH_UINTMAX if <inttypes.h> exists,
|
||||
+# doesn't clash with <sys/types.h>, and declares uintmax_t.
|
||||
+
|
||||
+AC_DEFUN([jm_AC_HEADER_INTTYPES_H],
|
||||
+[
|
||||
+ AC_CACHE_CHECK([for inttypes.h], jm_ac_cv_header_inttypes_h,
|
||||
+ [AC_TRY_COMPILE(
|
||||
+ [#include <sys/types.h>
|
||||
+#include <inttypes.h>],
|
||||
+ [uintmax_t i = (uintmax_t) -1;],
|
||||
+ jm_ac_cv_header_inttypes_h=yes,
|
||||
+ jm_ac_cv_header_inttypes_h=no)])
|
||||
+ if test $jm_ac_cv_header_inttypes_h = yes; then
|
||||
+ AC_DEFINE_UNQUOTED(HAVE_INTTYPES_H_WITH_UINTMAX, 1,
|
||||
+[Define if <inttypes.h> exists, doesn't clash with <sys/types.h>,
|
||||
+ and declares uintmax_t. ])
|
||||
+ fi
|
||||
+])
|
||||
Index: bison-2.4.2/m4/ulonglong.m4
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ bison-2.4.2/m4/ulonglong.m4
|
||||
@@ -0,0 +1,23 @@
|
||||
+# ulonglong.m4 serial 2 (fileutils-4.0.32, gettext-0.10.40)
|
||||
+dnl Copyright (C) 1999-2002 Free Software Foundation, Inc.
|
||||
+dnl This file is free software, distributed under the terms of the GNU
|
||||
+dnl General Public License. As a special exception to the GNU General
|
||||
+dnl Public License, this file may be distributed as part of a program
|
||||
+dnl that contains a configuration script generated by Autoconf, under
|
||||
+dnl the same distribution terms as the rest of that program.
|
||||
+
|
||||
+dnl From Paul Eggert.
|
||||
+
|
||||
+AC_DEFUN([jm_AC_TYPE_UNSIGNED_LONG_LONG],
|
||||
+[
|
||||
+ AC_CACHE_CHECK([for unsigned long long], ac_cv_type_unsigned_long_long,
|
||||
+ [AC_TRY_LINK([unsigned long long ull = 1; int i = 63;],
|
||||
+ [unsigned long long ullmax = (unsigned long long) -1;
|
||||
+ return ull << i | ull >> i | ullmax / ull | ullmax % ull;],
|
||||
+ ac_cv_type_unsigned_long_long=yes,
|
||||
+ ac_cv_type_unsigned_long_long=no)])
|
||||
+ if test $ac_cv_type_unsigned_long_long = yes; then
|
||||
+ AC_DEFINE(HAVE_UNSIGNED_LONG_LONG, 1,
|
||||
+ [Define if you have the unsigned long long type.])
|
||||
+ fi
|
||||
+])
|
||||
Index: bison-2.4.2/m4/codeset.m4
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ bison-2.4.2/m4/codeset.m4
|
||||
@@ -0,0 +1,23 @@
|
||||
+# codeset.m4 serial AM1 (gettext-0.10.40)
|
||||
+dnl Copyright (C) 2000-2002 Free Software Foundation, Inc.
|
||||
+dnl This file is free software, distributed under the terms of the GNU
|
||||
+dnl General Public License. As a special exception to the GNU General
|
||||
+dnl Public License, this file may be distributed as part of a program
|
||||
+dnl that contains a configuration script generated by Autoconf, under
|
||||
+dnl the same distribution terms as the rest of that program.
|
||||
+
|
||||
+dnl From Bruno Haible.
|
||||
+
|
||||
+AC_DEFUN([AM_LANGINFO_CODESET],
|
||||
+[
|
||||
+ AC_CACHE_CHECK([for nl_langinfo and CODESET], am_cv_langinfo_codeset,
|
||||
+ [AC_TRY_LINK([#include <langinfo.h>],
|
||||
+ [char* cs = nl_langinfo(CODESET);],
|
||||
+ am_cv_langinfo_codeset=yes,
|
||||
+ am_cv_langinfo_codeset=no)
|
||||
+ ])
|
||||
+ if test $am_cv_langinfo_codeset = yes; then
|
||||
+ AC_DEFINE(HAVE_LANGINFO_CODESET, 1,
|
||||
+ [Define if you have <langinfo.h> and nl_langinfo(CODESET).])
|
||||
+ fi
|
||||
+])
|
||||
Index: bison-2.4.2/m4/intdiv0.m4
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ bison-2.4.2/m4/intdiv0.m4
|
||||
@@ -0,0 +1,72 @@
|
||||
+# intdiv0.m4 serial 1 (gettext-0.11.3)
|
||||
+dnl Copyright (C) 2002 Free Software Foundation, Inc.
|
||||
+dnl This file is free software, distributed under the terms of the GNU
|
||||
+dnl General Public License. As a special exception to the GNU General
|
||||
+dnl Public License, this file may be distributed as part of a program
|
||||
+dnl that contains a configuration script generated by Autoconf, under
|
||||
+dnl the same distribution terms as the rest of that program.
|
||||
+
|
||||
+dnl From Bruno Haible.
|
||||
+
|
||||
+AC_DEFUN([gt_INTDIV0],
|
||||
+[
|
||||
+ AC_REQUIRE([AC_PROG_CC])dnl
|
||||
+ AC_REQUIRE([AC_CANONICAL_HOST])dnl
|
||||
+
|
||||
+ AC_CACHE_CHECK([whether integer division by zero raises SIGFPE],
|
||||
+ gt_cv_int_divbyzero_sigfpe,
|
||||
+ [
|
||||
+ AC_TRY_RUN([
|
||||
+#include <stdlib.h>
|
||||
+#include <signal.h>
|
||||
+
|
||||
+static void
|
||||
+#ifdef __cplusplus
|
||||
+sigfpe_handler (int sig)
|
||||
+#else
|
||||
+sigfpe_handler (sig) int sig;
|
||||
+#endif
|
||||
+{
|
||||
+ /* Exit with code 0 if SIGFPE, with code 1 if any other signal. */
|
||||
+ exit (sig != SIGFPE);
|
||||
+}
|
||||
+
|
||||
+int x = 1;
|
||||
+int y = 0;
|
||||
+int z;
|
||||
+int nan;
|
||||
+
|
||||
+int main ()
|
||||
+{
|
||||
+ signal (SIGFPE, sigfpe_handler);
|
||||
+/* IRIX and AIX (when "xlc -qcheck" is used) yield signal SIGTRAP. */
|
||||
+#if (defined (__sgi) || defined (_AIX)) && defined (SIGTRAP)
|
||||
+ signal (SIGTRAP, sigfpe_handler);
|
||||
+#endif
|
||||
+/* Linux/SPARC yields signal SIGILL. */
|
||||
+#if defined (__sparc__) && defined (__linux__)
|
||||
+ signal (SIGILL, sigfpe_handler);
|
||||
+#endif
|
||||
+
|
||||
+ z = x / y;
|
||||
+ nan = y / y;
|
||||
+ exit (1);
|
||||
+}
|
||||
+], gt_cv_int_divbyzero_sigfpe=yes, gt_cv_int_divbyzero_sigfpe=no,
|
||||
+ [
|
||||
+ # Guess based on the CPU.
|
||||
+ case "$host_cpu" in
|
||||
+ alpha* | i[34567]86 | m68k | s390*)
|
||||
+ gt_cv_int_divbyzero_sigfpe="guessing yes";;
|
||||
+ *)
|
||||
+ gt_cv_int_divbyzero_sigfpe="guessing no";;
|
||||
+ esac
|
||||
+ ])
|
||||
+ ])
|
||||
+ case "$gt_cv_int_divbyzero_sigfpe" in
|
||||
+ *yes) value=1;;
|
||||
+ *) value=0;;
|
||||
+ esac
|
||||
+ AC_DEFINE_UNQUOTED(INTDIV0_RAISES_SIGFPE, $value,
|
||||
+ [Define if integer division by zero raises signal SIGFPE.])
|
||||
+])
|
||||
Index: bison-2.4.2/m4/glib.m4
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ bison-2.4.2/m4/glib.m4
|
||||
@@ -0,0 +1,196 @@
|
||||
+# Configure paths for GLIB
|
||||
+# Owen Taylor 97-11-3
|
||||
+
|
||||
+dnl AM_PATH_GLIB([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND [, MODULES]]]])
|
||||
+dnl Test for GLIB, and define GLIB_CFLAGS and GLIB_LIBS, if "gmodule" or
|
||||
+dnl gthread is specified in MODULES, pass to glib-config
|
||||
+dnl
|
||||
+AC_DEFUN(AM_PATH_GLIB,
|
||||
+[dnl
|
||||
+dnl Get the cflags and libraries from the glib-config script
|
||||
+dnl
|
||||
+AC_ARG_WITH(glib-prefix,[ --with-glib-prefix=PFX Prefix where GLIB is installed (optional)],
|
||||
+ glib_config_prefix="$withval", glib_config_prefix="")
|
||||
+AC_ARG_WITH(glib-exec-prefix,[ --with-glib-exec-prefix=PFX Exec prefix where GLIB is installed (optional)],
|
||||
+ glib_config_exec_prefix="$withval", glib_config_exec_prefix="")
|
||||
+AC_ARG_ENABLE(glibtest, [ --disable-glibtest Do not try to compile and run a test GLIB program],
|
||||
+ , enable_glibtest=yes)
|
||||
+
|
||||
+ if test x$glib_config_exec_prefix != x ; then
|
||||
+ glib_config_args="$glib_config_args --exec-prefix=$glib_config_exec_prefix"
|
||||
+ if test x${GLIB_CONFIG+set} != xset ; then
|
||||
+ GLIB_CONFIG=$glib_config_exec_prefix/bin/glib-config
|
||||
+ fi
|
||||
+ fi
|
||||
+ if test x$glib_config_prefix != x ; then
|
||||
+ glib_config_args="$glib_config_args --prefix=$glib_config_prefix"
|
||||
+ if test x${GLIB_CONFIG+set} != xset ; then
|
||||
+ GLIB_CONFIG=$glib_config_prefix/bin/glib-config
|
||||
+ fi
|
||||
+ fi
|
||||
+
|
||||
+ for module in . $4
|
||||
+ do
|
||||
+ case "$module" in
|
||||
+ gmodule)
|
||||
+ glib_config_args="$glib_config_args gmodule"
|
||||
+ ;;
|
||||
+ gthread)
|
||||
+ glib_config_args="$glib_config_args gthread"
|
||||
+ ;;
|
||||
+ esac
|
||||
+ done
|
||||
+
|
||||
+ AC_PATH_PROG(GLIB_CONFIG, glib-config, no)
|
||||
+ min_glib_version=ifelse([$1], ,0.99.7,$1)
|
||||
+ AC_MSG_CHECKING(for GLIB - version >= $min_glib_version)
|
||||
+ no_glib=""
|
||||
+ if test "$GLIB_CONFIG" = "no" ; then
|
||||
+ no_glib=yes
|
||||
+ else
|
||||
+ GLIB_CFLAGS=`$GLIB_CONFIG $glib_config_args --cflags`
|
||||
+ GLIB_LIBS=`$GLIB_CONFIG $glib_config_args --libs`
|
||||
+ glib_config_major_version=`$GLIB_CONFIG $glib_config_args --version | \
|
||||
+ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
|
||||
+ glib_config_minor_version=`$GLIB_CONFIG $glib_config_args --version | \
|
||||
+ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
|
||||
+ glib_config_micro_version=`$GLIB_CONFIG $glib_config_args --version | \
|
||||
+ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
|
||||
+ if test "x$enable_glibtest" = "xyes" ; then
|
||||
+ ac_save_CFLAGS="$CFLAGS"
|
||||
+ ac_save_LIBS="$LIBS"
|
||||
+ CFLAGS="$CFLAGS $GLIB_CFLAGS"
|
||||
+ LIBS="$GLIB_LIBS $LIBS"
|
||||
+dnl
|
||||
+dnl Now check if the installed GLIB is sufficiently new. (Also sanity
|
||||
+dnl checks the results of glib-config to some extent
|
||||
+dnl
|
||||
+ rm -f conf.glibtest
|
||||
+ AC_TRY_RUN([
|
||||
+#include <glib.h>
|
||||
+#include <stdio.h>
|
||||
+#include <stdlib.h>
|
||||
+
|
||||
+int
|
||||
+main ()
|
||||
+{
|
||||
+ int major, minor, micro;
|
||||
+ char *tmp_version;
|
||||
+
|
||||
+ system ("touch conf.glibtest");
|
||||
+
|
||||
+ /* HP/UX 9 (%@#!) writes to sscanf strings */
|
||||
+ tmp_version = g_strdup("$min_glib_version");
|
||||
+ if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) {
|
||||
+ printf("%s, bad version string\n", "$min_glib_version");
|
||||
+ exit(1);
|
||||
+ }
|
||||
+
|
||||
+ if ((glib_major_version != $glib_config_major_version) ||
|
||||
+ (glib_minor_version != $glib_config_minor_version) ||
|
||||
+ (glib_micro_version != $glib_config_micro_version))
|
||||
+ {
|
||||
+ printf("\n*** 'glib-config --version' returned %d.%d.%d, but GLIB (%d.%d.%d)\n",
|
||||
+ $glib_config_major_version, $glib_config_minor_version, $glib_config_micro_version,
|
||||
+ glib_major_version, glib_minor_version, glib_micro_version);
|
||||
+ printf ("*** was found! If glib-config was correct, then it is best\n");
|
||||
+ printf ("*** to remove the old version of GLIB. You may also be able to fix the error\n");
|
||||
+ printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n");
|
||||
+ printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n");
|
||||
+ printf("*** required on your system.\n");
|
||||
+ printf("*** If glib-config was wrong, set the environment variable GLIB_CONFIG\n");
|
||||
+ printf("*** to point to the correct copy of glib-config, and remove the file config.cache\n");
|
||||
+ printf("*** before re-running configure\n");
|
||||
+ }
|
||||
+ else if ((glib_major_version != GLIB_MAJOR_VERSION) ||
|
||||
+ (glib_minor_version != GLIB_MINOR_VERSION) ||
|
||||
+ (glib_micro_version != GLIB_MICRO_VERSION))
|
||||
+ {
|
||||
+ printf("*** GLIB header files (version %d.%d.%d) do not match\n",
|
||||
+ GLIB_MAJOR_VERSION, GLIB_MINOR_VERSION, GLIB_MICRO_VERSION);
|
||||
+ printf("*** library (version %d.%d.%d)\n",
|
||||
+ glib_major_version, glib_minor_version, glib_micro_version);
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ if ((glib_major_version > major) ||
|
||||
+ ((glib_major_version == major) && (glib_minor_version > minor)) ||
|
||||
+ ((glib_major_version == major) && (glib_minor_version == minor) && (glib_micro_version >= micro)))
|
||||
+ {
|
||||
+ return 0;
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ printf("\n*** An old version of GLIB (%d.%d.%d) was found.\n",
|
||||
+ glib_major_version, glib_minor_version, glib_micro_version);
|
||||
+ printf("*** You need a version of GLIB newer than %d.%d.%d. The latest version of\n",
|
||||
+ major, minor, micro);
|
||||
+ printf("*** GLIB is always available from ftp://ftp.gtk.org.\n");
|
||||
+ printf("***\n");
|
||||
+ printf("*** If you have already installed a sufficiently new version, this error\n");
|
||||
+ printf("*** probably means that the wrong copy of the glib-config shell script is\n");
|
||||
+ printf("*** being found. The easiest way to fix this is to remove the old version\n");
|
||||
+ printf("*** of GLIB, but you can also set the GLIB_CONFIG environment to point to the\n");
|
||||
+ printf("*** correct copy of glib-config. (In this case, you will have to\n");
|
||||
+ printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n");
|
||||
+ printf("*** so that the correct libraries are found at run-time))\n");
|
||||
+ }
|
||||
+ }
|
||||
+ return 1;
|
||||
+}
|
||||
+],, no_glib=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
|
||||
+ CFLAGS="$ac_save_CFLAGS"
|
||||
+ LIBS="$ac_save_LIBS"
|
||||
+ fi
|
||||
+ fi
|
||||
+ if test "x$no_glib" = x ; then
|
||||
+ AC_MSG_RESULT(yes)
|
||||
+ ifelse([$2], , :, [$2])
|
||||
+ else
|
||||
+ AC_MSG_RESULT(no)
|
||||
+ if test "$GLIB_CONFIG" = "no" ; then
|
||||
+ echo "*** The glib-config script installed by GLIB could not be found"
|
||||
+ echo "*** If GLIB was installed in PREFIX, make sure PREFIX/bin is in"
|
||||
+ echo "*** your path, or set the GLIB_CONFIG environment variable to the"
|
||||
+ echo "*** full path to glib-config."
|
||||
+ else
|
||||
+ if test -f conf.glibtest ; then
|
||||
+ :
|
||||
+ else
|
||||
+ echo "*** Could not run GLIB test program, checking why..."
|
||||
+ CFLAGS="$CFLAGS $GLIB_CFLAGS"
|
||||
+ LIBS="$LIBS $GLIB_LIBS"
|
||||
+ AC_TRY_LINK([
|
||||
+#include <glib.h>
|
||||
+#include <stdio.h>
|
||||
+], [ return ((glib_major_version) || (glib_minor_version) || (glib_micro_version)); ],
|
||||
+ [ echo "*** The test program compiled, but did not run. This usually means"
|
||||
+ echo "*** that the run-time linker is not finding GLIB or finding the wrong"
|
||||
+ echo "*** version of GLIB. If it is not finding GLIB, you'll need to set your"
|
||||
+ echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
|
||||
+ echo "*** to the installed location Also, make sure you have run ldconfig if that"
|
||||
+ echo "*** is required on your system"
|
||||
+ echo "***"
|
||||
+ echo "*** If you have an old version installed, it is best to remove it, although"
|
||||
+ echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"
|
||||
+ echo "***"
|
||||
+ echo "*** If you have a RedHat 5.0 system, you should remove the GTK package that"
|
||||
+ echo "*** came with the system with the command"
|
||||
+ echo "***"
|
||||
+ echo "*** rpm --erase --nodeps gtk gtk-devel" ],
|
||||
+ [ echo "*** The test program failed to compile or link. See the file config.log for the"
|
||||
+ echo "*** exact error that occured. This usually means GLIB was incorrectly installed"
|
||||
+ echo "*** or that you have moved GLIB since it was installed. In the latter case, you"
|
||||
+ echo "*** may want to edit the glib-config script: $GLIB_CONFIG" ])
|
||||
+ CFLAGS="$ac_save_CFLAGS"
|
||||
+ LIBS="$ac_save_LIBS"
|
||||
+ fi
|
||||
+ fi
|
||||
+ GLIB_CFLAGS=""
|
||||
+ GLIB_LIBS=""
|
||||
+ ifelse([$3], , :, [$3])
|
||||
+ fi
|
||||
+ AC_SUBST(GLIB_CFLAGS)
|
||||
+ AC_SUBST(GLIB_LIBS)
|
||||
+ rm -f conf.glibtest
|
||||
+])
|
||||
Index: bison-2.4.2/m4/isc-posix.m4
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ bison-2.4.2/m4/isc-posix.m4
|
||||
@@ -0,0 +1,26 @@
|
||||
+# isc-posix.m4 serial 2 (gettext-0.11.2)
|
||||
+dnl Copyright (C) 1995-2002 Free Software Foundation, Inc.
|
||||
+dnl This file is free software, distributed under the terms of the GNU
|
||||
+dnl General Public License. As a special exception to the GNU General
|
||||
+dnl Public License, this file may be distributed as part of a program
|
||||
+dnl that contains a configuration script generated by Autoconf, under
|
||||
+dnl the same distribution terms as the rest of that program.
|
||||
+
|
||||
+# This file is not needed with autoconf-2.53 and newer. Remove it in 2005.
|
||||
+
|
||||
+# This test replaces the one in autoconf.
|
||||
+# Currently this macro should have the same name as the autoconf macro
|
||||
+# because gettext's gettext.m4 (distributed in the automake package)
|
||||
+# still uses it. Otherwise, the use in gettext.m4 makes autoheader
|
||||
+# give these diagnostics:
|
||||
+# configure.in:556: AC_TRY_COMPILE was called before AC_ISC_POSIX
|
||||
+# configure.in:556: AC_TRY_RUN was called before AC_ISC_POSIX
|
||||
+
|
||||
+undefine([AC_ISC_POSIX])
|
||||
+
|
||||
+AC_DEFUN([AC_ISC_POSIX],
|
||||
+ [
|
||||
+ dnl This test replaces the obsolescent AC_ISC_POSIX kludge.
|
||||
+ AC_CHECK_LIB(cposix, strerror, [LIBS="$LIBS -lcposix"])
|
||||
+ ]
|
||||
+)
|
||||
@@ -0,0 +1,22 @@
|
||||
DESCRIPTION = "GNU Project parser generator (yacc replacement)."
|
||||
HOMEPAGE = "http://www.gnu.org/software/bison/"
|
||||
LICENSE = "GPL"
|
||||
SECTION = "devel"
|
||||
PRIORITY = "optional"
|
||||
DEPENDS = "gettext bison-native"
|
||||
|
||||
PR = "r0"
|
||||
|
||||
BASE_SRC_URI = "${GNU_MIRROR}/bison/bison-${PV}.tar.gz \
|
||||
file://m4.patch;patch=1"
|
||||
|
||||
SRC_URI = "${BASE_SRC_URI} \
|
||||
file://fix_cross_manpage_building.patch "
|
||||
|
||||
DEPENDS_virtclass-native = "gettext-native"
|
||||
SRC_URI_virtclass-native = "${BASE_SRC_URI}"
|
||||
|
||||
inherit autotools
|
||||
acpaths = "-I ${S}/m4"
|
||||
|
||||
BBCLASSEXTEND = "native"
|
||||
@@ -0,0 +1,228 @@
|
||||
Index: cdrtools-2.01/include/schily.h
|
||||
===================================================================
|
||||
--- cdrtools-2.01.orig/include/schily.h 2009-06-18 11:30:45.000000000 +0100
|
||||
+++ cdrtools-2.01/include/schily.h 2009-06-18 11:31:22.000000000 +0100
|
||||
@@ -108,7 +108,7 @@
|
||||
/* 6th arg not const, fexecv forces av[ac] = NULL */
|
||||
extern int fexecv __PR((const char *, FILE *, FILE *, FILE *, int,
|
||||
char **));
|
||||
-extern int fexecve __PR((const char *, FILE *, FILE *, FILE *,
|
||||
+extern int fexecve_schily __PR((const char *, FILE *, FILE *, FILE *,
|
||||
char * const *, char * const *));
|
||||
extern int fspawnv __PR((FILE *, FILE *, FILE *, int, char * const *));
|
||||
extern int fspawnl __PR((FILE *, FILE *, FILE *,
|
||||
@@ -187,7 +187,7 @@
|
||||
extern char *findbytes __PR((const void *, int, char));
|
||||
extern int findline __PR((const char *, char, const char *,
|
||||
int, char **, int));
|
||||
-extern int getline __PR((char *, int));
|
||||
+extern int getline_schily __PR((char *, int));
|
||||
extern int getstr __PR((char *, int));
|
||||
extern int breakline __PR((char *, char, char **, int));
|
||||
extern int getallargs __PR((int *, char * const**, const char *, ...));
|
||||
Index: cdrtools-2.01/libscg/scsitransp.c
|
||||
===================================================================
|
||||
--- cdrtools-2.01.orig/libscg/scsitransp.c 2009-06-18 11:33:57.000000000 +0100
|
||||
+++ cdrtools-2.01/libscg/scsitransp.c 2009-06-18 11:34:24.000000000 +0100
|
||||
@@ -323,7 +323,7 @@
|
||||
|
||||
js_printf("%s", msg);
|
||||
flush();
|
||||
- if (getline(okbuf, sizeof (okbuf)) == EOF)
|
||||
+ if (getline_schily(okbuf, sizeof (okbuf)) == EOF)
|
||||
exit(EX_BAD);
|
||||
if (streql(okbuf, "y") || streql(okbuf, "yes") ||
|
||||
streql(okbuf, "Y") || streql(okbuf, "YES"))
|
||||
Index: cdrtools-2.01/libschily/fexec.c
|
||||
===================================================================
|
||||
--- cdrtools-2.01.orig/libschily/fexec.c 2009-06-18 11:29:29.000000000 +0100
|
||||
+++ cdrtools-2.01/libschily/fexec.c 2009-06-18 11:30:36.000000000 +0100
|
||||
@@ -159,7 +159,7 @@
|
||||
} while (p != NULL);
|
||||
va_end(args);
|
||||
|
||||
- ret = fexecve(name, in, out, err, av, env);
|
||||
+ ret = fexecve_schily(name, in, out, err, av, env);
|
||||
if (av != xav)
|
||||
free(av);
|
||||
return (ret);
|
||||
@@ -173,11 +173,11 @@
|
||||
char *av[];
|
||||
{
|
||||
av[ac] = NULL; /* force list to be null terminated */
|
||||
- return (fexecve(name, in, out, err, av, environ));
|
||||
+ return (fexecve_schily(name, in, out, err, av, environ));
|
||||
}
|
||||
|
||||
EXPORT int
|
||||
-fexecve(name, in, out, err, av, env)
|
||||
+fexecve_schily(name, in, out, err, av, env)
|
||||
const char *name;
|
||||
FILE *in, *out, *err;
|
||||
char * const av[], * const env[];
|
||||
Index: cdrtools-2.01/libschily/stdio/fgetline.c
|
||||
===================================================================
|
||||
--- cdrtools-2.01.orig/libschily/stdio/fgetline.c 2009-06-18 11:28:14.000000000 +0100
|
||||
+++ cdrtools-2.01/libschily/stdio/fgetline.c 2009-06-18 11:28:55.000000000 +0100
|
||||
@@ -64,7 +64,7 @@
|
||||
}
|
||||
|
||||
EXPORT int
|
||||
-getline(buf, len)
|
||||
+getline_schily(buf, len)
|
||||
char *buf;
|
||||
int len;
|
||||
{
|
||||
Index: cdrtools-2.01/readcd/io.c
|
||||
===================================================================
|
||||
--- cdrtools-2.01.orig/readcd/io.c 2009-06-18 11:33:57.000000000 +0100
|
||||
+++ cdrtools-2.01/readcd/io.c 2009-06-18 11:34:38.000000000 +0100
|
||||
@@ -138,7 +138,7 @@
|
||||
(*prt)(s, *lp, mini, maxi, dp);
|
||||
flush();
|
||||
line[0] = '\0';
|
||||
- if (getline(line, 80) == EOF)
|
||||
+ if (getline_schily(line, 80) == EOF)
|
||||
exit(EX_BAD);
|
||||
|
||||
linep = skipwhite(line);
|
||||
@@ -205,7 +205,7 @@
|
||||
printf("%r", form, args);
|
||||
va_end(args);
|
||||
flush();
|
||||
- if (getline(okbuf, sizeof(okbuf)) == EOF)
|
||||
+ if (getline_schily(okbuf, sizeof(okbuf)) == EOF)
|
||||
exit(EX_BAD);
|
||||
if (okbuf[0] == '?') {
|
||||
printf("Enter 'y', 'Y', 'yes' or 'YES' if you agree with the previous asked question.\n");
|
||||
Index: cdrtools-2.01/readcd/readcd.c
|
||||
===================================================================
|
||||
--- cdrtools-2.01.orig/readcd/readcd.c 2009-06-18 11:33:58.000000000 +0100
|
||||
+++ cdrtools-2.01/readcd/readcd.c 2009-06-18 11:35:03.000000000 +0100
|
||||
@@ -1651,7 +1651,7 @@
|
||||
error("Copy from SCSI (%d,%d,%d) disk to file\n",
|
||||
scg_scsibus(scgp), scg_target(scgp), scg_lun(scgp));
|
||||
error("Enter filename [%s]: ", defname); flush();
|
||||
- (void) getline(filename, sizeof (filename));
|
||||
+ (void) getline_schily(filename, sizeof (filename));
|
||||
}
|
||||
|
||||
if (askrange) {
|
||||
@@ -1820,7 +1820,7 @@
|
||||
error("Copy from file to SCSI (%d,%d,%d) disk\n",
|
||||
scg_scsibus(scgp), scg_target(scgp), scg_lun(scgp));
|
||||
error("Enter filename [%s]: ", defname); flush();
|
||||
- (void) getline(filename, sizeof (filename));
|
||||
+ (void) getline_schily(filename, sizeof (filename));
|
||||
error("Notice: reading from file always starts at file offset 0.\n");
|
||||
|
||||
getlong("Enter starting sector for copy:", &addr, 0L, end-1);
|
||||
Index: cdrtools-2.01/scgcheck/dmaresid.c
|
||||
===================================================================
|
||||
--- cdrtools-2.01.orig/scgcheck/dmaresid.c 2009-06-18 11:33:59.000000000 +0100
|
||||
+++ cdrtools-2.01/scgcheck/dmaresid.c 2009-06-18 11:35:43.000000000 +0100
|
||||
@@ -64,7 +64,7 @@
|
||||
printf("Ready to start test for working DMA residual count? Enter <CR> to continue: ");
|
||||
fprintf(logfile, "**********> Testing for working DMA residual count.\n");
|
||||
flushit();
|
||||
- (void) getline(abuf, sizeof (abuf));
|
||||
+ (void) getline_schily(abuf, sizeof (abuf));
|
||||
|
||||
printf("**********> Testing for working DMA residual count == 0.\n");
|
||||
fprintf(logfile, "**********> Testing for working DMA residual count == 0.\n");
|
||||
@@ -95,7 +95,7 @@
|
||||
printf("Ready to start test for working DMA residual count == DMA count? Enter <CR> to continue: ");
|
||||
fprintf(logfile, "**********> Testing for working DMA residual count == DMA count.\n");
|
||||
flushit();
|
||||
- (void) getline(abuf, sizeof (abuf));
|
||||
+ (void) getline_schily(abuf, sizeof (abuf));
|
||||
passed = TRUE;
|
||||
dmacnt = cnt;
|
||||
ret = xtinquiry(scgp, 0, dmacnt);
|
||||
@@ -130,7 +130,7 @@
|
||||
printf("Ready to start test for working DMA residual count == 1? Enter <CR> to continue: ");
|
||||
fprintf(logfile, "**********> Testing for working DMA residual count == 1.\n");
|
||||
flushit();
|
||||
- (void) getline(abuf, sizeof (abuf));
|
||||
+ (void) getline_schily(abuf, sizeof (abuf));
|
||||
passed = TRUE;
|
||||
dmacnt = cnt+1;
|
||||
ret = xtinquiry(scgp, cnt, dmacnt);
|
||||
Index: cdrtools-2.01/scgcheck/scgcheck.c
|
||||
===================================================================
|
||||
--- cdrtools-2.01.orig/scgcheck/scgcheck.c 2009-06-18 11:33:59.000000000 +0100
|
||||
+++ cdrtools-2.01/scgcheck/scgcheck.c 2009-06-18 11:35:31.000000000 +0100
|
||||
@@ -189,7 +189,7 @@
|
||||
break;
|
||||
error("Enter SCSI device name for bus scanning [%s]: ", device);
|
||||
flushit();
|
||||
- (void) getline(device, sizeof (device));
|
||||
+ (void) getline_schily(device, sizeof (device));
|
||||
if (device[0] == '\0')
|
||||
strcpy(device, "0,6,0");
|
||||
|
||||
@@ -227,7 +227,7 @@
|
||||
do {
|
||||
error("Enter SCSI device name [%s]: ", device);
|
||||
flushit();
|
||||
- (void) getline(device, sizeof (device));
|
||||
+ (void) getline_schily(device, sizeof (device));
|
||||
if (device[0] == '\0')
|
||||
strcpy(device, "0,6,0");
|
||||
|
||||
@@ -256,7 +256,7 @@
|
||||
|
||||
printf("Ready to start test for second SCSI open? Enter <CR> to continue: ");
|
||||
flushit();
|
||||
- (void) getline(abuf, sizeof (abuf));
|
||||
+ (void) getline_schily(abuf, sizeof (abuf));
|
||||
#define CHECK_SECOND_OPEN
|
||||
#ifdef CHECK_SECOND_OPEN
|
||||
if (!streql(abuf, "n")) {
|
||||
@@ -344,7 +344,7 @@
|
||||
|
||||
printf("Ready to start test for succeeded command? Enter <CR> to continue: ");
|
||||
flushit();
|
||||
- (void) getline(abuf, sizeof (abuf));
|
||||
+ (void) getline_schily(abuf, sizeof (abuf));
|
||||
scgp->verbose++;
|
||||
ret = inquiry(scgp, buf, sizeof (struct scsi_inquiry));
|
||||
scg_vsetup(scgp);
|
||||
Index: cdrtools-2.01/scgcheck/sense.c
|
||||
===================================================================
|
||||
--- cdrtools-2.01.orig/scgcheck/sense.c 2009-06-18 11:33:58.000000000 +0100
|
||||
+++ cdrtools-2.01/scgcheck/sense.c 2009-06-18 11:35:54.000000000 +0100
|
||||
@@ -66,7 +66,7 @@
|
||||
printf("Ready to start test for failing command? Enter <CR> to continue: ");
|
||||
fprintf(logfile, "**********> Testing for failed SCSI command.\n");
|
||||
flushit();
|
||||
- (void)getline(abuf, sizeof(abuf));
|
||||
+ (void)getline_schily(abuf, sizeof(abuf));
|
||||
/* scgp->verbose++;*/
|
||||
fillbytes(buf, sizeof(struct scsi_inquiry), '\0');
|
||||
fillbytes((caddr_t)scgp->scmd, sizeof(*scgp->scmd), '\0');
|
||||
@@ -82,13 +82,13 @@
|
||||
printf("the test utility. Otherwise remove any medium from the drive.\n");
|
||||
printf("Ready to start test for failing command? Enter <CR> to continue: ");
|
||||
flushit();
|
||||
- (void)getline(abuf, sizeof(abuf));
|
||||
+ (void)getline_schily(abuf, sizeof(abuf));
|
||||
ret = test_unit_ready(scgp);
|
||||
if (ret >= 0 || !scg_cmd_err(scgp)) {
|
||||
printf("Test Unit Ready did not fail.\n");
|
||||
printf("Ready to eject tray? Enter <CR> to continue: ");
|
||||
flushit();
|
||||
- (void)getline(abuf, sizeof(abuf));
|
||||
+ (void)getline_schily(abuf, sizeof(abuf));
|
||||
scsi_unload(scgp, (cdr_t *)0);
|
||||
ret = test_unit_ready(scgp);
|
||||
}
|
||||
@@ -127,7 +127,7 @@
|
||||
printf("Ready to start test for sense data count? Enter <CR> to continue: ");
|
||||
fprintf(logfile, "**********> Testing for SCSI sense data count.\n");
|
||||
flushit();
|
||||
- (void)getline(abuf, sizeof(abuf));
|
||||
+ (void)getline_schily(abuf, sizeof(abuf));
|
||||
printf("Testing if at least CCS_SENSE_LEN (%d) is supported...\n", CCS_SENSE_LEN);
|
||||
fprintf(logfile, "**********> Testing if at least CCS_SENSE_LEN (%d) is supported...\n", CCS_SENSE_LEN);
|
||||
ret = sensecount(scgp, CCS_SENSE_LEN);
|
||||
@@ -0,0 +1,26 @@
|
||||
Index: cdrtools-2.01/DEFAULTS/Defaults.gnu
|
||||
===================================================================
|
||||
--- cdrtools-2.01.orig/DEFAULTS/Defaults.gnu 2008-09-22 12:42:12.000000000 +0100
|
||||
+++ cdrtools-2.01/DEFAULTS/Defaults.gnu 2008-09-22 12:42:27.000000000 +0100
|
||||
@@ -18,7 +18,7 @@
|
||||
###########################################################################
|
||||
CWARNOPTS=
|
||||
|
||||
-DEFINCDIRS= $(SRCROOT)/include /usr/src/linux/include
|
||||
+DEFINCDIRS= $(SRCROOT)/include
|
||||
LDPATH= -L/opt/schily/lib
|
||||
RUNPATH= -R $(INS_BASE)/lib -R /opt/schily/lib -R $(OLIBSDIR)
|
||||
|
||||
Index: cdrtools-2.01/DEFAULTS/Defaults.linux
|
||||
===================================================================
|
||||
--- cdrtools-2.01.orig/DEFAULTS/Defaults.linux 2008-09-22 12:42:08.000000000 +0100
|
||||
+++ cdrtools-2.01/DEFAULTS/Defaults.linux 2008-09-22 12:42:37.000000000 +0100
|
||||
@@ -18,7 +18,7 @@
|
||||
###########################################################################
|
||||
CWARNOPTS=
|
||||
|
||||
-DEFINCDIRS= $(SRCROOT)/include /usr/src/linux/include
|
||||
+DEFINCDIRS= $(SRCROOT)/include
|
||||
LDPATH= -L/opt/schily/lib
|
||||
RUNPATH= -R $(INS_BASE)/lib -R /opt/schily/lib -R $(OLIBSDIR)
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
# cdrtools-native OE build file
|
||||
# Copyright (C) 2004-2006, Advanced Micro Devices, Inc. All Rights Reserved
|
||||
# Released under the MIT license (see packages/COPYING)
|
||||
|
||||
LICENSE="GPL"
|
||||
DESCRIPTION="A set of tools for CD recording, including cdrecord"
|
||||
HOMEPAGE="http://cdrecord.berlios.de/old/private/cdrecord.html"
|
||||
PR = "r2"
|
||||
|
||||
SRC_URI="ftp://ftp.berlios.de/pub/cdrecord/cdrtools-${PV}.tar.bz2 \
|
||||
file://no_usr_src.patch;patch=1 \
|
||||
file://glibc-conflict-rename.patch;patch=1"
|
||||
|
||||
inherit native
|
||||
|
||||
STAGE_TEMP="${WORKDIR}/image-temp"
|
||||
|
||||
do_install() {
|
||||
install -d ${STAGE_TEMP}
|
||||
make install INS_BASE=${STAGE_TEMP}
|
||||
|
||||
install -d ${D}${bindir}/
|
||||
install ${STAGE_TEMP}/bin/* ${D}${bindir}/
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
DESCRIPTION = "chrpath allows you to change the rpath (where the application \
|
||||
looks for libraries) in an application. It does not (yet) allow you to add an \
|
||||
rpath if there isn't one already."
|
||||
LICENSE = "GPL"
|
||||
PR = "r2"
|
||||
|
||||
SRC_URI = "${DEBIAN_MIRROR}/main/c/chrpath/chrpath_${PV}.orig.tar.gz"
|
||||
|
||||
inherit autotools
|
||||
|
||||
S = "${WORKDIR}/chrpath-${PV}"
|
||||
|
||||
# We don't have a staged chrpath-native for ensuring our binary is relocatable
|
||||
# so must use the one we've just built
|
||||
CHRPATH_BIN_virtclass-native = "${S}/chrpath"
|
||||
|
||||
BBCLASSEXTEND = "native"
|
||||
@@ -0,0 +1,4 @@
|
||||
CMAKE_MAJOR_VERSION="2.8"
|
||||
require cmake.inc
|
||||
inherit native
|
||||
PR = "r0"
|
||||
@@ -0,0 +1,16 @@
|
||||
# Copyright (C) 2005, Koninklijke Philips Electronics NV. All Rights Reserved
|
||||
# Released under the MIT license (see packages/COPYING)
|
||||
|
||||
DESCRIPTION = "A cross-platform, open-source make system"
|
||||
HOMEPAGE = "http://www.cmake.org/"
|
||||
BUGTRACKER = "http://public.kitware.com/Bug/my_view_page.php"
|
||||
SECTION = "console/utils"
|
||||
LICENSE = "BSD"
|
||||
|
||||
SRC_URI = "http://www.cmake.org/files/v${CMAKE_MAJOR_VERSION}/cmake-${PV}.tar.gz"
|
||||
|
||||
inherit autotools
|
||||
|
||||
do_configure () {
|
||||
./configure --prefix=${prefix} || die "./bootstrap failed"
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
SECTION = "console/utils"
|
||||
HOMEPAGE = "http://www.freedesktop.org/wiki/Software/desktop-file-utils"
|
||||
DESCRIPTION = "command line utilities to work with *.desktop files"
|
||||
LICENSE = "GPL"
|
||||
|
||||
DEPENDS = "glib-2.0-native"
|
||||
|
||||
SRC_URI = "http://freedesktop.org/software/desktop-file-utils/releases/desktop-file-utils-${PV}.tar.gz"
|
||||
|
||||
inherit autotools native
|
||||
|
||||
S = "${WORKDIR}/desktop-file-utils-${PV}"
|
||||
@@ -0,0 +1,26 @@
|
||||
DESCRIPTION = "diffstat reads the output of diff and displays a histogram of \
|
||||
the insertions, deletions, and modifications per-file. It is useful for \
|
||||
reviewing large, complex patch files."
|
||||
HOMEPAGE = "http://invisible-island.net/diffstat/"
|
||||
PRIORITY = "optional"
|
||||
SECTION = "devel"
|
||||
DEPENDS = "gettext"
|
||||
|
||||
PR = "r0"
|
||||
|
||||
# NOTE: The upstream maintainer has a single 'diffstat.tar.gz' for the
|
||||
# latest version of the package. It could easily change out from under us.
|
||||
# I'd rather rely on debian, and possible have the sources vanish, than risk
|
||||
# the sources _changing_ underneith us. -CL
|
||||
SRC_URI = "${DEBIAN_MIRROR}/main/d/diffstat/diffstat_${PV}.orig.tar.gz \
|
||||
${DEBIAN_MIRROR}/main/d/diffstat/diffstat_${PV}-1.diff.gz;apply=yes"
|
||||
S = "${WORKDIR}/diffstat-${PV}"
|
||||
|
||||
inherit autotools
|
||||
|
||||
do_configure () {
|
||||
if [ ! -e acinclude.m4 ]; then
|
||||
mv aclocal.m4 acinclude.m4
|
||||
fi
|
||||
autotools_do_configure
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
DESCRIPTION = "distcc is a parallel build system that distributes \
|
||||
compilation of C/C++/ObjC code across machines on a network."
|
||||
SECTION = "devel"
|
||||
LICENSE = "GPLv2"
|
||||
PR = "r5"
|
||||
|
||||
DEPENDS = "avahi gtk+"
|
||||
RRECOMMENDS = "avahi-daemon"
|
||||
|
||||
# Upstream change this patch periodically so store locally
|
||||
# http://0pointer.de/public/distcc-avahi.patch
|
||||
SRC_URI = "http://distcc.samba.org/ftp/distcc/distcc-${PV}.tar.bz2 \
|
||||
file://distcc-avahi.patch;patch=1 \
|
||||
file://default \
|
||||
file://distccmon-gnome.desktop \
|
||||
file://distcc"
|
||||
|
||||
inherit autotools pkgconfig update-rc.d
|
||||
|
||||
INITSCRIPT_NAME = "distcc"
|
||||
|
||||
EXTRA_OECONF = " --with-gtk "
|
||||
|
||||
do_install_append() {
|
||||
install -d ${D}${sysconfdir}/init.d/
|
||||
install -d ${D}${sysconfdir}/default
|
||||
install -m 0755 ${WORKDIR}/distcc ${D}${sysconfdir}/init.d/
|
||||
install -m 0755 ${WORKDIR}/default ${D}${sysconfdir}/default/distcc
|
||||
install -m 0644 ${WORKDIR}/distccmon-gnome.desktop ${D}${datadir}/distcc/
|
||||
}
|
||||
|
||||
PACKAGES += "distcc-distmon-gnome"
|
||||
|
||||
FILES_${PN} = " ${sysconfdir} \
|
||||
${bindir}/distcc \
|
||||
${bindir}/distccd \
|
||||
${bindir}/distccmon-text"
|
||||
FILES_distcc-distmon-gnome = " ${bindir}/distccmon-gnome \
|
||||
${datadir}/distcc"
|
||||
|
||||
pkg_postinst_${PN} () {
|
||||
if test "x$D" != "x"; then
|
||||
exit 1
|
||||
else
|
||||
grep distcc /etc/passwd || adduser --system --home /dev/null --no-create-home --empty-password --ingroup nogroup distcc
|
||||
fi
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
# Defaults for distcc initscript
|
||||
# sourced by /etc/init.d/distcc
|
||||
|
||||
#
|
||||
# should distcc be started on boot?
|
||||
#
|
||||
# STARTDISTCC="true"
|
||||
|
||||
STARTDISTCC="true"
|
||||
|
||||
#
|
||||
# Which networks/hosts should be allowed to connect to the daemon?
|
||||
# You can list multiple hosts/networks separated by spaces.
|
||||
# Networks have to be in CIDR notation, f.e. 192.168.1.0/24
|
||||
# Hosts are represented by a single IP Adress
|
||||
#
|
||||
# ALLOWEDNETS="127.0.0.1"
|
||||
|
||||
ALLOWEDNETS="192.168.7.0/24"
|
||||
Executable
+106
@@ -0,0 +1,106 @@
|
||||
#!/bin/sh
|
||||
### BEGIN INIT INFO
|
||||
# Provides: distcc
|
||||
# Required-Start: $remote_fs $syslog
|
||||
# Required-Stop: $remote_fs $syslog
|
||||
# Default-Start: 2 3 4 5
|
||||
# Default-Stop: 1
|
||||
# Short-Description: simple distributed compiler client and server
|
||||
### END INIT INFO
|
||||
#
|
||||
# distccd Debian init.d script contributed by Jason Thomas. (Debian #161136)
|
||||
#
|
||||
# skeleton example file to build /etc/init.d/ scripts.
|
||||
# This file should be used to construct scripts for /etc/init.d.
|
||||
#
|
||||
# Written by Miquel van Smoorenburg <miquels@cistron.nl>.
|
||||
# Modified for Debian GNU/Linux
|
||||
# by Ian Murdock <imurdock@gnu.ai.mit.edu>.
|
||||
#
|
||||
# Version: @(#)skeleton 1.9.1 08-Apr-2002 miquels@cistron.nl
|
||||
#
|
||||
|
||||
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
|
||||
DAEMON=/usr/bin/distccd
|
||||
NAME=distcc
|
||||
DESC="Distributed Compiler Daemon"
|
||||
DAEMON_ARGS="--pid-file=/var/run/$NAME.pid --daemon"
|
||||
# please change those variables by overriding them in /etc/defaults/distcc
|
||||
ALLOWEDNETS="127.0.0.1"
|
||||
|
||||
# Reads config file (will override defaults above)
|
||||
[ -r /etc/default/distcc ] && . /etc/default/distcc
|
||||
|
||||
test -x $DAEMON || exit 0
|
||||
|
||||
set -e
|
||||
|
||||
# construct access list
|
||||
ALLOW=""
|
||||
for net in $ALLOWEDNETS
|
||||
do
|
||||
ALLOW="$ALLOW --allow $net"
|
||||
done
|
||||
|
||||
should_start() {
|
||||
if [ "$STARTDISTCC" != "true" ] && [ "$STARTDISTCC" != "YES" ]; then
|
||||
echo "STARTDISTCC is set to false in /etc/default/distcc"
|
||||
echo "$DAEMON not starting"
|
||||
exit 0
|
||||
fi
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
start)
|
||||
should_start
|
||||
echo -n "Starting $DESC: $NAME"
|
||||
start-stop-daemon --start --quiet --pidfile /var/run/$NAME.pid \
|
||||
--exec $DAEMON -- $DAEMON_ARGS $ALLOW ||
|
||||
{
|
||||
code=$?
|
||||
echo "$0: start failed with error code $code" >&2
|
||||
exit $code
|
||||
}
|
||||
echo "."
|
||||
;;
|
||||
stop)
|
||||
echo -n "Stopping $DESC: $NAME"
|
||||
start-stop-daemon --stop --quiet --pidfile /var/run/$NAME.pid \
|
||||
--exec $DAEMON ||
|
||||
{
|
||||
code=$?
|
||||
echo "$0: stop failed with error code $code" >&2
|
||||
exit $code
|
||||
}
|
||||
echo "."
|
||||
;;
|
||||
restart|force-reload)
|
||||
#
|
||||
# If the "reload" option is implemented, move the "force-reload"
|
||||
# option to the "reload" entry above. If not, "force-reload" is
|
||||
# just the same as "restart".
|
||||
#
|
||||
echo -n "Restarting $DESC: $NAME"
|
||||
start-stop-daemon --stop --quiet --pidfile /var/run/$NAME.pid \
|
||||
--exec $DAEMON
|
||||
sleep 1
|
||||
should_start
|
||||
start-stop-daemon --start --quiet --pidfile /var/run/$NAME.pid \
|
||||
--exec $DAEMON -- $DAEMON_ARGS $ALLOW ||
|
||||
{
|
||||
code=$?
|
||||
echo "$0: restart failed with error code $code" >&2
|
||||
exit $code
|
||||
}
|
||||
echo "."
|
||||
;;
|
||||
*)
|
||||
N=/etc/init.d/$NAME
|
||||
echo "Usage: $N {start|stop|restart|force-reload}" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
exit 0
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,12 @@
|
||||
[Desktop Entry]
|
||||
Version=0.9.4
|
||||
Exec=distccmon-gnome
|
||||
Name=distcc monitor
|
||||
GenericName=Distributed Compile Monitor
|
||||
Comment=Graphical view of distributed compile tasks
|
||||
Icon=distccmon-gnome-icon
|
||||
TryExec=distccmon-gnome
|
||||
Terminal=false
|
||||
Type=Application
|
||||
Categories=GNOME;Development;
|
||||
StartupNotify=true
|
||||
@@ -0,0 +1,19 @@
|
||||
# dosfstools-native OE build file
|
||||
# Copyright (C) 2004-2006, Advanced Micro Devices, Inc. All Rights Reserved
|
||||
# Released under the MIT license (see packages/COPYING)
|
||||
|
||||
require dosfstools_${PV}.bb
|
||||
|
||||
PR="r5"
|
||||
|
||||
SRC_URI = "ftp://ftp.uni-erlangen.de/pub/Linux/LOCAL/dosfstools/dosfstools-${PV}.src.tar.gz \
|
||||
file://mkdosfs-bootcode.patch;patch=1 \
|
||||
file://mkdosfs-dir.patch;patch=1 \
|
||||
file://alignment_hack.patch;patch=1 \
|
||||
file://dosfstools-2.10-kernel-2.6.patch;patch=1 \
|
||||
file://msdos_fat12_undefined.patch;patch=1 \
|
||||
file://dosfstools-msdos_fs-types.patch;patch=1 \
|
||||
file://include-linux-types.patch;patch=1 \
|
||||
file://2.6.20-syscall.patch;patch=1"
|
||||
|
||||
inherit native
|
||||
@@ -0,0 +1,65 @@
|
||||
Index: dosfstools-2.10/dosfsck/io.c
|
||||
===================================================================
|
||||
--- dosfstools-2.10.orig/dosfsck/io.c 2007-06-07 16:15:52.000000000 +0200
|
||||
+++ dosfstools-2.10/dosfsck/io.c 2007-06-07 16:16:06.000000000 +0200
|
||||
@@ -42,28 +42,11 @@
|
||||
/* Use the _llseek system call directly, because there (once?) was a bug in
|
||||
* the glibc implementation of it. */
|
||||
#include <linux/unistd.h>
|
||||
-#if defined __alpha || defined __ia64__ || defined __s390x__ || defined __x86_64__ || defined __ppc64__
|
||||
/* On alpha, the syscall is simply lseek, because it's a 64 bit system. */
|
||||
static loff_t llseek( int fd, loff_t offset, int whence )
|
||||
{
|
||||
return lseek(fd, offset, whence);
|
||||
}
|
||||
-#else
|
||||
-# ifndef __NR__llseek
|
||||
-# error _llseek system call not present
|
||||
-# endif
|
||||
-static _syscall5( int, _llseek, uint, fd, ulong, hi, ulong, lo,
|
||||
- loff_t *, res, uint, wh );
|
||||
-
|
||||
-static loff_t llseek( int fd, loff_t offset, int whence )
|
||||
-{
|
||||
- loff_t actual;
|
||||
-
|
||||
- if (_llseek(fd, offset>>32, offset&0xffffffff, &actual, whence) != 0)
|
||||
- return (loff_t)-1;
|
||||
- return actual;
|
||||
-}
|
||||
-#endif
|
||||
|
||||
|
||||
void fs_open(char *path,int rw)
|
||||
Index: dosfstools-2.10/mkdosfs/mkdosfs.c
|
||||
===================================================================
|
||||
--- dosfstools-2.10.orig/mkdosfs/mkdosfs.c 2007-06-07 16:15:11.000000000 +0200
|
||||
+++ dosfstools-2.10/mkdosfs/mkdosfs.c 2007-06-07 16:15:30.000000000 +0200
|
||||
@@ -116,27 +116,11 @@
|
||||
/* Use the _llseek system call directly, because there (once?) was a bug in
|
||||
* the glibc implementation of it. */
|
||||
#include <linux/unistd.h>
|
||||
-#if defined __alpha || defined __ia64__ || defined __s390x__ || defined __x86_64__ || defined __ppc64__
|
||||
/* On alpha, the syscall is simply lseek, because it's a 64 bit system. */
|
||||
static loff_t llseek( int fd, loff_t offset, int whence )
|
||||
{
|
||||
return lseek(fd, offset, whence);
|
||||
}
|
||||
-#else
|
||||
-# ifndef __NR__llseek
|
||||
-# error _llseek system call not present
|
||||
-# endif
|
||||
-static _syscall5( int, _llseek, uint, fd, ulong, hi, ulong, lo,
|
||||
- loff_t *, res, uint, wh );
|
||||
-static loff_t llseek( int fd, loff_t offset, int whence )
|
||||
-{
|
||||
- loff_t actual;
|
||||
-
|
||||
- if (_llseek(fd, offset>>32, offset&0xffffffff, &actual, whence) != 0)
|
||||
- return (loff_t)-1;
|
||||
- return actual;
|
||||
-}
|
||||
-#endif
|
||||
|
||||
#define ROUND_UP(value, divisor) (value + (divisor - (value % divisor))) / divisor
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
The problem is that unsigned char[2] is
|
||||
guranteed to be 8Bit aligned on arm
|
||||
but unsigned short is/needs to be 16bit aligned
|
||||
the union { unsigned short; unsigned char[2] } trick
|
||||
didn't work so no we use the alpha hack.
|
||||
|
||||
memcpy into an 16bit aligned
|
||||
|
||||
-zecke
|
||||
|
||||
|
||||
--- dosfstools/dosfsck/boot.c.orig 2003-05-15 19:32:23.000000000 +0200
|
||||
+++ dosfstools/dosfsck/boot.c 2003-06-13 17:44:25.000000000 +0200
|
||||
@@ -36,17 +36,15 @@
|
||||
{ 0xff, "5.25\" 320k floppy 2s/40tr/8sec" },
|
||||
};
|
||||
|
||||
-#if defined __alpha || defined __ia64__ || defined __s390x__ || defined __x86_64__ || defined __ppc64__
|
||||
+
|
||||
/* Unaligned fields must first be copied byte-wise */
|
||||
#define GET_UNALIGNED_W(f) \
|
||||
({ \
|
||||
unsigned short __v; \
|
||||
memcpy( &__v, &f, sizeof(__v) ); \
|
||||
- CF_LE_W( *(unsigned short *)&f ); \
|
||||
+ CF_LE_W( *(unsigned short *)&__v ); \
|
||||
})
|
||||
-#else
|
||||
-#define GET_UNALIGNED_W(f) CF_LE_W( *(unsigned short *)&f )
|
||||
-#endif
|
||||
+
|
||||
|
||||
|
||||
static char *get_media_descr( unsigned char media )
|
||||
@@ -0,0 +1,74 @@
|
||||
Submitted By: Jim Gifford (jim at linuxfromscratch dot org)
|
||||
Date: 2004-02-09
|
||||
Initial Package Version: 2.6
|
||||
Origin: Jim Gifford
|
||||
Upstream Status: Accepted
|
||||
Description: Fixes Compile Issues with the 2.6 Kernel
|
||||
|
||||
--- dosfstools-2.10/dosfsck/common.h.orig 2004-02-09 18:37:59.056737458 +0000
|
||||
+++ dosfstools-2.10/dosfsck/common.h 2004-02-09 18:38:18.333392952 +0000
|
||||
@@ -2,6 +2,13 @@
|
||||
|
||||
/* Written 1993 by Werner Almesberger */
|
||||
|
||||
+#include <linux/version.h>
|
||||
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 0)
|
||||
+ #define __KERNEL__
|
||||
+ #include <asm/types.h>
|
||||
+ #undef __KERNEL__
|
||||
+ #define MSDOS_FAT12 4084 /* maximum number of clusters in a 12 bit FAT */
|
||||
+#endif
|
||||
|
||||
#ifndef _COMMON_H
|
||||
#define _COMMON_H
|
||||
--- dosfstools-2.10/dosfsck/file.c.orig 2004-02-09 18:40:52.016728845 +0000
|
||||
+++ dosfstools-2.10/dosfsck/file.c 2004-02-09 18:40:03.665117865 +0000
|
||||
@@ -15,6 +15,14 @@
|
||||
#define _LINUX_STAT_H /* hack to avoid inclusion of <linux/stat.h> */
|
||||
#define _LINUX_STRING_H_ /* hack to avoid inclusion of <linux/string.h>*/
|
||||
#define _LINUX_FS_H /* hack to avoid inclusion of <linux/fs.h> */
|
||||
+
|
||||
+#include <linux/version.h>
|
||||
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 0)
|
||||
+ #define __KERNEL__
|
||||
+ #include <asm/types.h>
|
||||
+ #undef __KERNEL__
|
||||
+#endif
|
||||
+
|
||||
#include <linux/msdos_fs.h>
|
||||
|
||||
#include "common.h"
|
||||
--- dosfstools-2.10/dosfsck/dosfsck.h.orig 2004-02-09 18:57:11.022870974 +0000
|
||||
+++ dosfstools-2.10/dosfsck/dosfsck.h 2004-02-09 18:56:20.628614393 +0000
|
||||
@@ -13,6 +13,15 @@
|
||||
#define _LINUX_STAT_H /* hack to avoid inclusion of <linux/stat.h> */
|
||||
#define _LINUX_STRING_H_ /* hack to avoid inclusion of <linux/string.h>*/
|
||||
#define _LINUX_FS_H /* hack to avoid inclusion of <linux/fs.h> */
|
||||
+
|
||||
+#include <linux/version.h>
|
||||
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 0)
|
||||
+ #define __KERNEL__
|
||||
+ #include <asm/types.h>
|
||||
+ #include <asm/byteorder.h>
|
||||
+ #undef __KERNEL__
|
||||
+#endif
|
||||
+
|
||||
#include <linux/msdos_fs.h>
|
||||
|
||||
/* 2.1 kernels use le16_to_cpu() type functions for CF_LE_W & Co., but don't
|
||||
--- dosfstools-2.10/mkdosfs/mkdosfs.c.orig 2004-02-09 18:31:41.997157413 +0000
|
||||
+++ dosfstools-2.10/mkdosfs/mkdosfs.c 2004-02-09 18:34:07.311945252 +0000
|
||||
@@ -66,6 +66,13 @@
|
||||
#include <time.h>
|
||||
#include <errno.h>
|
||||
|
||||
+#include <linux/version.h>
|
||||
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 0)
|
||||
+ #define __KERNEL__
|
||||
+ #include <asm/types.h>
|
||||
+ #undef __KERNEL__
|
||||
+#endif
|
||||
+
|
||||
#if __BYTE_ORDER == __BIG_ENDIAN
|
||||
|
||||
#include <asm/byteorder.h>
|
||||
@@ -0,0 +1,30 @@
|
||||
--- dosfstools-2.10/dosfsck/dosfsck.h.org 2006-02-21 08:36:14.000000000 -0700
|
||||
+++ dosfstools-2.10/dosfsck/dosfsck.h 2006-02-21 08:40:12.000000000 -0700
|
||||
@@ -22,6 +22,14 @@
|
||||
#undef __KERNEL__
|
||||
#endif
|
||||
|
||||
+#ifndef __s8
|
||||
+#include <asm/types.h>
|
||||
+#endif
|
||||
+
|
||||
+#ifndef __ASM_STUB_BYTEORDER_H__
|
||||
+#include <asm/byteorder.h>
|
||||
+#endif
|
||||
+
|
||||
#include <linux/msdos_fs.h>
|
||||
|
||||
/* 2.1 kernels use le16_to_cpu() type functions for CF_LE_W & Co., but don't
|
||||
--- dosfstools-2.10/dosfsck/file.c.org 2006-02-21 08:37:36.000000000 -0700
|
||||
+++ dosfstools-2.10/dosfsck/file.c 2006-02-21 08:37:47.000000000 -0700
|
||||
@@ -23,6 +23,10 @@
|
||||
#undef __KERNEL__
|
||||
#endif
|
||||
|
||||
+#ifndef __s8
|
||||
+#include <asm/types.h>
|
||||
+#endif
|
||||
+
|
||||
#include <linux/msdos_fs.h>
|
||||
|
||||
#include "common.h"
|
||||
@@ -0,0 +1,17 @@
|
||||
mkdsofs is using types of the style __u8, which it gets with some
|
||||
versions of libc headers via linux/hdreg.h including asm/types.h.
|
||||
Newer version of fedora (at least) have a hdreg.h whichdoes not
|
||||
include asm/types.h. To work around this patch mkdosfs.c to explicity
|
||||
include linux/types.h which will in turn pull in asm/types.h which
|
||||
defines these variables.
|
||||
|
||||
--- dosfstools-2.10/mkdosfs/mkdosfs.c~ 2006-07-12 18:46:21.000000000 +1000
|
||||
+++ dosfstools-2.10/mkdosfs/mkdosfs.c 2006-07-12 18:46:21.000000000 +1000
|
||||
@@ -60,6 +60,7 @@
|
||||
#include "../version.h"
|
||||
|
||||
#include <fcntl.h>
|
||||
+#include <linux/types.h>
|
||||
#include <linux/hdreg.h>
|
||||
#include <linux/fs.h>
|
||||
#include <linux/fd.h>
|
||||
@@ -0,0 +1,240 @@
|
||||
diff -urN dosfstools-2.10.orig/mkdosfs/ChangeLog dosfstools-2.10/mkdosfs/ChangeLog
|
||||
--- dosfstools-2.10.orig/mkdosfs/ChangeLog 1997-06-18 03:09:38.000000000 -0700
|
||||
+++ dosfstools-2.10/mkdosfs/ChangeLog 2004-08-02 20:57:57.734939816 -0700
|
||||
@@ -1,3 +1,14 @@
|
||||
+19th June 2003 Sam Bingner (sam@bingner.com)
|
||||
+
|
||||
+ Added option to read in bootcode from a file so that if you have
|
||||
+ for example Windows 2000 boot code, you can have it write that
|
||||
+ as the bootcode. This is a dump of the behinning of a partition
|
||||
+ generally 512 bytes, but can be up to reserved sectors*512 bytes.
|
||||
+ Also writes 0x80 as the BIOS drive number if we are formatting a
|
||||
+ hard drive, and sets the number of hidden sectors to be the
|
||||
+ number of sectors in one track. These were required so that DOS
|
||||
+ could boot using the bootcode.
|
||||
+
|
||||
28th January 1995 H. Peter Anvin (hpa@yggdrasil.com)
|
||||
|
||||
Better algorithm to select cluster sizes on large filesystems.
|
||||
diff -urN dosfstools-2.10.orig/mkdosfs/mkdosfs.8 dosfstools-2.10/mkdosfs/mkdosfs.8
|
||||
--- dosfstools-2.10.orig/mkdosfs/mkdosfs.8 2003-05-15 11:28:28.000000000 -0700
|
||||
+++ dosfstools-2.10/mkdosfs/mkdosfs.8 2004-08-02 20:57:57.735939664 -0700
|
||||
@@ -40,6 +40,10 @@
|
||||
.I message-file
|
||||
]
|
||||
[
|
||||
+.B \-B
|
||||
+.I bootcode-file
|
||||
+]
|
||||
+[
|
||||
.B \-n
|
||||
.I volume-name
|
||||
]
|
||||
@@ -155,6 +159,18 @@
|
||||
carriage return-line feed combinations, and tabs have been expanded.
|
||||
If the filename is a hyphen (-), the text is taken from standard input.
|
||||
.TP
|
||||
+.BI \-B " bootcode-file"
|
||||
+Uses boot machine code from file "file". On any thing other than FAT32,
|
||||
+this only writes the first 3 bytes, and 480 bytes from offset 3Eh. On
|
||||
+FAT32, this writes the first 3 bytes, 420 bytes from offset 5Ah to both
|
||||
+primary and backup boot sectors. Also writes all other reserved sectors
|
||||
+excluding the sectors following boot sectors (usually sector 2 and 7).
|
||||
+Does not require that the input file be as large as reserved_sectors*512.
|
||||
+To make a FAT32 partition bootable, you will need at least the first
|
||||
+13 sectors (6656 bytes). You can also specify a partition as the argument
|
||||
+to clone the boot code from that partition.
|
||||
+i.e mkdosfs -B /dev/sda1 /dev/sda1
|
||||
+.TP
|
||||
.BI \-n " volume-name"
|
||||
Sets the volume name (label) of the filesystem. The volume name can
|
||||
be up to 11 characters long. The default is no label.
|
||||
@@ -188,8 +204,9 @@
|
||||
simply will not support it ;)
|
||||
.SH AUTHOR
|
||||
Dave Hudson - <dave@humbug.demon.co.uk>; modified by Peter Anvin
|
||||
-<hpa@yggdrasil.com>. Fixes and additions by Roman Hodek
|
||||
-<Roman.Hodek@informatik.uni-erlangen.de> for Debian/GNU Linux.
|
||||
+<hpa@yggdrasil.com> and Sam Bingner <sam@bingner.com>. Fixes and
|
||||
+additions by Roman Hodek <Roman.Hodek@informatik.uni-erlangen.de>
|
||||
+for Debian/GNU Linux.
|
||||
.SH ACKNOWLEDGEMENTS
|
||||
.B mkdosfs
|
||||
is based on code from
|
||||
diff -urN dosfstools-2.10.orig/mkdosfs/mkdosfs.c dosfstools-2.10/mkdosfs/mkdosfs.c
|
||||
--- dosfstools-2.10.orig/mkdosfs/mkdosfs.c 2003-06-14 13:07:08.000000000 -0700
|
||||
+++ dosfstools-2.10/mkdosfs/mkdosfs.c 2004-08-02 20:57:57.736939512 -0700
|
||||
@@ -24,6 +24,12 @@
|
||||
- New options -A, -S, -C
|
||||
- Support for filesystems > 2GB
|
||||
- FAT32 support
|
||||
+
|
||||
+ Fixes/additions June 2003 by Sam Bingner
|
||||
+ <sam@bingner.com>:
|
||||
+ - Add -B option to read in bootcode from a file
|
||||
+ - Write BIOS drive number so that FS can properly boot
|
||||
+ - Set number of hidden sectors before boot code to be one track
|
||||
|
||||
Copying: Copyright 1993, 1994 David Hudson (dave@humbug.demon.co.uk)
|
||||
|
||||
@@ -167,6 +173,8 @@
|
||||
#define FAT_BAD 0x0ffffff7
|
||||
|
||||
#define MSDOS_EXT_SIGN 0x29 /* extended boot sector signature */
|
||||
+#define HD_DRIVE_NUMBER 0x80 /* Boot off first hard drive */
|
||||
+#define FD_DRIVE_NUMBER 0x00 /* Boot off first floppy drive */
|
||||
#define MSDOS_FAT12_SIGN "FAT12 " /* FAT12 filesystem signature */
|
||||
#define MSDOS_FAT16_SIGN "FAT16 " /* FAT16 filesystem signature */
|
||||
#define MSDOS_FAT32_SIGN "FAT32 " /* FAT32 filesystem signature */
|
||||
@@ -188,6 +196,8 @@
|
||||
#define BOOTCODE_SIZE 448
|
||||
#define BOOTCODE_FAT32_SIZE 420
|
||||
|
||||
+#define MAX_RESERVED 0xFFFF
|
||||
+
|
||||
/* __attribute__ ((packed)) is used on all structures to make gcc ignore any
|
||||
* alignments */
|
||||
|
||||
@@ -215,7 +225,7 @@
|
||||
__u16 fat_length; /* sectors/FAT */
|
||||
__u16 secs_track; /* sectors per track */
|
||||
__u16 heads; /* number of heads */
|
||||
- __u32 hidden; /* hidden sectors (unused) */
|
||||
+ __u32 hidden; /* hidden sectors (one track) */
|
||||
__u32 total_sect; /* number of sectors (if sectors == 0) */
|
||||
union {
|
||||
struct {
|
||||
@@ -298,6 +308,8 @@
|
||||
|
||||
/* Global variables - the root of all evil :-) - see these and weep! */
|
||||
|
||||
+static char *template_boot_code; /* Variable to store a full template boot sector in */
|
||||
+static int use_template = 0;
|
||||
static char *program_name = "mkdosfs"; /* Name of the program */
|
||||
static char *device_name = NULL; /* Name of the device on which to create the filesystem */
|
||||
static int atari_format = 0; /* Use Atari variation of MS-DOS FS format */
|
||||
@@ -842,6 +854,12 @@
|
||||
vi->volume_id[2] = (unsigned char) ((volume_id & 0x00ff0000) >> 16);
|
||||
vi->volume_id[3] = (unsigned char) (volume_id >> 24);
|
||||
}
|
||||
+ if (bs.media == 0xf8) {
|
||||
+ vi->drive_number = HD_DRIVE_NUMBER; /* Set bios drive number to 80h */
|
||||
+ }
|
||||
+ else {
|
||||
+ vi->drive_number = FD_DRIVE_NUMBER; /* Set bios drive number to 00h */
|
||||
+ }
|
||||
|
||||
if (!atari_format) {
|
||||
memcpy(vi->volume_label, volume_name, 11);
|
||||
@@ -886,7 +904,7 @@
|
||||
printf( "Using %d reserved sectors\n", reserved_sectors );
|
||||
bs.fats = (char) nr_fats;
|
||||
if (!atari_format || size_fat == 32)
|
||||
- bs.hidden = CT_LE_L(0);
|
||||
+ bs.hidden = bs.secs_track;
|
||||
else
|
||||
/* In Atari format, hidden is a 16 bit field */
|
||||
memset( &bs.hidden, 0, 2 );
|
||||
@@ -1358,6 +1376,32 @@
|
||||
* dir area on FAT12/16, and the first cluster on FAT32. */
|
||||
writebuf( (char *) root_dir, size_root_dir, "root directory" );
|
||||
|
||||
+ if (use_template == 1) {
|
||||
+ /* dupe template into reserved sectors */
|
||||
+ seekto( 0, "Start of partition" );
|
||||
+ if (size_fat == 32) {
|
||||
+ writebuf( template_boot_code, 3, "backup jmpBoot" );
|
||||
+ seekto( 0x5a, "sector 1 boot area" );
|
||||
+ writebuf( template_boot_code+0x5a, 420, "sector 1 boot area" );
|
||||
+ seekto( 512*2, "third sector" );
|
||||
+ if (backup_boot != 0) {
|
||||
+ writebuf( template_boot_code+512*2, backup_boot*sector_size - 512*2, "data to backup boot" );
|
||||
+ seekto( backup_boot*sector_size, "backup boot sector" );
|
||||
+ writebuf( template_boot_code, 3, "backup jmpBoot" );
|
||||
+ seekto( backup_boot*sector_size+0x5a, "backup boot sector boot area" );
|
||||
+ writebuf( template_boot_code+0x5a, 420, "backup boot sector boot area" );
|
||||
+ seekto( (backup_boot+2)*sector_size, "sector following backup code" );
|
||||
+ writebuf( template_boot_code+(backup_boot+2)*sector_size, (reserved_sectors-backup_boot-2)*512, "remaining data" );
|
||||
+ } else {
|
||||
+ writebuf( template_boot_code+512*2, (reserved_sectors-2)*512, "remaining data" );
|
||||
+ }
|
||||
+ } else {
|
||||
+ writebuf( template_boot_code, 3, "jmpBoot" );
|
||||
+ seekto( 0x3e, "sector 1 boot area" );
|
||||
+ writebuf( template_boot_code+0x3e, 448, "boot code" );
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
if (info_sector) free( info_sector );
|
||||
free (root_dir); /* Free up the root directory space from setup_tables */
|
||||
free (fat); /* Free up the fat table space reserved during setup_tables */
|
||||
@@ -1371,7 +1415,7 @@
|
||||
{
|
||||
fatal_error("\
|
||||
Usage: mkdosfs [-A] [-c] [-C] [-v] [-I] [-l bad-block-file] [-b backup-boot-sector]\n\
|
||||
- [-m boot-msg-file] [-n volume-name] [-i volume-id]\n\
|
||||
+ [-m boot-msg-file] [-n volume-name] [-i volume-id] [-B bootcode]\n\
|
||||
[-s sectors-per-cluster] [-S logical-sector-size] [-f number-of-FATs]\n\
|
||||
[-F fat-size] [-r root-dir-entries] [-R reserved-sectors]\n\
|
||||
/dev/name [blocks]\n");
|
||||
@@ -1433,7 +1477,7 @@
|
||||
printf ("%s " VERSION " (" VERSION_DATE ")\n",
|
||||
program_name);
|
||||
|
||||
- while ((c = getopt (argc, argv, "AcCf:F:Ii:l:m:n:r:R:s:S:v")) != EOF)
|
||||
+ while ((c = getopt (argc, argv, "AcCf:F:Ii:l:m:n:r:R:s:S:v:B:b")) != EOF)
|
||||
/* Scan the command line for options */
|
||||
switch (c)
|
||||
{
|
||||
@@ -1494,6 +1538,51 @@
|
||||
listfile = optarg;
|
||||
break;
|
||||
|
||||
+ case 'B': /* B : read in bootcode */
|
||||
+ if ( strcmp(optarg, "-") )
|
||||
+ {
|
||||
+ msgfile = fopen(optarg, "r");
|
||||
+ if ( !msgfile )
|
||||
+ perror(optarg);
|
||||
+ }
|
||||
+ else
|
||||
+ msgfile = stdin;
|
||||
+
|
||||
+ if ( msgfile )
|
||||
+ {
|
||||
+ if (!(template_boot_code = malloc( MAX_RESERVED )))
|
||||
+ die( "Out of memory" );
|
||||
+ /* The template boot sector including reserved must not be > 65535 */
|
||||
+ use_template = 1;
|
||||
+ i = 0;
|
||||
+ do
|
||||
+ {
|
||||
+ ch = getc(msgfile);
|
||||
+ switch (ch)
|
||||
+ {
|
||||
+ case EOF:
|
||||
+ break;
|
||||
+
|
||||
+ default:
|
||||
+ template_boot_code[i++] = ch; /* Store character */
|
||||
+ break;
|
||||
+ }
|
||||
+ }
|
||||
+ while ( ch != EOF && i < MAX_RESERVED );
|
||||
+ ch = getc(msgfile); /* find out if we're at EOF */
|
||||
+
|
||||
+ /* Fill up with zeros */
|
||||
+ while( i < MAX_RESERVED )
|
||||
+ template_boot_code[i++] = '\0';
|
||||
+
|
||||
+ if ( ch != EOF )
|
||||
+ printf ("Warning: template too long; truncated after %d bytes\n", i);
|
||||
+
|
||||
+ if ( msgfile != stdin )
|
||||
+ fclose(msgfile);
|
||||
+ }
|
||||
+ break;
|
||||
+
|
||||
case 'm': /* m : Set boot message */
|
||||
if ( strcmp(optarg, "-") )
|
||||
{
|
||||
@@ -0,0 +1,634 @@
|
||||
diff -urN dosfstools-2.10.orig/mkdosfs/mkdosfs.c dosfstools-2.10/mkdosfs/mkdosfs.c
|
||||
--- dosfstools-2.10.orig/mkdosfs/mkdosfs.c 2004-08-02 20:48:45.000000000 -0700
|
||||
+++ dosfstools-2.10/mkdosfs/mkdosfs.c 2004-08-02 20:49:44.296953792 -0700
|
||||
@@ -18,6 +18,10 @@
|
||||
as a rule), and not the block. For example the boot block does not
|
||||
occupy a full cluster.
|
||||
|
||||
+ June 2004 - Jordan Crouse (info.linux@amd.com)
|
||||
+ Added -d <directory> support to populate the image
|
||||
+ Copyright (C) 2004, Advanced Micro Devices, All Rights Reserved
|
||||
+
|
||||
Fixes/additions May 1998 by Roman Hodek
|
||||
<Roman.Hodek@informatik.uni-erlangen.de>:
|
||||
- Atari format support
|
||||
@@ -71,6 +75,8 @@
|
||||
#include <unistd.h>
|
||||
#include <time.h>
|
||||
#include <errno.h>
|
||||
+#include <libgen.h>
|
||||
+#include <dirent.h>
|
||||
|
||||
#if __BYTE_ORDER == __BIG_ENDIAN
|
||||
|
||||
@@ -124,6 +130,8 @@
|
||||
}
|
||||
#endif
|
||||
|
||||
+#define ROUND_UP(value, divisor) (value + (divisor - (value % divisor))) / divisor
|
||||
+
|
||||
/* Constant definitions */
|
||||
|
||||
#define TRUE 1 /* Boolean constants */
|
||||
@@ -163,7 +171,6 @@
|
||||
#define ATTR_VOLUME 8 /* volume label */
|
||||
#define ATTR_DIR 16 /* directory */
|
||||
#define ATTR_ARCH 32 /* archived */
|
||||
-
|
||||
#define ATTR_NONE 0 /* no attribute bits */
|
||||
#define ATTR_UNUSED (ATTR_VOLUME | ATTR_ARCH | ATTR_SYS | ATTR_HIDDEN)
|
||||
/* attribute bits that are copied "as is" */
|
||||
@@ -258,6 +265,19 @@
|
||||
__u32 reserved2[4];
|
||||
};
|
||||
|
||||
+/* This stores up to 13 chars of the name */
|
||||
+
|
||||
+struct msdos_dir_slot {
|
||||
+ __u8 id; /* sequence number for slot */
|
||||
+ __u8 name0_4[10]; /* first 5 characters in name */
|
||||
+ __u8 attr; /* attribute byte */
|
||||
+ __u8 reserved; /* always 0 */
|
||||
+ __u8 alias_checksum; /* checksum for 8.3 alias */
|
||||
+ __u8 name5_10[12]; /* 6 more characters in name */
|
||||
+ __u16 start; /* starting cluster number, 0 in long slots */
|
||||
+ __u8 name11_12[4]; /* last 2 characters in name */
|
||||
+};
|
||||
+
|
||||
struct msdos_dir_entry
|
||||
{
|
||||
char name[8], ext[3]; /* name and extension */
|
||||
@@ -306,6 +326,15 @@
|
||||
|
||||
#define MESSAGE_OFFSET 29 /* Offset of message in above code */
|
||||
|
||||
+/* Special structure to keep track of directories as we add them for the -d option */
|
||||
+
|
||||
+struct dir_entry {
|
||||
+ int root; /* Specifies if this is the root dir or not */
|
||||
+ int count; /* Number of items in the table */
|
||||
+ int entries; /* Number of entries in the table */
|
||||
+ struct msdos_dir_entry *table; /* Pointer to the entry table */
|
||||
+};
|
||||
+
|
||||
/* Global variables - the root of all evil :-) - see these and weep! */
|
||||
|
||||
static char *template_boot_code; /* Variable to store a full template boot sector in */
|
||||
@@ -339,6 +368,9 @@
|
||||
static int size_root_dir; /* Size of the root directory in bytes */
|
||||
static int sectors_per_cluster = 0; /* Number of sectors per disk cluster */
|
||||
static int root_dir_entries = 0; /* Number of root directory entries */
|
||||
+static int root_dir_num_entries = 0;
|
||||
+static int last_cluster_written = 0;
|
||||
+
|
||||
static char *blank_sector; /* Blank sector - all zeros */
|
||||
|
||||
|
||||
@@ -411,7 +443,6 @@
|
||||
}
|
||||
}
|
||||
|
||||
-
|
||||
/* Mark a specified sector as having a particular value in it's FAT entry */
|
||||
|
||||
static void
|
||||
@@ -1262,6 +1293,9 @@
|
||||
die ("unable to allocate space for root directory in memory");
|
||||
}
|
||||
|
||||
+
|
||||
+ last_cluster_written = 2;
|
||||
+
|
||||
memset(root_dir, 0, size_root_dir);
|
||||
if ( memcmp(volume_name, " ", 11) )
|
||||
{
|
||||
@@ -1310,11 +1344,11 @@
|
||||
}
|
||||
|
||||
if (!(blank_sector = malloc( sector_size )))
|
||||
- die( "Out of memory" );
|
||||
+ die( "Out of memory" );
|
||||
+
|
||||
memset(blank_sector, 0, sector_size);
|
||||
}
|
||||
-
|
||||
-
|
||||
+
|
||||
/* Write the new filesystem's data tables to wherever they're going to end up! */
|
||||
|
||||
#define error(str) \
|
||||
@@ -1336,7 +1370,7 @@
|
||||
do { \
|
||||
int __size = (size); \
|
||||
if (write (dev, buf, __size) != __size) \
|
||||
- error ("failed whilst writing " errstr); \
|
||||
+ error ("failed whilst writing " errstr); \
|
||||
} while(0)
|
||||
|
||||
|
||||
@@ -1407,6 +1441,452 @@
|
||||
free (fat); /* Free up the fat table space reserved during setup_tables */
|
||||
}
|
||||
|
||||
+/* Add a file to the specified directory entry, and also write it into the image */
|
||||
+
|
||||
+static void copy_filename(char *filename, char *base, char *ext) {
|
||||
+
|
||||
+ char *ch = filename;
|
||||
+ int i, len;
|
||||
+
|
||||
+ memset(base, 0x20, 8);
|
||||
+ memset(ext, 0x20, 3);
|
||||
+
|
||||
+ for(len = 0 ; *ch && *ch != '.'; ch++) {
|
||||
+ base[len++] = toupper(*ch);
|
||||
+ if (len == 8) break;
|
||||
+ }
|
||||
+
|
||||
+ for ( ; *ch && *ch != '.'; ch++);
|
||||
+ if (*ch) ch++;
|
||||
+
|
||||
+ for(len = 0 ; *ch; ch++) {
|
||||
+ ext[len++] = toupper(*ch);
|
||||
+ if (len == 3) break;
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+/* Check for an .attrib.<filename> file, and read the attributes therein */
|
||||
+
|
||||
+/* We are going to be pretty pedantic about this. The file needs 3
|
||||
+ bytes at the beginning, the attributes are listed in this order:
|
||||
+
|
||||
+ (H)idden|(S)ystem|(A)rchived
|
||||
+
|
||||
+ A capital HSA means to enable it, anything else will disable it
|
||||
+ (I recommend a '-') The unix user attributes will still be used
|
||||
+ for write access.
|
||||
+
|
||||
+ For example, to enable system file access for ldlinux.sys, write
|
||||
+ the following to .attrib.ldlinux.sys: -S-
|
||||
+*/
|
||||
+
|
||||
+unsigned char check_attrib_file(char *dir, char *filename) {
|
||||
+
|
||||
+ char attrib[4] = { '-', '-', '-' };
|
||||
+ unsigned char *buffer = 0;
|
||||
+ int ret = ATTR_NONE;
|
||||
+ int fd = -1;
|
||||
+
|
||||
+ buffer = (char *) calloc(1, strlen(dir) + strlen(filename) + 10);
|
||||
+ if (!buffer) return ATTR_NONE;
|
||||
+
|
||||
+ sprintf(buffer, "%s/.attrib.%s", dir, filename);
|
||||
+
|
||||
+ if (access(buffer, R_OK))
|
||||
+ goto exit_attrib;
|
||||
+
|
||||
+ if ((fd = open(buffer, O_RDONLY, 0)) < 0)
|
||||
+ goto exit_attrib;
|
||||
+
|
||||
+ if (read(fd, attrib, 3) < 0)
|
||||
+ goto exit_attrib;
|
||||
+
|
||||
+ if (attrib[0] == 'H') ret |= ATTR_HIDDEN;
|
||||
+ if (attrib[1] == 'S') ret |= ATTR_SYS;
|
||||
+ if (attrib[2] == 'A') ret |= ATTR_ARCH;
|
||||
+
|
||||
+ printf("%s: Setting atrribute %x\n", filename, ret);
|
||||
+
|
||||
+ exit_attrib:
|
||||
+ if (fd >= 0) close(fd);
|
||||
+ if (buffer) free(buffer);
|
||||
+
|
||||
+ return ret;
|
||||
+}
|
||||
+
|
||||
+static void copy_name(char *buffer, int size, char **pointer) {
|
||||
+ int i;
|
||||
+
|
||||
+ for(i = 0; i < size; i += 2) {
|
||||
+ if (*pointer) {
|
||||
+ buffer[i] = **pointer;
|
||||
+ buffer[i + 1] = 0x00;
|
||||
+ *pointer = **pointer ? *pointer + 1 : 0;
|
||||
+ }
|
||||
+ else {
|
||||
+ buffer[i] = 0xFF;
|
||||
+ buffer[i + 1] = 0xFF;
|
||||
+ }
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+static int add_file(char *filename, struct dir_entry *dir, unsigned char attr)
|
||||
+{
|
||||
+ struct stat stat;
|
||||
+ struct msdos_dir_entry *entry;
|
||||
+ int infile = 0;
|
||||
+ int sectors, clusters;
|
||||
+ struct tm *ctime;
|
||||
+ int c, s;
|
||||
+ int ptr;
|
||||
+ char *buffer, *base;
|
||||
+ int start;
|
||||
+ int usedsec, totalsec;
|
||||
+
|
||||
+ char name83[8], ext83[3];
|
||||
+
|
||||
+ struct msdos_dir_slot *slot;
|
||||
+ int i;
|
||||
+ char *p;
|
||||
+
|
||||
+ /* The root directory is static, everything else grows as needed */
|
||||
+
|
||||
+ if (dir->root) {
|
||||
+ if (dir->count == dir->entries) {
|
||||
+ printf("Error - too many directory entries\n");
|
||||
+ }
|
||||
+ }
|
||||
+ else {
|
||||
+ if (dir->count == dir->entries) {
|
||||
+ if (!dir->table)
|
||||
+ dir->table =
|
||||
+ (struct msdos_dir_entry *) malloc(sizeof(struct msdos_dir_entry));
|
||||
+ else {
|
||||
+ dir->table =
|
||||
+ (struct msdos_dir_entry *) realloc(dir->table, (dir->entries + 1) *
|
||||
+ sizeof(struct msdos_dir_entry));
|
||||
+
|
||||
+ memset(&dir->table[dir->entries], 0, sizeof(struct msdos_dir_entry));
|
||||
+ }
|
||||
+
|
||||
+ dir->entries++;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ infile = open(filename, O_RDONLY, 0);
|
||||
+ if (!infile) return;
|
||||
+
|
||||
+ if (fstat(infile, &stat))
|
||||
+ goto exit_add;
|
||||
+
|
||||
+ if (S_ISCHR(stat.st_mode) ||S_ISBLK(stat.st_mode) ||
|
||||
+ S_ISFIFO(stat.st_mode) || S_ISLNK(stat.st_mode)) {
|
||||
+ printf("Error - cannot create a special file in a FATFS\n");
|
||||
+ goto exit_add;
|
||||
+ }
|
||||
+
|
||||
+ /* FIXME: This isn't very pretty */
|
||||
+
|
||||
+ usedsec = start_data_sector + (size_root_dir / sector_size) +
|
||||
+ (last_cluster_written * bs.cluster_size);
|
||||
+
|
||||
+ totalsec = blocks * BLOCK_SIZE / sector_size;
|
||||
+
|
||||
+ /* Figure out how many sectors / clustors the file requires */
|
||||
+
|
||||
+ sectors = ROUND_UP(stat.st_size, sector_size);
|
||||
+ clusters = ROUND_UP(sectors, (int) bs.cluster_size);
|
||||
+
|
||||
+ if (usedsec + sectors > totalsec) {
|
||||
+ printf("Error - %s is too big (%d vs %d)\n", filename, sectors, totalsec - usedsec);
|
||||
+ close(infile);
|
||||
+ return -1;
|
||||
+ }
|
||||
+
|
||||
+ printf("ADD %s\n", filename);
|
||||
+
|
||||
+ /* Grab the basename of the file */
|
||||
+ base = basename(filename);
|
||||
+
|
||||
+ /* Extract out the 8.3 name */
|
||||
+ copy_filename(base, name83, ext83);
|
||||
+
|
||||
+ /* Make an extended name slot */
|
||||
+
|
||||
+ slot = (struct msdos_dir_slot *) &dir->table[dir->count++];
|
||||
+ slot->id = 'A';
|
||||
+ slot->attr = 0x0F;
|
||||
+ slot->reserved = 0;
|
||||
+ slot->start = 0;
|
||||
+
|
||||
+ slot->alias_checksum = 0;
|
||||
+
|
||||
+ for(i = 0; i < 8; i++)
|
||||
+ slot->alias_checksum = (((slot->alias_checksum&1)<<7)|((slot->alias_checksum&0xfe)>>1)) + name83[i];
|
||||
+
|
||||
+ for(i = 0; i < 3; i++)
|
||||
+ slot->alias_checksum = (((slot->alias_checksum&1)<<7)|((slot->alias_checksum&0xfe)>>1)) + ext83[i];
|
||||
+
|
||||
+ p = base;
|
||||
+
|
||||
+ copy_name(slot->name0_4, 10, &p);
|
||||
+ copy_name(slot->name5_10, 12, &p);
|
||||
+ copy_name(slot->name11_12, 4, &p);
|
||||
+
|
||||
+
|
||||
+ /* Get the entry from the root filesytem */
|
||||
+ entry = &dir->table[dir->count++];
|
||||
+
|
||||
+ strncpy(entry->name, name83, 8);
|
||||
+ strncpy(entry->ext, ext83, 3);
|
||||
+
|
||||
+
|
||||
+ /* If the user has it read only, then add read only to the incoming
|
||||
+ attribute settings */
|
||||
+
|
||||
+ if (!(stat.st_mode & S_IWUSR)) attr |= ATTR_RO;
|
||||
+ entry->attr = attr;
|
||||
+
|
||||
+ /* Set the access time on the file */
|
||||
+ ctime = localtime(&create_time);
|
||||
+
|
||||
+ entry->time = CT_LE_W((unsigned short)((ctime->tm_sec >> 1) +
|
||||
+ (ctime->tm_min << 5) + (ctime->tm_hour << 11)));
|
||||
+
|
||||
+ entry->date = CT_LE_W((unsigned short)(ctime->tm_mday +
|
||||
+ ((ctime->tm_mon+1) << 5) +
|
||||
+ ((ctime->tm_year-80) << 9)));
|
||||
+
|
||||
+ entry->ctime_ms = 0;
|
||||
+ entry->ctime = entry->time;
|
||||
+ entry->cdate = entry->date;
|
||||
+ entry->adate = entry->date;
|
||||
+ entry->size = stat.st_size;
|
||||
+
|
||||
+ start = last_cluster_written;
|
||||
+
|
||||
+ entry->start = CT_LE_W(start); /* start sector */
|
||||
+ entry->starthi = CT_LE_W((start & 0xFFFF0000) >> 16); /* High start sector (for FAT32) */
|
||||
+
|
||||
+ /* We mark all of the clusters we use in the FAT */
|
||||
+
|
||||
+ for(c = 0; c < clusters; c++ ) {
|
||||
+ int free;
|
||||
+ int next = c == (clusters - 1) ? FAT_EOF : start + c + 1;
|
||||
+ mark_FAT_cluster(start + c, next);
|
||||
+ last_cluster_written++;
|
||||
+ }
|
||||
+
|
||||
+ /* This confused me too - cluster 2 starts after the
|
||||
+ root directory data - search me as to why */
|
||||
+
|
||||
+ ptr = (start_data_sector * sector_size) + size_root_dir;
|
||||
+ ptr += (start - 2) * bs.cluster_size * sector_size;
|
||||
+
|
||||
+ buffer = (char *) malloc(sector_size);
|
||||
+
|
||||
+ if (!buffer) {
|
||||
+ printf("Error - couldn't allocate memory\n");
|
||||
+ goto exit_add;
|
||||
+ }
|
||||
+
|
||||
+ /* Write the file into the file block */
|
||||
+
|
||||
+ seekto(ptr, "datafile");
|
||||
+
|
||||
+ while(1) {
|
||||
+ int size = read(infile, buffer, sector_size);
|
||||
+ if (size <= 0) break;
|
||||
+
|
||||
+ writebuf(buffer, size, "data");
|
||||
+ }
|
||||
+
|
||||
+ exit_add:
|
||||
+ if (infile) close(infile);
|
||||
+}
|
||||
+
|
||||
+/* Add a new directory to the specified directory entry, and in turn populate
|
||||
+ it with its own files */
|
||||
+
|
||||
+/* FIXME: This should check to make sure there is enough size to add itself */
|
||||
+
|
||||
+static void add_directory(char *filename, struct dir_entry *dir) {
|
||||
+
|
||||
+ struct dir_entry *newdir = 0;
|
||||
+ struct msdos_dir_entry *entry;
|
||||
+ struct tm *ctime;
|
||||
+ DIR *rddir = opendir(filename);
|
||||
+ struct dirent *dentry = 0;
|
||||
+ int remain;
|
||||
+ char *data;
|
||||
+
|
||||
+ /* If the directory doesn't exist */
|
||||
+ if (!rddir) return;
|
||||
+
|
||||
+ if (dir->root) {
|
||||
+ if (dir->count == dir->entries) {
|
||||
+ printf("Error - too many directory entries\n");
|
||||
+ goto exit_add_dir;
|
||||
+ }
|
||||
+ }
|
||||
+ else {
|
||||
+ if (dir->count == dir->entries) {
|
||||
+ if (!dir->table)
|
||||
+ dir->table = (struct msdos_dir_entry *) malloc(sizeof(struct msdos_dir_entry));
|
||||
+ else {
|
||||
+ dir->table = (struct msdos_dir_entry *) realloc(dir->table, (dir->entries + 1) *
|
||||
+ sizeof(struct msdos_dir_entry));
|
||||
+
|
||||
+ /* Zero it out to avoid issues */
|
||||
+ memset(&dir->table[dir->entries], 0, sizeof(struct msdos_dir_entry));
|
||||
+ }
|
||||
+ dir->entries++;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ /* Now, create a new directory entry for the new directory */
|
||||
+ newdir = (struct dir_entry *) calloc(1, sizeof(struct dir_entry));
|
||||
+ if (!newdir) goto exit_add_dir;
|
||||
+
|
||||
+ entry = &dir->table[dir->count++];
|
||||
+
|
||||
+ strncpy(entry->name, basename(filename), sizeof(entry->name));
|
||||
+
|
||||
+ entry->attr = ATTR_DIR;
|
||||
+ ctime = localtime(&create_time);
|
||||
+
|
||||
+ entry->time = CT_LE_W((unsigned short)((ctime->tm_sec >> 1) +
|
||||
+ (ctime->tm_min << 5) + (ctime->tm_hour << 11)));
|
||||
+
|
||||
+ entry->date = CT_LE_W((unsigned short)(ctime->tm_mday +
|
||||
+ ((ctime->tm_mon+1) << 5) +
|
||||
+ ((ctime->tm_year-80) << 9)));
|
||||
+
|
||||
+ entry->ctime_ms = 0;
|
||||
+ entry->ctime = entry->time;
|
||||
+ entry->cdate = entry->date;
|
||||
+ entry->adate = entry->date;
|
||||
+
|
||||
+ /* Now, read the directory */
|
||||
+
|
||||
+ while((dentry = readdir(rddir))) {
|
||||
+ struct stat st;
|
||||
+ char *buffer;
|
||||
+
|
||||
+ if (!strcmp(dentry->d_name, ".") || !strcmp(dentry->d_name, ".."))
|
||||
+ continue;
|
||||
+
|
||||
+ /* DOS wouldn't like a typical unix . (dot) file, so we skip those too */
|
||||
+ if (dentry->d_name[0] == '.') continue;
|
||||
+
|
||||
+ buffer = malloc(strlen(filename) + strlen(dentry->d_name) + 3);
|
||||
+ if (!buffer) continue;
|
||||
+
|
||||
+ sprintf(buffer, "%s/%s", filename, dentry->d_name);
|
||||
+ if (!stat(buffer, &st)) {
|
||||
+ if (S_ISDIR(st.st_mode))
|
||||
+ add_directory(buffer, newdir);
|
||||
+ else if (S_ISREG(st.st_mode)) {
|
||||
+ unsigned char attrib = check_attrib_file(filename, dentry->d_name);
|
||||
+ add_file(buffer, newdir, attrib);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ free(buffer);
|
||||
+ }
|
||||
+
|
||||
+ /* Now that the entire directory has been written, go ahead and write the directory
|
||||
+ entry as well */
|
||||
+
|
||||
+ entry->start = CT_LE_W(last_cluster_written);
|
||||
+ entry->starthi = CT_LE_W((last_cluster_written & 0xFFFF0000) >> 16);
|
||||
+ entry->size = newdir->count * sizeof(struct msdos_dir_entry);
|
||||
+
|
||||
+ remain = entry->size;
|
||||
+ data = (char *) newdir->table;
|
||||
+
|
||||
+ while(remain) {
|
||||
+ int size =
|
||||
+ remain > bs.cluster_size * sector_size ? bs.cluster_size * sector_size : remain;
|
||||
+
|
||||
+ int pos = (start_data_sector * sector_size) + size_root_dir;
|
||||
+ pos += (last_cluster_written - 2) * bs.cluster_size * sector_size;
|
||||
+
|
||||
+ seekto(pos, "add_dir");
|
||||
+ writebuf(data, size, "add_dir");
|
||||
+
|
||||
+ remain -= size;
|
||||
+ data += size;
|
||||
+
|
||||
+ mark_FAT_cluster(last_cluster_written, remain ? last_cluster_written + 1 : FAT_EOF);
|
||||
+ last_cluster_written++;
|
||||
+ }
|
||||
+
|
||||
+ exit_add_dir:
|
||||
+ if (rddir) closedir(rddir);
|
||||
+ if (newdir->table) free(newdir->table);
|
||||
+ if (newdir) free(newdir);
|
||||
+}
|
||||
+
|
||||
+/* Given a directory, add all the files and directories to the root directory of the
|
||||
+ image.
|
||||
+*/
|
||||
+
|
||||
+static void add_root_directory(char *dirname)
|
||||
+{
|
||||
+ DIR *dir = opendir(dirname);
|
||||
+ struct dirent *entry = 0;
|
||||
+ struct dir_entry *newdir = 0;
|
||||
+
|
||||
+ if (!dir) {
|
||||
+ printf("Error - directory %s does not exist\n", dirname);
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ /* Create the root directory structure - this is a bit different then
|
||||
+ above, because the table already exists, we just refer to it. */
|
||||
+
|
||||
+ newdir = (struct dir_entry *) calloc(1,sizeof(struct dir_entry));
|
||||
+
|
||||
+ if (!newdir) {
|
||||
+ closedir(dir);
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ newdir->entries = root_dir_entries;
|
||||
+ newdir->root = 1;
|
||||
+ newdir->count = 0;
|
||||
+ newdir->table = root_dir;
|
||||
+
|
||||
+ while((entry = readdir(dir))) {
|
||||
+ struct stat st;
|
||||
+ char *buffer;
|
||||
+
|
||||
+ if (!strcmp(entry->d_name, ".") || !strcmp(entry->d_name, ".."))
|
||||
+ continue;
|
||||
+
|
||||
+ /* DOS wouldn't like a typical unix . (dot) file, so we skip those too */
|
||||
+ if (entry->d_name[0] == '.') continue;
|
||||
+
|
||||
+ buffer = malloc(strlen(dirname) + strlen(entry->d_name) + 3);
|
||||
+ if (!buffer) continue;
|
||||
+
|
||||
+ sprintf(buffer, "%s/%s", dirname, entry->d_name);
|
||||
+ if (!stat(buffer, &st)) {
|
||||
+ if (S_ISDIR(st.st_mode))
|
||||
+ add_directory(buffer, newdir);
|
||||
+ else if (S_ISREG(st.st_mode)) {
|
||||
+ unsigned char attrib = check_attrib_file(dirname, entry->d_name);
|
||||
+ add_file(buffer, newdir, attrib);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ free(buffer);
|
||||
+ }
|
||||
+
|
||||
+ closedir(dir);
|
||||
+ if (newdir) free(newdir);
|
||||
+}
|
||||
|
||||
/* Report the command usage and return a failure error code */
|
||||
|
||||
@@ -1418,9 +1898,9 @@
|
||||
[-m boot-msg-file] [-n volume-name] [-i volume-id] [-B bootcode]\n\
|
||||
[-s sectors-per-cluster] [-S logical-sector-size] [-f number-of-FATs]\n\
|
||||
[-F fat-size] [-r root-dir-entries] [-R reserved-sectors]\n\
|
||||
- /dev/name [blocks]\n");
|
||||
+ [-d directory] /dev/name [blocks]\n");
|
||||
}
|
||||
-
|
||||
+
|
||||
/*
|
||||
* ++roman: On m68k, check if this is an Atari; if yes, turn on Atari variant
|
||||
* of MS-DOS filesystem by default.
|
||||
@@ -1458,6 +1938,8 @@
|
||||
int c;
|
||||
char *tmp;
|
||||
char *listfile = NULL;
|
||||
+ char *dirname = NULL;
|
||||
+
|
||||
FILE *msgfile;
|
||||
struct stat statbuf;
|
||||
int i = 0, pos, ch;
|
||||
@@ -1477,7 +1959,7 @@
|
||||
printf ("%s " VERSION " (" VERSION_DATE ")\n",
|
||||
program_name);
|
||||
|
||||
- while ((c = getopt (argc, argv, "AcCf:F:Ii:l:m:n:r:R:s:S:v:B:b")) != EOF)
|
||||
+ while ((c = getopt (argc, argv, "AcCd:f:F:Ii:l:m:n:r:R:s:S:v:B:b")) != EOF)
|
||||
/* Scan the command line for options */
|
||||
switch (c)
|
||||
{
|
||||
@@ -1502,6 +1984,10 @@
|
||||
create = TRUE;
|
||||
break;
|
||||
|
||||
+ case 'd':
|
||||
+ dirname = optarg;
|
||||
+ break;
|
||||
+
|
||||
case 'f': /* f : Choose number of FATs */
|
||||
nr_fats = (int) strtol (optarg, &tmp, 0);
|
||||
if (*tmp || nr_fats < 1 || nr_fats > 4)
|
||||
@@ -1796,8 +2282,10 @@
|
||||
else if (listfile)
|
||||
get_list_blocks (listfile);
|
||||
|
||||
- write_tables (); /* Write the file system tables away! */
|
||||
|
||||
+ if (dirname) add_root_directory(dirname);
|
||||
+
|
||||
+ write_tables (); /* Write the file system tables away! */
|
||||
exit (0); /* Terminate with no errors! */
|
||||
}
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
--- dosfstools-2.10/dosfsck/boot.c.orig 2004-10-15 08:51:42.394725176 -0600
|
||||
+++ dosfstools-2.10/dosfsck/boot.c 2004-10-15 08:49:16.776862456 -0600
|
||||
@@ -14,6 +14,9 @@
|
||||
#include "io.h"
|
||||
#include "boot.h"
|
||||
|
||||
+#ifndef MSDOS_FAT12
|
||||
+#define MSDOS_FAT12 4084
|
||||
+#endif
|
||||
|
||||
#define ROUND_TO_MULTIPLE(n,m) ((n) && (m) ? (n)+(m)-1-((n)-1)%(m) : 0)
|
||||
/* don't divide by zero */
|
||||
@@ -0,0 +1,22 @@
|
||||
# dosfstools OE build file
|
||||
# Copyright (C) 2004-2006, Advanced Micro Devices, Inc. All Rights Reserved
|
||||
# Released under the MIT license (see packages/COPYING)
|
||||
|
||||
DESCRIPTION = "DOS FAT Filesystem Utilities"
|
||||
|
||||
SECTION = "base"
|
||||
PRIORITY = "optional"
|
||||
LICENSE = "GPL"
|
||||
|
||||
PR = "r2"
|
||||
|
||||
SRC_URI = "ftp://ftp.uni-erlangen.de/pub/Linux/LOCAL/dosfstools/dosfstools-${PV}.src.tar.gz \
|
||||
file://alignment_hack.patch;patch=1 \
|
||||
file://dosfstools-2.10-kernel-2.6.patch;patch=1 \
|
||||
file://msdos_fat12_undefined.patch;patch=1 \
|
||||
file://include-linux-types.patch;patch=1"
|
||||
|
||||
do_install () {
|
||||
oe_runmake "PREFIX=${D}" "SBINDIR=${D}${sbindir}" \
|
||||
"MANDIR=${D}${mandir}/man8" install
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
# dosfstools OE build file
|
||||
# Copyright (C) 2004-2006, Advanced Micro Devices, Inc. All Rights Reserved
|
||||
# Released under the MIT license (see packages/COPYING)
|
||||
|
||||
DESCRIPTION = "DOS FAT Filesystem Utilities"
|
||||
|
||||
SECTION = "base"
|
||||
PRIORITY = "optional"
|
||||
LICENSE = "GPL"
|
||||
|
||||
PR = "r0"
|
||||
|
||||
SRC_URI = "ftp://ftp.uni-erlangen.de/pub/Linux/LOCAL/dosfstools/dosfstools-${PV}.src.tar.gz \
|
||||
file://alignment_hack.patch;patch=1 \
|
||||
file://msdos_fat12_undefined.patch;patch=1 \
|
||||
file://include-linux-types.patch;patch=1"
|
||||
|
||||
do_install () {
|
||||
oe_runmake "PREFIX=${D}" "SBINDIR=${D}${sbindir}" \
|
||||
"MANDIR=${D}${mandir}/man8" install
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
DESCRIPTION = "Package maintenance system for Debian."
|
||||
LICENSE = "GPL"
|
||||
SECTION = "base"
|
||||
PR = "r7"
|
||||
|
||||
SRC_URI = "${DEBIAN_MIRROR}/main/d/dpkg/dpkg_${PV}.tar.gz \
|
||||
file://ignore_extra_fields.patch;patch=1 \
|
||||
file://noupdalt.patch;patch=1"
|
||||
|
||||
DEPENDS = "zlib bzip2"
|
||||
DEPENDS_virtclass-native = "bzip2-native zlib-native virtual/update-alternatives-native gettext-native"
|
||||
RDEPENDS_${PN} = "${VIRTUAL-RUNTIME_update-alternatives}"
|
||||
RDEPENDS_${PN}_virtclass-native = ""
|
||||
|
||||
S = "${WORKDIR}/${BPN}-${PV}"
|
||||
|
||||
PARALLEL_MAKE = ""
|
||||
|
||||
inherit autotools gettext
|
||||
|
||||
DPKG_INIT_POSITION = "98"
|
||||
DPKG_INIT_POSITION_slugos = "41"
|
||||
|
||||
pkg_postinst_dpkg () {
|
||||
#!/bin/sh
|
||||
if [ "x$D" != "x" ]; then
|
||||
install -d $D/${sysconfdir}/rcS.d
|
||||
# this happens at S98 where our good 'ole packages script used to run
|
||||
echo -e "#!/bin/sh
|
||||
dpkg --configure -a
|
||||
rm -f /${sysconfdir}/rcS.d/S${DPKG_INIT_POSITION}configure
|
||||
" > ${IMAGE_ROOTFS}/${sysconfdir}/rcS.d/S${DPKG_INIT_POSITION}configure
|
||||
chmod 0755 $D/${sysconfdir}/rcS.d/S${DPKG_INIT_POSITION}configure
|
||||
fi
|
||||
}
|
||||
|
||||
do_configure () {
|
||||
echo >> m4/compiler.m4
|
||||
autotools_do_configure
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
|
||||
#
|
||||
# Patch managed by http://www.holgerschurig.de/patcher.html
|
||||
#
|
||||
|
||||
--- dpkg-1.10.23/configure.in~autofoo
|
||||
+++ dpkg-1.10.23/configure.in
|
||||
@@ -227,21 +227,36 @@
|
||||
# OpenBSD passes AC_TRY_COMPILE for va_copy even though
|
||||
# it doesn't seem to exist, which is odd. We need to use
|
||||
# AC_TRY_RUN.
|
||||
+#
|
||||
+# If crosscompiling, use AC_TRY_COMPILE. -CL
|
||||
AC_TRY_RUN([
|
||||
#include <stdarg.h>
|
||||
main(){
|
||||
va_list v1,v2;
|
||||
va_copy(v1, v2);
|
||||
exit(0);}
|
||||
-], [AC_MSG_RESULT(yes)
|
||||
-AC_DEFINE(HAVE_VA_COPY,,[Whether the va_copy macro exists])],[AC_MSG_RESULT(no)
|
||||
-AC_MSG_CHECKING([for va_list assignment copy])
|
||||
+], [dpkg_cv_va_copy=yes], [dpkg_cv_va_copy=no],
|
||||
AC_TRY_COMPILE([
|
||||
#include <stdarg.h>
|
||||
+main(){
|
||||
+va_list v1,v2;
|
||||
+va_copy(v1, v2);
|
||||
+exit(0);}
|
||||
+], [dpkg_cv_va_copy=yes], [dpkg_vc_va_copy=no]))
|
||||
+
|
||||
+if test "$dpkg_cv_va_copy" = "yes"; then
|
||||
+ AC_MSG_RESULT(yes)
|
||||
+ AC_DEFINE(HAVE_VA_COPY,,[Whether the va_copy macro exists])
|
||||
+else
|
||||
+ AC_MSG_RESULT(no)
|
||||
+ AC_MSG_CHECKING([for va_list assignment copy])
|
||||
+ AC_TRY_COMPILE([
|
||||
+#include <stdarg.h>
|
||||
],[
|
||||
va_list v1,v2;
|
||||
v1 = v2;
|
||||
-], AC_MSG_RESULT(yes),AC_MSG_ERROR(no))])
|
||||
+], AC_MSG_RESULT(yes), AC_MSG_ERROR(no))
|
||||
+fi
|
||||
|
||||
DPKG_C_GCC_ATTRIBUTE([,,],supported,[int x],[,,],ATTRIB,[Define if function attributes a la GCC 2.5 and higher are available.],
|
||||
DPKG_C_GCC_ATTRIBUTE(noreturn,noreturn,[int x],noreturn,NORETURN,[Define if nonreturning functions a la GCC 2.5 and higher are available.])
|
||||
@@ -0,0 +1,26 @@
|
||||
dpkg-deb/build.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
--- dpkg-1.14.19.orig/dpkg-deb/build.c
|
||||
+++ dpkg-1.14.19/dpkg-deb/build.c
|
||||
@@ -241,18 +241,18 @@ void do_build(const char *const *argv) {
|
||||
if (checkedinfo->priority == pri_other) {
|
||||
fprintf(stderr, _("warning, `%s' contains user-defined Priority value `%s'\n"),
|
||||
controlfile, checkedinfo->otherpriority);
|
||||
warns++;
|
||||
}
|
||||
- for (field= checkedinfo->available.arbs; field; field= field->next) {
|
||||
+ /*for (field= checkedinfo->available.arbs; field; field= field->next) {
|
||||
if (known_arbitrary_field(field))
|
||||
continue;
|
||||
|
||||
fprintf(stderr, _("warning, `%s' contains user-defined field `%s'\n"),
|
||||
controlfile, field->name);
|
||||
warns++;
|
||||
- }
|
||||
+ }*/
|
||||
checkversion(checkedinfo->available.version.version,"(upstream) version",&errs);
|
||||
checkversion(checkedinfo->available.version.revision,"Debian revision",&errs);
|
||||
if (errs) ohshit(_("%d errors in control file"),errs);
|
||||
|
||||
if (subdir) {
|
||||
@@ -0,0 +1,18 @@
|
||||
---
|
||||
src/help.c | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
--- dpkg-1.13.22.orig/src/help.c
|
||||
+++ dpkg-1.13.22/src/help.c
|
||||
@@ -175,9 +175,11 @@ static const char* preexecscript(const c
|
||||
*/
|
||||
size_t instdirl;
|
||||
|
||||
+#if 0
|
||||
if (*instdir) {
|
||||
if (chroot(instdir)) ohshite(_("failed to chroot to `%.250s'"),instdir);
|
||||
}
|
||||
+#endif
|
||||
if (f_debug & dbg_scripts) {
|
||||
fprintf(stderr,"D0%05o: fork/exec %s (",dbg_scripts,path);
|
||||
while (*++argv) fprintf(stderr," %s",*argv);
|
||||
@@ -0,0 +1,16 @@
|
||||
---
|
||||
Makefile.am | 3 +--
|
||||
1 file changed, 1 insertion(+), 2 deletions(-)
|
||||
|
||||
--- dpkg-1.13.22.orig/Makefile.am
|
||||
+++ dpkg-1.13.22/Makefile.am
|
||||
@@ -15,8 +15,7 @@ SUBDIRS = \
|
||||
utils \
|
||||
scripts \
|
||||
po \
|
||||
- origins \
|
||||
- man
|
||||
+ origins
|
||||
|
||||
ACLOCAL_AMFLAGS = -I m4
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
---
|
||||
scripts/Makefile.am | 3 +--
|
||||
1 file changed, 1 insertion(+), 2 deletions(-)
|
||||
|
||||
--- dpkg-1.13.22.orig/scripts/Makefile.am
|
||||
+++ dpkg-1.13.22/scripts/Makefile.am
|
||||
@@ -20,8 +20,7 @@ bin_SCRIPTS = \
|
||||
sbin_SCRIPTS = \
|
||||
cleanup-info \
|
||||
dpkg-divert \
|
||||
- dpkg-statoverride \
|
||||
- update-alternatives
|
||||
+ dpkg-statoverride
|
||||
|
||||
changelogdir = $(pkglibdir)/parsechangelog
|
||||
changelog_SCRIPTS = \
|
||||
@@ -0,0 +1,13 @@
|
||||
require dpkg.inc
|
||||
|
||||
SRC_URI += "file://noman.patch;patch=1"
|
||||
|
||||
EXTRA_OECONF = "--without-static-progs \
|
||||
--without-dselect \
|
||||
--with-start-stop-daemon \
|
||||
--with-zlib \
|
||||
--with-bz2lib \
|
||||
--without-selinux \
|
||||
--without-sgml-doc"
|
||||
|
||||
BBCLASSEXTEND = "native"
|
||||
@@ -0,0 +1,86 @@
|
||||
# Extracted from the package's shipped aclocal.m4. Custom macros should be in
|
||||
# acinclude.m4 so running aclocal doesn't blow them away.
|
||||
#
|
||||
# RP 1/6/2010
|
||||
|
||||
# ===========================================================================
|
||||
# http://www.nongnu.org/autoconf-archive/check_gnu_make.html
|
||||
# ===========================================================================
|
||||
#
|
||||
# SYNOPSIS
|
||||
#
|
||||
# CHECK_GNU_MAKE()
|
||||
#
|
||||
# DESCRIPTION
|
||||
#
|
||||
# This macro searches for a GNU version of make. If a match is found, the
|
||||
# makefile variable `ifGNUmake' is set to the empty string, otherwise it
|
||||
# is set to "#". This is useful for including a special features in a
|
||||
# Makefile, which cannot be handled by other versions of make. The
|
||||
# variable _cv_gnu_make_command is set to the command to invoke GNU make
|
||||
# if it exists, the empty string otherwise.
|
||||
#
|
||||
# Here is an example of its use:
|
||||
#
|
||||
# Makefile.in might contain:
|
||||
#
|
||||
# # A failsafe way of putting a dependency rule into a makefile
|
||||
# $(DEPEND):
|
||||
# $(CC) -MM $(srcdir)/*.c > $(DEPEND)
|
||||
#
|
||||
# @ifGNUmake@ ifeq ($(DEPEND),$(wildcard $(DEPEND)))
|
||||
# @ifGNUmake@ include $(DEPEND)
|
||||
# @ifGNUmake@ endif
|
||||
#
|
||||
# Then configure.in would normally contain:
|
||||
#
|
||||
# CHECK_GNU_MAKE()
|
||||
# AC_OUTPUT(Makefile)
|
||||
#
|
||||
# Then perhaps to cause gnu make to override any other make, we could do
|
||||
# something like this (note that GNU make always looks for GNUmakefile
|
||||
# first):
|
||||
#
|
||||
# if ! test x$_cv_gnu_make_command = x ; then
|
||||
# mv Makefile GNUmakefile
|
||||
# echo .DEFAULT: > Makefile ;
|
||||
# echo \ $_cv_gnu_make_command \$@ >> Makefile;
|
||||
# fi
|
||||
#
|
||||
# Then, if any (well almost any) other make is called, and GNU make also
|
||||
# exists, then the other make wraps the GNU make.
|
||||
#
|
||||
# LICENSE
|
||||
#
|
||||
# Copyright (c) 2008 John Darrington <j.darrington@elvis.murdoch.edu.au>
|
||||
#
|
||||
# Copying and distribution of this file, with or without modification, are
|
||||
# permitted in any medium without royalty provided the copyright notice
|
||||
# and this notice are preserved.
|
||||
#
|
||||
# Note: Modified by Ted Ts'o to add @ifNotGNUMake@
|
||||
|
||||
AC_DEFUN(
|
||||
[CHECK_GNU_MAKE], [ AC_CACHE_CHECK( for GNU make,_cv_gnu_make_command,
|
||||
_cv_gnu_make_command='' ;
|
||||
dnl Search all the common names for GNU make
|
||||
for a in "$MAKE" make gmake gnumake ; do
|
||||
if test -z "$a" ; then continue ; fi ;
|
||||
if ( sh -c "$a --version" 2> /dev/null | grep GNU 2>&1 > /dev/null ) ; then
|
||||
_cv_gnu_make_command=$a ;
|
||||
break;
|
||||
fi
|
||||
done ;
|
||||
) ;
|
||||
dnl If there was a GNU version, then set @ifGNUmake@ to the empty string, '#' otherwise
|
||||
if test "x$_cv_gnu_make_command" != "x" ; then
|
||||
ifGNUmake='' ;
|
||||
ifNotGNUmake='#' ;
|
||||
else
|
||||
ifGNUmake='#' ;
|
||||
ifNotGNUmake='' ;
|
||||
AC_MSG_RESULT("Not found");
|
||||
fi
|
||||
AC_SUBST(ifGNUmake)
|
||||
AC_SUBST(ifNotGNUmake)
|
||||
] )
|
||||
@@ -0,0 +1,26 @@
|
||||
Index: e2fsprogs-1.41.5/po/Makefile.in.in
|
||||
===================================================================
|
||||
--- e2fsprogs-1.41.5.orig/po/Makefile.in.in 2009-02-14 13:49:08.000000000 +0000
|
||||
+++ e2fsprogs-1.41.5/po/Makefile.in.in 2009-08-19 17:52:31.000000000 +0100
|
||||
@@ -30,7 +30,7 @@
|
||||
INSTALL = @INSTALL@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
MKINSTALLDIRS = @MKINSTALLDIRS@
|
||||
-mkinstalldirs = $(SHELL) $(MKINSTALLDIRS)
|
||||
+mkinstalldirs = $(MKINSTALLDIRS)
|
||||
|
||||
GMSGFMT = @GMSGFMT@
|
||||
MSGFMT = @MSGFMT@
|
||||
Index: e2fsprogs-1.41.5/configure.in
|
||||
===================================================================
|
||||
--- e2fsprogs-1.41.5.orig/configure.in 2009-08-19 17:53:50.000000000 +0100
|
||||
+++ e2fsprogs-1.41.5/configure.in 2009-08-19 17:48:38.000000000 +0100
|
||||
@@ -970,6 +970,8 @@
|
||||
fi
|
||||
AC_SUBST(BUILD_CFLAGS)
|
||||
AC_SUBST(BUILD_LDFLAGS)
|
||||
+MKINSTALLDIRS="mkdir -p"
|
||||
+AC_SUBST(MKINSTALLDIRS)
|
||||
dnl
|
||||
dnl Make our output files, being sure that we create the some miscellaneous
|
||||
dnl directories
|
||||
@@ -0,0 +1,43 @@
|
||||
These macros are underquoted and break with recent autoconf+automake
|
||||
combinations.
|
||||
|
||||
RP 1/2/10
|
||||
|
||||
Index: e2fsprogs-1.41.5/configure.in
|
||||
===================================================================
|
||||
--- e2fsprogs-1.41.5.orig/configure.in 2010-02-01 11:40:10.547790252 +0000
|
||||
+++ e2fsprogs-1.41.5/configure.in 2010-02-01 11:44:51.577876485 +0000
|
||||
@@ -397,11 +397,11 @@
|
||||
AC_MSG_ERROR([pkg-config not installed; please install it.])
|
||||
fi
|
||||
|
||||
- AC_CHECK_LIB(blkid, blkid_get_cache,
|
||||
+ [AC_CHECK_LIB(blkid, blkid_get_cache,
|
||||
[LIBBLKID=`$PKG_CONFIG --libs blkid`;
|
||||
STATIC_LIBBLKID=`$PKG_CONFIG --static --libs blkid`],
|
||||
[AC_MSG_ERROR([external blkid library not found])],
|
||||
- [$LIBBLKID])
|
||||
+ [$LIBBLKID])]
|
||||
BLKID_CMT=#
|
||||
AC_MSG_RESULT([Disabling private blkid library])
|
||||
else
|
||||
@@ -786,15 +786,15 @@
|
||||
dnl
|
||||
SEM_INIT_LIB=''
|
||||
AC_CHECK_FUNC(sem_init, ,
|
||||
- AC_CHECK_LIB(pthread, sem_init,
|
||||
+ [AC_CHECK_LIB(pthread, sem_init,
|
||||
AC_DEFINE(HAVE_SEM_INIT)
|
||||
SEM_INIT_LIB=-lpthread,
|
||||
- AC_CHECK_LIB(rt, sem_init,
|
||||
+ [AC_CHECK_LIB(rt, sem_init,
|
||||
AC_DEFINE(HAVE_SEM_INIT)
|
||||
SEM_INIT_LIB=-lrt,
|
||||
- AC_CHECK_LIB(posix4, sem_init,
|
||||
+ [AC_CHECK_LIB(posix4, sem_init,
|
||||
AC_DEFINE(HAVE_SEM_INIT)
|
||||
- SEM_INIT_LIB=-lposix4))))dnl
|
||||
+ SEM_INIT_LIB=-lposix4)])])])dnl
|
||||
AC_SUBST(SEM_INIT_LIB)
|
||||
dnl
|
||||
dnl Check for unified diff
|
||||
@@ -0,0 +1,25 @@
|
||||
DESCRIPTION = "The Ext2 Filesystem Utilities (e2fsprogs) contain all of the standard utilities for creating, fixing, configuring , and debugging ext2 filesystems."
|
||||
HOMEPAGE = "http://e2fsprogs.sourceforge.net/"
|
||||
|
||||
LICENSE = "GPLv2 & LGPLv2 & BSD & MIT"
|
||||
LICENSE_e2fsprogs-blkid = "LGPLv2"
|
||||
LICENSE_e2fsprogs-e2fsck = "GPLv2"
|
||||
LICENSE_e2fsprogs-mke2fs = "GPLv2"
|
||||
LICENSE_e2fsprogs-fsck = "GPLv2"
|
||||
LICENSE_e2fsprogs-tune2fs = "GPLv2"
|
||||
LICENSE_e2fsprogs-badblocks = "GPLv2"
|
||||
LIC_FILES_CHKSUM = "file://COPYING;md5=b48f21d765b875bd10400975d12c1ca2 \
|
||||
file://lib/ext2fs/ext2fs.h;beginline=1;endline=9;md5=596a8dedcb4e731c6b21c7a46fba6bef \
|
||||
file://lib/e2p/e2p.h;beginline=1;endline=7;md5=8a74ade8f9d65095d70ef2d4bf48e36a \
|
||||
file://lib/uuid/uuid.h.in;beginline=1;endline=32;md5=dbb8079e114a5f841934b99e59c8820a \
|
||||
file://lib/uuid/COPYING;md5=58dcd8452651fc8b07d1f65ce07ca8af \
|
||||
file://lib/et/et_name.c;beginline=1;endline=11;md5=ead236447dac7b980dbc5b4804d8c836 \
|
||||
file://lib/ss/ss.h;beginline=1;endline=20;md5=6e89ad47da6e75fecd2b5e0e81e1d4a6"
|
||||
SECTION = "base"
|
||||
DEPENDS = "gettext util-linux"
|
||||
|
||||
SRC_URI = "${SOURCEFORGE_MIRROR}/e2fsprogs/e2fsprogs-${PV}.tar.gz \
|
||||
file://mkdir.patch;apply=yes"
|
||||
|
||||
inherit autotools
|
||||
|
||||
@@ -0,0 +1,46 @@
|
||||
require e2fsprogs.inc
|
||||
|
||||
PR = "r19"
|
||||
|
||||
SRC_URI += "file://quotefix.patch;patch=1 \
|
||||
file://acinclude.m4"
|
||||
#file://no-hardlinks.patch;patch=1 \
|
||||
|
||||
PARALLEL_MAKE = ""
|
||||
|
||||
EXTRA_OECONF += " --sbindir=${base_sbindir} --enable-elf-shlibs --disable-libuuid"
|
||||
EXTRA_OECONF_darwin = "--sbindir=${base_sbindir} --enable-bsd-shlibs"
|
||||
EXTRA_OECONF_darwin8 = "--sbindir=${base_sbindir} --enable-bsd-shlibs"
|
||||
|
||||
do_configure_prepend () {
|
||||
cp ${WORKDIR}/acinclude.m4 ${S}/
|
||||
}
|
||||
|
||||
do_compile_prepend () {
|
||||
find ./ -print|xargs chmod u=rwX
|
||||
( cd util; ${BUILD_CC} subst.c -o subst )
|
||||
}
|
||||
|
||||
do_install () {
|
||||
oe_runmake 'DESTDIR=${D}' install
|
||||
oe_runmake 'DESTDIR=${D}' install-libs
|
||||
# We use blkid from util-linux now so remove from here
|
||||
rm -f ${D}${libdir}/libblkid*
|
||||
rm -rf ${D}${includedir}/blkid
|
||||
rm -f ${D}${libdir}/pkgconfig/blkid.pc
|
||||
}
|
||||
|
||||
# blkid used to be part of e2fsprogs but is useful outside, add it
|
||||
# as an RDEPENDS so that anything relying on it being in e2fsprogs
|
||||
# still works
|
||||
RDEPENDS_e2fsprogs = "e2fsprogs-blkid e2fsprogs-badblocks"
|
||||
|
||||
PACKAGES =+ "e2fsprogs-blkid e2fsprogs-e2fsck e2fsprogs-mke2fs e2fsprogs-fsck e2fsprogs-tune2fs e2fsprogs-badblocks"
|
||||
FILES_e2fsprogs-blkid = "${base_sbindir}/blkid"
|
||||
FILES_e2fsprogs-fsck = "${base_sbindir}/fsck"
|
||||
FILES_e2fsprogs-e2fsck = "${base_sbindir}/e2fsck ${base_sbindir}/fsck.ext*"
|
||||
FILES_e2fsprogs-mke2fs = "${base_sbindir}/mke2fs ${base_sbindir}/mkfs.ext*"
|
||||
FILES_e2fsprogs-tune2fs = "${base_sbindir}/tune2fs ${base_sbindir}/e2label ${base_sbindir}/findfs"
|
||||
FILES_e2fsprogs-badblocks = "${base_sbindir}/badblocks"
|
||||
|
||||
BBCLASSEXTEND = "native"
|
||||
@@ -0,0 +1,132 @@
|
||||
Index: elfutils-0.108/configure.ac
|
||||
===================================================================
|
||||
--- elfutils-0.108.orig/configure.ac 2006-04-10 19:18:34.000000000 +0100
|
||||
+++ elfutils-0.108/configure.ac 2006-04-10 19:19:33.000000000 +0100
|
||||
@@ -49,6 +49,10 @@
|
||||
dnl Add all the languages for which translations are available.
|
||||
ALL_LINGUAS=
|
||||
|
||||
+if test X"$CFLAGS" = X; then
|
||||
+ CFLAGS="-Wall -g -O2"
|
||||
+fi
|
||||
+
|
||||
AC_PROG_CC
|
||||
AC_PROG_RANLIB
|
||||
AC_PROG_YACC
|
||||
Index: elfutils-0.108/lib/Makefile.am
|
||||
===================================================================
|
||||
--- elfutils-0.108.orig/lib/Makefile.am 2006-04-10 19:18:34.000000000 +0100
|
||||
+++ elfutils-0.108/lib/Makefile.am 2006-04-10 19:19:33.000000000 +0100
|
||||
@@ -21,7 +21,7 @@
|
||||
else
|
||||
AM_CFLAGS =
|
||||
endif
|
||||
-AM_CFLAGS += -fpic -Wall -Wshadow -Werror -Wunused -Wextra $($(*F)_CFLAGS)
|
||||
+AM_CFLAGS += -fpic -Wshadow -Wunused $($(*F)_CFLAGS)
|
||||
INCLUDES = -I$(srcdir)/../libelf -I..
|
||||
|
||||
noinst_LIBRARIES = libeu.a
|
||||
Index: elfutils-0.108/libasm/Makefile.am
|
||||
===================================================================
|
||||
--- elfutils-0.108.orig/libasm/Makefile.am 2006-04-10 19:18:34.000000000 +0100
|
||||
+++ elfutils-0.108/libasm/Makefile.am 2006-04-10 19:19:33.000000000 +0100
|
||||
@@ -18,7 +18,7 @@
|
||||
else
|
||||
AM_CFLAGS =
|
||||
endif
|
||||
-AM_CFLAGS += -Wall -Wshadow -Werror -Wunused -Wextra -Wformat=2
|
||||
+AM_CFLAGS += -Wshadow -Wunused -Wformat=2
|
||||
INCLUDES = -I. -I$(srcdir) -I.. -I$(top_srcdir)/libelf -I$(top_srcdir)/libebl \
|
||||
-I$(top_srcdir)/lib
|
||||
GCC_INCLUDE = -I$(shell $(CC) -print-file-name=include)
|
||||
Index: elfutils-0.108/libcpu/Makefile.am
|
||||
===================================================================
|
||||
--- elfutils-0.108.orig/libcpu/Makefile.am 2006-04-10 19:18:34.000000000 +0100
|
||||
+++ elfutils-0.108/libcpu/Makefile.am 2006-04-10 19:19:33.000000000 +0100
|
||||
@@ -13,7 +13,7 @@
|
||||
## 3001 King Ranch Road, Ukiah, CA 95482.
|
||||
##
|
||||
DEFS = -D_GNU_SOURCE -DHAVE_CONFIG_H
|
||||
-AM_CFLAGS = -Wall -Wshadow -Werror -Wextra -Wformat=2 -Wunused
|
||||
+AM_CFLAGS = -Wshadow -Wformat=2 -Wunused
|
||||
INCLUDES = -I$(srcdir)
|
||||
|
||||
noinst_LIBRARIES = libcpu_i386.a
|
||||
Index: elfutils-0.108/libdw/Makefile.am
|
||||
===================================================================
|
||||
--- elfutils-0.108.orig/libdw/Makefile.am 2006-04-10 19:18:34.000000000 +0100
|
||||
+++ elfutils-0.108/libdw/Makefile.am 2006-04-10 19:19:33.000000000 +0100
|
||||
@@ -18,7 +18,7 @@
|
||||
else
|
||||
AM_CFLAGS =
|
||||
endif
|
||||
-AM_CFLAGS += -Wall -Werror -Wshadow -Wunused -Wformat=2 -Wextra -std=gnu99
|
||||
+AM_CFLAGS += -Wshadow -Wunused -Wformat=2 -std=gnu99
|
||||
INCLUDES = -I. -I$(srcdir) -I$(srcdir)/../libelf -I.. -I$(srcdir)/../lib
|
||||
VERSION = 1
|
||||
|
||||
Index: elfutils-0.108/libebl/Makefile.am
|
||||
===================================================================
|
||||
--- elfutils-0.108.orig/libebl/Makefile.am 2006-04-10 19:18:34.000000000 +0100
|
||||
+++ elfutils-0.108/libebl/Makefile.am 2006-04-10 19:19:33.000000000 +0100
|
||||
@@ -18,7 +18,7 @@
|
||||
else
|
||||
AM_CFLAGS =
|
||||
endif
|
||||
-AM_CFLAGS += -fpic -Wall -Wshadow -Werror -Wunused -Wextra -Wformat=2 \
|
||||
+AM_CFLAGS += -fpic -Wshadow -Wunused -Wformat=2 \
|
||||
-std=gnu99
|
||||
|
||||
INCLUDES = -I$(srcdir) -I$(top_srcdir)/libelf -I$(top_srcdir)/lib -I..
|
||||
Index: elfutils-0.108/libelf/Makefile.am
|
||||
===================================================================
|
||||
--- elfutils-0.108.orig/libelf/Makefile.am 2006-04-10 19:18:34.000000000 +0100
|
||||
+++ elfutils-0.108/libelf/Makefile.am 2006-04-10 19:19:33.000000000 +0100
|
||||
@@ -21,7 +21,7 @@
|
||||
else
|
||||
AM_CFLAGS =
|
||||
endif
|
||||
-AM_CFLAGS += -Wall -Wshadow -Werror -Wunused -Wextra -Wformat=2 -std=gnu99 \
|
||||
+AM_CFLAGS += -Wshadow -Wunused -Wformat=2 -std=gnu99 \
|
||||
$($(*F)_CFLAGS)
|
||||
INCLUDES = -I$(srcdir) -I$(top_srcdir)/lib -I..
|
||||
GCC_INCLUDE = -I$(shell $(CC) -print-file-name=include)
|
||||
Index: elfutils-0.108/src/Makefile.am
|
||||
===================================================================
|
||||
--- elfutils-0.108.orig/src/Makefile.am 2006-04-10 19:18:34.000000000 +0100
|
||||
+++ elfutils-0.108/src/Makefile.am 2006-04-10 19:20:19.000000000 +0100
|
||||
@@ -15,14 +15,12 @@
|
||||
DEFS = -D_GNU_SOURCE -DHAVE_CONFIG_H $(YYDEBUG) \
|
||||
-DSRCDIR=\"$(shell cd $(srcdir);pwd)\" -DOBJDIR=\"$(shell pwd)\"
|
||||
if MUDFLAP
|
||||
-AM_CFLAGS = -Wall -Wshadow -Wunused -Wextra -std=gnu99 -fmudflap \
|
||||
+AM_CFLAGS = -Wshadow -Wunused -std=gnu99 -fmudflap \
|
||||
$(native_ld_cflags) $(if $($(*F)_no_Wunused),,-Wunused) \
|
||||
$(if $($(*F)_no_Wformat),,-Wformat=2)
|
||||
else
|
||||
-AM_CFLAGS = -Wall -Wshadow -std=gnu99 $(native_ld_cflags) \
|
||||
- $(if $($(*F)_no_Werror),,-Werror) \
|
||||
- $(if $($(*F)_no_Wunused),,-Wunused -Wextra) \
|
||||
- $(if $($(*F)_no_Wformat),,-Wformat=2)
|
||||
+AM_CFLAGS = -Wshadow -std=gnu99 $(native_ld_cflags) \
|
||||
+ $(if $($(*F)_no_Werror),,)
|
||||
endif
|
||||
if MUDFLAP
|
||||
libmudflap = -lmudflap
|
||||
Index: elfutils-0.108/tests/Makefile.am
|
||||
===================================================================
|
||||
--- elfutils-0.108.orig/tests/Makefile.am 2006-04-10 19:18:34.000000000 +0100
|
||||
+++ elfutils-0.108/tests/Makefile.am 2006-04-10 19:19:33.000000000 +0100
|
||||
@@ -14,10 +14,10 @@
|
||||
##
|
||||
DEFS = -DHAVE_CONFIG_H -D_GNU_SOURCE
|
||||
if MUDFLAP
|
||||
-AM_CFLAGS = -Wall -Werror -std=gnu99 -fmudflap\
|
||||
+AM_CFLAGS = -std=gnu99 -fmudflap\
|
||||
$(if $($(*F)_no_Wformat),-Wno-format,-Wformat=2)
|
||||
else
|
||||
-AM_CFLAGS = -Wall -Werror -std=gnu99 \
|
||||
+AM_CFLAGS = -std=gnu99 \
|
||||
$(if $($(*F)_no_Wformat),-Wno-format,-Wformat=2)
|
||||
AM_LDFLAGS = -Wl,-rpath,\$$ORIGIN/../libasm:\$$ORIGIN/../libdw:\$$ORIGIN/../libebl:\$$ORIGIN/../libelf
|
||||
endif
|
||||
@@ -0,0 +1,447 @@
|
||||
Index: elfutils-0.146/backends/arm_init.c
|
||||
===================================================================
|
||||
--- elfutils-0.146.orig/backends/arm_init.c 2009-04-21 14:50:01.000000000 +0000
|
||||
+++ elfutils-0.146/backends/arm_init.c 2010-04-24 10:11:13.000000000 +0000
|
||||
@@ -32,21 +32,32 @@
|
||||
#define RELOC_PREFIX R_ARM_
|
||||
#include "libebl_CPU.h"
|
||||
|
||||
+#include "libebl_arm.h"
|
||||
+
|
||||
/* This defines the common reloc hooks based on arm_reloc.def. */
|
||||
#include "common-reloc.c"
|
||||
|
||||
|
||||
const char *
|
||||
arm_init (elf, machine, eh, ehlen)
|
||||
- Elf *elf __attribute__ ((unused));
|
||||
+ Elf *elf;
|
||||
GElf_Half machine __attribute__ ((unused));
|
||||
Ebl *eh;
|
||||
size_t ehlen;
|
||||
{
|
||||
+ int soft_float = 0;
|
||||
+
|
||||
/* Check whether the Elf_BH object has a sufficent size. */
|
||||
if (ehlen < sizeof (Ebl))
|
||||
return NULL;
|
||||
|
||||
+ if (elf) {
|
||||
+ GElf_Ehdr ehdr_mem;
|
||||
+ GElf_Ehdr *ehdr = gelf_getehdr (elf, &ehdr_mem);
|
||||
+ if (ehdr && (ehdr->e_flags & EF_ARM_SOFT_FLOAT))
|
||||
+ soft_float = 1;
|
||||
+ }
|
||||
+
|
||||
/* We handle it. */
|
||||
eh->name = "ARM";
|
||||
arm_init_reloc (eh);
|
||||
@@ -58,7 +69,10 @@
|
||||
HOOK (eh, core_note);
|
||||
HOOK (eh, auxv_info);
|
||||
HOOK (eh, check_object_attribute);
|
||||
- HOOK (eh, return_value_location);
|
||||
+ if (soft_float)
|
||||
+ eh->return_value_location = arm_return_value_location_soft;
|
||||
+ else
|
||||
+ eh->return_value_location = arm_return_value_location_hard;
|
||||
|
||||
return MODVERSION;
|
||||
}
|
||||
Index: elfutils-0.146/backends/arm_regs.c
|
||||
===================================================================
|
||||
--- elfutils-0.146.orig/backends/arm_regs.c 2009-04-21 14:50:01.000000000 +0000
|
||||
+++ elfutils-0.146/backends/arm_regs.c 2010-04-24 10:11:13.000000000 +0000
|
||||
@@ -28,6 +28,7 @@
|
||||
#endif
|
||||
|
||||
#include <string.h>
|
||||
+#include <stdio.h>
|
||||
#include <dwarf.h>
|
||||
|
||||
#define BACKEND arm_
|
||||
@@ -58,7 +59,15 @@
|
||||
namelen = 2;
|
||||
break;
|
||||
|
||||
- case 10 ... 12:
|
||||
+ case 10 ... 11:
|
||||
+ name[0] = 'r';
|
||||
+ name[1] = '1';
|
||||
+ name[2] = regno % 10 + '0';
|
||||
+ namelen = 3;
|
||||
+ break;
|
||||
+
|
||||
+ case 12:
|
||||
+ *type = DW_ATE_unsigned;
|
||||
name[0] = 'r';
|
||||
name[1] = '1';
|
||||
name[2] = regno % 10 + '0';
|
||||
@@ -73,6 +82,9 @@
|
||||
break;
|
||||
|
||||
case 16 + 0 ... 16 + 7:
|
||||
+ /* AADWARF says that there are no registers in that range,
|
||||
+ * but gcc maps FPA registers here
|
||||
+ */
|
||||
regno += 96 - 16;
|
||||
/* Fall through. */
|
||||
case 96 + 0 ... 96 + 7:
|
||||
@@ -84,11 +96,139 @@
|
||||
namelen = 2;
|
||||
break;
|
||||
|
||||
+ case 64 + 0 ... 64 + 9:
|
||||
+ *setname = "VFP";
|
||||
+ *bits = 32;
|
||||
+ *type = DW_ATE_float;
|
||||
+ name[0] = 's';
|
||||
+ name[1] = regno - 64 + '0';
|
||||
+ namelen = 2;
|
||||
+ break;
|
||||
+
|
||||
+ case 64 + 10 ... 64 + 31:
|
||||
+ *setname = "VFP";
|
||||
+ *bits = 32;
|
||||
+ *type = DW_ATE_float;
|
||||
+ name[0] = 's';
|
||||
+ name[1] = (regno - 64) / 10 + '0';
|
||||
+ name[2] = (regno - 64) % 10 + '0';
|
||||
+ namelen = 3;
|
||||
+ break;
|
||||
+
|
||||
+ case 104 + 0 ... 104 + 7:
|
||||
+ /* XXX TODO:
|
||||
+ * This can be either intel wireless MMX general purpose/control
|
||||
+ * registers or xscale accumulator, which have different usage.
|
||||
+ * We only have the intel wireless MMX here now.
|
||||
+ * The name needs to be changed for the xscale accumulator too. */
|
||||
+ *setname = "MMX";
|
||||
+ *type = DW_ATE_unsigned;
|
||||
+ *bits = 32;
|
||||
+ memcpy(name, "wcgr", 4);
|
||||
+ name[4] = regno - 104 + '0';
|
||||
+ namelen = 5;
|
||||
+ break;
|
||||
+
|
||||
+ case 112 + 0 ... 112 + 9:
|
||||
+ *setname = "MMX";
|
||||
+ *type = DW_ATE_unsigned;
|
||||
+ *bits = 64;
|
||||
+ name[0] = 'w';
|
||||
+ name[1] = 'r';
|
||||
+ name[2] = regno - 112 + '0';
|
||||
+ namelen = 3;
|
||||
+ break;
|
||||
+
|
||||
+ case 112 + 10 ... 112 + 15:
|
||||
+ *setname = "MMX";
|
||||
+ *type = DW_ATE_unsigned;
|
||||
+ *bits = 64;
|
||||
+ name[0] = 'w';
|
||||
+ name[1] = 'r';
|
||||
+ name[2] = '1';
|
||||
+ name[3] = regno - 112 - 10 + '0';
|
||||
+ namelen = 4;
|
||||
+ break;
|
||||
+
|
||||
case 128:
|
||||
+ *setname = "special";
|
||||
*type = DW_ATE_unsigned;
|
||||
return stpcpy (name, "spsr") + 1 - name;
|
||||
|
||||
+ case 129:
|
||||
+ *setname = "special";
|
||||
+ *type = DW_ATE_unsigned;
|
||||
+ return stpcpy(name, "spsr_fiq") + 1 - name;
|
||||
+
|
||||
+ case 130:
|
||||
+ *setname = "special";
|
||||
+ *type = DW_ATE_unsigned;
|
||||
+ return stpcpy(name, "spsr_irq") + 1 - name;
|
||||
+
|
||||
+ case 131:
|
||||
+ *setname = "special";
|
||||
+ *type = DW_ATE_unsigned;
|
||||
+ return stpcpy(name, "spsr_abt") + 1 - name;
|
||||
+
|
||||
+ case 132:
|
||||
+ *setname = "special";
|
||||
+ *type = DW_ATE_unsigned;
|
||||
+ return stpcpy(name, "spsr_und") + 1 - name;
|
||||
+
|
||||
+ case 133:
|
||||
+ *setname = "special";
|
||||
+ *type = DW_ATE_unsigned;
|
||||
+ return stpcpy(name, "spsr_svc") + 1 - name;
|
||||
+
|
||||
+ case 144 ... 150:
|
||||
+ *setname = "integer";
|
||||
+ *type = DW_ATE_signed;
|
||||
+ *bits = 32;
|
||||
+ return sprintf(name, "r%d_usr", regno - 144 + 8) + 1;
|
||||
+
|
||||
+ case 151 ... 157:
|
||||
+ *setname = "integer";
|
||||
+ *type = DW_ATE_signed;
|
||||
+ *bits = 32;
|
||||
+ return sprintf(name, "r%d_fiq", regno - 151 + 8) + 1;
|
||||
+
|
||||
+ case 158 ... 159:
|
||||
+ *setname = "integer";
|
||||
+ *type = DW_ATE_signed;
|
||||
+ *bits = 32;
|
||||
+ return sprintf(name, "r%d_irq", regno - 158 + 13) + 1;
|
||||
+
|
||||
+ case 160 ... 161:
|
||||
+ *setname = "integer";
|
||||
+ *type = DW_ATE_signed;
|
||||
+ *bits = 32;
|
||||
+ return sprintf(name, "r%d_abt", regno - 160 + 13) + 1;
|
||||
+
|
||||
+ case 162 ... 163:
|
||||
+ *setname = "integer";
|
||||
+ *type = DW_ATE_signed;
|
||||
+ *bits = 32;
|
||||
+ return sprintf(name, "r%d_und", regno - 162 + 13) + 1;
|
||||
+
|
||||
+ case 164 ... 165:
|
||||
+ *setname = "integer";
|
||||
+ *type = DW_ATE_signed;
|
||||
+ *bits = 32;
|
||||
+ return sprintf(name, "r%d_svc", regno - 164 + 13) + 1;
|
||||
+
|
||||
+ case 192 ... 199:
|
||||
+ *setname = "MMX";
|
||||
+ *bits = 32;
|
||||
+ *type = DW_ATE_unsigned;
|
||||
+ name[0] = 'w';
|
||||
+ name[1] = 'c';
|
||||
+ name[2] = regno - 192 + '0';
|
||||
+ namelen = 3;
|
||||
+ break;
|
||||
+
|
||||
case 256 + 0 ... 256 + 9:
|
||||
+ /* XXX TODO: Neon also uses those registers and can contain
|
||||
+ * both float and integers */
|
||||
*setname = "VFP";
|
||||
*type = DW_ATE_float;
|
||||
*bits = 64;
|
||||
Index: elfutils-0.146/backends/arm_retval.c
|
||||
===================================================================
|
||||
--- elfutils-0.146.orig/backends/arm_retval.c 2010-01-12 16:57:54.000000000 +0000
|
||||
+++ elfutils-0.146/backends/arm_retval.c 2010-04-24 10:11:13.000000000 +0000
|
||||
@@ -45,6 +45,13 @@
|
||||
#define nloc_intreg 1
|
||||
#define nloc_intregs(n) (2 * (n))
|
||||
|
||||
+/* f1 */ /* XXX TODO: f0 can also have number 96 if program was compiled with -mabi=aapcs */
|
||||
+static const Dwarf_Op loc_fpreg[] =
|
||||
+ {
|
||||
+ { .atom = DW_OP_reg16 },
|
||||
+ };
|
||||
+#define nloc_fpreg 1
|
||||
+
|
||||
/* The return value is a structure and is actually stored in stack space
|
||||
passed in a hidden argument by the caller. But, the compiler
|
||||
helpfully returns the address of that space in r0. */
|
||||
@@ -55,8 +62,9 @@
|
||||
#define nloc_aggregate 1
|
||||
|
||||
|
||||
-int
|
||||
-arm_return_value_location (Dwarf_Die *functypedie, const Dwarf_Op **locp)
|
||||
+static int
|
||||
+arm_return_value_location_ (Dwarf_Die *functypedie, const Dwarf_Op **locp,
|
||||
+ int soft_float)
|
||||
{
|
||||
/* Start with the function's type, and get the DW_AT_type attribute,
|
||||
which is the type of the return value. */
|
||||
@@ -109,14 +117,31 @@
|
||||
else
|
||||
return -1;
|
||||
}
|
||||
+ if (tag == DW_TAG_base_type)
|
||||
+ {
|
||||
+ Dwarf_Word encoding;
|
||||
+ if (dwarf_formudata (dwarf_attr_integrate (typedie, DW_AT_encoding,
|
||||
+ &attr_mem), &encoding) != 0)
|
||||
+ return -1;
|
||||
+
|
||||
+ if ((encoding == DW_ATE_float) && !soft_float)
|
||||
+ {
|
||||
+ *locp = loc_fpreg;
|
||||
+ if (size <= 8)
|
||||
+ return nloc_fpreg;
|
||||
+ goto aggregate;
|
||||
+ }
|
||||
+ }
|
||||
if (size <= 16)
|
||||
{
|
||||
intreg:
|
||||
*locp = loc_intreg;
|
||||
return size <= 4 ? nloc_intreg : nloc_intregs ((size + 3) / 4);
|
||||
}
|
||||
+ /* fall through. */
|
||||
|
||||
aggregate:
|
||||
+ /* XXX TODO sometimes aggregates are returned in r0 (-mabi=aapcs) */
|
||||
*locp = loc_aggregate;
|
||||
return nloc_aggregate;
|
||||
|
||||
@@ -135,3 +160,18 @@
|
||||
DWARF and might be valid. */
|
||||
return -2;
|
||||
}
|
||||
+
|
||||
+/* return location for -mabi=apcs-gnu -msoft-float */
|
||||
+int
|
||||
+arm_return_value_location_soft (Dwarf_Die *functypedie, const Dwarf_Op **locp)
|
||||
+{
|
||||
+ return arm_return_value_location_ (functypedie, locp, 1);
|
||||
+}
|
||||
+
|
||||
+/* return location for -mabi=apcs-gnu -mhard-float (current default) */
|
||||
+int
|
||||
+arm_return_value_location_hard (Dwarf_Die *functypedie, const Dwarf_Op **locp)
|
||||
+{
|
||||
+ return arm_return_value_location_ (functypedie, locp, 0);
|
||||
+}
|
||||
+
|
||||
Index: elfutils-0.146/libelf/elf.h
|
||||
===================================================================
|
||||
--- elfutils-0.146.orig/libelf/elf.h 2010-04-24 10:11:11.000000000 +0000
|
||||
+++ elfutils-0.146/libelf/elf.h 2010-04-24 10:11:13.000000000 +0000
|
||||
@@ -2290,6 +2290,9 @@
|
||||
#define EF_ARM_EABI_VER4 0x04000000
|
||||
#define EF_ARM_EABI_VER5 0x05000000
|
||||
|
||||
+/* EI_OSABI values */
|
||||
+#define ELFOSABI_ARM_AEABI 64 /* Contains symbol versioning. */
|
||||
+
|
||||
/* Additional symbol types for Thumb. */
|
||||
#define STT_ARM_TFUNC STT_LOPROC /* A Thumb function. */
|
||||
#define STT_ARM_16BIT STT_HIPROC /* A Thumb label. */
|
||||
@@ -2307,12 +2310,19 @@
|
||||
|
||||
/* Processor specific values for the Phdr p_type field. */
|
||||
#define PT_ARM_EXIDX (PT_LOPROC + 1) /* ARM unwind segment. */
|
||||
+#define PT_ARM_UNWIND PT_ARM_EXIDX
|
||||
|
||||
/* Processor specific values for the Shdr sh_type field. */
|
||||
#define SHT_ARM_EXIDX (SHT_LOPROC + 1) /* ARM unwind section. */
|
||||
#define SHT_ARM_PREEMPTMAP (SHT_LOPROC + 2) /* Preemption details. */
|
||||
#define SHT_ARM_ATTRIBUTES (SHT_LOPROC + 3) /* ARM attributes section. */
|
||||
|
||||
+/* Processor specific values for the Dyn d_tag field. */
|
||||
+#define DT_ARM_RESERVED1 (DT_LOPROC + 0)
|
||||
+#define DT_ARM_SYMTABSZ (DT_LOPROC + 1)
|
||||
+#define DT_ARM_PREEMTMAB (DT_LOPROC + 2)
|
||||
+#define DT_ARM_RESERVED2 (DT_LOPROC + 3)
|
||||
+#define DT_ARM_NUM 4
|
||||
|
||||
/* ARM relocs. */
|
||||
|
||||
@@ -2344,12 +2354,75 @@
|
||||
#define R_ARM_GOTPC 25 /* 32 bit PC relative offset to GOT */
|
||||
#define R_ARM_GOT32 26 /* 32 bit GOT entry */
|
||||
#define R_ARM_PLT32 27 /* 32 bit PLT address */
|
||||
+#define R_ARM_CALL 28
|
||||
+#define R_ARM_JUMP24 29
|
||||
+#define R_ARM_THM_JUMP24 30
|
||||
+#define R_ARM_BASE_ABS 31
|
||||
#define R_ARM_ALU_PCREL_7_0 32
|
||||
#define R_ARM_ALU_PCREL_15_8 33
|
||||
#define R_ARM_ALU_PCREL_23_15 34
|
||||
#define R_ARM_LDR_SBREL_11_0 35
|
||||
#define R_ARM_ALU_SBREL_19_12 36
|
||||
#define R_ARM_ALU_SBREL_27_20 37
|
||||
+#define R_ARM_TARGET1 38
|
||||
+#define R_ARM_SBREL31 39
|
||||
+#define R_ARM_V4BX 40
|
||||
+#define R_ARM_TARGET2 41
|
||||
+#define R_ARM_PREL31 42
|
||||
+#define R_ARM_MOVW_ABS_NC 43
|
||||
+#define R_ARM_MOVT_ABS 44
|
||||
+#define R_ARM_MOVW_PREL_NC 45
|
||||
+#define R_ARM_MOVT_PREL 46
|
||||
+#define R_ARM_THM_MOVW_ABS_NC 47
|
||||
+#define R_ARM_THM_MOVT_ABS 48
|
||||
+#define R_ARM_THM_MOVW_PREL_NC 49
|
||||
+#define R_ARM_THM_MOVT_PREL 50
|
||||
+#define R_ARM_THM_JUMP19 51
|
||||
+#define R_ARM_THM_JUMP6 52
|
||||
+#define R_ARM_THM_ALU_PREL_11_0 53
|
||||
+#define R_ARM_THM_PC12 54
|
||||
+#define R_ARM_ABS32_NOI 55
|
||||
+#define R_ARM_REL32_NOI 56
|
||||
+#define R_ARM_ALU_PC_G0_NC 57
|
||||
+#define R_ARM_ALU_PC_G0 58
|
||||
+#define R_ARM_ALU_PC_G1_NC 59
|
||||
+#define R_ARM_ALU_PC_G1 60
|
||||
+#define R_ARM_ALU_PC_G2 61
|
||||
+#define R_ARM_LDR_PC_G1 62
|
||||
+#define R_ARM_LDR_PC_G2 63
|
||||
+#define R_ARM_LDRS_PC_G0 64
|
||||
+#define R_ARM_LDRS_PC_G1 65
|
||||
+#define R_ARM_LDRS_PC_G2 66
|
||||
+#define R_ARM_LDC_PC_G0 67
|
||||
+#define R_ARM_LDC_PC_G1 68
|
||||
+#define R_ARM_LDC_PC_G2 69
|
||||
+#define R_ARM_ALU_SB_G0_NC 70
|
||||
+#define R_ARM_ALU_SB_G0 71
|
||||
+#define R_ARM_ALU_SB_G1_NC 72
|
||||
+#define R_ARM_ALU_SB_G1 73
|
||||
+#define R_ARM_ALU_SB_G2 74
|
||||
+#define R_ARM_LDR_SB_G0 75
|
||||
+#define R_ARM_LDR_SB_G1 76
|
||||
+#define R_ARM_LDR_SB_G2 77
|
||||
+#define R_ARM_LDRS_SB_G0 78
|
||||
+#define R_ARM_LDRS_SB_G1 79
|
||||
+#define R_ARM_LDRS_SB_G2 80
|
||||
+#define R_ARM_LDC_G0 81
|
||||
+#define R_ARM_LDC_G1 82
|
||||
+#define R_ARM_LDC_G2 83
|
||||
+#define R_ARM_MOVW_BREL_NC 84
|
||||
+#define R_ARM_MOVT_BREL 85
|
||||
+#define R_ARM_MOVW_BREL 86
|
||||
+#define R_ARM_THM_MOVW_BREL_NC 87
|
||||
+#define R_ARM_THM_MOVT_BREL 88
|
||||
+#define R_ARM_THM_MOVW_BREL 89
|
||||
+/* 90-93 unallocated */
|
||||
+#define R_ARM_PLT32_ABS 94
|
||||
+#define R_ARM_GOT_ABS 95
|
||||
+#define R_ARM_GOT_PREL 96
|
||||
+#define R_ARM_GOT_BREL12 97
|
||||
+#define R_ARM_GOTOFF12 98
|
||||
+#define R_ARM_GOTRELAX 99
|
||||
#define R_ARM_GNU_VTENTRY 100
|
||||
#define R_ARM_GNU_VTINHERIT 101
|
||||
#define R_ARM_THM_PC11 102 /* thumb unconditional branch */
|
||||
@@ -2364,6 +2437,12 @@
|
||||
static TLS block offset */
|
||||
#define R_ARM_TLS_LE32 108 /* 32 bit offset relative to static
|
||||
TLS block */
|
||||
+#define R_ARM_TLS_LDO12 109
|
||||
+#define R_ARM_TLS_LE12 110
|
||||
+#define R_ARM_TLS_IE12GP 111
|
||||
+/* 112 - 127 private range */
|
||||
+#define R_ARM_ME_TOO 128 /* obsolete */
|
||||
+
|
||||
#define R_ARM_RXPC25 249
|
||||
#define R_ARM_RSBREL32 250
|
||||
#define R_ARM_THM_RPC22 251
|
||||
Index: elfutils-0.146/backends/libebl_arm.h
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ elfutils-0.146/backends/libebl_arm.h 2010-04-24 10:11:13.000000000 +0000
|
||||
@@ -0,0 +1,9 @@
|
||||
+#ifndef _LIBEBL_ARM_H
|
||||
+#define _LIBEBL_ARM_H 1
|
||||
+
|
||||
+#include <libdw.h>
|
||||
+
|
||||
+extern int arm_return_value_location_soft(Dwarf_Die *, const Dwarf_Op **locp);
|
||||
+extern int arm_return_value_location_hard(Dwarf_Die *, const Dwarf_Op **locp);
|
||||
+
|
||||
+#endif
|
||||
@@ -0,0 +1,337 @@
|
||||
Generated by copying the whole dir, running `sh debian/autogen.sh` and diffing.
|
||||
|
||||
Index: elfutils-0.148/backends/Makefile.in
|
||||
===================================================================
|
||||
--- elfutils-0.148.orig/backends/Makefile.in 2010-07-03 13:07:10.000000000 +0000
|
||||
+++ elfutils-0.148/backends/Makefile.in 2010-07-03 13:13:52.000000000 +0000
|
||||
@@ -77,39 +77,54 @@
|
||||
am__objects_4 = ia64_init.$(OBJEXT) ia64_symbol.$(OBJEXT) \
|
||||
ia64_regs.$(OBJEXT) ia64_retval.$(OBJEXT)
|
||||
libebl_ia64_pic_a_OBJECTS = $(am_libebl_ia64_pic_a_OBJECTS)
|
||||
+libebl_m68k_pic_a_AR = $(AR) $(ARFLAGS)
|
||||
+libebl_m68k_pic_a_LIBADD =
|
||||
+am__objects_5 = m68k_init.$(OBJEXT) m68k_symbol.$(OBJEXT) \
|
||||
+ m68k_regs.$(OBJEXT)
|
||||
+libebl_m68k_pic_a_OBJECTS = $(am_libebl_m68k_pic_a_OBJECTS)
|
||||
+libebl_mips_pic_a_AR = $(AR) $(ARFLAGS)
|
||||
+libebl_mips_pic_a_LIBADD =
|
||||
+am__objects_6 = mips_init.$(OBJEXT) mips_symbol.$(OBJEXT) \
|
||||
+ mips_regs.$(OBJEXT) mips_retval.$(OBJEXT)
|
||||
+libebl_mips_pic_a_OBJECTS = $(am_libebl_mips_pic_a_OBJECTS)
|
||||
+libebl_parisc_pic_a_AR = $(AR) $(ARFLAGS)
|
||||
+libebl_parisc_pic_a_LIBADD =
|
||||
+am__objects_7 = parisc_init.$(OBJEXT) parisc_symbol.$(OBJEXT) \
|
||||
+ parisc_regs.$(OBJEXT) parisc_retval.$(OBJEXT)
|
||||
+libebl_parisc_pic_a_OBJECTS = $(am_libebl_parisc_pic_a_OBJECTS)
|
||||
libebl_ppc64_pic_a_AR = $(AR) $(ARFLAGS)
|
||||
libebl_ppc64_pic_a_LIBADD =
|
||||
-am__objects_5 = ppc64_init.$(OBJEXT) ppc64_symbol.$(OBJEXT) \
|
||||
+am__objects_8 = ppc64_init.$(OBJEXT) ppc64_symbol.$(OBJEXT) \
|
||||
ppc64_retval.$(OBJEXT) ppc64_corenote.$(OBJEXT) \
|
||||
ppc_regs.$(OBJEXT) ppc_auxv.$(OBJEXT) ppc_attrs.$(OBJEXT) \
|
||||
ppc_syscall.$(OBJEXT)
|
||||
libebl_ppc64_pic_a_OBJECTS = $(am_libebl_ppc64_pic_a_OBJECTS)
|
||||
libebl_ppc_pic_a_AR = $(AR) $(ARFLAGS)
|
||||
libebl_ppc_pic_a_LIBADD =
|
||||
-am__objects_6 = ppc_init.$(OBJEXT) ppc_symbol.$(OBJEXT) \
|
||||
+am__objects_9 = ppc_init.$(OBJEXT) ppc_symbol.$(OBJEXT) \
|
||||
ppc_retval.$(OBJEXT) ppc_regs.$(OBJEXT) ppc_corenote.$(OBJEXT) \
|
||||
ppc_auxv.$(OBJEXT) ppc_attrs.$(OBJEXT) ppc_syscall.$(OBJEXT)
|
||||
libebl_ppc_pic_a_OBJECTS = $(am_libebl_ppc_pic_a_OBJECTS)
|
||||
libebl_s390_pic_a_AR = $(AR) $(ARFLAGS)
|
||||
libebl_s390_pic_a_LIBADD =
|
||||
-am__objects_7 = s390_init.$(OBJEXT) s390_symbol.$(OBJEXT) \
|
||||
+am__objects_10 = s390_init.$(OBJEXT) s390_symbol.$(OBJEXT) \
|
||||
s390_regs.$(OBJEXT) s390_retval.$(OBJEXT)
|
||||
libebl_s390_pic_a_OBJECTS = $(am_libebl_s390_pic_a_OBJECTS)
|
||||
libebl_sh_pic_a_AR = $(AR) $(ARFLAGS)
|
||||
libebl_sh_pic_a_LIBADD =
|
||||
-am__objects_8 = sh_init.$(OBJEXT) sh_symbol.$(OBJEXT) \
|
||||
+am__objects_11 = sh_init.$(OBJEXT) sh_symbol.$(OBJEXT) \
|
||||
sh_corenote.$(OBJEXT) sh_regs.$(OBJEXT) sh_retval.$(OBJEXT)
|
||||
libebl_sh_pic_a_OBJECTS = $(am_libebl_sh_pic_a_OBJECTS)
|
||||
libebl_sparc_pic_a_AR = $(AR) $(ARFLAGS)
|
||||
libebl_sparc_pic_a_LIBADD =
|
||||
-am__objects_9 = sparc_init.$(OBJEXT) sparc_symbol.$(OBJEXT) \
|
||||
+am__objects_12 = sparc_init.$(OBJEXT) sparc_symbol.$(OBJEXT) \
|
||||
sparc_regs.$(OBJEXT) sparc_retval.$(OBJEXT) \
|
||||
sparc_corenote.$(OBJEXT) sparc64_corenote.$(OBJEXT) \
|
||||
sparc_auxv.$(OBJEXT)
|
||||
libebl_sparc_pic_a_OBJECTS = $(am_libebl_sparc_pic_a_OBJECTS)
|
||||
libebl_x86_64_pic_a_AR = $(AR) $(ARFLAGS)
|
||||
libebl_x86_64_pic_a_LIBADD =
|
||||
-am__objects_10 = x86_64_init.$(OBJEXT) x86_64_symbol.$(OBJEXT) \
|
||||
+am__objects_13 = x86_64_init.$(OBJEXT) x86_64_symbol.$(OBJEXT) \
|
||||
x86_64_corenote.$(OBJEXT) x86_64_cfi.$(OBJEXT) \
|
||||
x86_64_retval.$(OBJEXT) x86_64_regs.$(OBJEXT) \
|
||||
i386_auxv.$(OBJEXT) x86_64_syscall.$(OBJEXT)
|
||||
@@ -124,15 +139,18 @@
|
||||
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
|
||||
SOURCES = $(libebl_alpha_pic_a_SOURCES) $(libebl_arm_pic_a_SOURCES) \
|
||||
$(libebl_i386_pic_a_SOURCES) $(libebl_ia64_pic_a_SOURCES) \
|
||||
- $(libebl_ppc64_pic_a_SOURCES) $(libebl_ppc_pic_a_SOURCES) \
|
||||
- $(libebl_s390_pic_a_SOURCES) $(libebl_sh_pic_a_SOURCES) \
|
||||
- $(libebl_sparc_pic_a_SOURCES) $(libebl_x86_64_pic_a_SOURCES)
|
||||
-DIST_SOURCES = $(libebl_alpha_pic_a_SOURCES) \
|
||||
- $(libebl_arm_pic_a_SOURCES) $(libebl_i386_pic_a_SOURCES) \
|
||||
- $(libebl_ia64_pic_a_SOURCES) $(libebl_ppc64_pic_a_SOURCES) \
|
||||
+ $(libebl_m68k_pic_a_SOURCES) $(libebl_mips_pic_a_SOURCES) \
|
||||
+ $(libebl_parisc_pic_a_SOURCES) $(libebl_ppc64_pic_a_SOURCES) \
|
||||
$(libebl_ppc_pic_a_SOURCES) $(libebl_s390_pic_a_SOURCES) \
|
||||
$(libebl_sh_pic_a_SOURCES) $(libebl_sparc_pic_a_SOURCES) \
|
||||
$(libebl_x86_64_pic_a_SOURCES)
|
||||
+DIST_SOURCES = $(libebl_alpha_pic_a_SOURCES) \
|
||||
+ $(libebl_arm_pic_a_SOURCES) $(libebl_i386_pic_a_SOURCES) \
|
||||
+ $(libebl_ia64_pic_a_SOURCES) $(libebl_m68k_pic_a_SOURCES) \
|
||||
+ $(libebl_mips_pic_a_SOURCES) $(libebl_parisc_pic_a_SOURCES) \
|
||||
+ $(libebl_ppc64_pic_a_SOURCES) $(libebl_ppc_pic_a_SOURCES) \
|
||||
+ $(libebl_s390_pic_a_SOURCES) $(libebl_sh_pic_a_SOURCES) \
|
||||
+ $(libebl_sparc_pic_a_SOURCES) $(libebl_x86_64_pic_a_SOURCES)
|
||||
DATA = $(noinst_DATA)
|
||||
HEADERS = $(noinst_HEADERS)
|
||||
ETAGS = etags
|
||||
@@ -270,11 +288,12 @@
|
||||
CLEANFILES = *.gcno *.gcda $(foreach m,$(modules), libebl_$(m).map \
|
||||
libebl_$(m).so $(am_libebl_$(m)_pic_a_OBJECTS))
|
||||
textrel_check = if readelf -d $@ | fgrep -q TEXTREL; then exit 1; fi
|
||||
-modules = i386 sh x86_64 ia64 alpha arm sparc ppc ppc64 s390
|
||||
+modules = i386 sh x86_64 ia64 alpha arm sparc ppc ppc64 s390 parisc mips m68k
|
||||
libebl_pic = libebl_i386_pic.a libebl_sh_pic.a libebl_x86_64_pic.a \
|
||||
libebl_ia64_pic.a libebl_alpha_pic.a libebl_arm_pic.a \
|
||||
libebl_sparc_pic.a libebl_ppc_pic.a libebl_ppc64_pic.a \
|
||||
- libebl_s390_pic.a
|
||||
+ libebl_s390_pic.a libebl_parisc_pic.a libebl_mips_pic.a \
|
||||
+ libebl_m68k_pic.a
|
||||
|
||||
noinst_LIBRARIES = $(libebl_pic)
|
||||
noinst_DATA = $(libebl_pic:_pic.a=.so)
|
||||
@@ -328,6 +347,15 @@
|
||||
s390_SRCS = s390_init.c s390_symbol.c s390_regs.c s390_retval.c
|
||||
libebl_s390_pic_a_SOURCES = $(s390_SRCS)
|
||||
am_libebl_s390_pic_a_OBJECTS = $(s390_SRCS:.c=.os)
|
||||
+parisc_SRCS = parisc_init.c parisc_symbol.c parisc_regs.c parisc_retval.c
|
||||
+libebl_parisc_pic_a_SOURCES = $(parisc_SRCS)
|
||||
+am_libebl_parisc_pic_a_OBJECTS = $(parisc_SRCS:.c=.os)
|
||||
+mips_SRCS = mips_init.c mips_symbol.c mips_regs.c mips_retval.c
|
||||
+libebl_mips_pic_a_SOURCES = $(mips_SRCS)
|
||||
+am_libebl_mips_pic_a_OBJECTS = $(mips_SRCS:.c=.os)
|
||||
+m68k_SRCS = m68k_init.c m68k_symbol.c m68k_regs.c
|
||||
+libebl_m68k_pic_a_SOURCES = $(m68k_SRCS)
|
||||
+am_libebl_m68k_pic_a_OBJECTS = $(m68k_SRCS:.c=.os)
|
||||
noinst_HEADERS = libebl_CPU.h common-reloc.c linux-core-note.c x86_corenote.c
|
||||
EXTRA_DIST = $(foreach m,$(modules),$($(m)_SRCS)) $(modules:=_reloc.def)
|
||||
all: all-am
|
||||
@@ -383,6 +411,18 @@
|
||||
-rm -f libebl_ia64_pic.a
|
||||
$(libebl_ia64_pic_a_AR) libebl_ia64_pic.a $(libebl_ia64_pic_a_OBJECTS) $(libebl_ia64_pic_a_LIBADD)
|
||||
$(RANLIB) libebl_ia64_pic.a
|
||||
+libebl_m68k_pic.a: $(libebl_m68k_pic_a_OBJECTS) $(libebl_m68k_pic_a_DEPENDENCIES)
|
||||
+ -rm -f libebl_m68k_pic.a
|
||||
+ $(libebl_m68k_pic_a_AR) libebl_m68k_pic.a $(libebl_m68k_pic_a_OBJECTS) $(libebl_m68k_pic_a_LIBADD)
|
||||
+ $(RANLIB) libebl_m68k_pic.a
|
||||
+libebl_mips_pic.a: $(libebl_mips_pic_a_OBJECTS) $(libebl_mips_pic_a_DEPENDENCIES)
|
||||
+ -rm -f libebl_mips_pic.a
|
||||
+ $(libebl_mips_pic_a_AR) libebl_mips_pic.a $(libebl_mips_pic_a_OBJECTS) $(libebl_mips_pic_a_LIBADD)
|
||||
+ $(RANLIB) libebl_mips_pic.a
|
||||
+libebl_parisc_pic.a: $(libebl_parisc_pic_a_OBJECTS) $(libebl_parisc_pic_a_DEPENDENCIES)
|
||||
+ -rm -f libebl_parisc_pic.a
|
||||
+ $(libebl_parisc_pic_a_AR) libebl_parisc_pic.a $(libebl_parisc_pic_a_OBJECTS) $(libebl_parisc_pic_a_LIBADD)
|
||||
+ $(RANLIB) libebl_parisc_pic.a
|
||||
libebl_ppc64_pic.a: $(libebl_ppc64_pic_a_OBJECTS) $(libebl_ppc64_pic_a_DEPENDENCIES)
|
||||
-rm -f libebl_ppc64_pic.a
|
||||
$(libebl_ppc64_pic_a_AR) libebl_ppc64_pic.a $(libebl_ppc64_pic_a_OBJECTS) $(libebl_ppc64_pic_a_LIBADD)
|
||||
@@ -439,6 +479,17 @@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ia64_regs.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ia64_retval.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ia64_symbol.Po@am__quote@
|
||||
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m68k_init.Po@am__quote@
|
||||
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m68k_regs.Po@am__quote@
|
||||
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m68k_symbol.Po@am__quote@
|
||||
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mips_init.Po@am__quote@
|
||||
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mips_regs.Po@am__quote@
|
||||
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mips_retval.Po@am__quote@
|
||||
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mips_symbol.Po@am__quote@
|
||||
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/parisc_init.Po@am__quote@
|
||||
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/parisc_regs.Po@am__quote@
|
||||
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/parisc_retval.Po@am__quote@
|
||||
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/parisc_symbol.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ppc64_corenote.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ppc64_init.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ppc64_retval.Po@am__quote@
|
||||
Index: elfutils-0.148/configure
|
||||
===================================================================
|
||||
--- elfutils-0.148.orig/configure 2010-07-03 13:06:16.000000000 +0000
|
||||
+++ elfutils-0.148/configure 2010-07-03 13:13:49.000000000 +0000
|
||||
@@ -602,6 +602,8 @@
|
||||
base_cpu
|
||||
NATIVE_LD_FALSE
|
||||
NATIVE_LD_TRUE
|
||||
+LD_AS_NEEDED
|
||||
+WEXTRA
|
||||
LEXLIB
|
||||
LEX_OUTPUT_ROOT
|
||||
LEX
|
||||
@@ -3852,6 +3854,130 @@
|
||||
as_fn_error "gcc with C99 support required" "$LINENO" 5
|
||||
fi
|
||||
|
||||
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for -Wextra option to $CC" >&5
|
||||
+$as_echo_n "checking for -Wextra option to $CC... " >&6; }
|
||||
+if test "${ac_cv_cc_wextra+set}" = set; then :
|
||||
+ $as_echo_n "(cached) " >&6
|
||||
+else
|
||||
+ old_CFLAGS="$CFLAGS"
|
||||
+CFLAGS="$CFLAGS -Wextra"
|
||||
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
+/* end confdefs.h. */
|
||||
+void foo (void) { }
|
||||
+_ACEOF
|
||||
+if ac_fn_c_try_compile "$LINENO"; then :
|
||||
+ ac_cv_cc_wextra=yes
|
||||
+else
|
||||
+ ac_cv_cc_wextra=no
|
||||
+fi
|
||||
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
|
||||
+CFLAGS="$old_CFLAGS"
|
||||
+fi
|
||||
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cc_wextra" >&5
|
||||
+$as_echo "$ac_cv_cc_wextra" >&6; }
|
||||
+
|
||||
+if test "x$ac_cv_cc_wextra" = xyes; then :
|
||||
+ WEXTRA=-Wextra
|
||||
+else
|
||||
+ WEXTRA=-W
|
||||
+fi
|
||||
+
|
||||
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for -fgnu89-inline option to $CC" >&5
|
||||
+$as_echo_n "checking for -fgnu89-inline option to $CC... " >&6; }
|
||||
+if test "${ac_cv_cc_gnu89_inline+set}" = set; then :
|
||||
+ $as_echo_n "(cached) " >&6
|
||||
+else
|
||||
+ old_CFLAGS="$CFLAGS"
|
||||
+CFLAGS="$CFLAGS -fgnu89-inline -Werror"
|
||||
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
+/* end confdefs.h. */
|
||||
+
|
||||
+void foo (void)
|
||||
+{
|
||||
+ inline void bar (void) {}
|
||||
+ bar ();
|
||||
+}
|
||||
+extern inline void baz (void) {}
|
||||
+
|
||||
+_ACEOF
|
||||
+if ac_fn_c_try_compile "$LINENO"; then :
|
||||
+ ac_cv_cc_gnu89_inline=yes
|
||||
+else
|
||||
+ ac_cv_cc_gnu89_inline=no
|
||||
+fi
|
||||
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
|
||||
+CFLAGS="$old_CFLAGS"
|
||||
+fi
|
||||
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cc_gnu89_inline" >&5
|
||||
+$as_echo "$ac_cv_cc_gnu89_inline" >&6; }
|
||||
+if test "x$ac_cv_cc_gnu89_inline" = xyes; then :
|
||||
+ WEXTRA="${WEXTRA:+$WEXTRA }-fgnu89-inline"
|
||||
+fi
|
||||
+
|
||||
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --as-needed linker option" >&5
|
||||
+$as_echo_n "checking for --as-needed linker option... " >&6; }
|
||||
+if test "${ac_cv_as_needed+set}" = set; then :
|
||||
+ $as_echo_n "(cached) " >&6
|
||||
+else
|
||||
+ cat > conftest.c <<EOF
|
||||
+int main (void) { return 0; }
|
||||
+EOF
|
||||
+if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
|
||||
+ -fPIC -shared -o conftest.so conftest.c
|
||||
+ -Wl,--as-needed 1>&5'
|
||||
+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
|
||||
+ (eval $ac_try) 2>&5
|
||||
+ ac_status=$?
|
||||
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
|
||||
+ test $ac_status = 0; }; }
|
||||
+then
|
||||
+ ac_cv_as_needed=yes
|
||||
+else
|
||||
+ ac_cv_as_needed=no
|
||||
+fi
|
||||
+rm -f conftest*
|
||||
+fi
|
||||
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_as_needed" >&5
|
||||
+$as_echo "$ac_cv_as_needed" >&6; }
|
||||
+if test "x$ac_cv_as_needed" = xyes; then :
|
||||
+ LD_AS_NEEDED=-Wl,--as-needed
|
||||
+else
|
||||
+ LD_AS_NEEDED=
|
||||
+fi
|
||||
+
|
||||
+
|
||||
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for __builtin_popcount" >&5
|
||||
+$as_echo_n "checking for __builtin_popcount... " >&6; }
|
||||
+if test "${ac_cv_popcount+set}" = set; then :
|
||||
+ $as_echo_n "(cached) " >&6
|
||||
+else
|
||||
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
+/* end confdefs.h. */
|
||||
+
|
||||
+int
|
||||
+main ()
|
||||
+{
|
||||
+exit (__builtin_popcount (127));
|
||||
+ ;
|
||||
+ return 0;
|
||||
+}
|
||||
+_ACEOF
|
||||
+if ac_fn_c_try_link "$LINENO"; then :
|
||||
+ ac_cv_popcount=yes
|
||||
+else
|
||||
+ ac_cv_popcount=no
|
||||
+fi
|
||||
+rm -f core conftest.err conftest.$ac_objext \
|
||||
+ conftest$ac_exeext conftest.$ac_ext
|
||||
+fi
|
||||
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_popcount" >&5
|
||||
+$as_echo "$ac_cv_popcount" >&6; }
|
||||
+if test "x$ac_cv_popcount" = xyes; then :
|
||||
+
|
||||
+$as_echo "#define HAVE_BUILTIN_POPCOUNT 1" >>confdefs.h
|
||||
+
|
||||
+fi
|
||||
+
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for __thread support" >&5
|
||||
$as_echo_n "checking for __thread support... " >&6; }
|
||||
if test "${ac_cv_tls+set}" = set; then :
|
||||
@@ -3888,7 +4014,13 @@
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_tls" >&5
|
||||
$as_echo "$ac_cv_tls" >&6; }
|
||||
if test "x$ac_cv_tls" != xyes; then :
|
||||
- as_fn_error "__thread support required" "$LINENO" 5
|
||||
+ if test "$use_locks" = yes; then :
|
||||
+ as_fn_error "--enable-thread-safety requires __thread support" "$LINENO" 5
|
||||
+else
|
||||
+
|
||||
+$as_echo "#define __thread /* empty: no multi-thread support */" >>confdefs.h
|
||||
+
|
||||
+fi
|
||||
fi
|
||||
|
||||
# Check whether --enable-largefile was given.
|
||||
@@ -4874,7 +5006,7 @@
|
||||
|
||||
# 1.234<whatever> -> 1234<whatever>
|
||||
case "$PACKAGE_VERSION" in
|
||||
-[0-9].*) eu_version="${PACKAGE_VERSION/./}" ;;
|
||||
+[0-9].*) eu_version=`echo "$PACKAGE_VERSION" | sed 's@\.@@'` ;;
|
||||
*) as_fn_error "confused by version number '$PACKAGE_VERSION'" "$LINENO" 5 ;;
|
||||
esac
|
||||
case "$eu_version" in
|
||||
@@ -4903,7 +5035,7 @@
|
||||
esac
|
||||
|
||||
# Round up to the next release API (x.y) version.
|
||||
-eu_version=$[($eu_version + 999) / 1000]
|
||||
+eu_version=`expr \( $eu_version + 999 \) / 1000`
|
||||
|
||||
cat >confcache <<\_ACEOF
|
||||
# This file is a shell script that caches the results of configure
|
||||
@@ -0,0 +1,69 @@
|
||||
Index: elfutils-0.146/libelf/elf.h
|
||||
===================================================================
|
||||
--- elfutils-0.146.orig/libelf/elf.h 2010-04-24 10:13:50.000000000 +0000
|
||||
+++ elfutils-0.146/libelf/elf.h 2010-04-24 10:22:43.000000000 +0000
|
||||
@@ -143,6 +143,7 @@
|
||||
#define ELFOSABI_HPUX 1 /* HP-UX */
|
||||
#define ELFOSABI_NETBSD 2 /* NetBSD. */
|
||||
#define ELFOSABI_LINUX 3 /* Linux. */
|
||||
+#define ELFOSABI_HURD 4 /* GNU/Hurd */
|
||||
#define ELFOSABI_SOLARIS 6 /* Sun Solaris. */
|
||||
#define ELFOSABI_AIX 7 /* IBM AIX. */
|
||||
#define ELFOSABI_IRIX 8 /* SGI Irix. */
|
||||
@@ -150,8 +151,13 @@
|
||||
#define ELFOSABI_TRU64 10 /* Compaq TRU64 UNIX. */
|
||||
#define ELFOSABI_MODESTO 11 /* Novell Modesto. */
|
||||
#define ELFOSABI_OPENBSD 12 /* OpenBSD. */
|
||||
+#define ELFOSABI_OPENVMS 13 /* OpenVMS */
|
||||
+#define ELFOSABI_NSK 14 /* Hewlett-Packard Non-Stop Kernel */
|
||||
+#define ELFOSABI_AROS 15 /* Amiga Research OS */
|
||||
+/* 64-255 Architecture-specific value range */
|
||||
#define ELFOSABI_ARM_AEABI 64 /* ARM EABI */
|
||||
#define ELFOSABI_ARM 97 /* ARM */
|
||||
+/* This is deprecated? It's not in the latest version anymore. */
|
||||
#define ELFOSABI_STANDALONE 255 /* Standalone (embedded) application */
|
||||
|
||||
#define EI_ABIVERSION 8 /* ABI version */
|
||||
@@ -206,7 +212,7 @@
|
||||
#define EM_H8_300H 47 /* Hitachi H8/300H */
|
||||
#define EM_H8S 48 /* Hitachi H8S */
|
||||
#define EM_H8_500 49 /* Hitachi H8/500 */
|
||||
-#define EM_IA_64 50 /* Intel Merced */
|
||||
+#define EM_IA_64 50 /* Intel IA64 */
|
||||
#define EM_MIPS_X 51 /* Stanford MIPS-X */
|
||||
#define EM_COLDFIRE 52 /* Motorola Coldfire */
|
||||
#define EM_68HC12 53 /* Motorola M68HC12 */
|
||||
@@ -220,7 +226,8 @@
|
||||
#define EM_TINYJ 61 /* Advanced Logic Corp. Tinyj emb.fam*/
|
||||
#define EM_X86_64 62 /* AMD x86-64 architecture */
|
||||
#define EM_PDSP 63 /* Sony DSP Processor */
|
||||
-
|
||||
+#define EM_PDP10 64 /* Digital Equipment Corp. PDP-10 */
|
||||
+#define EM_PDP11 65 /* Digital Equipment Corp. PDP-11 */
|
||||
#define EM_FX66 66 /* Siemens FX66 microcontroller */
|
||||
#define EM_ST9PLUS 67 /* STMicroelectronics ST9+ 8/16 mc */
|
||||
#define EM_ST7 68 /* STmicroelectronics ST7 8 bit mc */
|
||||
@@ -250,7 +257,22 @@
|
||||
#define EM_OPENRISC 92 /* OpenRISC 32-bit embedded processor */
|
||||
#define EM_ARC_A5 93 /* ARC Cores Tangent-A5 */
|
||||
#define EM_XTENSA 94 /* Tensilica Xtensa Architecture */
|
||||
-#define EM_NUM 95
|
||||
+#define EM_VIDEOCORE 95 /* Alphamosaic VideoCore processor */
|
||||
+#define EM_TMM_GPP 96 /* Thompson Multimedia General Purpose Processor */
|
||||
+#define EM_NS32K 97 /* National Semiconductor 32000 series */
|
||||
+#define EM_TPC 98 /* Tenor Network TPC processor */
|
||||
+#define EM_SNP1K 99 /* Trebia SNP 1000 processor */
|
||||
+#define EM_ST200 100 /* STMicroelectronics (www.st.com) ST200 microcontroller */
|
||||
+#define EM_IP2K 101 /* Ubicom IP2XXX microcontroller family */
|
||||
+#define EM_MAX 102 /* MAX Processor */
|
||||
+#define EM_CR 103 /* National Semiconductor CompactRISC */
|
||||
+#define EM_F2MC16 104 /* Fujitsu F2MC16 */
|
||||
+#define EM_MSP430 105 /* TI msp430 micro controller */
|
||||
+#define EM_BLACKFIN 106 /* Analog Devices Blackfin (DSP) processor */
|
||||
+#define EM_SE_C33 107 /* S1C33 Family of Seiko Epson processors */
|
||||
+#define EM_SEP 108 /* Sharp embedded microprocessor */
|
||||
+#define EM_ARCA 109 /* Arca RISC Microprocessor */
|
||||
+#define EM_NUM 110
|
||||
|
||||
/* If it is necessary to assign new unofficial EM_* values, please
|
||||
pick large random numbers (0x8523, 0xa7f2, etc.) to minimize the
|
||||
@@ -0,0 +1,37 @@
|
||||
The ELF_T_LIB and ELF_T_GNUHASH sizes were missing from fsize table.
|
||||
|
||||
This could cause a failure in the elf*_xlatetof function.
|
||||
|
||||
diff -ur elfutils-0.148.orig/libelf/exttypes.h elfutils-0.148/libelf/exttypes.h
|
||||
--- elfutils-0.148.orig/libelf/exttypes.h 2009-01-08 12:56:37.000000000 -0800
|
||||
+++ elfutils-0.148/libelf/exttypes.h 2010-08-18 14:00:33.000000000 -0700
|
||||
@@ -94,6 +94,7 @@
|
||||
Vernaux32 (Ext_);
|
||||
Syminfo32 (Ext_);
|
||||
Move32 (Ext_);
|
||||
+Lib32 (Ext_);
|
||||
auxv_t32 (Ext_);
|
||||
|
||||
Ehdr64 (Ext_);
|
||||
@@ -110,6 +111,7 @@
|
||||
Vernaux64 (Ext_);
|
||||
Syminfo64 (Ext_);
|
||||
Move64 (Ext_);
|
||||
+Lib64 (Ext_);
|
||||
auxv_t64 (Ext_);
|
||||
|
||||
#undef START
|
||||
diff -ur elfutils-0.148.orig/libelf/gelf_fsize.c elfutils-0.148/libelf/gelf_fsize.c
|
||||
--- elfutils-0.148.orig/libelf/gelf_fsize.c 2009-01-08 12:56:37.000000000 -0800
|
||||
+++ elfutils-0.148/libelf/gelf_fsize.c 2010-08-18 14:11:57.000000000 -0700
|
||||
@@ -87,7 +87,9 @@
|
||||
[ELF_T_NHDR] = sizeof (ElfW2(LIBELFBITS, Ext_Nhdr)), \
|
||||
[ELF_T_SYMINFO] = sizeof (ElfW2(LIBELFBITS, Ext_Syminfo)), \
|
||||
[ELF_T_MOVE] = sizeof (ElfW2(LIBELFBITS, Ext_Move)), \
|
||||
- [ELF_T_AUXV] = sizeof (ElfW2(LIBELFBITS, Ext_auxv_t))
|
||||
+ [ELF_T_LIB] = sizeof (ElfW2(LIBELFBITS, Ext_Lib)), \
|
||||
+ [ELF_T_AUXV] = sizeof (ElfW2(LIBELFBITS, Ext_auxv_t)), \
|
||||
+ [ELF_T_GNUHASH] = ELFW2(LIBELFBITS, FSZ_WORD)
|
||||
TYPE_SIZES (32)
|
||||
},
|
||||
[ELFCLASS64 - 1] = {
|
||||
@@ -0,0 +1,799 @@
|
||||
Index: elfutils-0.146/backends/parisc_init.c
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ elfutils-0.146/backends/parisc_init.c 2010-04-24 10:10:50.000000000 +0000
|
||||
@@ -0,0 +1,74 @@
|
||||
+/* Initialization of PA-RISC specific backend library.
|
||||
+ Copyright (C) 2002, 2005, 2006 Red Hat, Inc.
|
||||
+ This file is part of Red Hat elfutils.
|
||||
+ Written by Ulrich Drepper <drepper@redhat.com>, 2002.
|
||||
+
|
||||
+ Red Hat elfutils is free software; you can redistribute it and/or modify
|
||||
+ it under the terms of the GNU General Public License as published by the
|
||||
+ Free Software Foundation; version 2 of the License.
|
||||
+
|
||||
+ Red Hat elfutils is distributed in the hope that it will be useful, but
|
||||
+ WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
+ General Public License for more details.
|
||||
+
|
||||
+ You should have received a copy of the GNU General Public License along
|
||||
+ with Red Hat elfutils; if not, write to the Free Software Foundation,
|
||||
+ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA.
|
||||
+
|
||||
+ Red Hat elfutils is an included package of the Open Invention Network.
|
||||
+ An included package of the Open Invention Network is a package for which
|
||||
+ Open Invention Network licensees cross-license their patents. No patent
|
||||
+ license is granted, either expressly or impliedly, by designation as an
|
||||
+ included package. Should you wish to participate in the Open Invention
|
||||
+ Network licensing program, please visit www.openinventionnetwork.com
|
||||
+ <http://www.openinventionnetwork.com>. */
|
||||
+
|
||||
+#ifdef HAVE_CONFIG_H
|
||||
+# include <config.h>
|
||||
+#endif
|
||||
+
|
||||
+#define BACKEND parisc_
|
||||
+#define RELOC_PREFIX R_PARISC_
|
||||
+#include "libebl_CPU.h"
|
||||
+#include "libebl_parisc.h"
|
||||
+
|
||||
+/* This defines the common reloc hooks based on parisc_reloc.def. */
|
||||
+#include "common-reloc.c"
|
||||
+
|
||||
+
|
||||
+const char *
|
||||
+parisc_init (elf, machine, eh, ehlen)
|
||||
+ Elf *elf __attribute__ ((unused));
|
||||
+ GElf_Half machine __attribute__ ((unused));
|
||||
+ Ebl *eh;
|
||||
+ size_t ehlen;
|
||||
+{
|
||||
+ int pa64 = 0;
|
||||
+
|
||||
+ /* Check whether the Elf_BH object has a sufficent size. */
|
||||
+ if (ehlen < sizeof (Ebl))
|
||||
+ return NULL;
|
||||
+
|
||||
+ if (elf) {
|
||||
+ GElf_Ehdr ehdr_mem;
|
||||
+ GElf_Ehdr *ehdr = gelf_getehdr (elf, &ehdr_mem);
|
||||
+ if (ehdr && (ehdr->e_flags & EF_PARISC_WIDE))
|
||||
+ pa64 = 1;
|
||||
+ }
|
||||
+ /* We handle it. */
|
||||
+ eh->name = "PA-RISC";
|
||||
+ parisc_init_reloc (eh);
|
||||
+ HOOK (eh, reloc_simple_type);
|
||||
+ HOOK (eh, machine_flag_check);
|
||||
+ HOOK (eh, symbol_type_name);
|
||||
+ HOOK (eh, segment_type_name);
|
||||
+ HOOK (eh, section_type_name);
|
||||
+ HOOK (eh, register_info);
|
||||
+ if (pa64)
|
||||
+ eh->return_value_location = parisc_return_value_location_64;
|
||||
+ else
|
||||
+ eh->return_value_location = parisc_return_value_location_32;
|
||||
+
|
||||
+ return MODVERSION;
|
||||
+}
|
||||
Index: elfutils-0.146/backends/parisc_regs.c
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ elfutils-0.146/backends/parisc_regs.c 2010-04-24 10:10:50.000000000 +0000
|
||||
@@ -0,0 +1,159 @@
|
||||
+/* Register names and numbers for PA-RISC DWARF.
|
||||
+ Copyright (C) 2005, 2006 Red Hat, Inc.
|
||||
+ This file is part of Red Hat elfutils.
|
||||
+
|
||||
+ Red Hat elfutils is free software; you can redistribute it and/or modify
|
||||
+ it under the terms of the GNU General Public License as published by the
|
||||
+ Free Software Foundation; version 2 of the License.
|
||||
+
|
||||
+ Red Hat elfutils is distributed in the hope that it will be useful, but
|
||||
+ WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
+ General Public License for more details.
|
||||
+
|
||||
+ You should have received a copy of the GNU General Public License along
|
||||
+ with Red Hat elfutils; if not, write to the Free Software Foundation,
|
||||
+ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA.
|
||||
+
|
||||
+ Red Hat elfutils is an included package of the Open Invention Network.
|
||||
+ An included package of the Open Invention Network is a package for which
|
||||
+ Open Invention Network licensees cross-license their patents. No patent
|
||||
+ license is granted, either expressly or impliedly, by designation as an
|
||||
+ included package. Should you wish to participate in the Open Invention
|
||||
+ Network licensing program, please visit www.openinventionnetwork.com
|
||||
+ <http://www.openinventionnetwork.com>. */
|
||||
+
|
||||
+#ifdef HAVE_CONFIG_H
|
||||
+# include <config.h>
|
||||
+#endif
|
||||
+
|
||||
+#include <string.h>
|
||||
+#include <dwarf.h>
|
||||
+
|
||||
+#define BACKEND parisc_
|
||||
+#include "libebl_CPU.h"
|
||||
+
|
||||
+ssize_t
|
||||
+parisc_register_info (Ebl *ebl, int regno, char *name, size_t namelen,
|
||||
+ const char **prefix, const char **setname,
|
||||
+ int *bits, int *type)
|
||||
+{
|
||||
+ int pa64 = 0;
|
||||
+
|
||||
+ if (ebl->elf) {
|
||||
+ GElf_Ehdr ehdr_mem;
|
||||
+ GElf_Ehdr *ehdr = gelf_getehdr (ebl->elf, &ehdr_mem);
|
||||
+ if (ehdr->e_flags & EF_PARISC_WIDE)
|
||||
+ pa64 = 1;
|
||||
+ }
|
||||
+
|
||||
+ int nregs = pa64 ? 127 : 128;
|
||||
+
|
||||
+ if (name == NULL)
|
||||
+ return nregs;
|
||||
+
|
||||
+ if (regno < 0 || regno >= nregs || namelen < 6)
|
||||
+ return -1;
|
||||
+
|
||||
+ *prefix = "%";
|
||||
+
|
||||
+ if (regno < 32)
|
||||
+ {
|
||||
+ *setname = "integer";
|
||||
+ *type = DW_ATE_signed;
|
||||
+ if (pa64)
|
||||
+ {
|
||||
+ *bits = 64;
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ *bits = 32;
|
||||
+ }
|
||||
+ }
|
||||
+ else if (regno == 32)
|
||||
+ {
|
||||
+ *setname = "special";
|
||||
+ if (pa64)
|
||||
+ {
|
||||
+ *bits = 6;
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ *bits = 5;
|
||||
+ }
|
||||
+ *type = DW_ATE_unsigned;
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ *setname = "FPU";
|
||||
+ *type = DW_ATE_float;
|
||||
+ if (pa64)
|
||||
+ {
|
||||
+ *bits = 64;
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ *bits = 32;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ if (regno < 33) {
|
||||
+ switch (regno)
|
||||
+ {
|
||||
+ case 0 ... 9:
|
||||
+ name[0] = 'r';
|
||||
+ name[1] = regno + '0';
|
||||
+ namelen = 2;
|
||||
+ break;
|
||||
+ case 10 ... 31:
|
||||
+ name[0] = 'r';
|
||||
+ name[1] = regno / 10 + '0';
|
||||
+ name[2] = regno % 10 + '0';
|
||||
+ namelen = 3;
|
||||
+ break;
|
||||
+ case 32:
|
||||
+ *prefix = NULL;
|
||||
+ name[0] = 'S';
|
||||
+ name[1] = 'A';
|
||||
+ name[2] = 'R';
|
||||
+ namelen = 3;
|
||||
+ break;
|
||||
+ }
|
||||
+ }
|
||||
+ else {
|
||||
+ if (pa64 && ((regno - 72) % 2)) {
|
||||
+ *setname = NULL;
|
||||
+ return 0;
|
||||
+ }
|
||||
+
|
||||
+ switch (regno)
|
||||
+ {
|
||||
+ case 72 + 0 ... 72 + 11:
|
||||
+ name[0] = 'f';
|
||||
+ name[1] = 'r';
|
||||
+ name[2] = (regno + 8 - 72) / 2 + '0';
|
||||
+ namelen = 3;
|
||||
+ if ((regno + 8 - 72) % 2) {
|
||||
+ name[3] = 'R';
|
||||
+ namelen++;
|
||||
+ }
|
||||
+ break;
|
||||
+ case 72 + 12 ... 72 + 55:
|
||||
+ name[0] = 'f';
|
||||
+ name[1] = 'r';
|
||||
+ name[2] = (regno + 8 - 72) / 2 / 10 + '0';
|
||||
+ name[3] = (regno + 8 - 72) / 2 % 10 + '0';
|
||||
+ namelen = 4;
|
||||
+ if ((regno + 8 - 72) % 2) {
|
||||
+ name[4] = 'R';
|
||||
+ namelen++;
|
||||
+ }
|
||||
+ break;
|
||||
+ default:
|
||||
+ *setname = NULL;
|
||||
+ return 0;
|
||||
+ }
|
||||
+ }
|
||||
+ name[namelen++] = '\0';
|
||||
+ return namelen;
|
||||
+}
|
||||
Index: elfutils-0.146/backends/parisc_reloc.def
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ elfutils-0.146/backends/parisc_reloc.def 2010-04-24 10:10:50.000000000 +0000
|
||||
@@ -0,0 +1,128 @@
|
||||
+/* List the relocation types for PA-RISC. -*- C -*-
|
||||
+ Copyright (C) 2005 Red Hat, Inc.
|
||||
+ This file is part of Red Hat elfutils.
|
||||
+
|
||||
+ Red Hat elfutils is free software; you can redistribute it and/or modify
|
||||
+ it under the terms of the GNU General Public License as published by the
|
||||
+ Free Software Foundation; version 2 of the License.
|
||||
+
|
||||
+ Red Hat elfutils is distributed in the hope that it will be useful, but
|
||||
+ WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
+ General Public License for more details.
|
||||
+
|
||||
+ You should have received a copy of the GNU General Public License along
|
||||
+ with Red Hat elfutils; if not, write to the Free Software Foundation,
|
||||
+ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA.
|
||||
+
|
||||
+ Red Hat elfutils is an included package of the Open Invention Network.
|
||||
+ An included package of the Open Invention Network is a package for which
|
||||
+ Open Invention Network licensees cross-license their patents. No patent
|
||||
+ license is granted, either expressly or impliedly, by designation as an
|
||||
+ included package. Should you wish to participate in the Open Invention
|
||||
+ Network licensing program, please visit www.openinventionnetwork.com
|
||||
+ <http://www.openinventionnetwork.com>. */
|
||||
+
|
||||
+/* NAME, REL|EXEC|DYN */
|
||||
+
|
||||
+RELOC_TYPE (NONE, EXEC|DYN)
|
||||
+RELOC_TYPE (DIR32, REL|EXEC|DYN)
|
||||
+RELOC_TYPE (DIR21L, REL|EXEC|DYN)
|
||||
+RELOC_TYPE (DIR17R, REL)
|
||||
+RELOC_TYPE (DIR17F, REL)
|
||||
+RELOC_TYPE (DIR14R, REL|DYN)
|
||||
+RELOC_TYPE (PCREL32, REL)
|
||||
+RELOC_TYPE (PCREL21L, REL)
|
||||
+RELOC_TYPE (PCREL17R, REL)
|
||||
+RELOC_TYPE (PCREL17F, REL)
|
||||
+RELOC_TYPE (PCREL14R, REL|EXEC)
|
||||
+RELOC_TYPE (DPREL21L, REL)
|
||||
+RELOC_TYPE (DPREL14WR, REL)
|
||||
+RELOC_TYPE (DPREL14DR, REL)
|
||||
+RELOC_TYPE (DPREL14R, REL)
|
||||
+RELOC_TYPE (GPREL21L, 0)
|
||||
+RELOC_TYPE (GPREL14R, 0)
|
||||
+RELOC_TYPE (LTOFF21L, REL)
|
||||
+RELOC_TYPE (LTOFF14R, REL)
|
||||
+RELOC_TYPE (DLTIND14F, 0)
|
||||
+RELOC_TYPE (SETBASE, 0)
|
||||
+RELOC_TYPE (SECREL32, REL)
|
||||
+RELOC_TYPE (BASEREL21L, 0)
|
||||
+RELOC_TYPE (BASEREL17R, 0)
|
||||
+RELOC_TYPE (BASEREL14R, 0)
|
||||
+RELOC_TYPE (SEGBASE, 0)
|
||||
+RELOC_TYPE (SEGREL32, REL)
|
||||
+RELOC_TYPE (PLTOFF21L, 0)
|
||||
+RELOC_TYPE (PLTOFF14R, 0)
|
||||
+RELOC_TYPE (PLTOFF14F, 0)
|
||||
+RELOC_TYPE (LTOFF_FPTR32, 0)
|
||||
+RELOC_TYPE (LTOFF_FPTR21L, 0)
|
||||
+RELOC_TYPE (LTOFF_FPTR14R, 0)
|
||||
+RELOC_TYPE (FPTR64, 0)
|
||||
+RELOC_TYPE (PLABEL32, REL|DYN)
|
||||
+RELOC_TYPE (PCREL64, 0)
|
||||
+RELOC_TYPE (PCREL22C, 0)
|
||||
+RELOC_TYPE (PCREL22F, 0)
|
||||
+RELOC_TYPE (PCREL14WR, 0)
|
||||
+RELOC_TYPE (PCREL14DR, 0)
|
||||
+RELOC_TYPE (PCREL16F, 0)
|
||||
+RELOC_TYPE (PCREL16WF, 0)
|
||||
+RELOC_TYPE (PCREL16DF, 0)
|
||||
+RELOC_TYPE (DIR64, REL|DYN)
|
||||
+RELOC_TYPE (DIR14WR, REL)
|
||||
+RELOC_TYPE (DIR14DR, REL)
|
||||
+RELOC_TYPE (DIR16F, REL)
|
||||
+RELOC_TYPE (DIR16WF, REL)
|
||||
+RELOC_TYPE (DIR16DF, REL)
|
||||
+RELOC_TYPE (GPREL64, 0)
|
||||
+RELOC_TYPE (GPREL14WR, 0)
|
||||
+RELOC_TYPE (GPREL14DR, 0)
|
||||
+RELOC_TYPE (GPREL16F, 0)
|
||||
+RELOC_TYPE (GPREL16WF, 0)
|
||||
+RELOC_TYPE (GPREL16DF, 0)
|
||||
+RELOC_TYPE (LTOFF64, 0)
|
||||
+RELOC_TYPE (LTOFF14WR, 0)
|
||||
+RELOC_TYPE (LTOFF14DR, 0)
|
||||
+RELOC_TYPE (LTOFF16F, 0)
|
||||
+RELOC_TYPE (LTOFF16WF, 0)
|
||||
+RELOC_TYPE (LTOFF16DF, 0)
|
||||
+RELOC_TYPE (SECREL64, 0)
|
||||
+RELOC_TYPE (BASEREL14WR, 0)
|
||||
+RELOC_TYPE (BASEREL14DR, 0)
|
||||
+RELOC_TYPE (SEGREL64, 0)
|
||||
+RELOC_TYPE (PLTOFF14WR, 0)
|
||||
+RELOC_TYPE (PLTOFF14DR, 0)
|
||||
+RELOC_TYPE (PLTOFF16F, 0)
|
||||
+RELOC_TYPE (PLTOFF16WF, 0)
|
||||
+RELOC_TYPE (PLTOFF16DF, 0)
|
||||
+RELOC_TYPE (LTOFF_FPTR64, 0)
|
||||
+RELOC_TYPE (LTOFF_FPTR14WR, 0)
|
||||
+RELOC_TYPE (LTOFF_FPTR14DR, 0)
|
||||
+RELOC_TYPE (LTOFF_FPTR16F, 0)
|
||||
+RELOC_TYPE (LTOFF_FPTR16WF, 0)
|
||||
+RELOC_TYPE (LTOFF_FPTR16DF, 0)
|
||||
+RELOC_TYPE (COPY, EXEC)
|
||||
+RELOC_TYPE (IPLT, EXEC|DYN)
|
||||
+RELOC_TYPE (EPLT, 0)
|
||||
+RELOC_TYPE (TPREL32, DYN)
|
||||
+RELOC_TYPE (TPREL21L, 0)
|
||||
+RELOC_TYPE (TPREL14R, 0)
|
||||
+RELOC_TYPE (LTOFF_TP21L, 0)
|
||||
+RELOC_TYPE (LTOFF_TP14R, 0)
|
||||
+RELOC_TYPE (LTOFF_TP14F, 0)
|
||||
+RELOC_TYPE (TPREL64, 0)
|
||||
+RELOC_TYPE (TPREL14WR, 0)
|
||||
+RELOC_TYPE (TPREL14DR, 0)
|
||||
+RELOC_TYPE (TPREL16F, 0)
|
||||
+RELOC_TYPE (TPREL16WF, 0)
|
||||
+RELOC_TYPE (TPREL16DF, 0)
|
||||
+RELOC_TYPE (LTOFF_TP64, 0)
|
||||
+RELOC_TYPE (LTOFF_TP14WR, 0)
|
||||
+RELOC_TYPE (LTOFF_TP14DR, 0)
|
||||
+RELOC_TYPE (LTOFF_TP16F, 0)
|
||||
+RELOC_TYPE (LTOFF_TP16WF, 0)
|
||||
+RELOC_TYPE (LTOFF_TP16DF, 0)
|
||||
+RELOC_TYPE (TLS_DTPMOD32, DYN)
|
||||
+RELOC_TYPE (TLS_DTPMOD64, DYN)
|
||||
+
|
||||
+#define NO_RELATIVE_RELOC 1
|
||||
Index: elfutils-0.146/backends/parisc_retval.c
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ elfutils-0.146/backends/parisc_retval.c 2010-04-24 10:10:50.000000000 +0000
|
||||
@@ -0,0 +1,213 @@
|
||||
+/* Function return value location for Linux/PA-RISC ABI.
|
||||
+ Copyright (C) 2005 Red Hat, Inc.
|
||||
+ This file is part of Red Hat elfutils.
|
||||
+
|
||||
+ Red Hat elfutils is free software; you can redistribute it and/or modify
|
||||
+ it under the terms of the GNU General Public License as published by the
|
||||
+ Free Software Foundation; version 2 of the License.
|
||||
+
|
||||
+ Red Hat elfutils is distributed in the hope that it will be useful, but
|
||||
+ WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
+ General Public License for more details.
|
||||
+
|
||||
+ You should have received a copy of the GNU General Public License along
|
||||
+ with Red Hat elfutils; if not, write to the Free Software Foundation,
|
||||
+ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA.
|
||||
+
|
||||
+ Red Hat elfutils is an included package of the Open Invention Network.
|
||||
+ An included package of the Open Invention Network is a package for which
|
||||
+ Open Invention Network licensees cross-license their patents. No patent
|
||||
+ license is granted, either expressly or impliedly, by designation as an
|
||||
+ included package. Should you wish to participate in the Open Invention
|
||||
+ Network licensing program, please visit www.openinventionnetwork.com
|
||||
+ <http://www.openinventionnetwork.com>. */
|
||||
+
|
||||
+#ifdef HAVE_CONFIG_H
|
||||
+# include <config.h>
|
||||
+#endif
|
||||
+
|
||||
+#include <assert.h>
|
||||
+#include <dwarf.h>
|
||||
+
|
||||
+#define BACKEND parisc_
|
||||
+#include "libebl_CPU.h"
|
||||
+#include "libebl_parisc.h"
|
||||
+
|
||||
+/* %r28, or pair %r28, %r29. */
|
||||
+static const Dwarf_Op loc_intreg32[] =
|
||||
+ {
|
||||
+ { .atom = DW_OP_reg28 }, { .atom = DW_OP_piece, .number = 4 },
|
||||
+ { .atom = DW_OP_reg29 }, { .atom = DW_OP_piece, .number = 4 },
|
||||
+ };
|
||||
+
|
||||
+static const Dwarf_Op loc_intreg[] =
|
||||
+ {
|
||||
+ { .atom = DW_OP_reg28 }, { .atom = DW_OP_piece, .number = 8 },
|
||||
+ { .atom = DW_OP_reg29 }, { .atom = DW_OP_piece, .number = 8 },
|
||||
+ };
|
||||
+#define nloc_intreg 1
|
||||
+#define nloc_intregpair 4
|
||||
+
|
||||
+/* %fr4L, or pair %fr4L, %fr4R on pa-32 */
|
||||
+static const Dwarf_Op loc_fpreg32[] =
|
||||
+ {
|
||||
+ { .atom = DW_OP_regx, .number = 72 }, { .atom = DW_OP_piece, .number = 4 },
|
||||
+ { .atom = DW_OP_regx, .number = 73 }, { .atom = DW_OP_piece, .number = 4 },
|
||||
+ };
|
||||
+#define nloc_fpreg32 2
|
||||
+#define nloc_fpregpair32 4
|
||||
+
|
||||
+/* $fr4 */
|
||||
+static const Dwarf_Op loc_fpreg[] =
|
||||
+ {
|
||||
+ { .atom = DW_OP_regx, .number = 72 },
|
||||
+ };
|
||||
+#define nloc_fpreg 1
|
||||
+
|
||||
+#if 0
|
||||
+/* The return value is a structure and is actually stored in stack space
|
||||
+ passed in a hidden argument by the caller. Address of the location is stored
|
||||
+ in %r28 before function call, but it may be changed by function. */
|
||||
+static const Dwarf_Op loc_aggregate[] =
|
||||
+ {
|
||||
+ { .atom = DW_OP_breg28 },
|
||||
+ };
|
||||
+#define nloc_aggregate 1
|
||||
+#endif
|
||||
+
|
||||
+static int
|
||||
+parisc_return_value_location_ (Dwarf_Die *functypedie, const Dwarf_Op **locp, int pa64)
|
||||
+{
|
||||
+ Dwarf_Word regsize = pa64 ? 8 : 4;
|
||||
+
|
||||
+ /* Start with the function's type, and get the DW_AT_type attribute,
|
||||
+ which is the type of the return value. */
|
||||
+
|
||||
+ Dwarf_Attribute attr_mem;
|
||||
+ Dwarf_Attribute *attr = dwarf_attr_integrate (functypedie, DW_AT_type, &attr_mem);
|
||||
+ if (attr == NULL)
|
||||
+ /* The function has no return value, like a `void' function in C. */
|
||||
+ return 0;
|
||||
+
|
||||
+ Dwarf_Die die_mem;
|
||||
+ Dwarf_Die *typedie = dwarf_formref_die (attr, &die_mem);
|
||||
+ int tag = dwarf_tag (typedie);
|
||||
+
|
||||
+ /* Follow typedefs and qualifiers to get to the actual type. */
|
||||
+ while (tag == DW_TAG_typedef
|
||||
+ || tag == DW_TAG_const_type || tag == DW_TAG_volatile_type
|
||||
+ || tag == DW_TAG_restrict_type || tag == DW_TAG_mutable_type)
|
||||
+ {
|
||||
+ attr = dwarf_attr_integrate (typedie, DW_AT_type, &attr_mem);
|
||||
+ typedie = dwarf_formref_die (attr, &die_mem);
|
||||
+ tag = dwarf_tag (typedie);
|
||||
+ }
|
||||
+
|
||||
+ switch (tag)
|
||||
+ {
|
||||
+ case -1:
|
||||
+ return -1;
|
||||
+
|
||||
+ case DW_TAG_subrange_type:
|
||||
+ if (! dwarf_hasattr_integrate (typedie, DW_AT_byte_size))
|
||||
+ {
|
||||
+ attr = dwarf_attr_integrate (typedie, DW_AT_type, &attr_mem);
|
||||
+ typedie = dwarf_formref_die (attr, &die_mem);
|
||||
+ tag = dwarf_tag (typedie);
|
||||
+ }
|
||||
+ /* Fall through. */
|
||||
+
|
||||
+ case DW_TAG_base_type:
|
||||
+ case DW_TAG_enumeration_type:
|
||||
+ case DW_TAG_pointer_type:
|
||||
+ case DW_TAG_ptr_to_member_type:
|
||||
+ {
|
||||
+ Dwarf_Word size;
|
||||
+ if (dwarf_formudata (dwarf_attr_integrate (typedie, DW_AT_byte_size,
|
||||
+ &attr_mem), &size) != 0)
|
||||
+ {
|
||||
+ if (tag == DW_TAG_pointer_type || tag == DW_TAG_ptr_to_member_type)
|
||||
+ size = 4;
|
||||
+ else
|
||||
+ return -1;
|
||||
+ }
|
||||
+ if (tag == DW_TAG_base_type)
|
||||
+ {
|
||||
+ Dwarf_Word encoding;
|
||||
+ if (dwarf_formudata (dwarf_attr_integrate (typedie, DW_AT_encoding,
|
||||
+ &attr_mem), &encoding) != 0)
|
||||
+ return -1;
|
||||
+
|
||||
+ if (encoding == DW_ATE_float)
|
||||
+ {
|
||||
+ if (pa64) {
|
||||
+ *locp = loc_fpreg;
|
||||
+ if (size <= 8)
|
||||
+ return nloc_fpreg;
|
||||
+ }
|
||||
+ else {
|
||||
+ *locp = loc_fpreg32;
|
||||
+ if (size <= 4)
|
||||
+ return nloc_fpreg32;
|
||||
+ else if (size <= 8)
|
||||
+ return nloc_fpregpair32;
|
||||
+ }
|
||||
+ goto aggregate;
|
||||
+ }
|
||||
+ }
|
||||
+ if (pa64)
|
||||
+ *locp = loc_intreg;
|
||||
+ else
|
||||
+ *locp = loc_intreg32;
|
||||
+ if (size <= regsize)
|
||||
+ return nloc_intreg;
|
||||
+ if (size <= 2 * regsize)
|
||||
+ return nloc_intregpair;
|
||||
+
|
||||
+ /* Else fall through. */
|
||||
+ }
|
||||
+
|
||||
+ case DW_TAG_structure_type:
|
||||
+ case DW_TAG_class_type:
|
||||
+ case DW_TAG_union_type:
|
||||
+ case DW_TAG_array_type:
|
||||
+ aggregate: {
|
||||
+ Dwarf_Word size;
|
||||
+ if (dwarf_aggregate_size (typedie, &size) != 0)
|
||||
+ return -1;
|
||||
+ if (pa64)
|
||||
+ *locp = loc_intreg;
|
||||
+ else
|
||||
+ *locp = loc_intreg32;
|
||||
+ if (size <= regsize)
|
||||
+ return nloc_intreg;
|
||||
+ if (size <= 2 * regsize)
|
||||
+ return nloc_intregpair;
|
||||
+#if 0
|
||||
+ /* there should be some way to know this location... But I do not see it. */
|
||||
+ *locp = loc_aggregate;
|
||||
+ return nloc_aggregate;
|
||||
+#endif
|
||||
+ /* fall through. */
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ /* XXX We don't have a good way to return specific errors from ebl calls.
|
||||
+ This value means we do not understand the type, but it is well-formed
|
||||
+ DWARF and might be valid. */
|
||||
+ return -2;
|
||||
+}
|
||||
+
|
||||
+int
|
||||
+parisc_return_value_location_32 (Dwarf_Die *functypedie, const Dwarf_Op **locp)
|
||||
+{
|
||||
+ return parisc_return_value_location_ (functypedie, locp, 0);
|
||||
+}
|
||||
+
|
||||
+int
|
||||
+parisc_return_value_location_64 (Dwarf_Die *functypedie, const Dwarf_Op **locp)
|
||||
+{
|
||||
+ return parisc_return_value_location_ (functypedie, locp, 1);
|
||||
+}
|
||||
+
|
||||
Index: elfutils-0.146/backends/parisc_symbol.c
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ elfutils-0.146/backends/parisc_symbol.c 2010-04-24 10:10:50.000000000 +0000
|
||||
@@ -0,0 +1,112 @@
|
||||
+/* PA-RISC specific symbolic name handling.
|
||||
+ Copyright (C) 2002, 2005 Red Hat, Inc.
|
||||
+ This file is part of Red Hat elfutils.
|
||||
+ Written by Ulrich Drepper <drepper@redhat.com>, 2002.
|
||||
+
|
||||
+ Red Hat elfutils is free software; you can redistribute it and/or modify
|
||||
+ it under the terms of the GNU General Public License as published by the
|
||||
+ Free Software Foundation; version 2 of the License.
|
||||
+
|
||||
+ Red Hat elfutils is distributed in the hope that it will be useful, but
|
||||
+ WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
+ General Public License for more details.
|
||||
+
|
||||
+ You should have received a copy of the GNU General Public License along
|
||||
+ with Red Hat elfutils; if not, write to the Free Software Foundation,
|
||||
+ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA.
|
||||
+
|
||||
+ Red Hat elfutils is an included package of the Open Invention Network.
|
||||
+ An included package of the Open Invention Network is a package for which
|
||||
+ Open Invention Network licensees cross-license their patents. No patent
|
||||
+ license is granted, either expressly or impliedly, by designation as an
|
||||
+ included package. Should you wish to participate in the Open Invention
|
||||
+ Network licensing program, please visit www.openinventionnetwork.com
|
||||
+ <http://www.openinventionnetwork.com>. */
|
||||
+
|
||||
+#ifdef HAVE_CONFIG_H
|
||||
+# include <config.h>
|
||||
+#endif
|
||||
+
|
||||
+#include <elf.h>
|
||||
+#include <stddef.h>
|
||||
+
|
||||
+#define BACKEND parisc_
|
||||
+#include "libebl_CPU.h"
|
||||
+
|
||||
+const char *
|
||||
+parisc_segment_type_name (int segment, char *buf __attribute__ ((unused)),
|
||||
+ size_t len __attribute__ ((unused)))
|
||||
+{
|
||||
+ switch (segment)
|
||||
+ {
|
||||
+ case PT_PARISC_ARCHEXT:
|
||||
+ return "PARISC_ARCHEXT";
|
||||
+ case PT_PARISC_UNWIND:
|
||||
+ return "PARISC_UNWIND";
|
||||
+ default:
|
||||
+ break;
|
||||
+ }
|
||||
+ return NULL;
|
||||
+}
|
||||
+
|
||||
+/* Return symbolic representation of symbol type. */
|
||||
+const char *
|
||||
+parisc_symbol_type_name(int symbol, char *buf __attribute__ ((unused)),
|
||||
+ size_t len __attribute__ ((unused)))
|
||||
+{
|
||||
+ if (symbol == STT_PARISC_MILLICODE)
|
||||
+ return "PARISC_MILLI";
|
||||
+ return NULL;
|
||||
+}
|
||||
+
|
||||
+/* Return symbolic representation of section type. */
|
||||
+const char *
|
||||
+parisc_section_type_name (int type,
|
||||
+ char *buf __attribute__ ((unused)),
|
||||
+ size_t len __attribute__ ((unused)))
|
||||
+{
|
||||
+ switch (type)
|
||||
+ {
|
||||
+ case SHT_PARISC_EXT:
|
||||
+ return "PARISC_EXT";
|
||||
+ case SHT_PARISC_UNWIND:
|
||||
+ return "PARISC_UNWIND";
|
||||
+ case SHT_PARISC_DOC:
|
||||
+ return "PARISC_DOC";
|
||||
+ }
|
||||
+
|
||||
+ return NULL;
|
||||
+}
|
||||
+
|
||||
+/* Check whether machine flags are valid. */
|
||||
+bool
|
||||
+parisc_machine_flag_check (GElf_Word flags)
|
||||
+{
|
||||
+ if (flags &~ (EF_PARISC_TRAPNIL | EF_PARISC_EXT | EF_PARISC_LSB |
|
||||
+ EF_PARISC_WIDE | EF_PARISC_NO_KABP |
|
||||
+ EF_PARISC_LAZYSWAP | EF_PARISC_ARCH))
|
||||
+ return 0;
|
||||
+
|
||||
+ GElf_Word arch = flags & EF_PARISC_ARCH;
|
||||
+
|
||||
+ return ((arch == EFA_PARISC_1_0) || (arch == EFA_PARISC_1_1) ||
|
||||
+ (arch == EFA_PARISC_2_0));
|
||||
+}
|
||||
+
|
||||
+/* Check for the simple reloc types. */
|
||||
+Elf_Type
|
||||
+parisc_reloc_simple_type (Ebl *ebl __attribute__ ((unused)), int type)
|
||||
+{
|
||||
+ switch (type)
|
||||
+ {
|
||||
+ case R_PARISC_DIR64:
|
||||
+ case R_PARISC_SECREL64:
|
||||
+ return ELF_T_XWORD;
|
||||
+ case R_PARISC_DIR32:
|
||||
+ case R_PARISC_SECREL32:
|
||||
+ return ELF_T_WORD;
|
||||
+ default:
|
||||
+ return ELF_T_NUM;
|
||||
+ }
|
||||
+}
|
||||
Index: elfutils-0.146/backends/libebl_parisc.h
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ elfutils-0.146/backends/libebl_parisc.h 2010-04-24 10:10:50.000000000 +0000
|
||||
@@ -0,0 +1,9 @@
|
||||
+#ifndef _LIBEBL_HPPA_H
|
||||
+#define _LIBEBL_HPPA_H 1
|
||||
+
|
||||
+#include <libdw.h>
|
||||
+
|
||||
+extern int parisc_return_value_location_32(Dwarf_Die *, const Dwarf_Op **locp);
|
||||
+extern int parisc_return_value_location_64(Dwarf_Die *, const Dwarf_Op **locp);
|
||||
+
|
||||
+#endif
|
||||
Index: elfutils-0.146/backends/Makefile.am
|
||||
===================================================================
|
||||
--- elfutils-0.146.orig/backends/Makefile.am 2010-04-24 10:10:41.000000000 +0000
|
||||
+++ elfutils-0.146/backends/Makefile.am 2010-04-24 10:10:50.000000000 +0000
|
||||
@@ -29,11 +29,11 @@
|
||||
-I$(top_srcdir)/libelf -I$(top_srcdir)/libdw
|
||||
|
||||
|
||||
-modules = i386 sh x86_64 ia64 alpha arm sparc ppc ppc64 s390
|
||||
+modules = i386 sh x86_64 ia64 alpha arm sparc ppc ppc64 s390 parisc
|
||||
libebl_pic = libebl_i386_pic.a libebl_sh_pic.a libebl_x86_64_pic.a \
|
||||
libebl_ia64_pic.a libebl_alpha_pic.a libebl_arm_pic.a \
|
||||
libebl_sparc_pic.a libebl_ppc_pic.a libebl_ppc64_pic.a \
|
||||
- libebl_s390_pic.a
|
||||
+ libebl_s390_pic.a libebl_parisc_pic.a
|
||||
noinst_LIBRARIES = $(libebl_pic)
|
||||
noinst_DATA = $(libebl_pic:_pic.a=.so)
|
||||
|
||||
@@ -95,6 +95,9 @@
|
||||
libebl_s390_pic_a_SOURCES = $(s390_SRCS)
|
||||
am_libebl_s390_pic_a_OBJECTS = $(s390_SRCS:.c=.os)
|
||||
|
||||
+parisc_SRCS = parisc_init.c parisc_symbol.c parisc_regs.c parisc_retval.c
|
||||
+libebl_parisc_pic_a_SOURCES = $(parisc_SRCS)
|
||||
+am_libebl_parisc_pic_a_OBJECTS = $(parisc_SRCS:.c=.os)
|
||||
|
||||
libebl_%.so libebl_%.map: libebl_%_pic.a $(libelf) $(libdw)
|
||||
@rm -f $(@:.so=.map)
|
||||
Index: elfutils-0.146/libelf/elf.h
|
||||
===================================================================
|
||||
--- elfutils-0.146.orig/libelf/elf.h 2010-04-13 20:08:02.000000000 +0000
|
||||
+++ elfutils-0.146/libelf/elf.h 2010-04-24 10:10:50.000000000 +0000
|
||||
@@ -1789,16 +1789,24 @@
|
||||
#define R_PARISC_PCREL17F 12 /* 17 bits of rel. address. */
|
||||
#define R_PARISC_PCREL14R 14 /* Right 14 bits of rel. address. */
|
||||
#define R_PARISC_DPREL21L 18 /* Left 21 bits of rel. address. */
|
||||
+#define R_PARISC_DPREL14WR 19
|
||||
+#define R_PARISC_DPREL14DR 20
|
||||
#define R_PARISC_DPREL14R 22 /* Right 14 bits of rel. address. */
|
||||
#define R_PARISC_GPREL21L 26 /* GP-relative, left 21 bits. */
|
||||
#define R_PARISC_GPREL14R 30 /* GP-relative, right 14 bits. */
|
||||
#define R_PARISC_LTOFF21L 34 /* LT-relative, left 21 bits. */
|
||||
#define R_PARISC_LTOFF14R 38 /* LT-relative, right 14 bits. */
|
||||
+#define R_PARISC_DLTIND14F 39
|
||||
+#define R_PARISC_SETBASE 40
|
||||
#define R_PARISC_SECREL32 41 /* 32 bits section rel. address. */
|
||||
+#define R_PARISC_BASEREL21L 42
|
||||
+#define R_PARISC_BASEREL17R 43
|
||||
+#define R_PARISC_BASEREL14R 46
|
||||
#define R_PARISC_SEGBASE 48 /* No relocation, set segment base. */
|
||||
#define R_PARISC_SEGREL32 49 /* 32 bits segment rel. address. */
|
||||
#define R_PARISC_PLTOFF21L 50 /* PLT rel. address, left 21 bits. */
|
||||
#define R_PARISC_PLTOFF14R 54 /* PLT rel. address, right 14 bits. */
|
||||
+#define R_PARISC_PLTOFF14F 55
|
||||
#define R_PARISC_LTOFF_FPTR32 57 /* 32 bits LT-rel. function pointer. */
|
||||
#define R_PARISC_LTOFF_FPTR21L 58 /* LT-rel. fct ptr, left 21 bits. */
|
||||
#define R_PARISC_LTOFF_FPTR14R 62 /* LT-rel. fct ptr, right 14 bits. */
|
||||
@@ -1807,6 +1815,7 @@
|
||||
#define R_PARISC_PLABEL21L 66 /* Left 21 bits of fdesc address. */
|
||||
#define R_PARISC_PLABEL14R 70 /* Right 14 bits of fdesc address. */
|
||||
#define R_PARISC_PCREL64 72 /* 64 bits PC-rel. address. */
|
||||
+#define R_PARISC_PCREL22C 73
|
||||
#define R_PARISC_PCREL22F 74 /* 22 bits PC-rel. address. */
|
||||
#define R_PARISC_PCREL14WR 75 /* PC-rel. address, right 14 bits. */
|
||||
#define R_PARISC_PCREL14DR 76 /* PC rel. address, right 14 bits. */
|
||||
@@ -1832,6 +1841,8 @@
|
||||
#define R_PARISC_LTOFF16WF 102 /* 16 bits LT-rel. address. */
|
||||
#define R_PARISC_LTOFF16DF 103 /* 16 bits LT-rel. address. */
|
||||
#define R_PARISC_SECREL64 104 /* 64 bits section rel. address. */
|
||||
+#define R_PARISC_BASEREL14WR 107
|
||||
+#define R_PARISC_BASEREL14DR 108
|
||||
#define R_PARISC_SEGREL64 112 /* 64 bits segment rel. address. */
|
||||
#define R_PARISC_PLTOFF14WR 115 /* PLT-rel. address, right 14 bits. */
|
||||
#define R_PARISC_PLTOFF14DR 116 /* PLT-rel. address, right 14 bits. */
|
||||
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user