Hello,
Since commit 52b50c15fa3b319bb162f0d47fbeb6582842c020, madvise() advice macros are no longer available on noMMU architectures. However, the madvise() function call is still available. Therefore the following piece of code from madplay causes a build failure:
# if defined(HAVE_MADVISE) madvise(fdm, length, MADV_SEQUENTIAL); # endif
Indeed, because madvise() exists in uClibc, HAVE_MADVISE is defined. But MADV_SEQUENTIAL is no longer defined, causing a build failure.
Shouldn't madvise() be handled like posix_madvise(), i.e made not available on noMMU systems?
Also, I see in <sys/mman.h> that the posix_madvise() prototype is still visible on noMMU platforms. Is still really correct?
See the two attached patches (completely untested, not even build tested) for what I mean.
Thanks!
Thomas
Hi Thomas, Thomas Petazzoni wrote,
Hello,
Since commit 52b50c15fa3b319bb162f0d47fbeb6582842c020, madvise() advice macros are no longer available on noMMU architectures. However, the madvise() function call is still available. Therefore the following piece of code from madplay causes a build failure:
# if defined(HAVE_MADVISE) madvise(fdm, length, MADV_SEQUENTIAL); # endif
Indeed, because madvise() exists in uClibc, HAVE_MADVISE is defined. But MADV_SEQUENTIAL is no longer defined, causing a build failure.
Shouldn't madvise() be handled like posix_madvise(), i.e made not available on noMMU systems?
Also, I see in <sys/mman.h> that the posix_madvise() prototype is still visible on noMMU platforms. Is still really correct?
See the two attached patches (completely untested, not even build tested) for what I mean.
Thanks!
Tested, applied and pushed, thx Waldemar