eglibc: removed eglibc.

This commit is contained in:
Ricardo Martins 2015-02-05 13:48:45 +00:00
parent 722d66e44f
commit 5b78d1f5b5
12 changed files with 0 additions and 531 deletions

View File

@ -1,57 +0,0 @@
version=\
(
'2.15.17955'
)
url=\
(
"http://www.lsts.pt/glued/eglibc-$version.tar.bz2"
)
md5=\
(
'0694f304863e3c97562857388137a83e'
)
maintainer=\
(
'Ricardo Martins <rasm@fe.up.pt>'
)
build_dir=$pkg_var
post_unpack()
{
ln -fs ../ports ../eglibc-$version/libc/ports
patches=$(ls "$pkg_dir"/patches/*.patch)
cd ../eglibc-$version
if [ -n "$patches" ]; then
cat $patches | patch -p1
fi
}
configure()
{
export libc_cv_slibdir='/lib'
BUILD_CC=$cmd_host_cc \
AR="$cfg_dir_toolchain/bin/$cfg_target_canonical-ar" \
RANLIB="$cfg_dir_toolchain/bin/$cfg_target_canonical-ranlib" \
CC="$cfg_dir_toolchain/bin/$cfg_target_canonical-gcc" \
CXX="$cfg_dir_toolchain/bin/$cfg_target_canonical-g++" \
CFLAGS=$cfg_target_gcc_flags \
"../eglibc-$version/libc/configure" \
$cfg_target_eglibc_configure_flags \
--prefix=/usr \
--with-headers="$cfg_dir_toolchain_sysroot/usr/include" \
--build="$cfg_host_canonical" \
--host="$cfg_target_canonical" \
--disable-profile \
--without-gd \
--without-cvs \
--enable-add-ons \
--with-tls \
--enable-kernel=2.6.32 \
--disable-nls
}

View File

@ -1,37 +0,0 @@
source $pkg_common
requires=\
(
'gcc/cross_stage2'
)
build()
{
$cmd_make -j1
}
host_install()
{
$cmd_make install_root="$cfg_dir_toolchain_sysroot" -j1 install &&
cp "$pkg_dir"/files/timepps.h "$cfg_dir_toolchain_sysroot/usr/include"
}
target_install()
{
$cmd_mkdir \
"$cfg_dir_rootfs/sbin" \
"$cfg_dir_rootfs/usr/lib" &&
for f in "$cfg_dir_toolchain_sysroot/lib"/*; do
base="$(basename $f)"
if [ -L "$f" ]; then
cp -vd "$f" "$cfg_dir_rootfs/usr/lib/$base"
elif [ -f "$f" ]; then
$cmd_target_strip -v --strip-unneeded -o "$cfg_dir_rootfs/usr/lib/$base" "$f"
fi
done
$cmd_target_strip -v --strip-unneeded "elf/ldconfig" \
-o "$cfg_dir_rootfs/sbin/ldconfig" &&
tar -C "$pkg_dir/fs" --exclude .svn -c -f - . | tar -C "$cfg_dir_rootfs" -x -v -f -
}

View File

@ -1,199 +0,0 @@
/*
* timepps.h -- PPS API main header
*
* Copyright (C) 2005-2007 Rodolfo Giometti <giometti@linux.it>
*
* This program 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; either version 2 of the License, or
* (at your option) any later version.
*
* This program 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 this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef _SYS_TIMEPPS_H_
#define _SYS_TIMEPPS_H_
#include <unistd.h>
#include <errno.h>
#include <sys/time.h>
#include <sys/ioctl.h>
#include <linux/types.h>
#include <linux/pps.h>
#define LINUXPPS 1 /* signal we are using LinuxPPS */
/*
* New data structures
*/
struct ntp_fp {
unsigned int integral;
unsigned int fractional;
};
union pps_timeu {
struct timespec tspec;
struct ntp_fp ntpfp;
unsigned long longpad[3];
};
struct pps_info {
unsigned long assert_sequence; /* seq. num. of assert event */
unsigned long clear_sequence; /* seq. num. of clear event */
union pps_timeu assert_tu; /* time of assert event */
union pps_timeu clear_tu; /* time of clear event */
int current_mode; /* current mode bits */
};
struct pps_params {
int api_version; /* API version # */
int mode; /* mode bits */
union pps_timeu assert_off_tu; /* offset compensation for assert */
union pps_timeu clear_off_tu; /* offset compensation for clear */
};
typedef int pps_handle_t; /* represents a PPS source */
typedef unsigned long pps_seq_t; /* sequence number */
typedef struct ntp_fp ntp_fp_t; /* NTP-compatible time stamp */
typedef union pps_timeu pps_timeu_t; /* generic data type for time stamps */
typedef struct pps_info pps_info_t;
typedef struct pps_params pps_params_t;
#define assert_timestamp assert_tu.tspec
#define clear_timestamp clear_tu.tspec
#define assert_timestamp_ntpfp assert_tu.ntpfp
#define clear_timestamp_ntpfp clear_tu.ntpfp
#define assert_offset assert_off_tu.tspec
#define clear_offset clear_off_tu.tspec
#define assert_offset_ntpfp assert_off_tu.ntpfp
#define clear_offset_ntpfp clear_off_tu.ntpfp
/*
* The PPS API
*/
static __inline int time_pps_create(int source, pps_handle_t *handle)
{
int ret;
struct pps_kparams dummy;
if (!handle) {
errno = EINVAL;
return -1;
}
/* First we check if current device is a valid PPS one by
* doing a dummy PPS_GETPARAMS...
*/
ret = ioctl(source, PPS_GETPARAMS, &dummy);
if (ret) {
errno = EOPNOTSUPP;
return -1;
}
/* ... then since in LinuxPPS there are no differences between a
* "PPS source" and a "PPS handle", we simply return the same value.
*/
*handle = source;
return 0;
}
static __inline int time_pps_destroy(pps_handle_t handle)
{
return close(handle);
}
static __inline int time_pps_getparams(pps_handle_t handle,
pps_params_t *ppsparams)
{
int ret;
struct pps_kparams __ppsparams;
ret = ioctl(handle, PPS_GETPARAMS, &__ppsparams);
ppsparams->api_version = __ppsparams.api_version;
ppsparams->mode = __ppsparams.mode;
ppsparams->assert_off_tu.tspec.tv_sec = __ppsparams.assert_off_tu.sec;
ppsparams->assert_off_tu.tspec.tv_nsec = __ppsparams.assert_off_tu.nsec;
ppsparams->clear_off_tu.tspec.tv_sec = __ppsparams.clear_off_tu.sec;
ppsparams->clear_off_tu.tspec.tv_nsec = __ppsparams.clear_off_tu.nsec;
return ret;
}
static __inline int time_pps_setparams(pps_handle_t handle,
const pps_params_t *ppsparams)
{
struct pps_kparams __ppsparams;
__ppsparams.api_version = ppsparams->api_version;
__ppsparams.mode = ppsparams->mode;
__ppsparams.assert_off_tu.sec = ppsparams->assert_off_tu.tspec.tv_sec;
__ppsparams.assert_off_tu.nsec = ppsparams->assert_off_tu.tspec.tv_nsec;
__ppsparams.clear_off_tu.sec = ppsparams->clear_off_tu.tspec.tv_sec;
__ppsparams.clear_off_tu.nsec = ppsparams->clear_off_tu.tspec.tv_nsec;
return ioctl(handle, PPS_SETPARAMS, &__ppsparams);
}
/* Get capabilities for handle */
static __inline int time_pps_getcap(pps_handle_t handle, int *mode)
{
return ioctl(handle, PPS_GETCAP, mode);
}
static __inline int time_pps_fetch(pps_handle_t handle, const int tsformat,
pps_info_t *ppsinfobuf,
const struct timespec *timeout)
{
struct pps_fdata __fdata;
int ret;
/* Sanity checks */
if (tsformat != PPS_TSFMT_TSPEC) {
errno = EINVAL;
return -1;
}
if (timeout) {
__fdata.timeout.sec = timeout->tv_sec;
__fdata.timeout.nsec = timeout->tv_nsec;
__fdata.timeout.flags = ~PPS_TIME_INVALID;
} else
__fdata.timeout.flags = PPS_TIME_INVALID;
ret = ioctl(handle, PPS_FETCH, &__fdata);
ppsinfobuf->assert_sequence = __fdata.info.assert_sequence;
ppsinfobuf->clear_sequence = __fdata.info.clear_sequence;
ppsinfobuf->assert_tu.tspec.tv_sec = __fdata.info.assert_tu.sec;
ppsinfobuf->assert_tu.tspec.tv_nsec = __fdata.info.assert_tu.nsec;
ppsinfobuf->clear_tu.tspec.tv_sec = __fdata.info.clear_tu.sec;
ppsinfobuf->clear_tu.tspec.tv_nsec = __fdata.info.clear_tu.nsec;
ppsinfobuf->current_mode = __fdata.info.current_mode;
return ret;
}
static __inline int time_pps_kcbind(pps_handle_t handle,
const int kernel_consumer,
const int edge, const int tsformat)
{
/* LinuxPPS doesn't implement kernel consumer feature */
errno = EOPNOTSUPP;
return -1;
}
#endif /* _SYS_TIMEPPS_H_ */

View File

@ -1 +0,0 @@
127.0.0.1 localhost.localdomain localhost

View File

@ -1 +0,0 @@
/usr/lib

View File

@ -1,15 +0,0 @@
passwd: files
group: files
shadow: files
publickey: files
hosts: files dns
networks: files
protocols: files
services: files
ethers: files
rpc: files
netgroup: files

View File

@ -1,24 +0,0 @@
source $pkg_common
requires=\
(
'gcc/cross_stage1'
'linux-headers/cross'
)
host_install()
{
cat >> configparms << EOF
install-bootstrap-headers=yes
cross-compiling=yes
install_root="$cfg_dir_toolchain_sysroot"
EOF
$cmd_make \
install_root="$cfg_dir_toolchain_sysroot" \
install-bootstrap-headers=yes install-headers &&
$cmd_mkdir "$cfg_dir_toolchain_sysroot/usr/lib" &&
$cmd_make csu/subdir_lib &&
cp csu/crt1.o csu/crti.o csu/crtn.o "$cfg_dir_toolchain_sysroot/usr/lib" &&
$cmd_target_cc -nostdlib -nostartfiles -shared -x c /dev/null -o "$cfg_dir_toolchain_sysroot/usr/lib/libc.so"
}

View File

@ -1,39 +0,0 @@
source $pkg_common
requires=\
(
'eglibc/cross'
)
configure()
{
"../eglibc-$version/localedef/configure" \
--prefix="$cfg_dir_toolchain_sysroot/usr" \
--with-glibc=."./eglibc-$version/libc"
}
build()
{
$cmd_make
}
host_install()
{
$cmd_mkdir "$cfg_dir_toolchain_sysroot/usr/lib/locale" &&
if [ -f "$cfg_dir_toolchain_sysroot/usr/share/i18n/charmaps/UTF-8.gz" ]; then
gunzip -f "$cfg_dir_toolchain_sysroot/usr/share/i18n/charmaps/UTF-8.gz"
fi &&
if [ -f "$cfg_dir_toolchain_sysroot/usr/share/i18n/charmaps/ISO-8859-1.gz" ]; then
gunzip -f "$cfg_dir_toolchain_sysroot/usr/share/i18n/charmaps/ISO-8859-1.gz"
fi &&
./localedef -v -c -i pt_PT -f UTF-8 pt_PT
./localedef -v -c -i ru_RU -f UTF-8 ru_RU
true
}
target_install()
{
$cmd_mkdir "$cfg_dir_rootfs/usr/lib/locale" &&
cp -v "$cfg_dir_toolchain_sysroot/usr/lib/locale/locale-archive" "$cfg_dir_rootfs/usr/lib/locale"
}

View File

@ -1,24 +0,0 @@
diff -Nru eglibc-2.15-16611/libc/include/libc-symbols.h eglibc-2.15-16611-rasm/libc/include/libc-symbols.h
--- eglibc-2.15-16611/libc/include/libc-symbols.h 2012-01-09 21:16:30.000000000 +0000
+++ eglibc-2.15-16611-rasm/libc/include/libc-symbols.h 2012-01-10 23:37:36.863616530 +0000
@@ -647,7 +647,7 @@
# define libc_hidden_proto(name, attrs...) hidden_proto (name, ##attrs)
# define libc_hidden_def(name) hidden_def (name)
# define libc_hidden_weak(name) hidden_weak (name)
-# define libc_hidden_nolink(name, version) hidden_nolink (name, libc, version)
+# define libc_hidden_nolink(name, version) hidden_def (name)
# define libc_hidden_ver(local, name) hidden_ver (local, name)
# define libc_hidden_data_def(name) hidden_data_def (name)
# define libc_hidden_data_weak(name) hidden_data_weak (name)
diff -Nru eglibc-2.15-16611/libc/sunrpc/Makefile eglibc-2.15-16611-rasm/libc/sunrpc/Makefile
--- eglibc-2.15-16611/libc/sunrpc/Makefile 2012-01-09 21:16:30.000000000 +0000
+++ eglibc-2.15-16611-rasm/libc/sunrpc/Makefile 2012-01-10 23:38:14.574076188 +0000
@@ -55,7 +55,7 @@
des_crypt.h)
headers-not-in-tirpc = $(addprefix rpc/,key_prot.h rpc_des.h) \
$(rpcsvc:%=rpcsvc/%) rpcsvc/bootparam.h
-headers = rpc/netdb.h
+headers = rpc/netdb.h $(headers-in-tirpc) $(headers-not-in-tirpc)
generated = $(rpcsvc:%.x=rpcsvc/%.h) $(rpcsvc:%.x=x%.c) $(rpcsvc:%.x=x%.stmp) \
$(rpcsvc:%.x=rpcsvc/%.stmp) rpcgen
generated-dirs := rpcsvc

View File

@ -1,15 +0,0 @@
diff -Nru eglibc-2.15-16611/libc/nis/Makefile eglibc-2.15-16611-rasm/libc/nis/Makefile
--- eglibc-2.15-16611/libc/nis/Makefile 2012-01-09 21:16:30.000000000 +0000
+++ eglibc-2.15-16611-rasm/libc/nis/Makefile 2012-01-10 23:40:26.409018009 +0000
@@ -25,9 +25,9 @@
aux := nis_hash
+headers := $(wildcard rpcsvc/*.[hx])
distribute := nss-nis.h nss-nisplus.h nis_intern.h Banner \
- nisplus-parser.h nis_xdr.h nss \
- $(wildcard rpcsvc/*.[hx])
+ nisplus-parser.h nis_xdr.h nss
# These are the databases available for the nis (and perhaps later nisplus)
# service. This must be a superset of the services in nss.

View File

@ -1,107 +0,0 @@
diff -Nru eglibc-2.15.17955/libc/elf/dl-close.c eglibc-2.15.17955.rasm/libc/elf/dl-close.c
--- eglibc-2.15.17955/libc/elf/dl-close.c 2012-04-07 20:58:55.000000000 +0100
+++ eglibc-2.15.17955.rasm/libc/elf/dl-close.c 2012-10-23 22:33:33.351846745 +0100
@@ -119,17 +119,8 @@
if (map->l_direct_opencount > 0 || map->l_type != lt_loaded
|| dl_close_state != not_pending)
{
- if (map->l_direct_opencount == 0)
- {
- if (map->l_type == lt_loaded)
- dl_close_state = rerun;
- else if (map->l_type == lt_library)
- {
- struct link_map **oldp = map->l_initfini;
- map->l_initfini = map->l_orig_initfini;
- _dl_scope_free (oldp);
- }
- }
+ if (map->l_direct_opencount == 0 && map->l_type == lt_loaded)
+ dl_close_state = rerun;
/* There are still references to this object. Do nothing more. */
if (__builtin_expect (GLRO_dl_debug_mask & DL_DEBUG_FILES, 0))
diff -Nru eglibc-2.15.17955/libc/elf/dl-deps.c eglibc-2.15.17955.rasm/libc/elf/dl-deps.c
--- eglibc-2.15.17955/libc/elf/dl-deps.c 2012-04-07 20:58:55.000000000 +0100
+++ eglibc-2.15.17955.rasm/libc/elf/dl-deps.c 2012-10-23 22:38:17.124208092 +0100
@@ -689,6 +689,7 @@
l_initfini[nlist] = NULL;
atomic_write_barrier ();
map->l_initfini = l_initfini;
+ map->l_free_initfini = 1;
if (l_reldeps != NULL)
{
atomic_write_barrier ();
@@ -697,7 +698,7 @@
_dl_scope_free (old_l_reldeps);
}
if (old_l_initfini != NULL)
- map->l_orig_initfini = old_l_initfini;
+ _dl_scope_free (old_l_initfini);
if (errno_reason)
_dl_signal_error (errno_reason == -1 ? 0 : errno_reason, objname,
diff -Nru eglibc-2.15.17955/libc/elf/dl-libc.c eglibc-2.15.17955.rasm/libc/elf/dl-libc.c
--- eglibc-2.15.17955/libc/elf/dl-libc.c 2012-04-07 20:58:55.000000000 +0100
+++ eglibc-2.15.17955.rasm/libc/elf/dl-libc.c 2012-10-23 22:39:02.388449874 +0100
@@ -270,13 +270,13 @@
for (Lmid_t ns = 0; ns < GL(dl_nns); ++ns)
{
- /* Remove all additional names added to the objects. */
for (l = GL(dl_ns)[ns]._ns_loaded; l != NULL; l = l->l_next)
{
struct libname_list *lnp = l->l_libname->next;
l->l_libname->next = NULL;
+ /* Remove all additional names added to the objects. */
while (lnp != NULL)
{
struct libname_list *old = lnp;
@@ -284,6 +284,10 @@
if (! old->dont_free)
free (old);
}
+
+ /* Free the initfini dependency list. */
+ if (l->l_free_initfini)
+ free (l->l_initfini);
}
if (__builtin_expect (GL(dl_ns)[ns]._ns_global_scope_alloc, 0) != 0
diff -Nru eglibc-2.15.17955/libc/elf/rtld.c eglibc-2.15.17955.rasm/libc/elf/rtld.c
--- eglibc-2.15.17955/libc/elf/rtld.c 2012-04-07 20:58:55.000000000 +0100
+++ eglibc-2.15.17955.rasm/libc/elf/rtld.c 2012-10-23 22:39:30.692348894 +0100
@@ -2277,6 +2277,8 @@
lnp->dont_free = 1;
lnp = lnp->next;
}
+ /* Also allocated with the fake malloc(). */
+ l->l_free_initfini = 0;
if (l != &GL(dl_rtld_map))
_dl_relocate_object (l, l->l_scope, GLRO(dl_lazy) ? RTLD_LAZY : 0,
diff -Nru eglibc-2.15.17955/libc/include/link.h eglibc-2.15.17955.rasm/libc/include/link.h
--- eglibc-2.15.17955/libc/include/link.h 2012-04-07 20:58:55.000000000 +0100
+++ eglibc-2.15.17955.rasm/libc/include/link.h 2012-10-23 22:40:31.526900046 +0100
@@ -192,6 +192,9 @@
during LD_TRACE_PRELINKING=1
contains any DT_SYMBOLIC
libraries. */
+ unsigned int l_free_initfini:1; /* Nonzero if l_initfini can be
+ freed, ie. not allocated with
+ the dummy malloc in ld.so. */
/* Collected information about own RPATH directories. */
struct r_search_path_struct l_rpath_dirs;
@@ -240,9 +243,6 @@
/* List of object in order of the init and fini calls. */
struct link_map **l_initfini;
- /* The init and fini list generated at startup, saved when the
- object is also loaded dynamically. */
- struct link_map **l_orig_initfini;
/* List of the dependencies introduced through symbol binding. */
struct link_map_reldeps

View File

@ -1,12 +0,0 @@
diff -Naur eglibc-2.15-16526.orig/config.make.in eglibc-2.15-16526/config.make.in
--- eglibc-2.15-16526.orig/libc/config.make.in 2012-07-24 17:49:58.000000000 -0400
+++ eglibc-2.15-16526/libc/config.make.in 2012-07-24 17:51:01.000000000 -0400
@@ -5,7 +5,7 @@
release = @RELEASE@
# Installation prefixes.
-install_root = $(DESTDIR)
+install_root ?= $(DESTDIR)
prefix = @prefix@
exec_prefix = @exec_prefix@
datadir = @datadir@