./rvm -ea -Xmx100M SomeClass
The output is
vm: "-Xmx100M" is not a recognized Jikes RVM command line argument.
./rvm -jar some.jar -X:gc:verbose=3
bootloader output gc logs with level 3.
'-X:gc:verbose=3' should be passed as application args.
The cause of case 1 is that when bootloader encounter an unrecognized token, the code consider it application class name and stops handling the rest arguments by just copying them to Java arguments buffers(main.c:461-462). That's why '-Xmx100' is passed to java land, which should be handled in bootloader and never passed to javaland.
The cause of case 2 is obvious, bootloader does not consider '-jar some.jar' as the boundry between vm options and application arguments.
It seems a little cumbersome to identify every possible vm options in bootloader, see CommandLineArgs.java prefixes. I suggest the native code only identify what's should be handled here as well as the vm-application boundry.