On Fri, Nov 27, 2015 at 9:32 AM, Sekenre <[email protected]> wrote:

> Hi Mike,
>
> It is reproducable!
>
> 1) Do a menuconfig and add support for ext4 to the kernel
> 2) Run tup a couple of times, It will complain about extra built-in.o file
> 3) Create missing Tupfile in linux/fs/ext4 and linux/fs/jbd2
> 4) Run tup todo
> [ tup ] Scanning filesystem...
> Tup phase 2: The following directories must be parsed:
>   16% linux/fs/ext4
>   33% linux/fs/jbd2
>   50% linux/fs
>   66% linux
>   83% linux/arch/x86/boot/compressed
>  100% linux/arch/x86/boot
> Run 'tup parse' to proceed to phase 3.
>
> 5) So far so good, but then if you run tup on its own, everything will be
> recompiled!
> [ tup ] Scanning filesystem...
> Tup phase 3: The following 5054 commands will be executed:
>
>
> I tried generating some graphs but they're huge!
>
>
There was a bug in 'tup graph' where it would generate everything that
depended on a config variable if tup.config changed, but that is now fixed
in rev 16b8b7c55a. However, that doesn't explain why it is actually trying
to run 5054 commands. When I try to reproduce your steps, I get the
attached output. Am I missing a step?

Can you try to run through the steps again, and after creating the two
Tupfiles do:

$ tup parse
$ tup todo (does this show all 5054 commands?)
$ tup graph > foo.dot

And then send me the foo.dot file (you can send it privately if you like).
Just make sure you pull in commit 16b8b7c55a first to avoid the tup.config
graphing issue.

Thanks!
-Mike

-- 
-- 
tup-users mailing list
email: [email protected]
unsubscribe: [email protected]
options: http://groups.google.com/group/tup-users?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"tup-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.
$ ./menuconfig 
 (add ext4)

$ tup
[ tup ] [0.000s] Scanning filesystem...
[ tup ] [0.226s] Reading in new configuration/environment variables...
 1) updated variant: tup.config
 [ ] 100%
[ tup ] [0.271s] Parsing Tupfiles...                                            
                                                                             
* 1) [0.010s] linux/fs
tup error: Explicitly named file 'built-in.o' not found in subdir 
'linux/fs/ext4'
tup error [string "builtin"]:80: Error parsing input list
stack traceback:
        [C]: in function 'definerule'
        [string "builtin"]:80: in function <[string "builtin"]:61>
        (...tail calls...)
        [string "Tuprules.lua"]:13: in function 'ld_linux'
        [string "../build.lua"]:58: in main chunk
tup error: Failed to parse included file '../build.lua'
tup error: Error parsing Tupfile line 3
  Line was: 'include $(LINUX_ROOT)/build.lua'
 [    ]  25%
 *** tup: 1 job failed.

$ cp linux/fs/ext3/Tupfile linux/fs/ext4/
$ cp linux/fs/ext3/Tupfile linux/fs/jbd2/

$ tup todo
[ tup ] Scanning filesystem...
Tup phase 2: The following directories must be parsed:
  16% linux/fs/jbd2
  33% linux/fs/ext4
  50% linux/fs
  66% linux
  83% linux/arch/x86/boot/compressed
 100% linux/arch/x86/boot
Run 'tup parse' to proceed to phase 3.

$ tup parse
[ tup ] [0.000s] Scanning filesystem...
[ tup ] [0.202s] Reading in new environment variables...
[ tup ] [0.202s] Parsing Tupfiles...
 1) [0.005s] linux/fs/jbd2
 2) [0.007s] linux/fs/ext4                                                      
                                                                             
 3) [0.012s] linux/fs                                                           
                                                                             
 4) [0.002s] linux                                                              
                                                                             
 5) [0.002s] linux/arch/x86/boot/compressed                                     
                                                                             
 6) [0.003s] linux/arch/x86/boot                                                
                                                                             
 [      ] 100%
[ tup ] [0.237s] No files to delete.                                            
                                                                             
