Mergesort

This is more or less to bring attention to errors I am coming across for my implementation of merge sort (considering that we aren't meeting anymore). The errors are as follows:

/tmp/go-build315493766/common/erasure/_obj/erasure.o: In function `swap':
src/common/erasure/erasure.c:54: multiple definition of `swap'

/tmp/go-build315493766/common/erasure/_obj/erasure.cgo2.o:/home/tau/Documents/Programming/RCOS/Sia/src/common/erasure/erasure.c:54: first defined here
/tmp/go-build315493766/common/erasure/_obj/erasure.o: In function `workingMerge':
src/common/erasure/erasure.c:70: multiple definition of `workingMerge'

/tmp/go-build315493766/common/erasure/_obj/erasure.cgo2.o:/home/tau/Documents/Programming/RCOS/Sia/src/common/erasure/erasure.c:70: first defined here
/tmp/go-build315493766/common/erasure/_obj/erasure.o: In function `inPlaceSort':
src/common/erasure/erasure.c:102: multiple definition of `inPlaceSort'

/tmp/go-build315493766/common/erasure/_obj/erasure.cgo2.o:/home/tau/Documents/Programming/RCOS/Sia/src/common/erasure/erasure.c:102: first defined here
/tmp/go-build315493766/common/erasure/_obj/erasure.o: In function `workingSort':
src/common/erasure/erasure.c:86: multiple definition of `workingSort'

/tmp/go-build315493766/common/erasure/_obj/erasure.cgo2.o:/home/tau/Documents/Programming/RCOS/Sia/src/common/erasure/erasure.c:86: first defined here
collect2: error: ld returned 1 exit status

And I also have looked over the code with multiple times, I don't seem to see any cases of multiple definitions so a little help would be appreciated.