This is the mail archive of the
gcc-help@gcc.gnu.org
mailing list for the GCC project.
Re: Wierd problems with posix_memalign...
I'm sorry, I misread your code.
I tried on 2.4.20, libc 2.3.1, gcc 3.2.2 and the code works fine. However, I
also tried on 2.2.19, libc 2.2.3, gcc 2.95.3 and the second call failed. It
seems to be a glibc problem, but replacing posix_memalign() with the older
memalign() to solves the problem.
On Thursday 14 August 2003 14:06, Mihnea Balta wrote:
> From the man page:
>
> ERRORS
> EINVAL The alignment parameter was not a power of two, or was not a
> multiple of sizeof(void *).
>
> ENOMEM There was insufficient memory to fulfill the allocation
> request.
>
> NOTES
> posix_memalign() verifies that alignment matches the requirements
> detailed above. memalign() may not check that the boundary parameter is
> correct.
>
> On Thursday 14 August 2003 16:42, Kimmo Fredriksson wrote:
> > Hi,
> >
> > I'm having troubles with posix_memalign. The following works OK:
> >
> >
> > int r;
> > void *p;
> >
> > r = posix_memalign( &p, 16, 65536 );
> > if( r ) fprintf( stderr, "%s\n", strerror( r ));
> >
> > But e.g. this fails:
> >
> > r = posix_memalign( &p, 16, 65 );
> > if( r ) fprintf( stderr, "%s\n", strerror( r ));
> >
> > i.e. it outputs: Invalid argument
> >
> > Why? It seems that the number of bytes (the last parameter) is "invalid".
> > This happens with at least gcc 2.96 and gcc 3.3.1.
> >
> > My system is Linux 2.4.18 / RH8.0.
> >
> > kf
> >
> >
> > ---------------------------------------------------------------
> > Acasa.ro vine cu albumele, tu vino doar cu pozele ;)
> > http://poze.acasa.ro/
>
> ---------------------------------------------------------------
> Acasa.ro vine cu albumele, tu vino doar cu pozele ;)
> http://poze.acasa.ro/