Fixed bugreport:5990 OSX compiling error / warnings

Bug in Detail:
 - Misplaced LDFLAGS uage in some Makefile templates (by passing them to the compiler not to the linker.)
 - Wrong usage of volatile (a functions return value couldnt be declared to return volatile :D )
 - Unsupported Inline ASM using lock xchg operation on llvm-gcc .. (apple loves this ..)

Fixed by:
 - Removed unnecessary LDFLAGS 
 - Removed unnecessary volatile declarator
 - Replaced InterlockedExchange and InterlockedExchange64 with gcc intrinsics. 



git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@16270 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
blacksirius 2012-06-11 23:31:19 +00:00
parent 04bc22ca40
commit b3b21e6e8c
5 changed files with 18 additions and 36 deletions

View File

@ -23,4 +23,4 @@ help:
%.o: %.c $(LIBCONFIG_H) %.o: %.c $(LIBCONFIG_H)
@echo " CC $<" @echo " CC $<"
@@CC@ @CFLAGS@ @DEFS@ @LDFLAGS@ @CPPFLAGS@ -c $(OUTPUT_OPTION) $< @@CC@ @CFLAGS@ @DEFS@ @CPPFLAGS@ -c $(OUTPUT_OPTION) $<

View File

@ -23,4 +23,4 @@ help:
%.o: %.c $(MT19937AR_H) %.o: %.c $(MT19937AR_H)
@echo " CC $<" @echo " CC $<"
@@CC@ @CFLAGS@ @LDFLAGS@ @CPPFLAGS@ -c $(OUTPUT_OPTION) $< @@CC@ @CFLAGS@ @CPPFLAGS@ -c $(OUTPUT_OPTION) $<

View File

@ -83,11 +83,11 @@ common_sql: obj_sql $(COMMON_SQL_OBJ) obj_sql/common_sql.a
obj_all/%.o: %.c $(COMMON_H) $(MT19937AR_H) $(LIBCONFIG_H) obj_all/%.o: %.c $(COMMON_H) $(MT19937AR_H) $(LIBCONFIG_H)
@echo " CC $<" @echo " CC $<"
@@CC@ @CFLAGS@ $(MT19937AR_INCLUDE) $(LIBCONFIG_INCLUDE) @LDFLAGS@ @CPPFLAGS@ -c $(OUTPUT_OPTION) $< @@CC@ @CFLAGS@ $(MT19937AR_INCLUDE) $(LIBCONFIG_INCLUDE) @CPPFLAGS@ -c $(OUTPUT_OPTION) $<
obj_all/mini%.o: %.c $(COMMON_H) $(MT19937AR_H) $(LIBCONFIG_H) obj_all/mini%.o: %.c $(COMMON_H) $(MT19937AR_H) $(LIBCONFIG_H)
@echo " CC $<" @echo " CC $<"
@@CC@ @CFLAGS@ $(MT19937AR_INCLUDE) $(LIBCONFIG_INCLUDE) -DMINICORE @LDFLAGS@ @CPPFLAGS@ -c $(OUTPUT_OPTION) $< @@CC@ @CFLAGS@ $(MT19937AR_INCLUDE) $(LIBCONFIG_INCLUDE) -DMINICORE @CPPFLAGS@ -c $(OUTPUT_OPTION) $<
obj_sql/%.o: %.c $(COMMON_H) $(COMMON_SQL_H) $(LIBCONFIG_H) obj_sql/%.o: %.c $(COMMON_H) $(COMMON_SQL_H) $(LIBCONFIG_H)
@echo " CC $<" @echo " CC $<"

View File

