dtrace4linux/linux

make all fails because: error: request for member 'val' in something not a structure or union

Opened this issue ยท 6 comments

Hi ^___^

Firstly, here is what I'm working with:

mikey@some-server:~/linux$ lsb_release -a
No LSB modules are available.
Distributor ID:  Ubuntu
Description:     Ubuntu 12.04.5 LTS
Release:         12.04
Codename:        precise
mikey@some-server:~/linux$ uname -a
Linux some-sever 3.2.0-69-virtual #103-Ubuntu SMP Tue Sep 2 05:21:29 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

--------------------The Problem-------------------
I'm trying to run make all and I received the exact same error that was reported in #91

I followed the advice ("comment out the offending lines. They aren't used")
It made the problem go away for ctl.c (though note the warning about uid in the output below) but I'm now seeing a lot more errors. Not really sure what to do at this point. Any help would be super mad ^_^

Here is the output from make all:

  CC [M]  /home/mikey/linux/build-3.2.0-69-virtual/driver/ctl.o
/home/mikey/linux/build-3.2.0-69-virtual/driver/ctl.c: In function 'ctl_linux_ioctl.isra.0':
/home/mikey/linux/build-3.2.0-69-virtual/driver/ctl.c:283:12: warning: 'uid1' may be used uninitialized in this function [-Wuninitialized]
/home/mikey/linux/build-3.2.0-69-virtual/driver/ctl.c:283:12: warning: 'uid2' may be used uninitialized in this function [-Wuninitialized]
  CC [M]  /home/mikey/linux/build-3.2.0-69-virtual/driver/cpu_arm.o
  CC [M]  /home/mikey/linux/build-3.2.0-69-virtual/driver/cpu_x86.o
  CC [M]  /home/mikey/linux/build-3.2.0-69-virtual/driver/cyclic_linux.o
  CC [M]  /home/mikey/linux/build-3.2.0-69-virtual/driver/dcpc.o
  CC [M]  /home/mikey/linux/build-3.2.0-69-virtual/driver/dis_tables.o
  CC [M]  /home/mikey/linux/build-3.2.0-69-virtual/driver/dtrace.o
/home/mikey/linux/build-3.2.0-69-virtual/driver/dtrace.c: In function 'dtrace_priv_proc_common_user':
/home/mikey/linux/build-3.2.0-69-virtual/driver/dtrace.c:1200:6: error: request for member 'val' in something not a structure or union
/home/mikey/linux/build-3.2.0-69-virtual/driver/dtrace.c:1200:35: error: request for member 'val' in something not a structure or union
/home/mikey/linux/build-3.2.0-69-virtual/driver/dtrace.c:1201:6: error: request for member 'val' in something not a structure or union
/home/mikey/linux/build-3.2.0-69-virtual/driver/dtrace.c:1201:35: error: request for member 'val' in something not a structure or union
/home/mikey/linux/build-3.2.0-69-virtual/driver/dtrace.c:1202:6: error: request for member 'val' in something not a structure or union
/home/mikey/linux/build-3.2.0-69-virtual/driver/dtrace.c:1202:35: error: request for member 'val' in something not a structure or union
/home/mikey/linux/build-3.2.0-69-virtual/driver/dtrace.c:1203:6: error: request for member 'val' in something not a structure or union
/home/mikey/linux/build-3.2.0-69-virtual/driver/dtrace.c:1203:35: error: request for member 'val' in something not a structure or union
/home/mikey/linux/build-3.2.0-69-virtual/driver/dtrace.c:1204:6: error: request for member 'val' in something not a structure or union
/home/mikey/linux/build-3.2.0-69-virtual/driver/dtrace.c:1204:35: error: request for member 'val' in something not a structure or union
/home/mikey/linux/build-3.2.0-69-virtual/driver/dtrace.c:1205:6: error: request for member 'val' in something not a structure or union
/home/mikey/linux/build-3.2.0-69-virtual/driver/dtrace.c:1205:35: error: request for member 'val' in something not a structure or union
/home/mikey/linux/build-3.2.0-69-virtual/driver/dtrace.c: In function 'dtrace_priv_probe':
/home/mikey/linux/build-3.2.0-69-virtual/driver/dtrace.c:1393:7: error: request for member 'val' in something not a structure or union
/home/mikey/linux/build-3.2.0-69-virtual/driver/dtrace.c:1393:36: error: request for member 'val' in something not a structure or union
/home/mikey/linux/build-3.2.0-69-virtual/driver/dtrace.c:1394:7: error: request for member 'val' in something not a structure or union
/home/mikey/linux/build-3.2.0-69-virtual/driver/dtrace.c:1394:36: error: request for member 'val' in something not a structure or union
/home/mikey/linux/build-3.2.0-69-virtual/driver/dtrace.c:1395:7: error: request for member 'val' in something not a structure or union
/home/mikey/linux/build-3.2.0-69-virtual/driver/dtrace.c:1395:36: error: request for member 'val' in something not a structure or union
/home/mikey/linux/build-3.2.0-69-virtual/driver/dtrace.c:1396:7: error: request for member 'val' in something not a structure or union
/home/mikey/linux/build-3.2.0-69-virtual/driver/dtrace.c:1396:36: error: request for member 'val' in something not a structure or union
/home/mikey/linux/build-3.2.0-69-virtual/driver/dtrace.c:1397:7: error: request for member 'val' in something not a structure or union
/home/mikey/linux/build-3.2.0-69-virtual/driver/dtrace.c:1397:36: error: request for member 'val' in something not a structure or union
/home/mikey/linux/build-3.2.0-69-virtual/driver/dtrace.c:1398:7: error: request for member 'val' in something not a structure or union
/home/mikey/linux/build-3.2.0-69-virtual/driver/dtrace.c:1398:36: error: request for member 'val' in something not a structure or union
/home/mikey/linux/build-3.2.0-69-virtual/driver/dtrace.c: In function 'dtrace_dif_variable':
/home/mikey/linux/build-3.2.0-69-virtual/driver/dtrace.c:3353:21: error: request for member 'val' in something not a structure or union
/home/mikey/linux/build-3.2.0-69-virtual/driver/dtrace.c:3378:21: error: request for member 'val' in something not a structure or union
/home/mikey/linux/build-3.2.0-69-virtual/driver/dtrace.c: In function 'dtrace_dif_subr':
/home/mikey/linux/build-3.2.0-69-virtual/driver/dtrace.c:4562:13: warning: assignment makes integer from pointer without a cast [enabled by default]
/home/mikey/linux/build-3.2.0-69-virtual/driver/dtrace.c:4569:13: warning: assignment makes integer from pointer without a cast [enabled by default]
/home/mikey/linux/build-3.2.0-69-virtual/driver/dtrace.c: In function 'dtrace_cred2priv':
/home/mikey/linux/build-3.2.0-69-virtual/driver/dtrace.c:7300:11: error: request for member 'val' in something not a structure or union
/home/mikey/linux/build-3.2.0-69-virtual/driver/dtrace.c: In function 'dtrace_register':
/home/mikey/linux/build-3.2.0-69-virtual/driver/dtrace.c:7801:34: error: request for member 'val' in something not a structure or union
/home/mikey/linux/build-3.2.0-69-virtual/driver/dtrace.c: In function 'dtrace_ioctl':
/home/mikey/linux/build-3.2.0-69-virtual/driver/dtrace.c:16599:23: error: request for member 'val' in something not a structure or union
/home/mikey/linux/build-3.2.0-69-virtual/driver/dtrace.c: At top level:
/home/mikey/linux/build-3.2.0-69-virtual/driver/dtrace.c:15389:1: warning: 'dtrace_helpers_duplicate' defined but not used [-Wunused-function]
/home/mikey/linux/build-3.2.0-69-virtual/driver/dtrace.c:15763:1: warning: 'dtrace_cpu_setup_initial' defined but not used [-Wunused-function]
make[3]: *** [/home/mikey/linux/build-3.2.0-69-virtual/driver/dtrace.o] Error 1
make[2]: *** [_module_/home/mikey/linux/build-3.2.0-69-virtual/driver] Error 2
make[1]: *** [kernel] Error 2
tools/bug.sh
make: *** [all] Error 1

<3 mikey

try modifying dtrace_linux.h to use the other branch of the #if where the
Kxxx_VALUE macros are defined.

On 12 January 2015 at 06:32, Mikey Battiston notifications@github.com
wrote:

Hi ^___^

Firstly, here is what I'm working with:

mikey@some-server:~/linux$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 12.04.5 LTS
Release: 12.04
Codename: precise

mikey@some-server:~/linux$ uname -a
Linux some-sever 3.2.0-69-virtual #103-Ubuntu SMP Tue Sep 2 05:21:29 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

--------------------The Problem-------------------
I'm trying to run make all and I received the exact same error that was
reported in #91 #91

I followed the advice ("comment out the offending lines. They aren't
used"
)
It made the problem go away for ctl.c (though note the warning about uid
in the output below) but I'm now seeing a lot more errors. Not really sure
what to do at this point. Any help would be super mad ^_^

Here is the output from make all:

CC [M] /home/mikey/linux/build-3.2.0-69-virtual/driver/ctl.o
/home/mikey/linux/build-3.2.0-69-virtual/driver/ctl.c: In function 'ctl_linux_ioctl.isra.0':
/home/mikey/linux/build-3.2.0-69-virtual/driver/ctl.c:283:12: warning: 'uid1' may be used uninitialized in this function [-Wuninitialized]
/home/mikey/linux/build-3.2.0-69-virtual/driver/ctl.c:283:12: warning: 'uid2' may be used uninitialized in this function [-Wuninitialized]
CC [M] /home/mikey/linux/build-3.2.0-69-virtual/driver/cpu_arm.o
CC [M] /home/mikey/linux/build-3.2.0-69-virtual/driver/cpu_x86.o
CC [M] /home/mikey/linux/build-3.2.0-69-virtual/driver/cyclic_linux.o
CC [M] /home/mikey/linux/build-3.2.0-69-virtual/driver/dcpc.o
CC [M] /home/mikey/linux/build-3.2.0-69-virtual/driver/dis_tables.o
CC [M] /home/mikey/linux/build-3.2.0-69-virtual/driver/dtrace.o
/home/mikey/linux/build-3.2.0-69-virtual/driver/dtrace.c: In function 'dtrace_priv_proc_common_user':
/home/mikey/linux/build-3.2.0-69-virtual/driver/dtrace.c:1200:6: error: request for member 'val' in something not a structure or union
/home/mikey/linux/build-3.2.0-69-virtual/driver/dtrace.c:1200:35: error: request for member 'val' in something not a structure or union
/home/mikey/linux/build-3.2.0-69-virtual/driver/dtrace.c:1201:6: error: request for member 'val' in something not a structure or union
/home/mikey/linux/build-3.2.0-69-virtual/driver/dtrace.c:1201:35: error: request for member 'val' in something not a structure or union
/home/mikey/linux/build-3.2.0-69-virtual/driver/dtrace.c:1202:6: error: request for member 'val' in something not a structure or union
/home/mikey/linux/build-3.2.0-69-virtual/driver/dtrace.c:1202:35: error: request for member 'val' in something not a structure or union
/home/mikey/linux/build-3.2.0-69-virtual/driver/dtrace.c:1203:6: error: request for member 'val' in something not a structure or union
/home/mikey/linux/build-3.2.0-69-virtual/driver/dtrace.c:1203:35: error: request for member 'val' in something not a structure or union
/home/mikey/linux/build-3.2.0-69-virtual/driver/dtrace.c:1204:6: error: request for member 'val' in something not a structure or union
/home/mikey/linux/build-3.2.0-69-virtual/driver/dtrace.c:1204:35: error: request for member 'val' in something not a structure or union
/home/mikey/linux/build-3.2.0-69-virtual/driver/dtrace.c:1205:6: error: request for member 'val' in something not a structure or union
/home/mikey/linux/build-3.2.0-69-virtual/driver/dtrace.c:1205:35: error: request for member 'val' in something not a structure or union
/home/mikey/linux/build-3.2.0-69-virtual/driver/dtrace.c: In function 'dtrace_priv_probe':
/home/mikey/linux/build-3.2.0-69-virtual/driver/dtrace.c:1393:7: error: request for member 'val' in something not a structure or union
/home/mikey/linux/build-3.2.0-69-virtual/driver/dtrace.c:1393:36: error: request for member 'val' in something not a structure or union
/home/mikey/linux/build-3.2.0-69-virtual/driver/dtrace.c:1394:7: error: request for member 'val' in something not a structure or union
/home/mikey/linux/build-3.2.0-69-virtual/driver/dtrace.c:1394:36: error: request for member 'val' in something not a structure or union
/home/mikey/linux/build-3.2.0-69-virtual/driver/dtrace.c:1395:7: error: request for member 'val' in something not a structure or union
/home/mikey/linux/build-3.2.0-69-virtual/driver/dtrace.c:1395:36: error: request for member 'val' in something not a structure or union
/home/mikey/linux/build-3.2.0-69-virtual/driver/dtrace.c:1396:7: error: request for member 'val' in something not a structure or union
/home/mikey/linux/build-3.2.0-69-virtual/driver/dtrace.c:1396:36: error: request for member 'val' in something not a structure or union
/home/mikey/linux/build-3.2.0-69-virtual/driver/dtrace.c:1397:7: error: request for member 'val' in something not a structure or union
/home/mikey/linux/build-3.2.0-69-virtual/driver/dtrace.c:1397:36: error: request for member 'val' in something not a structure or union
/home/mikey/linux/build-3.2.0-69-virtual/driver/dtrace.c:1398:7: error: request for member 'val' in something not a structure or union
/home/mikey/linux/build-3.2.0-69-virtual/driver/dtrace.c:1398:36: error: request for member 'val' in something not a structure or union
/home/mikey/linux/build-3.2.0-69-virtual/driver/dtrace.c: In function 'dtrace_dif_variable':
/home/mikey/linux/build-3.2.0-69-virtual/driver/dtrace.c:3353:21: error: request for member 'val' in something not a structure or union
/home/mikey/linux/build-3.2.0-69-virtual/driver/dtrace.c:3378:21: error: request for member 'val' in something not a structure or union
/home/mikey/linux/build-3.2.0-69-virtual/driver/dtrace.c: In function 'dtrace_dif_subr':
/home/mikey/linux/build-3.2.0-69-virtual/driver/dtrace.c:4562:13: warning: assignment makes integer from pointer without a cast [enabled by default]
/home/mikey/linux/build-3.2.0-69-virtual/driver/dtrace.c:4569:13: warning: assignment makes integer from pointer without a cast [enabled by default]
/home/mikey/linux/build-3.2.0-69-virtual/driver/dtrace.c: In function 'dtrace_cred2priv':
/home/mikey/linux/build-3.2.0-69-virtual/driver/dtrace.c:7300:11: error: request for member 'val' in something not a structure or union
/home/mikey/linux/build-3.2.0-69-virtual/driver/dtrace.c: In function 'dtrace_register':
/home/mikey/linux/build-3.2.0-69-virtual/driver/dtrace.c:7801:34: error: request for member 'val' in something not a structure or union
/home/mikey/linux/build-3.2.0-69-virtual/driver/dtrace.c: In function 'dtrace_ioctl':
/home/mikey/linux/build-3.2.0-69-virtual/driver/dtrace.c:16599:23: error: request for member 'val' in something not a structure or union
/home/mikey/linux/build-3.2.0-69-virtual/driver/dtrace.c: At top level:
/home/mikey/linux/build-3.2.0-69-virtual/driver/dtrace.c:15389:1: warning: 'dtrace_helpers_duplicate' defined but not used [-Wunused-function]
/home/mikey/linux/build-3.2.0-69-virtual/driver/dtrace.c:15763:1: warning: 'dtrace_cpu_setup_initial' defined but not used [-Wunused-function]
make[3]: *** [/home/mikey/linux/build-3.2.0-69-virtual/driver/dtrace.o] Error 1
make[2]: *** [module/home/mikey/linux/build-3.2.0-69-virtual/driver] Error 2
make[1]: *** [kernel] Error 2
tools/bug.sh
make: *** [all] Error 1

