Issue 1:
As per my stackoverflow question:

import numpy as np
a = np.zeros(4, dtype=np.dtype([('t', '<f8'), ('d', [('a', '<i4'), ('b', '<f8')], (100,))], align=True))
b = np.require(a, requirements=['ALIGNED'])
print([x.flags['ALIGNED'] for x in [a, b]])

prints [False, False] !

@charris writes that "The recarray class accepts an aligned parameter, but looks to lose it in format_parser".

This bug breaks usage of PyOpenGL as per my other stackoverflow question.

As an aside why does "c-contiguous" imply "aligned" for recarray?

Issue 2:
xlc_r -I/opt/include -O2 -qmaxmem=-1 -qarch=pwr5 -q64 -I/opt/buildaix/includes -DNDEBUG -DHAVE_NPY_CONFIG_H=1 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE=1 -D_LARGEFILE64_SOURCE=1 -Ibuild/src.aix-5.3-2.7/numpy/core/src/private -Inumpy/core/include -Ibuild/src.aix-5.3-2.7/numpy/core/include/numpy -Inumpy/core/src/private -Inumpy/core/src -Inumpy/core -Inumpy/core/src/npymath -Inumpy/core/src/multiarray -Inumpy/core/src/umath -Inumpy/core/src/npysort -I/opt/include/python2.7 -Ibuild/src.aix-5.3-2.7/numpy/core/src/private -Ibuild/src.aix-5.3-2.7/numpy/core/src/private -Ibuild/src.aix-5.3-2.7/numpy/core/src/private -c numpy/core/src/private/mem_overlap.c -o build/temp.aix-5.3-2.7/numpy/core/src/private/mem_overlap.o" failed with exit status 1

root@x064:[/data/prj/python/numpy/numpy-1.11.2]aix-5.3-2.7/numpy/core/src/private/mem_overlap.o <

"/usr/include/unistd.h", line 171.17: 1506-343 (S) Redeclaration of lseek64 differs from previous declaration on line 169 of "/usr/include/unistd.h".

"/usr/include/unistd.h", line 171.17: 1506-050 (I) Return type "long long" in redeclaration is not compatible with the previous return type "long".

"/usr/include/unistd.h", line 171.17: 1506-377 (I) The type "long long" of parameter 2 differs from the previous type "long".

"/usr/include/sys/lockf.h", line 64.20: 1506-343 (S) Redeclaration of lockf64 differs from previous declaration on line 62 of "/usr/include/sys/lockf.h".

"/usr/include/sys/lockf.h", line 64.20: 1506-377 (I) The type "long long" of parameter 3 differs from the previous type "long".

"/usr/include/unistd.h", line 800.33: 1506-343 (S) Redeclaration of ftruncate64 differs from previous declaration on line 798 of "/usr/include/unistd.h".

"/usr/include/unistd.h", line 800.33: 1506-377 (I) The type "long long" of parameter 2 differs from the previous type "long".

"/usr/include/unistd.h", line 836.33: 1506-343 (S) Redeclaration of truncate64 differs from previous declaration on line 834 of "/usr/include/unistd.h".

"/usr/include/unistd.h", line 836.33: 1506-377 (I) The type "long long" of parameter 2 differs from the previous type "long".

"/usr/include/unistd.h", line 853.33: 1506-343 (S) Redeclaration of pread64 differs from previous declaration on line 850 of "/usr/include/unistd.h".

"/usr/include/unistd.h", line 853.33: 1506-377 (I) The type "long long" of parameter 4 differs from the previous type "long".

"/usr/include/unistd.h", line 854.33: 1506-343 (S) Redeclaration of pwrite64 differs from previous declaration on line 851 of "/usr/include/unistd.h".

"/usr/include/unistd.h", line 854.33: 1506-377 (I) The type "long long" of parameter 4 differs from the previous type "long".

"/usr/include/unistd.h", line 921.25: 1506-343 (S) Redeclaration of fclear64 differs from previous declaration on line 918 of "/usr/include/unistd.h".

"/usr/include/unistd.h", line 921.25: 1506-050 (I) Return type "long long" in redeclaration is not compatible with the previous return type "long".

"/usr/include/unistd.h", line 921.25: 1506-377 (I) The type "long long" of parameter 2 differs from the previous type "long".

"/usr/include/unistd.h", line 922.25: 1506-343 (S) Redeclaration of fsync_range64 differs from previous declaration on line 919 of "/usr/include/unistd.h".

"/usr/include/unistd.h", line 922.25: 1506-377 (I) The type "long long" of parameter 3 differs from the previous type "long".