@ -86,71 +86,53 @@ forceinline volatile int64 InterlockedExchange64(volatile int64 *target, int64 v
#error Your Target Platfrom is not supported #error Your Target Platfrom is not supported
#endif #endif
static forceinline volatile int64 InterlockedExchangeAdd64(volatile int64 *addend, int64 increment){ static forceinline int64 InterlockedExchangeAdd64(volatile int64 *addend, int64 increment){
return __sync_fetch_and_add(addend, increment); return __sync_fetch_and_add(addend, increment);
}//end: InterlockedExchangeAdd64() }//end: InterlockedExchangeAdd64()
static forceinline volatile int32 InterlockedExchangeAdd(volatile int32 *addend, int32 increment){ static forceinline int32 InterlockedExchangeAdd(volatile int32 *addend, int32 increment){
return __sync_fetch_and_add(addend, increment); return __sync_fetch_and_add(addend, increment);
}//end: InterlockedExchangeAdd() }//end: InterlockedExchangeAdd()
static forceinline volatile int64 InterlockedIncrement64(volatile int64 *addend){ static forceinline int64 InterlockedIncrement64(volatile int64 *addend){
return __sync_add_and_fetch(addend, 1); return __sync_add_and_fetch(addend, 1);
}//end: InterlockedIncrement64() }//end: InterlockedIncrement64()
static forceinline volatile int32 InterlockedIncrement(volatile int32 *addend){ static forceinline int32 InterlockedIncrement(volatile int32 *addend){
return __sync_add_and_fetch(addend, 1); return __sync_add_and_fetch(addend, 1);
}//end: InterlockedIncrement() }//end: InterlockedIncrement()
static forceinline volatile int64 InterlockedDecrement64(volatile int64 *addend){ static forceinline int64 InterlockedDecrement64(volatile int64 *addend){
return __sync_sub_and_fetch(addend, 1); return __sync_sub_and_fetch(addend, 1);
}//end: InterlockedDecrement64() }//end: InterlockedDecrement64()
static forceinline volatile int32 InterlockedDecrement(volatile int32 *addend){ static forceinline int32 InterlockedDecrement(volatile int32 *addend){
return __sync_sub_and_fetch(addend, 1); return __sync_sub_and_fetch(addend, 1);
}//end: InterlockedDecrement() }//end: InterlockedDecrement()
static forceinline volatile int64 InterlockedCompareExchange64(volatile int64 *dest, int64 exch, int64 cmp){ static forceinline int64 InterlockedCompareExchange64(volatile int64 *dest, int64 exch, int64 cmp){
return __sync_val_compare_and_swap(dest, cmp, exch); return __sync_val_compare_and_swap(dest, cmp, exch);
}//end: InterlockedCompareExchange64() }//end: InterlockedCompareExchange64()
static forceinline volatile int32 InterlockedCompareExchange(volatile int32 *dest, int32 exch, int32 cmp){ static forceinline int32 InterlockedCompareExchange(volatile int32 *dest, int32 exch, int32 cmp){
return __sync_val_compare_and_swap(dest, cmp, exch); return __sync_val_compare_and_swap(dest, cmp, exch);
}//end: InterlockedCompareExchnage() }//end: InterlockedCompareExchnage()
static forceinline volatile int64 InterlockedExchange64(volatile int64 *target, int64 val){ static forceinline int64 InterlockedExchange64(volatile int64 *target, int64 val){
int ret; return __sync_lock_test_and_set(target, val);
__asm__ __volatile__(
"lock xchg %2, (%1)"
:"=r" (ret)
:"r" (target), "0" (val)
:"memory"
);
return ret;
}//end: InterlockedExchange64() }//end: InterlockedExchange64()
static forceinline volatile int32 InterlockedExchange(volatile int32 *target, int32 val){ static forceinline int32 InterlockedExchange(volatile int32 *target, int32 val){
int ret; return __sync_lock_test_and_set(target, val);
__asm__ __volatile__(
"lock xchgl %2, (%1)"
:"=r" (ret)
:"r" (target), "0" (val)
:"memory"
);
return ret;
}//end: InterlockedExchange() }//end: InterlockedExchange()

View File

@ -44,7 +44,7 @@ obj_all:
obj_all/%.o: %.c $(COMMON_H) $(LIBCONFIG_H) obj_all/%.o: %.c $(COMMON_H) $(LIBCONFIG_H)
@echo " CC $<" @echo " CC $<"
@@CC@ @CFLAGS@ $(LIBCONFIG_INCLUDE) @LDFLAGS@ @CPPFLAGS@ -c $(OUTPUT_OPTION) $< @@CC@ @CFLAGS@ $(LIBCONFIG_INCLUDE) @CPPFLAGS@ -c $(OUTPUT_OPTION) $<
# missing common object files # missing common object files
../common/obj_all/%.o: ../common/obj_all/%.o: