Gnu G++ 2.6.0, 2.7.2, 2.8.1: These work OK.
If you are using 2.7 or later remember to edit include.h to deactivate my Boolean class - not necessary if you are using my make file. But if you are using a version earlier than 2.7 edit the second line of gnu.mak to CXXFLAGS = -O2 -Wall
For versions earlier than 2.6.0 you must enable the options TEMPS_DESTROYED_QUICKLY and TEMPS_DESTROYED_QUICKLY_R. You can't use expressions like Matrix(X*Y) in the middle of an expression and (Matrix)(X*Y) is unreliable. If you write a function returning a matrix, you MUST use the ReturnMatrix method described in this documentation. This is because g++ destroys temporaries occurring in an expression too soon for the two stage way of evaluating expressions that newmat uses. You will have problems with versions of Gnu earlier than 2.3.1.
Gnu seems to leave some rubbish on the stack. Possibly this is a buffer or dynamically loaded subprogram so may not be a bug.
Linux: It works fine on my copy of G++ 2.7.2. In 2.6.?, fabs(*X++) causes a problem. You may need to write you own non-inlined version.