This is the mail archive of the newlib@sourceware.org mailing list for the newlib project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH v1] Port ndbm




On 26/07/2019 13:58, Joel Sherrill wrote:
On Fri, Jul 26, 2019 at 5:34 AM Vaibhav Gupta <vaibhavgupta40@gmail.com>
wrote:

On Fri, Jul 26, 2019, 3:49 PM Richard Earnshaw (lists) <
Richard.Earnshaw@arm.com> wrote:



On 26/07/2019 10:09, Vaibhav Gupta wrote:
On Fri, Jul 26, 2019, 2:31 PM Richard Earnshaw (lists) <
Richard.Earnshaw@arm.com> wrote:



On 24/07/2019 17:49, Corinna Vinschen wrote:
On Jul 24 10:47, Joel Sherrill wrote:
On Wed, Jul 24, 2019 at 2:23 AM Corinna Vinschen <
vinschen@redhat.com

wrote:

On Jul 10 14:25, Vaibhav Gupta wrote:
---
    newlib/libc/include/ndbm.h     |  93 ++++++++++++++
    newlib/libc/search/Makefile.am |   1 +
    newlib/libc/search/ndbm.c      | 217
+++++++++++++++++++++++++++++++++
    3 files changed, 311 insertions(+)
    create mode 100644 newlib/libc/include/ndbm.h
    create mode 100644 newlib/libc/search/ndbm.c

Pushed.


Thank you.

It touched a Makefile.am. Doesn't something need to be regenerated?

Oh, right.  Done.


Corinna


I'm now seeing a build error on arm-eabi (though interestingly, not
AArch64):

/work/rearnsha/scratch/nightly/arm/trunk/./gcc/xgcc
-B/work/rearnsha/scratch/nightly/arm/trunk/./gcc/ -nostdinc
-B/work/rearnsha/scratch/nightly/arm/trunk/arm-eabi/thumb/newlib/
-isystem


/work/rearnsha/scratch/nightly/arm/trunk/arm-eabi/thumb/newlib/targ-include

-isystem
/work/rearnsha/gnusrc/nightly/gcc-cross/trunk/newlib/libc/include
-B/work/rearnsha/scratch/nightly/arm/trunk/arm-eabi/thumb/libgloss/arm


-L/work/rearnsha/scratch/nightly/arm/trunk/arm-eabi/thumb/libgloss/libnosys

-L/work/rearnsha/gnusrc/nightly/gcc-cross/trunk/libgloss/arm
-B/work/rearnsha/scratch/nightly/arm/trunk/testinstall/arm-eabi/bin/
-B/work/rearnsha/scratch/nightly/arm/trunk/testinstall/arm-eabi/lib/
-isystem
/work/rearnsha/scratch/nightly/arm/trunk/testinstall/arm-eabi/include
-isystem

/work/rearnsha/scratch/nightly/arm/trunk/testinstall/arm-eabi/sys-include
-L/work/rearnsha/scratch/nightly/arm/trunk/./ld  -mthumb
-DPACKAGE_NAME=\"newlib\" -DPACKAGE_TARNAME=\"newlib\"
-DPACKAGE_VERSION=\"3.1.0\" -DPACKAGE_STRING=\"newlib\ 3.1.0\"
-DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -I.
-I/work/rearnsha/gnusrc/nightly/gcc-cross/trunk/newlib/libc/search
-fno-builtin -D_COMPILING_NEWLIB -DARM_RDI_MONITOR -DHAVE_INIT_FINI
-g -O2  -mthumb -c -o lib_a-ndbm.o `test -f 'ndbm.c' || echo


'/work/rearnsha/gnusrc/nightly/gcc-cross/trunk/newlib/libc/search/'`ndbm.c

/work/rearnsha/gnusrc/nightly/gcc-cross/trunk/newlib/libc/search/ndbm.c:
In function ‘dbm_open’:


/work/rearnsha/gnusrc/nightly/gcc-cross/trunk/newlib/libc/search/ndbm.c:67:12:

error: ‘MAXPATHLEN’ undeclared (first use in this function)
      67 |  char path[MAXPATHLEN];
         |            ^~~~~~~~~~

Does this file need to include sys/param.h?

Yah. sys/param.h has the macro definition of MAXPATHLEN
.
I guess ndbm.c has included it.

Well, not included it.

I checked my patch, ndbm.c is including sys/param.h
.
Or you mean that you have not included it?


I think the issue is that there is an arm specific sys/param.h which does
not define MAXPATHLEN.

$ find . -name param.h | xargs -e grep MAXPATHLEN
./libc/include/sys/param.h:#define MAXPATHLEN PATH_MAX
./libc/sys/phoenix/sys/param.h:#define MAXPATHLEN       PATHSIZE
./libc/sys/rtems/include/sys/param.h: * MAXPATHLEN defines the longest
permissible path length after expanding
./libc/sys/rtems/include/sys/param.h:#define    MAXPATHLEN      PATH_MAX

$ find . -name param.h | grep sys/param
./libc/include/sys/param.h
./libc/sys/linux/sys/param.h
./libc/sys/phoenix/sys/param.h
./libc/sys/rtems/include/sys/param.h
./libc/sys/arm/sys/param.h

Based on those commands, I the file ./libc/sys/arm/sys/param.h is the
culprit. It is very minimal. It looks like a simple out of date copy of
libc/include/sys/param.h.

My proposed fix is to delete libc/include/sys/arm/param.h. Does that work
for you Richard?


Or move some or all of it to machine/param.h, which is currently a placeholder. Need to think about this a bit, but off to a meeting right now.

R.

--joel



Vaibhav Gupta


R.

Vaibhav Gupta







Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]