[ tup ] [0.238s] Generating .gitignore files...

$ tup todo
[ tup ] Scanning filesystem...
Tup phase 3: The following 46 commands will be executed:
   2% linux/fs/jbd2: CC transaction.c
   4% linux/fs/jbd2: CC commit.c
   6% linux/fs/jbd2: CC recovery.c
   8% linux/fs/jbd2: CC checkpoint.c
  10% linux/fs/jbd2: CC revoke.c
  13% linux/fs/jbd2: CC journal.c
  15% linux/fs/jbd2: LD jbd2.o
  17% linux/fs/jbd2: LD built-in.o
  19% linux/fs/ext4: CC balloc.c
  21% linux/fs/ext4: CC bitmap.c
  23% linux/fs/ext4: CC dir.c
  26% linux/fs/ext4: CC file.c
  28% linux/fs/ext4: CC fsync.c
  30% linux/fs/ext4: CC ialloc.c
  32% linux/fs/ext4: CC inode.c
  34% linux/fs/ext4: CC ioctl.c
  36% linux/fs/ext4: CC namei.c
  39% linux/fs/ext4: CC super.c
  41% linux/fs/ext4: CC symlink.c
  43% linux/fs/ext4: CC hash.c
  45% linux/fs/ext4: CC resize.c
  47% linux/fs/ext4: CC extents.c
  50% linux/fs/ext4: CC ext4_jbd2.c
  52% linux/fs/ext4: CC migrate.c
  54% linux/fs/ext4: CC mballoc.c
  56% linux/fs/ext4: CC block_validity.c
  58% linux/fs/ext4: CC move_extent.c
  60% linux/fs/ext4: CC xattr.c
  63% linux/fs/ext4: CC xattr_user.c
  65% linux/fs/ext4: CC xattr_trusted.c
  67% linux/fs/ext4: LD ext4.o
  69% linux/fs/ext4: LD built-in.o
  71% linux/fs: LD built-in.o
  73% linux: LINK vmlinux
  76% linux/arch/x86/boot/compressed: OBJCOPY vmlinux.bin
  78% linux/arch/x86/boot/compressed: GZIP vmlinux.bin.gz
  80% linux/arch/x86/boot/compressed: MKPIGGY piggy.S
  82% linux/arch/x86/boot/compressed: CC piggy.S
  84% linux/arch/x86/boot/compressed: LD vmlinux
  86% linux/arch/x86/boot: OBJCOPY vmlinux.bin
  89% linux/arch/x86/boot: NM zoffset.h
  91% linux/arch/x86/boot: NM voffset.h
  93% linux/arch/x86/boot: CC header.S
  95% linux/arch/x86/boot: LD setup.elf
  97% linux/arch/x86/boot: OBJCOPY setup.bin
 100% linux/arch/x86/boot: ./build setup.bin vmlinux.bin CURRENT > bzImage
Run 'tup upd' to bring the system up-to-date.

$ tup graph > ~/ok.dot
 ( should generate a small graph now resembling the above steps )

$ tup
[ tup ] [0.000s] Scanning filesystem...
[ tup ] [0.204s] Reading in new environment variables...
[ tup ] [0.204s] No Tupfiles to parse.
[ tup ] [0.204s] No files to delete.
[ tup ] [0.206s] Executing Commands...
 1) [0.347s] linux/fs/ext4: CC bitmap.c                                         
                                                                             
 2) [0.373s] linux/fs/jbd2: CC checkpoint.c                                     
                                                                             
 3) [0.393s] linux/fs/jbd2: CC revoke.c                                         
                                                                             
 4) [0.402s] linux/fs/jbd2: CC recovery.c                                       
                                                                             
 5) [0.433s] linux/fs/ext4: CC balloc.c                                         
                                                                             
 6) [0.461s] linux/fs/jbd2: CC transaction.c                                    
                                                                             
 7) [0.535s] linux/fs/jbd2: CC commit.c                                         
                                                                             
 8) [0.550s] linux/fs/jbd2: CC journal.c                                        
                                                                             
 9) [0.030s] linux/fs/jbd2: LD jbd2.o                                           
                                                                             
 10) [0.036s] linux/fs/jbd2: LD built-in.o                                      
                                                                             
 11) [0.341s] linux/fs/ext4: CC file.c                                          
                                                                             
 12) [0.377s] linux/fs/ext4: CC dir.c
 13) [0.332s] linux/fs/ext4: CC fsync.c                                         
                                                                             
 14) [0.317s] linux/fs/ext4: CC ioctl.c                                         
                                                                             
 15) [0.553s] linux/fs/ext4: CC ialloc.c                                        
                                                                             
 16) [0.265s] linux/fs/ext4: CC symlink.c                                       
                                                                             
 17) [0.348s] linux/fs/ext4: CC hash.c                                          
                                                                             
 18) [0.331s] linux/fs/ext4: CC ext4_jbd2.c                                     
                                                                             
 19) [0.605s] linux/fs/ext4: CC resize.c                                        
                                                                             
 20) [0.822s] linux/fs/ext4: CC namei.c                                         
                                                                             
 21) [0.407s] linux/fs/ext4: CC migrate.c                                       
                                                                             
 22) [1.031s] linux/fs/ext4: CC super.c                                         
                                                                             
 23) [0.376s] linux/fs/ext4: CC block_validity.c                                
                                                                             
 24) [1.283s] linux/fs/ext4: CC inode.c                                         
                                                                             
inode.c: In function 'ext4_dirty_inode':
inode.c:5615: warning: unused variable 'current_handle'
 25) [0.343s] linux/fs/ext4: CC xattr_user.c                                    
                                                                             
 26) [0.991s] linux/fs/ext4: CC extents.c                                       
                                                                             
 27) [0.509s] linux/fs/ext4: CC move_extent.c                                   
                                                                             
 28) [0.242s] linux/fs/ext4: CC xattr_trusted.c                                 
                                                                             
 29) [0.546s] linux/fs/ext4: CC xattr.c                                         
                                                                             
 30) [0.940s] linux/fs/ext4: CC mballoc.c                                       
                                                                             
 31) [0.030s] linux/fs/ext4: LD ext4.o                                          
                                                                             
 32) [0.015s] linux/fs/ext4: LD built-in.o                                      
                                                                             
 33) [0.037s] linux/fs: LD built-in.o                                           
                                                                             
 34) [0.071s] linux: LINK vmlinux                                               
                                                                             
 35) [0.035s] linux/arch/x86/boot/compressed: OBJCOPY vmlinux.bin               
                                                                             
 36) [0.051s] linux/arch/x86/boot: NM voffset.h                                 
                                                                             
 37) [0.332s] linux/arch/x86/boot/compressed: GZIP vmlinux.bin.gz               
                                                                             
 38) [0.024s] linux/arch/x86/boot/compressed: MKPIGGY piggy.S                   
                                                                             
 39) [0.024s] linux/arch/x86/boot/compressed: CC piggy.S                        
                                                                             
 40) [0.020s] linux/arch/x86/boot/compressed: LD vmlinux                        
                                                                             
 41) [0.020s] linux/arch/x86/boot: NM zoffset.h                                 
                                                                             
 42) [0.020s] linux/arch/x86/boot: OBJCOPY vmlinux.bin                          
                                                                             
 43) [0.024s] linux/arch/x86/boot: CC header.S                                  
                                                                             
 44) [0.024s] linux/arch/x86/boot: LD setup.elf                                 
                                                                             
 45) [0.016s] linux/arch/x86/boot: OBJCOPY setup.bin                            
                                                                             
 46) [0.020s] linux/arch/x86/boot: ./build setup.bin vmlinux.bin CURRENT > 
bzImage                                                                         
  
Root device is (8, 1)
Setup is 13740 bytes (padded to 13824 bytes).
System is 1494 kB
CRC 19e00918
 [        ETA~=<1s Remaining=0  Active=0        ] 100%
[ tup ] [2.990s] Updated.                  

Reply via email to