Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 7 Dec 2017 10:06:45 +0100
From:      Hans Petter Selasky <hps@selasky.org>
To:        Bryan Drewery <bdrewery@FreeBSD.org>, src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   Re: svn commit: r326169 - in head: . contrib/ofed lib/libc/locale share/mk sys/amd64/amd64 sys/amd64/conf sys/conf sys/contrib/rdma/krping sys/dev/cxgbe sys/dev/cxgbe/common sys/dev/cxgbe/iw_cxgbe sys/...
Message-ID:  <8803f80b-56ee-d6e1-e8a4-5060a5c5fccf@selasky.org>
In-Reply-To: <afc493a4-4954-842e-5c0a-9a2443dbad55@FreeBSD.org>
References:  <201711241450.vAOEoSFW056744@repo.freebsd.org> <ea6c8eb5-f849-df2a-ab80-75d8ebc1edb8@FreeBSD.org> <0fec20d5-cb8f-4937-5dd0-54b8b7461772@selasky.org> <cec48299-e075-fe51-1297-4eb10a4f7619@FreeBSD.org> <19abac3b-8407-abd8-4fe9-c23d6bd7121f@selasky.org> <afc493a4-4954-842e-5c0a-9a2443dbad55@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On 12/07/17 02:41, Bryan Drewery wrote:
> On 12/6/2017 4:53 PM, Hans Petter Selasky wrote:
>> On 12/07/17 01:38, Bryan Drewery wrote:
>>> 1. SUBDIR=../../somewhere else is inherently wrong.
>>> 2. Building a library from a directory named '2' is wrong.
>>> 3. Not just using proper SUBDIR_DEPEND and making all these subdirs is
>>> not needed and complicates things MORE by splitting them all up.
>>> 4. Building a library from a directory where its real bsd.lib.mk is not
>>> at is wrong.
>>> 5. Depending on an include directory in the Makefile.inc1 library
>>> dependencies is simply not needed - I told you that.
>>
>> Try building the COMPAT 32-bit libraries with OFED and you'll see that
>> this is needed!
>>
>>> 6. Using these /0 /1 /2 /3 directories actually hurts the 'make
>>> libraries' parallelism/dependency graph. It ends up building /1 rather
>>> than building libibcm and libibumad directly in its graph.  It creates
>>> an indirection which adds more unneeded submake recursion.
>>
>> I think this is no argument over having to maintain and update
>> Makefile.inc1 with all the dependencies every time there is a change or
>> new driver library added to OFED.
> 
> Here's the proper change to contrib/ofed/usr.lib/Makefile, it is trivial.
> 
>> diff --git contrib/ofed/usr.lib/Makefile contrib/ofed/usr.lib/Makefile
>> index 47b97591f5b7..9c22b889fa19 100644
>> --- contrib/ofed/usr.lib/Makefile
>> +++ contrib/ofed/usr.lib/Makefile
>> @@ -1,13 +1,24 @@
>> -SUBDIR=        libibcommon libibmad libibumad libibverbs libmlx4 libmthca \
>> -       libopensm libosmcomp libosmvendor libibcm librdmacm libsdp libcxgb4
>> +SUBDIR= \
>> +       libibverbs \
>> +       libibcm \
>> +       libibumad \
>> +       librdmacm \
>> +       libibmad \
>> +       libosmcomp \
>> +       libosmvendor \
>> +       libcxgb4 \
>> +       libmlx4 \
>> +       libmlx5 \
>> +       libibnetdisc \
>> +       libopensm
>>
>>   SUBDIR_DEPEND_libcxgb4=        libibverbs
>>   SUBDIR_DEPEND_libibcm= libibverbs
>> -SUBDIR_DEPEND_libibmad= libibcommon libibumad
>> -SUBDIR_DEPEND_libibumad= libibcommon
>> +SUBDIR_DEPEND_libibmad=        libibumad
>> +SUBDIR_DEPEND_libibnetdisc=    libosmcomp libibmad libibumad
>>   SUBDIR_DEPEND_libmlx4= libibverbs
>> -SUBDIR_DEPEND_libmthca=        libibverbs
>> -SUBDIR_DEPEND_libosmvendor=    libibumad libopensm libosmcomp
>> +SUBDIR_DEPEND_libmlx5= libibverbs
>> +SUBDIR_DEPEND_libosmvendor=    libibumad
>>   SUBDIR_DEPEND_librdmacm=       libibverbs
>>   SUBDIR_PARALLEL=
>>
> 
> And Makefile.inc1 which is even more simple.
> 
>> @@ -2365,14 +2414,12 @@ _lib_libradius= lib/libradius
>>   .if ${MK_OFED} != "no"
>>   _ofed_lib=             contrib/ofed/usr.lib
>>   _prebuild_libs+=       contrib/ofed/usr.lib/libosmcomp
>> -_prebuild_libs+=       contrib/ofed/usr.lib/libopensm
>> -_prebuild_libs+=       contrib/ofed/usr.lib/libibcommon
>>   _prebuild_libs+=       contrib/ofed/usr.lib/libibverbs
>> +_prebuild_libs+=       contrib/ofed/usr.lib/libibmad
>>   _prebuild_libs+=       contrib/ofed/usr.lib/libibumad
>>
>> -contrib/ofed/usr.lib/libopensm__L: lib/libthr__L
>>   contrib/ofed/usr.lib/libosmcomp__L: lib/libthr__L
>> -contrib/ofed/usr.lib/libibumad__L: contrib/ofed/usr.lib/libibcommon__L
>> +contrib/ofed/usr.lib/libibmad__L: contrib/ofed/usr.lib/libibumad__L
>>   .endif

Hi,

FYI: The paths of the libraries are no longer correct.

Running:
sh tools/make_libdeps.sh $PWD

Gives this list of actual dependencies:
> contrib/ofed/libcxgb4: contrib/ofed/libibverbs lib/libthr
> contrib/ofed/libibcm: contrib/ofed/libibverbs
> contrib/ofed/libibmad: contrib/ofed/libibumad
> contrib/ofed/libibnetdisc: contrib/ofed/opensm/complib contrib/ofed/libibmad contrib/ofed/libibumad
> contrib/ofed/libmlx4: contrib/ofed/libibverbs lib/libthr
> contrib/ofed/libmlx5: contrib/ofed/libibverbs lib/libthr
> contrib/ofed/librdmacm: contrib/ofed/libibverbs
> contrib/ofed/opensm/complib: lib/libthr
> contrib/ofed/opensm/libopensm: lib/libthr
> contrib/ofed/opensm/libvendor: contrib/ofed/libibumad lib/libthr

All of this information is then in turn based on the given:
LIBADD=         XXX

In the respective Makefiles.

There is no need to duplicate this information. It should be pulled from 
of the existing OFED Makefiles.

--HPS




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?8803f80b-56ee-d6e1-e8a4-5060a5c5fccf>