glNormalPointer is available only if the GL version is 1.1 or greater.The normal array is initially disabled and isn't accessed when glArrayElement, glDrawElements, or glDrawArrays is called.
Execution of glNormalPointer is not allowed between glBegin and the corresponding glEnd, but an error may or may not be generated. If an error is not generated, the operation is undefined.
glNormalPointer is typically implemented on the client side.
Since the normal array parameters are client-side state, they are not saved or restored by glPushAttrib and glPopAttrib. Use glPushClientAttrib and glPopClientAttrib instead.