diff options
author | Kyle Evans <kevans@FreeBSD.org> | 2021-02-17 01:36:14 +0000 |
---|---|---|
committer | Kyle Evans <kevans@FreeBSD.org> | 2021-02-17 01:36:14 +0000 |
commit | 06c5005b2719735883d718c57261b9c9cc9b1597 (patch) | |
tree | dc7eaa5af2f3734d99e2e105f443d8ae9319c821 /sysutils/memtest86+/files/patch-io.h | |
parent | p5-Crypt-CBC is only used for test. (diff) |
sysutils/memtest86+: remove dependency on gcc48
This is one of three ports still explicitly dependent on lang/gcc48. The
problems that were preventing the upgrade were as follows:
- The __OUT*/__IN* macros in io.h were declaring the produced functions as
extern, yielding multiple "definitions." They're inline asm, so just give
them static linkage.
- reboot was declared inline with non-static linkage, thus leaving it in a
weird state where it wasn't visible within the same CU or another CU.
Drop the inline for now; if it really needs to be inlined, it can be
moved into a header and declared `static inline`.
I made these changes, then discovered there's a 5.31b that's still in
testing. I checked the archive for that and was delighted to discover these
changes had already actually been made there, too, so let's consider this a
backport.
PR: 253303
Approved by: avg (maintainer)
MFH: 2021Q1
Notes
Notes:
svn path=/head/; revision=565472
Diffstat (limited to 'sysutils/memtest86+/files/patch-io.h')
-rw-r--r-- | sysutils/memtest86+/files/patch-io.h | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/sysutils/memtest86+/files/patch-io.h b/sysutils/memtest86+/files/patch-io.h new file mode 100644 index 000000000000..e93567f1867f --- /dev/null +++ b/sysutils/memtest86+/files/patch-io.h @@ -0,0 +1,29 @@ +--- io.h.orig 2013-08-10 02:01:58 UTC ++++ io.h +@@ -31,7 +31,7 @@ + */ + + #define __OUT1(s,x) \ +-extern inline void __out##s(unsigned x value, unsigned short port) { ++static inline void __out##s(unsigned x value, unsigned short port) { + + #define __OUT2(s,s1,s2) \ + __asm__ __volatile__ ("out" #s " %" s1 "0,%" s2 "1" +@@ -43,7 +43,7 @@ __OUT1(s##_p,x) __OUT2(s,s1,"w") : : "a" (value), "d" + __OUT1(s##c_p,x) __OUT2(s,s1,"") : : "a" (value), "id" (port)); SLOW_DOWN_IO; } + + #define __IN1(s) \ +-extern inline RETURN_TYPE __in##s(unsigned short port) { RETURN_TYPE _v; ++static inline RETURN_TYPE __in##s(unsigned short port) { RETURN_TYPE _v; + + #define __IN2(s,s1,s2) \ + __asm__ __volatile__ ("in" #s " %" s2 "1,%" s1 "0" +@@ -55,7 +55,7 @@ __IN1(s##_p) __IN2(s,s1,"w") : "=a" (_v) : "d" (port) + __IN1(s##c_p) __IN2(s,s1,"") : "=a" (_v) : "id" (port) ,##i ); SLOW_DOWN_IO; return _v; } + + #define __OUTS(s) \ +-extern inline void outs##s(unsigned short port, const void * addr, unsigned long count) \ ++static inline void outs##s(unsigned short port, const void * addr, unsigned long count) \ + { __asm__ __volatile__ ("cld ; rep ; outs" #s \ + : "=S" (addr), "=c" (count) : "d" (port),"0" (addr),"1" (count)); } + |