if Thearch.Thechar == '6' {
                obj.Flagcount("largemodel", "generate code that assumes a large memory model", &flag_largemodel)
        }
-       if Thearch.Thechar == '6' || Thearch.Thechar == '8' || Thearch.Thechar == '9' {
+       if Thearch.Thechar == '5' || Thearch.Thechar == '6' || Thearch.Thechar == '8' || Thearch.Thechar == '9' {
                flag.BoolVar(&flag_dynlink, "dynlink", false, "support references to Go symbols defined in other shared libraries")
        }
        obj.Flagstr("cpuprofile", "write cpu profile to `file`", &cpuprofile)
 
                        codegenArg = "-fPIC"
                } else {
                        switch platform {
-                       case "linux/386", "linux/amd64":
+                       case "linux/386", "linux/amd64", "linux/arm":
                                buildAsmflags = append(buildAsmflags, "-D=shared=1")
                        default:
                                fatalf("-buildmode=shared not supported on %s\n", platform)
                        codegenArg = "-fPIC"
                } else {
                        switch platform {
-                       case "linux/386", "linux/amd64":
+                       case "linux/386", "linux/amd64", "linux/arm":
                                buildAsmflags = append(buildAsmflags, "-D=shared=1")
                        default:
                                fatalf("-buildmode=shared not supported on %s\n", platform)