fix wrongly named macro
optimize allocation for GNU systems. That is allocate only blocks of a size malloc handles.
fix optimization for GNU memory management