J. Hellenthal
2011-Mar-08 08:30 UTC
sys/x86/isa/clock.c:189: undefined reference to `cyclic_clock_func'
Hello Stable@, Compiling a kernel on stable/8 with DTrace support is failing with the above subject line upon linking kernel.debug. The text leading up to this is: ... ctfconvert -L VERSION -g vers.o linking kernel.debug clock.o(.text+0x84c): In function `clkintr': /usr/src/sys/x86/isa/clock.c:189: undefined reference to `cyclic_clock_func' And upon inspection of clock.c: #ifdef KDTRACE_HOOKS #include <sys/dtrace_bsd.h> #endif And in clkintr(): #ifdef KDTRACE_HOOKS /* * If the DTrace hooks are configured and a callback function * has been registered, then call it to process the high speed * timers. */ int cpu = PCPU_GET(cpuid); if (cyclic_clock_func[cpu] != NULL) (*cyclic_clock_func[cpu])(frame); #endif It seems for some odd reason that <sys/dtrace_bsd.h> is being forgotten when it comes time for linking ? What is going on here ? Id like to just remove the ifdef's for KDTRACE_HOOKS just to get the build to finish but in the case that I want to build another kernel without dtrace I would have to add them back. Anyone have a better fitting solution to this ? Would it be just as good to re-ifdef this to ?WITH_CTF? instead. Anyway... this is latest code from stable/8 on i386. And yes options KDTRACE_HOOKS is in the kernel config. And the command that caused all this: ( make kernel WITH_CTF=1 ) -- Regards, J. Hellenthal (0x89D8547E) JJH48-ARIN
J. Hellenthal
2011-Mar-08 09:19 UTC
sys/x86/isa/clock.c:189: undefined reference to `cyclic_clock_func'
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On Tue, 8 Mar 2011 03:29, jhell@ wrote:> > Hello Stable@, > > Compiling a kernel on stable/8 with DTrace support is failing with the above > subject line upon linking kernel.debug. > > The text leading up to this is: > ... > ctfconvert -L VERSION -g vers.o > linking kernel.debug > clock.o(.text+0x84c): In function `clkintr': > /usr/src/sys/x86/isa/clock.c:189: undefined reference to `cyclic_clock_func' > > And upon inspection of clock.c: > #ifdef KDTRACE_HOOKS > #include <sys/dtrace_bsd.h> > #endif > > And in clkintr(): > #ifdef KDTRACE_HOOKS > /* > * If the DTrace hooks are configured and a callback function > * has been registered, then call it to process the high speed > * timers. > */ > int cpu = PCPU_GET(cpuid); > if (cyclic_clock_func[cpu] != NULL) > (*cyclic_clock_func[cpu])(frame); > #endif > > > It seems for some odd reason that <sys/dtrace_bsd.h> is being forgotten when > it comes time for linking ? What is going on here ? > > Id like to just remove the ifdef's for KDTRACE_HOOKS just to get the build to > finish but in the case that I want to build another kernel without dtrace I > would have to add them back. Anyone have a better fitting solution to this ? > > Would it be just as good to re-ifdef this to ?WITH_CTF? instead. > > Anyway... this is latest code from stable/8 on i386. And yes options > KDTRACE_HOOKS is in the kernel config. > > And the command that caused all this: > ( make kernel WITH_CTF=1 ) >In light of this I decided to just remove the effected section of clock.c and move forward as this part of the kernel with DTrace is not what I am looking into. Attached is a small patch that removes it in case someone else comes across the same thing and needs a quick workaround. - -- Regards, J. Hellenthal (0x89D8547E) JJH48-ARIN -----BEGIN PGP SIGNATURE----- Comment: THIS SOFTWARE AND/OR CONTENTS IS PROVIDED BY THE AUTHOR ``AS IS'' AND Comment: ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE Comment: IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR Comment: PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY Comment: DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL Comment: DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS Comment: OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) Comment: HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, Comment: STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING Comment: IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE Comment: POSSIBILITY OF SUCH DAMAGE. iQEcBAEBAgAGBQJNdfSCAAoJEJBXh4mJ2FR+K18H/A1KD0Ki1GR696dCvn2iJByH ym2nrsREjdVzFS2P7tW5PO0fmIc8eiFvqimeKHjexDS9JUH+3ybJ2ccF8JqHrR50 G/lNluptzLibPsqQY3+l/EsOUe//8NZUrUYV0ymOGfMsO5v49fBIfSKAT3JBFmY7 nq8wXMP5ncP8cjGdT6abSryIHmXVxY+E2R2DUOyfmbwZ+J/8fjfNEqxZta+Vc2Bv N2BJlEW1eJQBHrq2YuEM3iMBGqRkYywaG7hAWnJXXGUf+/8A/B3SgE1zLBlyCbfB osUjJE/AA7TtBawG6b5V10GCBSMxLaFdhaEzzyd4MtrRPnhuFWsjnPi4ACqnrhc=3a8e -----END PGP SIGNATURE----- -------------- next part -------------- changeset: 947:6dc8de7b9735 branch: DataIX tag: tip user: J. Hellenthal <jhell@DataIX.net> date: Tue Mar 08 03:56:34 2011 -0500 summary: clkintr removal of cyclic_clock_func KDTRACE_HOOKS diff -r b8f7392deaf6 -r 6dc8de7b9735 sys/x86/isa/clock.c --- a/sys/x86/isa/clock.c Mon Mar 07 13:06:50 2011 -0500 +++ b/sys/x86/isa/clock.c Tue Mar 08 03:56:34 2011 -0500 @@ -179,17 +179,6 @@ KASSERT(using_lapic_timer == LAPIC_CLOCK_NONE, ("clk interrupt enabled with lapic timer")); -#ifdef KDTRACE_HOOKS - /* - * If the DTrace hooks are configured and a callback function - * has been registered, then call it to process the high speed - * timers. - */ - int cpu = PCPU_GET(cpuid); - if (cyclic_clock_func[cpu] != NULL) - (*cyclic_clock_func[cpu])(frame); -#endif - if (using_atrtc_timer) { #ifdef SMP if (smp_started)