[BusyBox 0001239]: BusyBox-1.{3, 4} does not compile with SElinux enabled.

bugs at busybox.net bugs at busybox.net
Thu Nov 15 09:47:55 UTC 2007


The following issue has been CLOSED 
====================================================================== 
http://busybox.net/bugs/view.php?id=1239 
====================================================================== 
Reported By:                Xake
Assigned To:                BusyBox
====================================================================== 
Project:                    BusyBox
Issue ID:                   1239
Category:                   Other
Reproducibility:            always
Severity:                   minor
Priority:                   normal
Status:                     closed
Resolution:                 open
Fixed in Version:           
====================================================================== 
Date Submitted:             02-27-2007 01:38 PST
Last Modified:              11-15-2007 01:47 PST
====================================================================== 
Summary:                    BusyBox-1.{3,4} does not compile with SElinux
enabled.
Description: 
This bug was first encountered with gentoo (see link
http://bugs.gentoo.org/show_bug.cgi?id=160879 for more info).

make defconfig && make works right.
But enabling SELinux support and it fails with the following error (seems
like it does not link agains selinux as it should):
  LINK    busybox_unstripped
coreutils/lib.a(id.o): In function `id_main':
id.c:(.text.id_main+0x135): undefined reference to `is_selinux_enabled'
id.c:(.text.id_main+0x145): undefined reference to `getcon'
id.c:(.text.id_main+0x17a): undefined reference to `freecon'
coreutils/lib.a(ls.o): In function `my_stat':
ls.c:(.text.my_stat+0x35): undefined reference to `is_selinux_enabled'
ls.c:(.text.my_stat+0x44): undefined reference to `getfilecon'
ls.c:(.text.my_stat+0x58): undefined reference to `is_selinux_enabled'
ls.c:(.text.my_stat+0x67): undefined reference to `lgetfilecon'
coreutils/lib.a(ls.o): In function `showfiles':
ls.c:(.text.showfiles+0x46b): undefined reference to `freecon'
init/lib.a(init.o): In function `init_main':
init.c:(.text.init_main+0x412): undefined reference to
`selinux_init_load_policy'
loginutils/lib.a(login.o): In function `login_main':
login.c:(.text.login_main+0x5b6): undefined reference to
`is_selinux_enabled'
login.c:(.text.login_main+0x5d4): undefined reference to
`get_default_context'
login.c:(.text.login_main+0x600): undefined reference to `getfilecon'
login.c:(.text.login_main+0x629): undefined reference to
`security_compute_relabel'
login.c:(.text.login_main+0x649): undefined reference to `setfilecon'
procps/lib.a(ps.o): In function `ps_main':
ps.c:(.text.ps_main+0x9e): undefined reference to `is_selinux_enabled'
ps.c:(.text.ps_main+0xd4): undefined reference to `is_selinux_enabled'
ps.c:(.text.ps_main+0xe5): undefined reference to `getpidcon'
ps.c:(.text.ps_main+0x11b): undefined reference to `freecon'
libbb/lib.a(run_shell.o): In function `set_current_security_context':
run_shell.c:(.text.set_current_security_context+0x2c): undefined reference
to `freecon'
libbb/lib.a(run_shell.o): In function `run_shell':
run_shell.c:(.text.run_shell+0xce): undefined reference to `setexeccon'
run_shell.c:(.text.run_shell+0xde): undefined reference to `freecon'
libbb/lib.a(run_shell.o): In function `renew_current_security_context':
run_shell.c:(.text.renew_current_security_context+0x27): undefined
reference to `freecon'
run_shell.c:(.text.renew_current_security_context+0x34): undefined
reference to `getcon'
collect2: ld returned 1 exit status
make: *** [busybox_unstripped] Error 1

***
However doing:
LDFLAGS="-lselinux" make
finishes fine
====================================================================== 

---------------------------------------------------------------------- 
 vda - 02-27-07 10:20  
---------------------------------------------------------------------- 
Very strange. It should link against selinux libs by adding these flags:

ifeq ($(CONFIG_SELINUX),y)
LDFLAGS += -lselinux -lsepol
endif

Unfortunately I have no selinux libs on my system to test it.

Try adding this line:

 CFLAGS          := $(CFLAGS)
 CPPFLAGS        := $(CPPFLAGS)
 AFLAGS          := $(AFLAGS)
+LDFLAGS         := $(LDFLAGS)

does this work? 

---------------------------------------------------------------------- 
 jpo - 03-04-07 15:35  
---------------------------------------------------------------------- 
I'm seeing exactly the same problems in Fedora Core 6 system (busybox 1.3.2
and 1.4.1).

Adding 

   ifeq ($(CONFIG_SELINUX),y)
   LDFLAGS += -lselinux
   endif

to the file Makefile.flags fixes the problem in busybox 1.4.1 but not in
busybox 1.3.2. Busybox 1.3.2 still fails but now with a different error:

      LD      applets/built-in.o
    ld: cannot find -lselinux 
    make[1]: *** [applets/built-in.o] Error 1
    make: *** [applets] Error 2 

---------------------------------------------------------------------- 
 vda - 11-15-07 01:47  
---------------------------------------------------------------------- 
fixed in svn 

Issue History 
Date Modified   Username       Field                    Change               
====================================================================== 
02-27-07 01:38  Xake           New Issue                                    
02-27-07 01:38  Xake           Status                   new => assigned     
02-27-07 01:38  Xake           Assigned To               => BusyBox         
02-27-07 10:20  vda            Note Added: 0002190                          
03-04-07 15:35  jpo            Note Added: 0002202                          
04-22-07 08:53  jpo            Issue Monitored: jpo                         
11-15-07 01:47  vda            Status                   assigned => closed  
11-15-07 01:47  vda            Note Added: 0002921                          
======================================================================




More information about the busybox-cvs mailing list