<3 mikey

โ€”
Reply to this email directly or view it on GitHub
#96.

I'll give it a go โœจ๐Ÿ’–โœจ thanks

okay so here's the change I made:

mikey@some-server:~/linux$ git diff driver/dtrace_linux.h
diff --git a/driver/dtrace_linux.h b/driver/dtrace_linux.h
index a3595f8..a280fda 100644
--- a/driver/dtrace_linux.h
+++ b/driver/dtrace_linux.h
@@ -100,7 +100,7 @@ typedef uint32_t ipaddr_t;
 /*   Actually  -  its  another  Linux  mess. Centos 6.4 has a 2.6.32  */
 /*   kernel but with later semantics.                                */
 /**********************************************************************/
-#if defined(CONFIG_UIDGID_STRICT_TYPE_CHECKS) || LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 29)
+#if defined(CONFIG_UIDGID_STRICT_TYPE_CHECKS) && LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 29)
 #      define  KUIDT_VALUE(v) v.val
 #      define  KGIDT_VALUE(v) v.val
 #else

After that I was able to make all.
I did get the following warning though:

build/ctfconvert not available - so not building the linux.ctf file
NOTE: The build is complete, but build/ctfconvert is not available.
      This means you will get run time errors from the io.d and sched.d files
      due to undefined kernel structure definitions. Simply delete or rename
      these files until a fix can be put in place to handle older
      distros which do not have the required libdwarf dependencies.

      (Typical error is references to undefined struct definitions such
      as dtrace_cpu_t).

I'll let you know how it goes...

๐Ÿ˜Ž๐Ÿ’•
Mikey

I gave up on trying to make it work with 12.04
I upgraded what I was working on to 14.04 and I had no problems doing make all, make install, make load

Thanks for all your help.

I am trying to install dtrace for the first time too and got the same error.
What is 12.04?

Dunno if you worked it out but 12.04 was the version of Ubuntu I was working with