• Shenghou Ma's avatar
    cmd/cgo, cmd/dist, cmd/go: cgo with clang fixes · eec96147
    Shenghou Ma authored
    1. Workaround the smart clang diagnostics with -Qunused-arguments:
    clang: error: argument unused during compilation: '-XXX'
    2. if "clang -print-libgcc-file-name" returns non-absolute path, don't
    provide that on linker command line.
    3. Fix dwarf.PtrType.Size() in cmd/cgo as clang doesn't generate
    DW_AT_byte_size for pointer types.
    4. Workaround warnings for -Wno-unneeded-internal-declaration with
    -Wno-unknown-warning-option.
    5. Add -Wno-unused-function.
    6. enable race detector test on darwin with clang
    (at least Apple clang version 1.7 (tags/Apple/clang-77) works).
    
    Requires CL 7354043.
    
    Update #4829
    This should fix most parts of the problem, but one glitch still remains.
    DWARF generated by newer clang doesn't differentiate these
    two function types:
        void *malloc(size_t);
        void *malloc(unsigned long int);
    so you might need to do this to make make.bash pass:
    sed -i -e 's/C.malloc(C.size_t/C.malloc(C.ulong/' pkg/os/user/lookup_unix.go
    
    R=golang-dev, dave, iant, rsc
    CC=golang-dev
    https://golang.org/cl/7351044
    eec96147
build.c 36 KB