Hello Gedare, as you suggested, to use the group name of patch as 'newlib'. I did that and then removed the line "%patch setup newlib -p1" It has generated ndbm.h in include directory.
Vaibhav Gupta On Wed, Jun 26, 2019 at 8:41 PM Vaibhav Gupta <vaibhavgupt...@gmail.com> wrote: > > > On Wed, Jun 26, 2019 at 8:35 PM Vaibhav Gupta <vaibhavgupt...@gmail.com> > wrote: > >> Hello, >> >> Newlib is compiling successfully. >> But when i applied patch to RSB. It is not generating ndbm.h >> inside rtems/5/sparc-rtem5/include this time. >> >> I am following same steps again which I followed that day when ndbm.h was >> successfully generated. >> Below are the log files generated by rsb build. >> > Although, before testing, I update RSB today (git pull). I figured that > the configuration file, used by rsb for newlib, is now changed. > . > So i updated my steps accordingly. That is, I added the patch in that new > configuration file. > . > According to logs, patch is applied I guess, but it is not generating > ndbm.h in include directory. > >> >> On Wed, Jun 26, 2019 at 8:32 PM Vaibhav Gupta <vaibhavgupt...@gmail.com> >> wrote: >> >>> --- >>> newlib/libc/include/ndbm.h | 84 +++++++++++++ >>> newlib/libc/search/Makefile.am | 1 + >>> newlib/libc/search/ndbm.c | 215 +++++++++++++++++++++++++++++++++ >>> 3 files changed, 300 insertions(+) >>> create mode 100644 newlib/libc/include/ndbm.h >>> create mode 100644 newlib/libc/search/ndbm.c >>> >>> diff --git a/newlib/libc/include/ndbm.h b/newlib/libc/include/ndbm.h >>> new file mode 100644 >>> index 000000000..3b42c60b0 >>> --- /dev/null >>> +++ b/newlib/libc/include/ndbm.h >>> @@ -0,0 +1,84 @@ >>> +/*- >>> + * SPDX-License-Identifier: BSD-3-Clause >>> + * >>> + * Copyright (c) 1990, 1993 >>> + * The Regents of the University of California. All rights >>> reserved. >>> + * >>> + * This code is derived from software contributed to Berkeley by >>> + * Margo Seltzer. >>> + * >>> + * Redistribution and use in source and binary forms, with or without >>> + * modification, are permitted provided that the following conditions >>> + * are met: >>> + * 1. Redistributions of source code must retain the above copyright >>> + * notice, this list of conditions and the following disclaimer. >>> + * 2. Redistributions in binary form must reproduce the above copyright >>> + * notice, this list of conditions and the following disclaimer in >>> the >>> + * documentation and/or other materials provided with the >>> distribution. >>> + * 3. Neither the name of the University nor the names of its >>> contributors >>> + * may be used to endorse or promote products derived from this >>> software >>> + * without specific prior written permission. >>> + * >>> + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' >>> AND >>> + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE >>> + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR >>> PURPOSE >>> + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE >>> LIABLE >>> + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR >>> CONSEQUENTIAL >>> + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE >>> GOODS >>> + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) >>> + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, >>> STRICT >>> + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN >>> ANY WAY >>> + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY >>> OF >>> + * SUCH DAMAGE. >>> + * >>> + * @(#)ndbm.h 8.1 (Berkeley) 6/2/93 >>> + * $FreeBSD$ >>> + */ >>> + >>> +#ifndef _NDBM_H_ >>> +#define _NDBM_H_ >>> + >>> +#define __DBINTERFACE_PRIVATE >>> + >>> +/* Map dbm interface onto db(3). */ >>> +#define DBM_RDONLY O_RDONLY >>> + >>> +/* Flags to dbm_store(). */ >>> +#define DBM_INSERT 0 >>> +#define DBM_REPLACE 1 >>> + >>> +/* >>> + * The db(3) support for ndbm always appends this suffix to the >>> + * file name to avoid overwriting the user's original database. >>> + */ >>> +#define DBM_SUFFIX ".db" >>> + >>> +typedef struct { >>> + void *dptr; >>> + int dsize; /* XXX Should be size_t according to >>> 1003.1-2008. */ >>> +} datum; >>> + >>> +struct __db; >>> +typedef struct __db DB; >>> +typedef DB DBM; >>> +#define dbm_pagfno(a) DBM_PAGFNO_NOT_AVAILABLE >>> + >>> +__BEGIN_DECLS >>> +int dbm_clearerr(DBM *); >>> +void dbm_close(DBM *); >>> +int dbm_delete(DBM *, datum); >>> +int dbm_error(DBM *); >>> +datum dbm_fetch(DBM *, datum); >>> +datum dbm_firstkey(DBM *); >>> +#if __BSD_VISIBLE >>> +long dbm_forder(DBM *, datum); >>> +#endif >>> +datum dbm_nextkey(DBM *); >>> +DBM *dbm_open(const char *, int, mode_t); >>> +int dbm_store(DBM *, datum, datum, int); >>> +#if __BSD_VISIBLE >>> +int dbm_dirfno(DBM *); >>> +#endif >>> +__END_DECLS >>> + >>> +#endif /* !_NDBM_H_ */ >>> diff --git a/newlib/libc/search/Makefile.am >>> b/newlib/libc/search/Makefile.am >>> index 98920c3f4..a61107fb9 100644 >>> --- a/newlib/libc/search/Makefile.am >>> +++ b/newlib/libc/search/Makefile.am >>> @@ -9,6 +9,7 @@ GENERAL_SOURCES = \ >>> db_local.h \ >>> extern.h \ >>> hash.h \ >>> + ndbm.c \ >>> page.h \ >>> qsort.c >>> >>> diff --git a/newlib/libc/search/ndbm.c b/newlib/libc/search/ndbm.c >>> new file mode 100644 >>> index 000000000..8ac6d1f40 >>> --- /dev/null >>> +++ b/newlib/libc/search/ndbm.c >>> @@ -0,0 +1,215 @@ >>> +/*- >>> + * SPDX-License-Identifier: BSD-3-Clause >>> + * >>> + * Copyright (c) 1990, 1993 >>> + * The Regents of the University of California. All rights >>> reserved. >>> + * >>> + * This code is derived from software contributed to Berkeley by >>> + * Margo Seltzer. >>> + * >>> + * Redistribution and use in source and binary forms, with or without >>> + * modification, are permitted provided that the following conditions >>> + * are met: >>> + * 1. Redistributions of source code must retain the above copyright >>> + * notice, this list of conditions and the following disclaimer. >>> + * 2. Redistributions in binary form must reproduce the above copyright >>> + * notice, this list of conditions and the following disclaimer in >>> the >>> + * documentation and/or other materials provided with the >>> distribution. >>> + * 3. Neither the name of the University nor the names of its >>> contributors >>> + * may be used to endorse or promote products derived from this >>> software >>> + * without specific prior written permission. >>> + * >>> + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' >>> AND >>> + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE >>> + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR >>> PURPOSE >>> + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE >>> LIABLE >>> + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR >>> CONSEQUENTIAL >>> + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE >>> GOODS >>> + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) >>> + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, >>> STRICT >>> + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN >>> ANY WAY >>> + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY >>> OF >>> + * SUCH DAMAGE. >>> + */ >>> + >>> +#if defined(LIBC_SCCS) && !defined(lint) >>> +static char sccsid[] = "@(#)ndbm.c 8.4 (Berkeley) 7/21/94"; >>> +#endif /* LIBC_SCCS and not lint */ >>> +#include <sys/cdefs.h> >>> +__FBSDID("$FreeBSD$"); >>> + >>> +/* >>> + * This package provides a dbm compatible interface to the new hashing >>> + * package described in db(3). >>> + */ >>> + >>> +#include <sys/param.h> >>> + >>> +#include <stdio.h> >>> +#include <string.h> >>> +#include <errno.h> >>> + >>> +#include <ndbm.h> >>> +#include "db_local.h" >>> +#include "hash.h" >>> + >>> +/* >>> + * Returns: >>> + * *DBM on success >>> + * NULL on failure >>> + */ >>> +extern DBM * >>> +dbm_open(const char *file, int flags, mode_t mode) >>> +{ >>> + HASHINFO info; >>> + char path[MAXPATHLEN]; >>> + >>> + info.bsize = 4096; >>> + info.ffactor = 40; >>> + info.nelem = 1; >>> + info.cachesize = 0; >>> + info.hash = NULL; >>> + info.lorder = 0; >>> + >>> + if( strlen(file) >= sizeof(path) - strlen(DBM_SUFFIX)) { >>> + errno = ENAMETOOLONG; >>> + return(NULL); >>> + } >>> + (void)strcpy(path, file); >>> + (void)strcat(path, DBM_SUFFIX); >>> + return ((DBM *)__hash_open(path, flags, mode, 0, &info)); >>> +} >>> + >>> +extern void >>> +dbm_close(DBM *db) >>> +{ >>> + (void)(db->close)(db); >>> +} >>> + >>> +/* >>> + * Returns: >>> + * DATUM on success >>> + * NULL on failure >>> + */ >>> +extern datum >>> +dbm_fetch(DBM *db, datum key) >>> +{ >>> + datum retdata; >>> + int status; >>> + DBT dbtkey, dbtretdata; >>> + >>> + dbtkey.data = key.dptr; >>> + dbtkey.size = key.dsize; >>> + status = (db->get)(db, &dbtkey, &dbtretdata, 0); >>> + if (status) { >>> + dbtretdata.data = NULL; >>> + dbtretdata.size = 0; >>> + } >>> + retdata.dptr = dbtretdata.data; >>> + retdata.dsize = dbtretdata.size; >>> + return (retdata); >>> +} >>> + >>> +/* >>> + * Returns: >>> + * DATUM on success >>> + * NULL on failure >>> + */ >>> +extern datum >>> +dbm_firstkey(DBM *db) >>> +{ >>> + int status; >>> + datum retkey; >>> + DBT dbtretkey, dbtretdata; >>> + >>> + status = (db->seq)(db, &dbtretkey, &dbtretdata, R_FIRST); >>> + if (status) >>> + dbtretkey.data = NULL; >>> + retkey.dptr = dbtretkey.data; >>> + retkey.dsize = dbtretkey.size; >>> + return (retkey); >>> +} >>> + >>> +/* >>> + * Returns: >>> + * DATUM on success >>> + * NULL on failure >>> + */ >>> +extern datum >>> +dbm_nextkey(DBM *db) >>> +{ >>> + int status; >>> + datum retkey; >>> + DBT dbtretkey, dbtretdata; >>> + >>> + status = (db->seq)(db, &dbtretkey, &dbtretdata, R_NEXT); >>> + if (status) >>> + dbtretkey.data = NULL; >>> + retkey.dptr = dbtretkey.data; >>> + retkey.dsize = dbtretkey.size; >>> + return (retkey); >>> +} >>> + >>> +/* >>> + * Returns: >>> + * 0 on success >>> + * <0 failure >>> + */ >>> +extern int >>> +dbm_delete(DBM *db, datum key) >>> +{ >>> + int status; >>> + DBT dbtkey; >>> + >>> + dbtkey.data = key.dptr; >>> + dbtkey.size = key.dsize; >>> + status = (db->del)(db, &dbtkey, 0); >>> + if (status) >>> + return (-1); >>> + else >>> + return (0); >>> +} >>> + >>> +/* >>> + * Returns: >>> + * 0 on success >>> + * <0 failure >>> + * 1 if DBM_INSERT and entry exists >>> + */ >>> +extern int >>> +dbm_store(DBM *db, datum key, datum data, int flags) >>> +{ >>> + DBT dbtkey, dbtdata; >>> + >>> + dbtkey.data = key.dptr; >>> + dbtkey.size = key.dsize; >>> + dbtdata.data = data.dptr; >>> + dbtdata.size = data.dsize; >>> + return ((db->put)(db, &dbtkey, &dbtdata, >>> + (flags == DBM_INSERT) ? R_NOOVERWRITE : 0)); >>> +} >>> + >>> +extern int >>> +dbm_error(DBM *db) >>> +{ >>> + HTAB *hp; >>> + >>> + hp = (HTAB *)db->internal; >>> + return (hp->error); >>> +} >>> + >>> +extern int >>> +dbm_clearerr(DBM *db) >>> +{ >>> + HTAB *hp; >>> + >>> + hp = (HTAB *)db->internal; >>> + hp->error = 0; >>> + return (0); >>> +} >>> + >>> +extern int >>> +dbm_dirfno(DBM *db) >>> +{ >>> + return(((HTAB *)db->internal)->fp); >>> +} >>> -- >>> 2.21.0 >>> >>>
_______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel