Bug 5378

Summary: dropbear Makefile broken
Product: buildroot Reporter: Tilman Keskinöz <arved>
Component: OtherAssignee: unassigned
Status: RESOLVED WONTFIX    
Severity: minor CC: buildroot
Priority: P5    
Version: unspecified   
Target Milestone: ---   
Hardware: PC   
OS: Linux   
Host: Target:
Build:
Attachments: Don't add -lcrypu to OBJS

Description Tilman Keskinöz 2012-07-19 12:21:34 UTC
Under some circumstances dropbear 2012.55 adds -lcrypt to the OBJS variable

Instead -lcrypt should be added to LIBS

Patch attached
Comment 1 Tilman Keskinöz 2012-07-19 12:22:22 UTC
Created attachment 4430 [details]
Don't add -lcrypu to OBJS
Comment 2 Thomas Petazzoni 2012-08-21 12:04:35 UTC
What problem is this solving exactly?
Comment 3 Tilman Keskinöz 2012-09-10 11:05:46 UTC
The build of the dropbear package was failing, because there was no rule to create "-lcrypt" obj.
Comment 4 Peter Korsgaard 2012-09-10 19:53:16 UTC
(In reply to comment #3)
> The build of the dropbear package was failing, because there was no rule to
> create "-lcrypt" obj.

Hmm, I don't seem to be able to reproduce this. Could you provide more details about your config, please?
Comment 5 Mike Frysinger 2012-09-10 20:05:14 UTC
(In reply to comment #1)

it would be better to fix Makefile.in itself and then send the fix upstream

(In reply to comment #2)

make has implicit rules to handle "-lfoo" in its dependency list.  so dropbear does this:

dropbearobjs=$(COMMONOBJS) $(CLISVROBJS) $(SVROBJS) @CRYPTLIB@
...
dropbear: $(dropbearobjs)

this expands into:
dropbear: ... -lcrypt

and make executes its implicit code to try and find /usr/lib/libcrypt.a.  if you don't have that, it'll fail.
Comment 6 Peter Korsgaard 2012-09-10 20:52:39 UTC
(In reply to comment #5)
> (In reply to comment #1)
> 
> it would be better to fix Makefile.in itself and then send the fix upstream
> 
> (In reply to comment #2)
> 
> make has implicit rules to handle "-lfoo" in its dependency list.  so dropbear
> does this:
> 
> dropbearobjs=$(COMMONOBJS) $(CLISVROBJS) $(SVROBJS) @CRYPTLIB@
> ...
> dropbear: $(dropbearobjs)
> 
> this expands into:
> dropbear: ... -lcrypt
> 
> and make executes its implicit code to try and find /usr/lib/libcrypt.a.  if
> you don't have that, it'll fail.

Ahh yes, I missed that.

And yes, I agree with Mike. Please fix it correctly (E.G. in Makefile.in) and submit upstream.
Comment 7 Gustavo Zacarias 2013-12-11 17:16:47 UTC
Upstream bug, please submit your patch to them.
Thanks.