diff --git a/mysys/my_gethwaddr.c b/mysys/my_gethwaddr.c
index 845b5aa4152cebf1f5ca3b245bf6b922ecefc0f0..c7f138c733778794edaecfa0da3a984f7f6cdfb9 100644
--- a/mysys/my_gethwaddr.c
+++ b/mysys/my_gethwaddr.c
@@ -19,7 +19,9 @@
 #include "mysys_priv.h"
 #include <m_string.h>
 
-#if !defined(__FreeBSD__) || defined(__linux__)
+#ifndef MAIN
+
+#if defined(__FreeBSD__) || defined(__linux__)
 static my_bool memcpy_and_test(uchar *to, uchar *from, uint len)
 {
   uint i, res=1;
@@ -29,6 +31,7 @@ static my_bool memcpy_and_test(uchar *to, uchar *from, uint len)
       res=0;
   return res;
 }
+#endif   /* FreeBSD || linux */
 
 #ifdef __FreeBSD__
 
@@ -98,7 +101,7 @@ err:
   return res;
 }
 
-#else
+#else   /* FreeBSD elif linux */
 /* just fail */
 my_bool my_gethwaddr(uchar *to __attribute__((unused)))
 {